新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA實戰開發技巧(7)

        FPGA實戰開發技巧(7)

        作者: 時間:2017-10-13 來源:網絡 收藏

        技巧1、XST 主要參考資料:XST User Guide (ISE 安裝目錄doc 中的xst.pdf)
        技巧2、 輔助參考資料:WP231 - HDL Coding PracTIces to Accelerate Design Performance
        技巧3、特別注意之一:請給XST 加時序約束。

        本文引用地址:http://www.104case.com/article/201710/365614.htm

        通常我們會為工程添加 約束指定時序要求和管腳約束。但是 約束是給MAP,PAR 等實現使用的,綜合工具XST 并不能感知系統的時序要求。而為XST 添加 約束卻是使實現結果擁有最高頻率的關鍵。其原因是顯而易見的:實現工具只能在綜合網表的基礎上布局布線,而綜合工具卻可以根據要求調整綜合網表,使實現工具更容易滿足時序要求。如果不將時序目標告知綜合器,將導致我們對性能的要求得不到體現。

        約束語法與 類似并且在XST User Guide 中有詳細描述。其實常用的Period、Offest等約束和UCF的語法是一模一樣的,可以直接使用在中。

        給設計添加XCF 約束的方法是Synthesize - XST --> 右鍵 --> Synthesis Constraint File = 指定路徑

        技巧4、特別注意之二:仔細察看綜合報告中的Warning。切記要仔細查看綜合報告中的所有Warning并確認是否是可以安全忽略的。綜合器產生Error會使工具停止工作,但是Warning 經常會被用戶忽略。其實Waning可以提示很多潛在的邏輯問題,比如某些信號聲明了,被使用了,卻沒有被賦值,或者綜合器發現了Latch但卻不是期望的結果等等。

        技巧5、 常用選項之一:keep_hierarchy - 保持層次。在初始設計/debug 的時候很有用。XST根據層次來綜合,不打破層次優化,所有的寄存器名字都以名字排列,UCF 約束可以很方便得找到需要約束的對象。如果選擇soft,則在綜合時保持層次,而在map 時工具會打破層次來優化,但是instance 的名字還是保留的。

        技巧6、常用選項之二:register_duplicaTIon + max_fanout + equivalent_register_removal + resource_sharing - 允許自動復制寄存器,設置最大扇出,禁止資源共享。當TIming不滿足時使用復制寄存器的方法通常能改善一些瓶頸。綜合器為了節省面積而做出的某些優化可能導致對時序不利,因此關閉equivalent_register_removal 和resource_sharing可能可以改善時序。

        技巧7、常用選項之三:Add IO Buffers - 自動插入緩沖器。當我們的設計作為頂層使用時,通常讓工具自動插入IO buffer ;當需要將設計作為模塊插入別的設計中時,就需要禁止自動插入IO Buffer。

        技巧8、常用選項之四: Number of Clock Buffers 和 buffer_type 約束: 當綜合結果中的BUFG 不是像想象中一樣時,我們可以通過下面兩種方法來解決:

        - 用buffer_type 約束對該信號所使用的Buffer類型定義。具體使用方法在XST User Guide
        - 手動插入BUFG,然后設置允許使用BUFG的數量,那么手動插入的將擁有高優先級而先占用了BUFG,工具就不會再自動插BUFG 了。

        技巧9、 BlackBox :調用其它已經綜合好的網表需要使用BlackBox。BlackBox說白了就是只有端口說明的HDL文件。更多的BlackBox TIp請參考我的博客( 注:為RickySu 的博客)。

        技巧10、XST的命令行模式:XST支持使用命令行模式進行批量操作。

        命令行的XST 支持兩種模式:

        Shell 方式 - 在cmd下輸入xst,然后在xst的shell 環境中一條一條打命令;
        Script 方式 - 在cmd下用xst -ifn script.scr運行script.scr 內的命令,或者在xst shell 中用script命令調用script.scr中的內容。在此之前,會需要先準備好compile_list.prj。EDK 其實就使用這種方法調用XST。更詳細的語法參考XST User Guide。

        技巧11、要查看綜合后的網表,除了XST自帶的RTL Schematic工具和Technology Schematic工具,還可以使用PlanAhead。他的顯示/ 查找能力更為強大,而且他會先合并所有的綜合網表,不會因為某個模塊式預先綜合好的而不能察看內部狀況。



        關鍵詞: FPGA XCF UCF

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳山县| 乌苏市| 霞浦县| 犍为县| 汨罗市| 仙居县| 监利县| 苍南县| 苏尼特左旗| 泰安市| 务川| 乐昌市| 镇巴县| 武清区| 阜平县| 吉木萨尔县| 仙游县| 曲松县| 柳林县| 塔城市| 英超| 雷波县| 乾安县| 右玉县| 子洲县| 东海县| 微博| 大足县| 呼伦贝尔市| 曲沃县| 陵水| 诸城市| 巴彦淖尔市| 长顺县| 海淀区| 曲沃县| 丰城市| 武平县| 沂水县| 达孜县| 临夏县|