<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FPGA實戰(zhàn)開發(fā)技巧(7)

          FPGA實戰(zhàn)開發(fā)技巧(7)

          作者: 時間:2017-10-13 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/201710/365614.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

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



          關(guān)鍵詞: FPGA XCF UCF

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();