FPGA深層解析
請(qǐng)查看下方白皮書的對(duì)策列表,獲取更多Virtex-5 FPGA相關(guān)信息。
乘數(shù)器和DSP片
圖13.乘數(shù)器功能
看起來簡(jiǎn)單的兩數(shù)相乘運(yùn)算在數(shù)字電路中實(shí)現(xiàn)起來是十分復(fù)雜的,也是極為消耗資源的。為提供相關(guān)參考,圖14所示是一種使用組合邏輯電路實(shí)現(xiàn)4×4字節(jié)乘數(shù)器的示意圖。
圖14.兩個(gè)4字節(jié)輸入相乘的電路圖
試想兩個(gè)32字節(jié)的數(shù)字相乘要通過2000多步操作才能得到結(jié)果。因此,FPGA預(yù)設(shè)了乘數(shù)器電路,在數(shù)學(xué)和信號(hào)處理應(yīng)用中保存對(duì)查找表和觸發(fā)器使用。Virtex-II和Spartan-3 FPGA擁有18×18bit乘法器,所以兩個(gè)32字節(jié)數(shù)字相乘的運(yùn)算需要三個(gè)乘法器來實(shí)現(xiàn)。許多信號(hào)處理算法都包括連乘運(yùn)算結(jié)果的功能,因此Virtex-5等高性能FPGA都預(yù)設(shè)被稱為DSP片的乘數(shù)器累加電路.這些預(yù)設(shè)處理組件,也被稱為DSP48片,包括25×18bit乘數(shù)器以及加法器電路,盡管您可單獨(dú)使用乘數(shù)器功能。表5所示為不同F(xiàn)PGA系列DSP決策。
表5.不同F(xiàn)PGA的DSP源
塊隨機(jī)存取存儲(chǔ)器(RAM)
選擇FPGA時(shí),記憶源是另一個(gè)需要考慮的關(guān)鍵因素。嵌入FPGA芯片中的用戶自定義隨機(jī)存取存儲(chǔ)器(RAM),對(duì)儲(chǔ)存數(shù)據(jù)設(shè)置或平行環(huán)路之間傳送數(shù)值很有幫助?;贔PGA系列,您可在16或36kb組件中設(shè)置板載RAM,或者使用觸發(fā)器以數(shù)組來執(zhí)行數(shù)據(jù)設(shè)置;然而,對(duì)于FPGA邏輯源來說,大型數(shù)組很快就變得十分“奢侈”。由100個(gè)32字節(jié)元素?cái)?shù)組可消耗Virtex-II 1000 FPGA中超過30%的觸發(fā)器,或者占用少于1%的嵌入式塊RAM。DSP算法通常需要追蹤整個(gè)數(shù)據(jù)塊或是復(fù)雜等式的系數(shù),而在沒有板載存儲(chǔ)器情況下,許多處理功能在FPGA芯片的硬件邏輯電路中都不適用。圖16所示為使用塊RAM讀寫存儲(chǔ)器的圖形化功能。
圖15.用于讀寫存儲(chǔ)器的塊RAM函數(shù)
同樣,你也可以使用內(nèi)存塊,將一段完整周期存儲(chǔ)為數(shù)值和索引的順序表,為板載信號(hào)發(fā)生器存儲(chǔ)周期性波形數(shù)據(jù)。輸出信號(hào)的最終頻率由檢索數(shù)值的速度決定,這樣您就可用此方法動(dòng)態(tài)改變輸出頻率,而不需要輸入波形中的急劇變化。
圖16.用于先進(jìn)先出緩沖器的塊RAM功能
FPGA固有的并行執(zhí)行要求邏輯電路獨(dú)立元件可在不用時(shí)間脈沖下驅(qū)動(dòng)。在不同運(yùn)行速度下的邏輯電路之間傳遞數(shù)據(jù)是很棘手的。使用先進(jìn)先出(FIFO)緩沖器時(shí),板載存儲(chǔ)器可用來是傳輸更加平穩(wěn)。如圖16所示,用戶可以將FIFO緩沖器配置成不同大小以確保數(shù)據(jù)在FPGA芯片的非同步部件間不會(huì)丟失。表6所示為嵌入不同F(xiàn)PGA系列的用戶可設(shè)置快RAM。
表6.不同F(xiàn)PGA的記憶源
總結(jié)
隨著高端技術(shù)的發(fā)展以及新概念的深入概括,F(xiàn)PGA技術(shù)地采用將不斷增加。然而探究FPGA其中奧秘,感嘆這硅片中在方框圖間匯編出的變化,也是十分重要的。在發(fā)展階段,如果您懂得如何利用和優(yōu)化資源,比較和選擇觸發(fā)器、查找表、乘數(shù)器和塊RAM等硬件指標(biāo)是十分有幫助的。這些基本的功能塊并不是包含所有資源的完整清單,而且這篇白皮書并沒有包含對(duì)所有FPGA部件的討論。用戶可以通過下面的推薦資源,繼續(xù)學(xué)習(xí)關(guān)于FPGA和數(shù)字硬件設(shè)計(jì)的知識(shí)。
評(píng)論