標籤:
評定綜合好壞最重要的兩個指標:速度是否快和面積是否小;
synplify是專門針對FPGA/CPLD的邏輯綜合工具;
synplify兩個最顯著的特點是BEST和Timing driven引擎,使得綜合結果在速度和面積上都達到比較理想的效果;
synplify的幾個版本使用相同的核心,但synlify pro的功能最強大;
synplify綜合過程包括三方面內容:
1.對HDL原始碼進行編譯
synplify將輸入的HDL原始碼翻譯成boolean運算式並最佳化邏輯關係;
2.對編譯的結果最佳化
通過邏輯最佳化消除冗餘邏輯和複用模組,這種最佳化是針對邏輯關係的,與具體器件無關;
3.對最佳化的結果進行邏輯映射與結構層次上的最佳化,最後產生網表;
synplify將編譯產生的邏輯關係映射成FPGA的地層模組和硬體原語(primitive)產生網表並最佳化;
synplify pro的主要特色:
1.支援混合設計: 一個工程中的來源程式既可以包含verilog HDL代碼又可以包含VHDL代碼;
2.HDL原始碼編輯器:可以直接在synplify中編輯HDL原始碼,其文法錯誤修正功能強大,有syntax check和synthesis check兩個層次;
3.BEST(行為級提取技術):將行為級提取的模組直接適配到FPGA底層單元中去;
4.scope(綜合約束最佳化環境):以試算表形式輸入、管理設計的約束,使使用者可以方便、全面、有效地對設計進行綜合約束,結果是.sdc檔案
5.cross-probing:可以方便在代碼、視圖(RTL視圖和technology view視圖)、模擬、報告和關鍵路徑之間切換
6.RTL view:synplify pro在對源碼編譯後應用BEST技術再現寄存器傳輸級原理圖
7.technology view:將設計用FPGA的硬體原語(primitive)和底層模組(嵌入式PLL RAM等)描述的門級結構原理圖
technology視圖是RTL視圖向具體器件進行結構映射的結果
8.FSM compiler: 有限狀態機器綜合工具
FSM EXPLOER/FSM VIEVER:fsm explorer的本質是timing driven的狀態機器最佳化技術;
fsm viewer是有限狀態機器觀察器;
9.TCL命令介面,可以通過TCL指令碼極大的提高工作效率;
10.resource sharing:資源共用,有助於減少設計佔用的物理面積
11.retiming:用寄存器分割組合邏輯,在組合電路中插入寄存器平衡時延,以提高晶片工作頻率;
retiming技術也屬於timing driven最佳化技術之一;
pipelining: pipelining主要運用於一些演算法路徑,如乘法器、加法器等;
pipelining是局部最佳化而retiming是整體最佳化;
12.針對具體的廠家器件提供了豐富的綜合屬性attributes;
13.probe:探針,不改變源碼的前提下拉出任意訊號到輸出引腳;
14.timing analyst:時序分析專家,能夠進行點對點的路徑時序分析;
15.automativ gate clock conversion:IC設計和FPGA設計時的門控時鐘向同步時鐘的轉換;
synplify的介面:
1.功能表列
2.工具列
3.狀態顯示欄:顯示綜合器目前狀態
4.基本操作步驟按鈕:按實際操作順序組織
5.重要綜合最佳化參數選項設定: 集中了綜合最佳化過程中罪重要的一些參數,這些參數將直接決定綜合的結果
6.工程管理視窗: 顯示了工程結構和資源檔
7.工程檔案顯示視窗: 顯示工程輸入檔案和綜合結果檔案
8.訊息/TCL指令碼顯示視窗
9.綜合結果觀察視窗:顯示綜合結果的時鐘頻率、IO引腳、寄存器資源、LUT資源和選用器件等重要訊息;
synplify與quartus聯合使用:
1. quartus中的setting中選擇synplify pro為綜合工具,則quartus將自動調用synplify pro完成設計流程中的綜合;
2. 單獨啟用synplify pro完成綜合,輸出EDIF或VQM網表檔案;此時quartus僅僅完成對網表的映射和布局布線等操作;
synplify pro的操作步驟:
1.建立工程
2.原始碼添加與編譯
3.RTL和technology觀察
4.使用scope設計綜合約束
5.設定綜合最佳化參數
6.綜合
7.綜合後分析
synplify pro的SCOPE綜合約束選項:
1.時鐘 clock
2.時鐘延遲 clock to clock
3.輸入輸出 inputs/outputs
4.寄存器 registers
5.多周期路徑 multi-cycle paths
6.弱約束路徑 false paths
7.路徑最大延遲 max_delay path
8.約束屬性 attributes
9.多位置編譯 compile points
10.其他 other
11.collections
12.IO標準IO standard
synplify pro中設計FSM的工具:
FSM Compiler將FSM編譯為類似狀態轉移圖的串連圖,然後對FSM重新編碼、最佳化以達到更好的綜合效果;
FSM Explorer使用FSM Compiler的編譯結果,遴選不同的編碼方式進行狀態機器編碼探測,從而達到對FSM編碼的最佳最佳化效果;
FSM Viewer是觀查FSM的好工具
它們的作用: 重新選擇編碼方式、確定更恰當的起始狀態、刪除冗餘邏輯和不可達狀態;
綜合時使用了FSM compiler則可以在log file中查看每一個狀態機器的綜合結果;
綜合以後產生的檔案有.srr .tlg .srs
.srr: 工程報告(重要),以"project_name.srr"命令;
.tlg:工程組織圖資訊檔
.srs:RTL視圖檔案
tcl指令檔的使用:
設計者可以用批處理命令的形式執行一個綜合,也可以一次執行同一設計的多個綜合,嘗試不同器件、不同延時目標、不同約束條件;
工程檔案prj、約束檔案sdc本質上都是採用tcl指令碼編寫的;
添加約束的方法: synplify的scope, HDL中添加約束;
synplify把最後編譯的module/entity and architecture作為頂層設計,所以要把頂層設計檔案拉到設計檔案清單的最底端(否則只會在RTL視圖中顯示末尾HDL的視圖)
最佳化時如果resource sharing被選中,則最高頻率一般來說會降低,但是資源有所節約;建議在設計能夠滿足時鐘頻率要求時選中以節省資源;
pipelining即流水,在高速設計時如果其他措施都不能達到目標頻率則最好選中此項;
technology view和RTL view都是針對HDL的,都是綜合之前就能顯示的,technology view是基於目標器件技術的階層電路圖;
時間報告(timing report):即srr中的preference summary部分,注意綜合產生的時間報告只是估計值,設計實際的時序狀況極大程度依賴於布局布線工具;
[轉載]synplify使用