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