PlanAhead允許導(dǎo)入多種不同類型的源文件,包括HDL和NGC核。在RTL編輯器中可以打開、編輯、開發(fā)RTL源文件。下面我們介紹【Sources】源文件視圖和RTL編輯器的使用。
1. 認識【Sources】源文件視圖。
源文件視圖顯示方式:在【Sources】源文件視圖窗口單擊,最大化此窗口,如圖10-9所示。
圖10-9 【Sources】源文件視圖—按類型分組
圖中【Name】欄顯示文件名,其中有三個文件類型Core、Verilog和VHDL。【Library】欄顯示相應(yīng)的源文件屬于哪個庫。【Location】欄顯示文件路徑?!綥ocal】顯示導(dǎo)入文件是不是成功。
在源文件視圖窗口的右上角顯示有分組方式,共有4種分組方式,分別是【Group by Type】按類型分組,如圖10-9所示,【Group by Source Root】按源文件位置分組,如圖10-10所示,【Flat View】打平,按字母順序分組,如圖10-11所示。
圖10-10 【Sources】源文件視圖—按位置分組
圖10-11 【Sources】源文件視圖—按字母順序分組
2. 指定庫文件的方法。
在圖10-9所示【Sources】源文件視圖窗口選擇VHDL目錄下除了bft.vhdl的文件,單擊鼠標右鍵,在彈出菜單中選擇【Set Library…】,在【Set Library】窗口輸入bftLib庫名。如圖10-12所示。這樣,就為這幾個VHDL文件指定了庫文件。
圖10-12 【Set Library】窗口
3. RTL源文件編輯器。
在【Sources】窗口雙擊HDL文件,就會打開RTL源文件編輯器。在編輯窗口,用右鍵彈出菜單,設(shè)計者可以進行各種編輯操作,例如:刪除、復(fù)制、查找、替換等。如果單擊【Find in File】,出現(xiàn)圖10-13所示對話框,鍵入clk,軟件就會找到所有源文件中含有clk的字段,如圖10-14所示,選擇一個查找結(jié)果并雙擊,會打開相應(yīng)的源文件,并在源文件中定位。
圖10-13 在文件中查找
圖10-14 查找結(jié)果
三、 創(chuàng)建RTL源文件
在PlanAhead中可以新建HDL源文件,還可以使用語言模板。
1. 在【Sources】窗口單擊鼠標右鍵,在彈出菜單中選擇【Create Source…】打開圖10-15所示對話框。輸入源文件名,指定存儲路徑、語言類型和庫名。
圖10-15 新建源文件對話框
2. 單擊【OK】按鈕,打開myfile.vhdl窗口,在此窗口空白處單擊右鍵菜單選擇【Insert Template…】打開Xilinx語言模板,選擇一個模板,例如選擇一個計數(shù)器,單擊【OK】按鈕,此模板就會出現(xiàn)在myfile.vhdl文件中,如圖10-16所示。當(dāng)然,設(shè)計者可以在這里輸入自己的HDL代碼。
圖10-16 用語言模板創(chuàng)建源程序
四、 探測和分析RTL設(shè)計
PlanAhead提供RTL源碼探測功能,可以對導(dǎo)入的RTL源碼進行編譯,編譯的錯誤和警告信息可以被顯示出來,可以用這些信息進行交叉定位,很方便地定位到錯誤或警告源。RTL邏輯層次可以展開,可以用來進行各種分析。一旦使用探測功能,所有RTL視圖都允許邏輯對象的交叉探測。RTL網(wǎng)表和層次視圖顯示了設(shè)計的邏輯層次結(jié)構(gòu)。RTL原理圖視圖允許交互邏輯探測。查找命令可以用來查找邏輯對象。實例屬性視圖顯示了所選實例的信息,包括資源使用信息。RTL DRC工具會告訴設(shè)計者設(shè)計中哪些地方可以進行功耗和性能優(yōu)化。
1. 運行RTL探測。在菜單欄選擇【Tools】→【Run Elaboration…】,彈出【Run Elaboration】對話框,如圖10-17所示,在頂層模塊名中輸入top,單擊【Options】域的瀏覽按鈕,設(shè)置綜合屬性,這里單擊【Cancel】,使用默認值,在【Run Elaboration】對話框單擊【OK】,開始RTL探測。
圖10-17 【Run Elaboration】對話框
探測結(jié)果如圖10-18所示。其中有很多Warning,可以單擊這些Warning,交叉探測功能會將警告定位在相應(yīng)的源碼中,這樣就可以很方便地找到源碼中存在的問題。
還可以通過單擊【Elaboration】窗口中的圖標,切換顯示/隱藏Warning信息。如果設(shè)計中存在錯誤,錯誤信息也會顯示在此窗口。
圖10-18 【Elaboration】窗口
2. 通過RTL網(wǎng)表視圖和層次視圖檢查RTL層次。在圖10-19所示的RTL視圖中選中一個實例化模塊iwb_biu,在右鍵彈出菜單中選擇【Show Definition】、【Show Source】或【Show Hierarchy】,分別會顯示功能定義窗口、源代碼窗口和層次窗口。圖10-20的【Show Definition】窗口顯示了所選實例的功能定義文件,圖10-21的【Show Source】窗口顯示了對所選實例進行例化的位置,圖10-22的【Show Hierarchy】窗口顯示了所選實例在整個設(shè)計中的層次關(guān)系。
圖10-19 RTL 實例右鍵彈出菜單
圖10-20 【Show Definition】窗口
圖10-21 【Show Source】窗口
圖10-22 【Show Hierarchy】窗口
3. 檢查RTL原理圖。在圖10-19所示RTL視圖中選中實例化模塊iwb_biu,在鼠標右鍵彈出菜單中選擇【Schematic】命令,打開圖10-23所示的【RTL Schematic】原理圖窗口,窗口中顯示了所選實例的原理圖。
圖10-23 【RTL Schematic】窗口
在【RTL Schematic】窗口,分別雙擊iwb_biu的biu_cyc引腳(外部和內(nèi)部),則biu_cyc引腳的源和負載會顯示出來,如圖10-24所示。
在【RTL Schematic】窗口,選擇圖中的MUX,單擊鼠標右鍵選擇【Show Source】命令,會打開MUX在源文件中位置。
在【RTL Schematic】窗口,單擊鼠標左鍵,按住不放,從左下方拖拉到右上方,松開左鍵,圖中所顯示的圖就會縮小一些,向相反的方向拖拉,圖就會放大一些,放大/縮小倍數(shù)取決于拖拉位移的大小。
圖10-24 【RTL Schematic】窗口
圖10-25 【RTL Schematic】查找對話框
4. RTL原理圖中查找命令的使用。
在【RTL Schematic】視圖窗口,運行【Edit】→【Find】命令,打開圖10-25所示查找對話框,按圖中所示設(shè)置各選項,單擊【OK】按鈕??梢哉业皆O(shè)計中用到的所有BRAM資源,如圖10-26所示,用右鍵彈出菜單可以定位每一個BRAM在不同的設(shè)計文件中的位置。
5. 檢查RTL資源統(tǒng)計結(jié)果。
在RTL網(wǎng)表列表窗口,選擇TOP頂層文件,這時,在網(wǎng)絡(luò)列表屬性窗口可以看到TOP的相關(guān)屬性,包括,RTL資源的使用、RTL層次資源、存儲資源、原語統(tǒng)計、接口網(wǎng)絡(luò)數(shù)和時鐘報告。如圖10-27所示。
圖10-26 BRAM 查找結(jié)果交叉探測
圖10-27 RTL 資源統(tǒng)計
6. RTL 的DRC 檢查。
運行【Tools】→【Run DRC】打開RTL DRC 設(shè)置對話框,如圖10-28 所示。使用默認設(shè)置,單擊【OK】按鈕,開始DRC 檢查。
運行結(jié)束,DRC 檢查結(jié)果如圖10-29 所示,圖中,錯誤標識為紅色,警告標識為橙色,信息標識為黃色。選擇最后一個LATCH 的警告RPLD #1,【Violation Properties】窗口顯示相應(yīng)的信息,并出現(xiàn)一個藍色的鏈接,單擊此鏈接,RTL 網(wǎng)表窗口會出現(xiàn)相應(yīng)的實例,選擇此實例,右鍵菜單可以將此實例定位到多個文件中,如【RTL Schematic】窗口。
圖10-28 RTL DRC 檢查設(shè)置對話框
圖10-29 DRC 結(jié)果
7. 配置多個綜合策略。
對RTL 源碼進行綜合時,需要設(shè)置綜合屬性,例如綜合時是以速度為目標,以面積為目標,還是以功耗為目標,綜合時是否使用DSP48 資源,狀態(tài)機用哪種編碼方式等,這些屬性的設(shè)置會影響綜合過程,產(chǎn)生不同的綜合結(jié)果。綜合策略是指由多個綜合屬性的不同設(shè)置組成的不同綜合方式,以指導(dǎo)綜合工具按照這些綜合方式對源碼進行解析。接下來簡單介紹在PlanAhead 中是如何應(yīng)用多種綜合策略的。
運行【Tools】→【Run Multiple Strategies】,打開【Run Multiple Strategies】對話框,單擊【Next】,打開圖10-30 所示【Set Up Synthesis Runs】對話框,使用默認值。
在圖10-30 中,單擊【Next】打開圖10-31 選擇綜合策略對話框,在此窗口單擊【More】會增加一個綜合策略,單擊瀏覽按鈕,彈出圖10-32 所示對話框,在此對話框中可以選擇綜合策略。
圖10-32中有已經(jīng)存在的幾種不同的綜合策略,對每種綜合策略,都有簡短的描述,以說明此種綜合策略的作用。在右鍵彈出菜單中選擇【Edit Strategy】,打開圖10-33所示對話框,在這里可以看到每一種綜合策略是由哪些屬性組合而成的。除了PlanAhead軟件提供的綜合策略,用戶還可以創(chuàng)建自定義綜合策略。
圖10-30 【Set Up Synthesis Runs】對話框
圖10-31 選擇綜合策略對話框
圖10-32 選擇綜合策略
圖10-33 PlanAhead策略屬性對話框
在圖10-31 中單擊【More】兩次,單擊瀏覽按鈕選擇不同的綜合策略,設(shè)置好的策略窗口如圖10-34 所示。共設(shè)置了3 個綜合策略, synth_1(IOB 打包, 優(yōu)化時序) 、synth_2(PlanAhead 默認設(shè)置)、synth_3(面積優(yōu)化)。單擊【Next】按鈕,進入圖10-35 啟動選項設(shè)置對話框,選擇【Do not launch now】,先不運行多策略進程。這里重點介紹操作流
程。
圖10-34 設(shè)置好的綜合策略
圖10-35 啟動選項設(shè)置
在隨后出現(xiàn)的對話框中,單擊【Next】、【Finish】退出綜合策略設(shè)置。PlanAhead 窗口最下方會增加【Design Runs】對話框,選擇一個【Runs】進程,這時在屬性窗口會出現(xiàn)圖10-36 所示【Synthesis Run Properties】窗口,單擊其中的【Options】選項卡,在這里可以改變綜合屬性的設(shè)置。選擇一個綜合進程,單擊【Design Runs】對話框旁邊的按鈕啟動綜合進程,如圖10-37 所示。
圖10-36 【Synthesis Run Properties】窗口
評論
查看更多