加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 6.9  典型實例12:增量式設(shè)計(Incremental Design)演示
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

FPGA設(shè)計開發(fā)軟件ISE使用技巧之:典型實例-增量式設(shè)計演示

2013/08/26
1
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

6.9??典型實例12:增量式設(shè)計(Incremental?Design)演示

6.9.1??實例的內(nèi)容及目標(biāo)

1.實例的主要內(nèi)容

6.7節(jié)對增量式設(shè)計這一方法的基本概念和流程做了全面的介紹。本節(jié)將以一個具體的實例幫助讀者熟悉增量式設(shè)計的操作流程。

本實例的源代碼參見隨書光盤Example6.9。此程序為PC機(jī)通過串口向SRAM寫入數(shù)據(jù),再由FPGA從SRAM中讀取數(shù)據(jù)通過串口將其送到PC機(jī)。

本實例的重點在于設(shè)計過程中是如何應(yīng)用增量式設(shè)計的,而不是如何實現(xiàn)程序本身的功能。

2.實例目標(biāo)

通過本訓(xùn)練,讀者應(yīng)達(dá)到下面的目標(biāo)。

·??掌握增量式設(shè)計與一般設(shè)計的區(qū)別。

·??掌握增量式設(shè)計的設(shè)計流程。

6.9.2??實例詳解

增量式設(shè)計的具體實現(xiàn)步驟如下。

(1)打開ISE工程。

設(shè)計的第一步為創(chuàng)建邏輯分組。

在本設(shè)計中,top.v為頂層模塊。頂層模塊中包含兩個功能模塊,分別為:uart_rs232.v和sram.v。uart_rs232.v用于完成串口數(shù)據(jù)傳輸,sram.v用于對于SRAM的基本讀寫操作。

top.v頂層模塊中,僅包含這兩個模塊,沒有其他復(fù)雜邏輯。并且每個邏輯分組均以寄存器輸出,可將這3個模塊看作3個邏輯分組,滿足創(chuàng)建邏輯分組所必須遵循的原則。

(2)綜合。

為了保證在后面的實現(xiàn)中能夠準(zhǔn)確地完成分組區(qū)域約束,這里需要對綜合的屬性進(jìn)行設(shè)置,在“Processes?for?Source”中選擇“Synthesize-XST”,單擊鼠標(biāo)右鍵,設(shè)置綜合屬性如圖6.86所示。

圖6.86??設(shè)置綜合屬性對話框

?

選擇“Synthesis?Options”/“Keep?Hierarchy”,設(shè)置綜合屬性為保留結(jié)構(gòu)層次模式。

綜合完畢要查看綜合報告,為了和下面流程中的增量綜合結(jié)果作對比,請?zhí)貏e注意綜合報告中如圖6.87所示的部分。在沒有進(jìn)行增量綜合時,要對每個模塊都進(jìn)行綜合和優(yōu)化。

圖6.87??未設(shè)置綜合約束條件時的綜合報告

?

(3)設(shè)置管腳約束。

在“Processes?for?Source”中選擇“Assign?Package?Pins”啟動設(shè)置管腳約束的工具PACE,如圖6.88所示,在Loc處設(shè)置各信號對應(yīng)的FPGA管腳。具體設(shè)置可參見例程代碼Source文件夾下的top.ucf文件。

圖6.88??設(shè)置管腳約束界面

?

設(shè)置好管腳約束后,保存退出PACE。在“Processes?for?Source”中選擇“Edit?Constraints?Text”,即在Text模式下編輯約束文件??梢钥吹较到y(tǒng)自動生成的管腳約束文件內(nèi)容,如圖6.89所示。

圖6.89??系統(tǒng)生成的管腳約束文件

?

(4)設(shè)置分組區(qū)域約束。

在“Processes?for?Source”中選擇“Create?Area?Constraints”,啟動設(shè)置分組區(qū)域約束工具PACE。分別選中sram和rs232,單擊左上角的圖標(biāo),為每一個邏輯分組設(shè)置區(qū)域約束,如圖6.90所示。

圖6.90??進(jìn)入分組區(qū)域約束模式

?

設(shè)置區(qū)域約束結(jié)果如圖6.91所示。

