在FPGA設(shè)計(jì)中,時(shí)序就是全部
掃描二維碼
隨時(shí)隨地手機(jī)看文章
當(dāng)你的FPGA設(shè)計(jì)不能滿足時(shí)序要求時(shí),原因也許并不明顯。解決方案不僅僅依賴于使用FPGA的實(shí)現(xiàn)工具來(lái)優(yōu)化設(shè)計(jì)從而滿足時(shí)序要求,也需要設(shè)計(jì)者具有明確目標(biāo)和診斷/隔離時(shí)序問(wèn)題的能力。設(shè)計(jì)者現(xiàn)在有一些小技巧和幫助來(lái)設(shè)置時(shí)鐘;使用像Synopsys Synplify Premier一樣的工具正確地設(shè)置時(shí)序約束;然后調(diào)整參數(shù)使之滿足賽靈思FPGA設(shè)計(jì)性能的目標(biāo)。
會(huì)有來(lái)自不同角度的挑戰(zhàn),包括:
● 更好的設(shè)計(jì)計(jì)劃,例如完整的和精確的時(shí)序約束和時(shí)鐘規(guī)范
● 節(jié)約時(shí)間的設(shè)計(jì)技術(shù),例如為更好的性能結(jié)果,整合設(shè)計(jì)的各個(gè)部分而編寫嚴(yán)謹(jǐn)?shù)腞TL代碼,提出最高性能挑戰(zhàn),當(dāng)你之后調(diào)整設(shè)計(jì)時(shí)減少迭代運(yùn)行時(shí)間
● 綜合和擺放以及路由時(shí)序的相關(guān)性,帶來(lái)更好的時(shí)序質(zhì)量的結(jié)果(QoR)和時(shí)序收斂
讓我更進(jìn)一步地觀察這三類中的技術(shù),檢驗(yàn)如何使用它們來(lái)達(dá)到時(shí)序目的。
第一步:更好的設(shè)計(jì)計(jì)劃
最重要的就是確定正確且完整的設(shè)計(jì)約束。這些約束用于設(shè)計(jì)意圖以及性能的目標(biāo)和綜合工具之間的通信。設(shè)計(jì)一旦綜合完畢,這些約束和關(guān)鍵路徑信息將被自動(dòng)注釋到Vivado設(shè)計(jì)套件的擺放和路由(P&R)工具中,進(jìn)一步確保滿足時(shí)序。
第二步:RTL代碼風(fēng)格和關(guān)鍵路徑調(diào)整
為了獲得更好的時(shí)序,我們建議使用特定的代碼風(fēng)格來(lái)描述有限狀態(tài)機(jī)、RAM、數(shù)學(xué)/DSP功能、時(shí)鐘樹(shù)和移位寄存器。結(jié)果會(huì)提高時(shí)序QoR,因?yàn)榫C合工具能夠推斷一個(gè)實(shí)現(xiàn)使用了FPGA原語(yǔ)的構(gòu)件。
此外,這些代碼風(fēng)格讓你免于創(chuàng)建不必要的邏輯,例如可推測(cè)的鎖存器、RAM的讀/寫檢查邏輯和打包進(jìn)入DSP原語(yǔ)的邏輯。當(dāng)需要更多這方面主題時(shí),使用綜合工具中的核生成器就成為值得考慮的關(guān)鍵點(diǎn)了。
第三步:獲得最終的時(shí)序收斂
在綜合、擺放和路由之后能夠報(bào)告總體的時(shí)序信息。例如,Synplify軟件允許你使用TCL命令(report_timing)報(bào)告設(shè)計(jì)的具體部分。為了進(jìn)一步提高時(shí)序QoR,我們建議你關(guān)聯(lián)綜合之后和P&R之后的時(shí)序結(jié)果,具體是在時(shí)序關(guān)鍵路徑上給定起點(diǎn)和終點(diǎn)的邊界。
我們指出的方法會(huì)早早地截取時(shí)鐘和約束設(shè)置問(wèn)題,同時(shí)也提供多種技術(shù)來(lái)調(diào)整和關(guān)聯(lián)你設(shè)計(jì)的時(shí)序以及擁有快速時(shí)序收斂的RTL。