在FPGA開發(fā)中,Vivado是貫穿設(shè)計(jì)全流程的核心工具。許多工程師在掌握基本操作后,仍會(huì)在時(shí)序收斂、綜合策略、IP復(fù)用等方面遇到瓶頸?,F(xiàn)根據(jù)中際賽威工程師培訓(xùn)老師對(duì)Vivado設(shè)計(jì)技術(shù)與AI自動(dòng)編程的總結(jié),以下圍繞八個(gè)核心模塊展開技術(shù)要點(diǎn),供FPGA開發(fā)者參考。
一、理解FPGA底層結(jié)構(gòu)
用好Vivado,需要對(duì)FPGA內(nèi)部結(jié)構(gòu)有清晰認(rèn)識(shí)。LUT(查找表)實(shí)現(xiàn)組合邏輯,F(xiàn)F(觸發(fā)器)實(shí)現(xiàn)時(shí)序邏輯,兩者組合構(gòu)成SLICE,多個(gè)SLICE組成CLB。DSP單元用于乘法累加等運(yùn)算,塊RAM用于數(shù)據(jù)存儲(chǔ)。時(shí)鐘資源包括PLL、MMCM用于頻率合成,BUFG、BUFH、BUFR用于時(shí)鐘緩沖與分布。
了解這些組件的功能和布局,有助于在設(shè)計(jì)中做出合理決策。例如,將大量使用DSP的計(jì)算密集模塊集中放置,可以為其他邏輯留出布線空間。
二、時(shí)鐘設(shè)計(jì)與時(shí)序收斂
時(shí)序問題是FPGA開發(fā)中的常見挑戰(zhàn)。時(shí)鐘約束是第一步——主時(shí)鐘、生成時(shí)鐘、異步時(shí)鐘組的約束需要準(zhǔn)確描述,工具才能進(jìn)行有效優(yōu)化。時(shí)序報(bào)告需要細(xì)致解讀:建立時(shí)間違例通常源于路徑組合邏輯過深,保持時(shí)間違例則多與時(shí)鐘偏斜或數(shù)據(jù)路徑過短有關(guān)。
優(yōu)化一個(gè)因邏輯設(shè)計(jì)不當(dāng)引起的時(shí)序違例項(xiàng)目,可以從多個(gè)層面入手:時(shí)鐘約束層、資源合理分布層、時(shí)序報(bào)告理解層、元件映射層、布線布局約束層。不同層面的優(yōu)化手段各有側(cè)重,綜合運(yùn)用才能有效收斂。