圖6.91??區(qū)域約束設(shè)置結(jié)果

?

如圖6.91所示,圖中左上角的區(qū)域?qū)?yīng)的是SRAM邏輯分組的約束區(qū)域,右下角的區(qū)域為rs232邏輯分組的約束區(qū)域。采用如上的約束是綜合兩個邏輯分組內(nèi)部邏輯的復(fù)雜性以及I/O位置來確定的。這里的約束并不惟一,讀者可根據(jù)需要進(jìn)行修改。

設(shè)置完畢后,保存設(shè)置。在“Processes?for?Source”中選擇“Edit?Constraints?Text”,即在text模式下編輯約束文件,可看到在約束文件中新添了如下內(nèi)容:

#PACE:?Start?of?PACE?Area?Constraints

AREA_GROUP?"AG_rs232"?RANGE?=?SLICE_X0Y55:SLICE_X19Y38?;//設(shè)置rs232邏輯分組區(qū)域

INST?"rs232"?AREA_GROUP?=?"AG_rs232"?;

AREA_GROUP?"AG_sram"?RANGE?=?SLICE_X34Y41:SLICE_X55Y18?;//設(shè)置SRAM邏輯分組區(qū)域

INST?"sram"?AREA_GROUP?=?"AG_sram"?;

?

(5)在普通模式下對工程進(jìn)行映射和布局布線。

在普通模式下(采用ISE下默認(rèn)的實現(xiàn)屬性)對工程進(jìn)行映射和布局布線是為了得到初始的指引文件,用于在后面的增量設(shè)計中指引映射和布局布線。

首先在“Processes?for?Source”中選擇“Implement?Design”/“Map”,對工程進(jìn)行映射。實現(xiàn)后系統(tǒng)會生成:top_map.ncd和top_map.ngm文件,需要用這些文件來指引后面的增量設(shè)計的映射。為了避免系統(tǒng)將此文件覆蓋,將其改名為:top_map_guide.ncd和top_map_guide.ngm文件。

接著在“Processes?for?Source”中選擇“Implement?Design”/“Place&Route”,對工程進(jìn)行布局布線,會得到top.ncd文件。也將其改名為:top_guide.ncd,將其作為后面增量設(shè)計時布局布線的指引文件。

注意

如果在此步驟中無法順利地完成映射和布局布線等步驟,很可能是區(qū)域分組約束做得不合適。需要重新做區(qū)域分組約束,直到能夠順利完成映射和布局布線為止。映射完成后要查看映射報告看各邏輯分組的資源利用率。如果不合適,需要修改區(qū)域約束后重新進(jìn)行映射和布局布線。映射報告需要注意的內(nèi)容如圖6.96所示。

完成映射和布局布線后的結(jié)果如圖6.92所示:

(6)對工程進(jìn)行增量綜合。

如果在設(shè)計調(diào)試中發(fā)現(xiàn)了某個Logic?Group需要修改,對其做微小的改動后,要對工程進(jìn)行增量綜合。例如可以修改uart_rs232.v的代碼,然后進(jìn)行增量綜合。

本實例中的增量綜合采用ISE自帶的工具XST。采用XST進(jìn)行增量綜合時,必須為其添加約束文件(擴(kuò)展名為xcf)。添加的約束文件可先在記事本中編輯,然后保存為擴(kuò)展名為xcf的文件。在本實例中綜合約束文件為syn_constraint.xcf文件,其內(nèi)容如下:

MODEL?"top"?incremental_synthesis=yes; //使用增量綜合

MODEL?"sram"?incremental_synthesis=yes;? //使用增量綜合

MODEL?"uart_rs232"?incremental_synthesis=yes;? //使用增量綜合

MODEL?"top"?resynthesize=yes; //啟動增量綜合

MODEL?"sram"?resynthesize=no; //不啟動增量綜合

MODEL?"uart_rs232"?resynthesize=yes; //啟動增量綜合

前3句設(shè)置各邏輯分組均采用增量綜合,后3句通知哪個邏輯分組內(nèi)容發(fā)生改變,需要重新綜合,哪個邏輯分組內(nèi)容未發(fā)生改變,無需重新綜合。編輯完畢,將該文件添加到當(dāng)前的工程當(dāng)中,如圖6.92所示,上面syn_constranit.xcf文件即為添加結(jié)果。

