FPGA的結(jié)構(gòu)特點與開發(fā)
FPGA的結(jié)構(gòu)特點與開發(fā)
我這個題目想說明的是,FPGA的內(nèi)部的有其相應(yīng)的Fabric,如何在開發(fā)過程中最好最大限度的使用它。
其中有些內(nèi)容是我閱讀XILINX網(wǎng)站上提供的XAPP手冊學習到的,我在這里再次談到它們,是因為的確是太好用了。
1.SRL16
SRL16在實現(xiàn)延時、閉環(huán)實現(xiàn)占空比可控的觸發(fā)脈沖方面很方便,代碼中例化它,會使代碼比較簡潔。在調(diào)試時,調(diào)整延時量也很方便。使用它要注意的是它的Tcko比較大,對時序會是一個瓶頸。揚長避短,在適當?shù)牡胤郊右粋€觸發(fā)器DFF,再輸出使用。
2.STARTUP
STARTUP模塊,對很多人很陌生,在實際設(shè)計中使用它很少。但如果使用它,會給設(shè)計帶來很大的可靠性和編碼簡便性。我了解了一下,有朋友“排斥”它,是因為它不能仿真,確切的說在仿真的時候帶來很大的麻煩。其實不然,MODELSIM是支持它仿真的。要想好好的了解它,網(wǎng)上可以搜索到有關(guān)如何使用它的一篇文檔《Verilog GSR/GTS SimulaTIon Methodology》,很多人都使用過MCU、DSP芯片,STARTUP就相當于這些器件內(nèi)部的全局復位管理單元。但STARTUP有比它們更優(yōu)勢的一面,節(jié)省布線資源,同時節(jié)省生成bit流的時間。
3.BRAM
BRAM是一個很牛的東西,它可以實現(xiàn)復雜數(shù)學運算,可參考《插值查找表:實現(xiàn)DSP功能的簡便方法》;可以將一些復雜的大邏輯放在BRAM中實現(xiàn);擬合運算也可以高效的實現(xiàn)。要高效的使用它,可以在設(shè)計中直接例化,但這不是最好的方法。XST工具有相應(yīng)的綜合約束語法,可以在代碼中用HDL語言描述,在綜合的時候告訴XST綜合為BRAM即可。
4.全局時鐘相關(guān)的基元
涉及到時鐘方面的設(shè)計內(nèi)容,一定要采用例化方式,這也是目前的設(shè)計主流方法。另外,現(xiàn)在FPGA發(fā)展很快,XILINX推出了很多革新的器件,這些器件提供了花樣繁多的BUF,像BUFH,BUFIO等等。使用它們之前一定要仔細閱讀資料,因為他們的使用對IO或IO BANK是有嚴格要求的,有些BUF只能與特定的管腳相連,否則PROCESS中MAP階段不能通過。這樣既開發(fā)時間,又需要該做PCB.
評論