三、綜合策略的選擇
Vivado的綜合階段包含設(shè)計(jì)優(yōu)化、功率優(yōu)化、布局、布局后優(yōu)化、布線等多個(gè)子步驟。不同的綜合策略對(duì)最終時(shí)序結(jié)果影響顯著,有的側(cè)重面積,有的側(cè)重速度,有的側(cè)重編譯時(shí)間。
針對(duì)一個(gè)存在時(shí)序違例的項(xiàng)目,嘗試不同綜合策略并觀察其對(duì)時(shí)序的影響,有助于建立對(duì)綜合選項(xiàng)的直觀理解。正確設(shè)置綜合策略指令,是時(shí)序收斂的重要環(huán)節(jié)。
四、IP核的設(shè)計(jì)與復(fù)用
以任意信號(hào)發(fā)生器項(xiàng)目為例,完整的IP核設(shè)計(jì)流程包括:創(chuàng)建IP核、打包調(diào)用IP核、配置邏輯分析儀ILA和虛擬輸入輸出VIO IP核用于調(diào)試、BD設(shè)計(jì)、編譯輸出、下載后用VIO模擬輸出、ILA觀察輸出信號(hào)。
Vivado中豐富的IP核資源包括ZYNQ、DSP、FFT、RAM、PLL、MMCM、ILA、VIO等。熟練掌握這些IP核的配置和使用方法,能顯著提升開發(fā)效率。
五、非項(xiàng)目開發(fā)模式
許多工程師習(xí)慣使用Vivado圖形界面創(chuàng)建項(xiàng)目,但非項(xiàng)目開發(fā)模式同樣值得掌握。通過TCL腳本直接驅(qū)動(dòng)工具鏈,可以實(shí)現(xiàn)全流程自動(dòng)化。
使用非項(xiàng)目開發(fā)模式處理時(shí)序違例問題時(shí),可以有針對(duì)性地修改約束條件,快速實(shí)現(xiàn)收斂。導(dǎo)入任意階段的DCP中間文件,還能縮短重復(fù)編譯的時(shí)間,適合需要反復(fù)迭代的設(shè)計(jì)場(chǎng)景。
六、高級(jí)綜合語言HLS
HLS允許直接用C/C++生成Verilog,利用HLS庫(kù)和模板可提升RTL編程效率。對(duì)于算法密集型的模塊,如矢量運(yùn)算、圖像處理,采用HLS開發(fā)比手動(dòng)編寫RTL快得多。
利用HLS語言和庫(kù)函數(shù)生成矢量運(yùn)算IP核和圖像處理IP核,結(jié)合DMA和VDMA實(shí)現(xiàn)高速運(yùn)算與圖像傳輸,是一條值得掌握的快速開發(fā)路徑。
七、動(dòng)態(tài)功能交換DFX
DFX允許將部分硬件邏輯鎖定為基設(shè)計(jì),其余部分根據(jù)需要靈活加載不同模塊。這在需要時(shí)分復(fù)用硬件資源的場(chǎng)景中很有價(jià)值,例如通信協(xié)議的可變部分、算法庫(kù)的可替換模塊。
掌握RTL和BD兩種DFX項(xiàng)目的實(shí)現(xiàn)方法,有助于更高效地利用FPGA硬件資源。
八、AI輔助編程的趨勢(shì)
AI工具正在改變編程方式,F(xiàn)PGA開發(fā)也不例外。不同AI模型在代碼生成、理解、調(diào)試方面的能力各有側(cè)重。通過若干AI自動(dòng)編程實(shí)例的實(shí)操,比較不同模型的輸出效果,可以直觀感受當(dāng)前AI輔助編程的能力邊界。
AI輔助編程的目標(biāo)不是替代工程師,而是將工程師從重復(fù)性勞動(dòng)中解放出來。理解AI工具的工作方式,選擇適合自身需求的工具,有助于提升整體開發(fā)效率。工程師高培認(rèn)為,Vivado設(shè)計(jì)涉及從底層結(jié)構(gòu)到高階工具的多個(gè)層面,持續(xù)實(shí)踐和系統(tǒng)梳理是提升設(shè)計(jì)能力的關(guān)鍵。
審核編輯 黃宇
-
FPGA
+關(guān)注
關(guān)注
1664文章
22502瀏覽量
639231 -
AI
+關(guān)注
關(guān)注
91文章
41107瀏覽量
302593
發(fā)布評(píng)論請(qǐng)先 登錄
人工智能-Python深度學(xué)習(xí)進(jìn)階與應(yīng)用技術(shù):工程師高培解讀
研發(fā)工程師和測(cè)試工程師對(duì)于產(chǎn)品新功能的見解有何不同?#電子工程師 #電路知識(shí) #人工智能
IDT產(chǎn)品停產(chǎn)通知解讀:對(duì)電子工程師的影響與應(yīng)對(duì)
AI輔助編程設(shè)計(jì)之道:從Spec到Code工程實(shí)踐
電子工程師的雙標(biāo)瞬間 #電子 #電子愛好者 #電子工程師 #揚(yáng)興科技 #雙標(biāo)
電子工程師設(shè)計(jì)相關(guān)要點(diǎn)與案例分析
想成為硬件工程師?我教你??!你得先學(xué)會(huì)這些...... #硬件工程師 #電子工程師 #電子愛好者 #電子行業(yè)
硬件工程師面試必會(huì):10個(gè)核心考點(diǎn)#硬件設(shè)計(jì) #硬件工程師 #電路設(shè)計(jì) #電路設(shè)計(jì)
招鑲?cè)胧?b class='flag-5'>工程師1個(gè),硬件工程師一個(gè),
電子發(fā)燒友工程師看!電子領(lǐng)域評(píng)職稱,技術(shù)之路更扎實(shí)
嵌入式工程師的進(jìn)階之路
工程師高培解讀XilinxVivadoFPGA設(shè)計(jì)進(jìn)階與AI自動(dòng)編程
評(píng)論