添加完畢后,要使這一約束文件有效,還要對綜合屬性進(jìn)行設(shè)置,如圖6.93所示。

???????

圖6.92??對工程進(jìn)行映射和布局布線結(jié)果???? 圖6.93??增量綜合屬性設(shè)置對話框

?

選擇“Synthesis?Options”/“Synthesis?Constraints?File”,根據(jù)約束文件所在位置,設(shè)置約束文件的路徑。設(shè)置完畢后,對工程進(jìn)行增量綜合。綜合完畢后,查看綜合報告,注意如下內(nèi)容。

將圖6.94與圖6.87進(jìn)行比較,可以看出綜合中僅對top和rart_rs232兩個邏輯分組重新進(jìn)行了綜合和優(yōu)化。SRAM邏輯分組保持不變(Unit?<sram>?is?up?to?date),表明增量綜合實現(xiàn)了。

????

圖6.94??增量綜合的綜合報告圖?????????????????6.95??增量實現(xiàn)屬性設(shè)置對話框

?

(7)對工程進(jìn)行增量實現(xiàn)(Implement)。

完成增量綜合后,就可以利用前面得到的初始的指引文件:top_map_guide.ncd和top_guide.ncd文件來指引增量實現(xiàn)。

?

首先對工程實現(xiàn)的屬性進(jìn)行設(shè)置,具體設(shè)置如下。

單擊右鍵,選擇進(jìn)程瀏覽器中的“Implement?Design”的“Property”選項,彈出工程實現(xiàn)屬性對話框,如圖6.95所示。在增量設(shè)計屬性頁中做如下設(shè)置。

·??為“Enable?Incremental?Design?Flow”使能增量實現(xiàn)。

·??為“Run?Guided?Incremental?Design?Flow”設(shè)置用指引文件來引導(dǎo)增量實現(xiàn)。

·??為“MAP?Guide?Design?File(.ncd)”設(shè)置指引映射的指引文件top_map_guide.ncd路徑。

·??為“PAR?Guide?Design?File(.ncd)”設(shè)置指引布局布線的指引文件top_guide.ncd路徑。

按上述方式設(shè)置完畢后,對工程進(jìn)行映射和布局布線后,查看映射和布局布線報告,對于映射報告注意以下內(nèi)容。

如圖6.96所示,在映射報告中會對每個邏輯分組在各自約束的區(qū)域內(nèi)的資源利用情況作一個總結(jié)報告??梢钥吹礁鞣纸M所用的LUT和Slices占其約束區(qū)域總量的百分比。如果出現(xiàn)某一邏輯分組的使用率達(dá)90%以上,而有些邏輯分組還不到1%,則需要重新進(jìn)行區(qū)域約束。

圖6.96??映射報告(Map?Report)

?

區(qū)域約束最好在生成初始指引文件時就確認(rèn)。在普通模式下完成映射后查看映射報告,查看每個邏輯分組的資源利用率。如是不合適,則更改區(qū)域約束,重新進(jìn)行映射。

對于布局布線報告注意以下內(nèi)容。

如圖6.97所示,布局布線時讀取了top_guide.ncd作為指引文件,僅有rs_232邏輯分組重新進(jìn)行了布局布線(AG_rs232?was?re-implemented)。SRAM邏輯分組完全繼承了前面已有的結(jié)果(AG_sram?was?fully?guided),說明增量實現(xiàn)完成了。

圖6.97??布局布線報告(Place&Route?Report)

?

完成了布局布線后就可以下載調(diào)試了。如果仍需要改動,重復(fù)步驟(6)和步驟(7),直到設(shè)計符合要求為止。

6.9.3??小結(jié)

本節(jié)以一個具體的實例介紹了ISE下增量設(shè)計流程。希望讀者能夠按照上述步驟進(jìn)一步熟悉ISE的增量設(shè)計流程,對增量設(shè)計有個比較全面的認(rèn)識,最終將這種設(shè)計方法應(yīng)用到自己的設(shè)計當(dāng)中。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(www.farsight.com.cn)是國內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實驗平臺的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠(yuǎn)見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。