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