FPGA實(shí)戰開(kāi)發(fā)技巧(7)
技巧1、XST 主要參考資料:XST User Guide (ISE 安裝目錄doc 中的xst.pdf)
技巧2、 輔助參考資料:WP231 - HDL Coding PracTIces to Accelerate Design Performance
技巧3、特別注意之一:請給XST 加時(shí)序約束。
通常我們會(huì )為工程添加UCF 約束指定時(shí)序要求和管腳約束。但是UCF 約束是給MAP,PAR 等實(shí)現使用的,綜合工具XST 并不能感知系統的時(shí)序要求。而為XST 添加XCF 約束卻是使實(shí)現結果擁有最高頻率的關(guān)鍵。其原因是顯而易見(jiàn)的:實(shí)現工具只能在綜合網(wǎng)表的基礎上布局布線(xiàn),而綜合工具卻可以根據要求調整綜合網(wǎng)表,使實(shí)現工具更容易滿(mǎn)足時(shí)序要求。如果不將時(shí)序目標告知綜合器,將導致我們對性能的要求得不到體現。
XCF約束語(yǔ)法與UCF 類(lèi)似并且在XST User Guide 中有詳細描述。其實(shí)常用的Period、Offest等約束和UCF的語(yǔ)法是一模一樣的,可以直接使用在XCF中。
給設計添加X(jué)CF 約束的方法是Synthesize - XST --> 右鍵 --> Synthesis Constraint File = 指定路徑
技巧4、特別注意之二:仔細察看綜合報告中的Warning。切記要仔細查看綜合報告中的所有Warning并確認是否是可以安全忽略的。綜合器產(chǎn)生Error會(huì )使工具停止工作,但是Warning 經(jīng)常會(huì )被用戶(hù)忽略。其實(shí)Waning可以提示很多潛在的邏輯問(wèn)題,比如某些信號聲明了,被使用了,卻沒(méi)有被賦值,或者綜合器發(fā)現了Latch但卻不是期望的結果等等。
技巧5、 常用選項之一:keep_hierarchy - 保持層次。在初始設計/debug 的時(shí)候很有用。XST根據層次來(lái)綜合,不打破層次優(yōu)化,所有的寄存器名字都以名字排列,UCF 約束可以很方便得找到需要約束的對象。如果選擇soft,則在綜合時(shí)保持層次,而在map 時(shí)工具會(huì )打破層次來(lái)優(yōu)化,但是instance 的名字還是保留的。
技巧6、常用選項之二:register_duplicaTIon + max_fanout + equivalent_register_removal + resource_sharing - 允許自動(dòng)復制寄存器,設置最大扇出,禁止資源共享。當TIming不滿(mǎn)足時(shí)使用復制寄存器的方法通常能改善一些瓶頸。綜合器為了節省面積而做出的某些優(yōu)化可能導致對時(shí)序不利,因此關(guān)閉equivalent_register_removal 和resource_sharing可能可以改善時(shí)序。
技巧7、常用選項之三:Add IO Buffers - 自動(dòng)插入緩沖器。當我們的設計作為頂層使用時(shí),通常讓工具自動(dòng)插入IO buffer ;當需要將設計作為模塊插入別的設計中時(shí),就需要禁止自動(dòng)插入IO Buffer。
技巧8、常用選項之四: Number of Clock Buffers 和 buffer_type 約束: 當綜合結果中的BUFG 不是像想象中一樣時(shí),我們可以通過(guò)下面兩種方法來(lái)解決:
- 用buffer_type 約束對該信號所使用的Buffer類(lèi)型定義。具體使用方法在XST User Guide
- 手動(dòng)插入BUFG,然后設置允許使用BUFG的數量,那么手動(dòng)插入的將擁有高優(yōu)先級而先占用了BUFG,工具就不會(huì )再自動(dòng)插BUFG 了。
技巧9、 BlackBox :調用其它已經(jīng)綜合好的網(wǎng)表需要使用BlackBox。BlackBox說(shuō)白了就是只有端口說(shuō)明的HDL文件。更多的BlackBox TIp請參考我的博客( 注:為RickySu 的博客)。
技巧10、XST的命令行模式:XST支持使用命令行模式進(jìn)行批量操作。
命令行的XST 支持兩種模式:
Shell 方式 - 在cmd下輸入xst,然后在xst的shell 環(huán)境中一條一條打命令;
Script 方式 - 在cmd下用xst -ifn script.scr運行script.scr 內的命令,或者在xst shell 中用script命令調用script.scr中的內容。在此之前,會(huì )需要先準備好compile_list.prj。EDK 其實(shí)就使用這種方法調用XST。更詳細的語(yǔ)法參考XST User Guide。
技巧11、要查看綜合后的網(wǎng)表,除了XST自帶的RTL Schematic工具和Technology Schematic工具,還可以使用PlanAhead。他的顯示/ 查找能力更為強大,而且他會(huì )先合并所有的綜合網(wǎng)表,不會(huì )因為某個(gè)模塊式預先綜合好的而不能察看內部狀況。
評論