選用全局時(shí)鐘緩沖區(qū)(BUFG)作為時(shí)鐘輸入信號(hào),BUFG是最穩(wěn)定的時(shí)鐘輸入源,可以避免誤差。
只用一個(gè)時(shí)鐘沿來(lái)寄存數(shù)據(jù),使用時(shí)鐘的兩個(gè)沿是不可靠的,如果時(shí)鐘沿“漂移”,就會(huì)導(dǎo)致時(shí)序錯(cuò)誤。
不要隨意將內(nèi)部信號(hào)作為時(shí)鐘,如門控時(shí)鐘和分頻時(shí)鐘,而要使用CLKDLL或者DCM產(chǎn)生的時(shí)鐘,或者可以通過(guò)建立時(shí)鐘使能或者DCM產(chǎn)生不同的時(shí)鐘信號(hào)。
FPGA盡量采取同步設(shè)計(jì),也就是所有時(shí)鐘都是同一個(gè)源頭,如果使用兩個(gè)沒(méi)有相位關(guān)系的異步時(shí)鐘,必須要解決跨時(shí)鐘域問(wèn)題。
性能篇
邏輯級(jí)的時(shí)延不要超過(guò)時(shí)序預(yù)算的百分之五十,否則會(huì)影響系統(tǒng)的運(yùn)行頻率??梢酝ㄟ^(guò)分析時(shí)序報(bào)告中某個(gè)路徑的時(shí)序統(tǒng)計(jì)量來(lái)掌握系統(tǒng)的邏輯級(jí)時(shí)延。
對(duì)于關(guān)鍵的輸出選擇快速轉(zhuǎn)換速率,可以為L(zhǎng)VCMOS和LVTTL電平選擇轉(zhuǎn)換速率來(lái)降低輸出時(shí)延。
如果設(shè)計(jì)允許增加延遲,可以對(duì)組合邏輯采用流水操作來(lái)提高性能。
利用四種全局約束來(lái)對(duì)設(shè)計(jì)進(jìn)行全局約束,周期、偏置、輸入/輸出,管腳到管腳。
I/O寄存器提供了最快的時(shí)鐘到輸入、輸出到時(shí)鐘的延時(shí),對(duì)于輸入、輸出信號(hào),管腳到寄存器、寄存器到管腳都不可以有組合邏輯存在,對(duì)于三態(tài)寄存器,必須低電平有效,才能被綜合到IOB當(dāng)中。
盡量使用IP核進(jìn)行設(shè)計(jì),因?yàn)镮P核都是針對(duì)FPGA器件進(jìn)行了優(yōu)化,性能更高。
編程篇
使用Case語(yǔ)句而不是if-then-else語(yǔ)句
復(fù)雜的if-then-else語(yǔ)句在綜合布局布線以后會(huì)生成優(yōu)先級(jí)譯碼邏輯,增加路徑上的時(shí)延。然而,case語(yǔ)句則綜合為并行邏輯,沒(méi)有時(shí)延。
有限狀態(tài)機(jī)盡量不要包含有算術(shù)邏輯、數(shù)據(jù)通路邏輯以及其它與狀態(tài)機(jī)不相關(guān)的組合邏輯;
狀態(tài)機(jī)編寫的時(shí)候,下一狀態(tài)邏輯和輸出譯碼邏輯必須放在獨(dú)立的進(jìn)程中或者always語(yǔ)句中,綜合工具在輸出和下一狀態(tài)邏輯之間不允許共享資源。
盡量使用一位編碼有限狀態(tài)機(jī);
使用不同風(fēng)格的計(jì)數(shù)器,二進(jìn)制計(jì)數(shù)器是非常慢的,可以考慮LFSR,Pre -scalar,Johnson.
代碼設(shè)計(jì)要按照功能塊劃分成不同的層次,層次化有助于設(shè)計(jì)更加容易讀懂,也容易調(diào)試和復(fù)用。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1643文章
21954瀏覽量
613927
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA時(shí)序約束之衍生時(shí)鐘約束和時(shí)鐘分組約束
基于lmk03806的高性能可編程時(shí)鐘發(fā)生器的設(shè)計(jì)與fpga實(shí)現(xiàn) 畢...
時(shí)鐘IC怎么滿足高性能時(shí)序需求?
FPGA時(shí)鐘是什么意思
基于FPGA的時(shí)鐘設(shè)計(jì)

如何滿足高性能時(shí)鐘IC需求

(10)FPGA跨時(shí)鐘域處理

(08)FPGA時(shí)鐘概念

(12)FPGA時(shí)鐘設(shè)計(jì)原則

(29)FPGA原語(yǔ)設(shè)計(jì)(差分時(shí)鐘轉(zhuǎn)單端時(shí)鐘)

(30)FPGA原語(yǔ)設(shè)計(jì)(單端時(shí)鐘轉(zhuǎn)差分時(shí)鐘)

評(píng)論