“更快”是每個(gè)系統(tǒng)設(shè)計(jì)師必備的詞匯,基于FPGA的設(shè)計(jì)亦是如此。如果您經(jīng)常試圖從FPGA設(shè)計(jì)中最大化地發(fā)掘每個(gè)MHz的性能,那么無疑Xilinx剛發(fā)布的一個(gè)白皮書您一定會(huì)非常感興趣。它的題目是“利用賽靈思All Programmable FPGA 和 SoC 實(shí)現(xiàn)高速無線電設(shè)計(jì)(Enabling High-Speed Radio Designs with Xilinx All Programmable FPGAs and SoCs”。如果您正在設(shè)計(jì)高速無線電蜂窩系統(tǒng)等,您就該看下這份白皮書。但其中的指南和技巧遠(yuǎn)不只適用于無線設(shè)計(jì),它還適用于使用可編程邏輯設(shè)計(jì)的各個(gè)高速系統(tǒng)。
白皮書指出的宗旨是“如果符合一些簡單的設(shè)計(jì)原則,高速無線設(shè)計(jì)可以很容易地建立在7系列FPGA架構(gòu)上。Xilinx公司已經(jīng)創(chuàng)建了典型無線數(shù)據(jù)路徑的設(shè)計(jì)范例,表明中速級(-2)器件上使用的幾乎100%的 slice資源都支持500 MHz以上的時(shí)鐘頻率。
然而,這個(gè)白皮書中的內(nèi)容適用于所有數(shù)據(jù)路徑設(shè)計(jì)。
白皮書中的示例架構(gòu)是單天線路徑DUC (數(shù)字上變頻器)架構(gòu),支持三種不同的時(shí)鐘速率: 245.76 MHz、368.64 MHz、和491.52 MHz。該設(shè)計(jì)利用Xilinx System Generator工具中的IP (FIR編譯器)、結(jié)構(gòu)元件(如,DSP48基元的實(shí)例化)、接口VHDL代碼等進(jìn)行構(gòu)建。白皮書顯示DUC設(shè)計(jì)按照三個(gè)時(shí)鐘速率實(shí)現(xiàn)的關(guān)鍵的利用率指標(biāo):
首先需要注意的是,一般來說DSP48 slice數(shù)與時(shí)鐘速率成反比??霷AM資源也按照階躍函數(shù)隨時(shí)鐘速率降低。這在無線電信號處理設(shè)計(jì)中較常見,其中塊RAM基本上用來按照相對高的采樣率存儲(chǔ)大量函數(shù)運(yùn)算的系數(shù)集合,例如,DDS(直接數(shù)字合成器)的正弦/余弦值,峰值抵消脈沖產(chǎn)生器中的CFR (波峰因數(shù)衰減)系數(shù),或DPD (數(shù)字預(yù)失真)模型中的非線性函數(shù)抽樣。
該分析不象邏輯資源那樣簡單。當(dāng)時(shí)鐘頻率從368.64轉(zhuǎn)換至491.52 MHz(1.33時(shí)鐘比) ,按照比例LUT和FF的數(shù)據(jù)量分別減少了1.34和1.44倍。將時(shí)鐘速率從245.76放大一倍至491.52 MHz,這些數(shù)據(jù)減少了1.8倍和1.7倍。這種非線性行為基本上是為執(zhí)行信號處理控制邏輯,不需要按照時(shí)鐘頻率進(jìn)行線性放大。
信號采樣率也影響資源利用率。比如,采樣速率為25 Msamples/sec的濾波器帶寬在250 MHz運(yùn)行時(shí)與帶寬在500 MHz運(yùn)行時(shí)相比所需的邏輯資源略降低兩倍。采樣速率為500 Msamples/sec的多相實(shí)現(xiàn)帶寬在250 MHz運(yùn)行時(shí)與帶寬在500 MHz時(shí)相比,所需的邏輯資源增加兩倍。對邏輯資源使用的一階估計(jì)是時(shí)鐘頻率增加x倍相當(dāng)于邏輯利用率減少0.85至1.1倍。
這些設(shè)計(jì)數(shù)據(jù)加上白皮書內(nèi)的更多數(shù)據(jù)顯示在設(shè)計(jì)基于FPGA的高性能系統(tǒng)時(shí)的常用建議:
? 適當(dāng)?shù)牧魉€程序當(dāng)然是設(shè)計(jì)高速程序的關(guān)鍵因素。
? 需要構(gòu)建一個(gè)以上塊RAM(block RAM,)的存儲(chǔ)時(shí),可通過選擇最大限度地減少數(shù)據(jù)復(fù)用和資源利用的配置優(yōu)化速度。舉例來說, 存儲(chǔ)16位數(shù)據(jù)的16K存儲(chǔ)器最好使用16K × 1位的塊RAM進(jìn)行構(gòu)建,而不是1K × 16位的塊RAM。
? DSP slice邏輯本質(zhì)上可支持較高的時(shí)鐘速率。邏輯電平與數(shù)據(jù)路由路徑的數(shù)量限制了速度,因此在構(gòu)建高速設(shè)計(jì)時(shí)應(yīng)在每一個(gè)或兩個(gè)LUT電平上插入一個(gè)寄存器。
? 定義合理的層次結(jié)構(gòu),按照邏輯分區(qū)將設(shè)計(jì)劃分成相應(yīng)的功能模塊。這種層次結(jié)構(gòu)提供便于在層次邊界寄存輸出的方法,從而限制特定模塊的關(guān)鍵路徑。這樣分析和修復(fù)在單一模塊中定位的時(shí)序路徑就很容易。實(shí)際上,定位超高時(shí)鐘速度時(shí),應(yīng)在層次結(jié)構(gòu)的一些層級使用多個(gè)寄存器級,以優(yōu)化時(shí)序并為后端工具留下更多設(shè)計(jì)空間。好的設(shè)計(jì)層次結(jié)構(gòu)應(yīng)該將相關(guān)的邏輯集成在一起,使得區(qū)域分組和邏輯壓縮更為有效。
? 建立適當(dāng)?shù)膶哟谓Y(jié)構(gòu)可在多個(gè)模塊時(shí)獲取可重復(fù)結(jié)果。
? 在模塊級應(yīng)用實(shí)現(xiàn)屬性,可令代碼簡單并具可擴(kuò)展性,該屬性可傳播該模塊中聲明的所有信號。
? 良好的時(shí)鐘管理和時(shí)鐘分配方法至關(guān)重要。
? 盡可能減少獨(dú)立主時(shí)鐘數(shù)量。
? 將時(shí)鐘元件放在設(shè)計(jì)層次結(jié)構(gòu)的頂層,以便在多個(gè)模塊共享時(shí)鐘,這將減少所需的時(shí)鐘資源,提高時(shí)序性能,并降低資源和功率利用率。
? 在不相關(guān)時(shí)鐘域之間使用適當(dāng)?shù)脑偻郊夹g(shù)。
? 同樣的,必須定義足夠多的重置策略。一般情況下,不需要重置每個(gè)寄存器。重置寄存器不需要?jiǎng)?chuàng)建高扇出 nets,原因是那樣會(huì)降低時(shí)序性能,提高路由復(fù)雜性。只有在重置絕對必要的時(shí)候再進(jìn)行重置。
? 最小化復(fù)位網(wǎng)絡(luò)的大小。
? 避免全局復(fù)位。
? 優(yōu)選同步復(fù)位,實(shí)際上對DSP48邏輯片和塊RAM是強(qiáng)制的。
? 限制時(shí)鐘“使能”的使用。實(shí)際上這條規(guī)則難以實(shí)現(xiàn),原因是在多周期實(shí)現(xiàn)中時(shí)鐘“使能”通常需要評估數(shù)據(jù)樣本或操作符輸出。實(shí)現(xiàn)有效的降低功耗技術(shù)很有效。在任何情況下,必須適當(dāng)寄存時(shí)鐘使能信號以刪除高扇出 nets。
因此,如果您正在開發(fā)基于FPGA的高速設(shè)計(jì),即使不是數(shù)字射頻應(yīng)用,您有必要盡快下載和閱讀上述白皮書以開始您的設(shè)計(jì)——“利用賽靈思All Programmable FPGA 和 SoC 實(shí)現(xiàn)高速無線電設(shè)計(jì)”。
-
賽靈思
+關(guān)注
關(guān)注
33文章
1797瀏覽量
132343 -
DDS
+關(guān)注
關(guān)注
22文章
672瀏覽量
154417 -
數(shù)字預(yù)失真
+關(guān)注
關(guān)注
3文章
24瀏覽量
13727
發(fā)布評論請先 登錄
【經(jīng)典】智能電網(wǎng)白皮書資料匯編
最新的智能電網(wǎng)的白皮書資料
簡儀科技怒對LabVIEW的白皮書
HDC 2022重磅首發(fā)《鴻蒙生態(tài)應(yīng)用開發(fā)白皮書》,附全文
白皮書:有效保護(hù)超高速接口免受 EMI 影響-白皮書-保護(hù)...

評論