在fpga工程中加入時(shí)序約束的目的:
1、給quartusii 提出時(shí)序要求;
2、quartusii 在布局布線時(shí)會(huì)盡量優(yōu)先去滿足給出的時(shí)序要求;
3、STA靜態(tài)時(shí)序分析工具根據(jù)你提出的約束去判斷時(shí)序是否滿足的標(biāo)準(zhǔn)。
舉個(gè)形象的比喻:就好比我要讓代工廠(類比quartus ii)給我加工一批零件,要求長寬高為10x10x10cm,誤差不超過1mm(類比時(shí)序約束條件)。代工廠按要求(即約束條件)開始進(jìn)行生產(chǎn)加工,工廠為了不返工,肯定會(huì)盡量生產(chǎn)出達(dá)到我要求的零件。當(dāng)加工完成后,質(zhì)檢員(類比STA靜態(tài)時(shí)序分析工具)按我給出的要求進(jìn)行檢驗(yàn)看是否滿足要求。要是工廠想盡了各種辦法也不能達(dá)到我給出的要求,那么就是我給出的要求太高了(即時(shí)序約束中的過約束),要是我給出的要求太低(比如說加工成方形就行,而沒有指出長寬高),那么工廠很容易就生產(chǎn)出來了,但這并不是我想要的,這是由于我給出的約束太松 即相當(dāng)于時(shí)序里的 欠約束。
quartus ii里的靜態(tài)時(shí)序分析(STA):是套用特定的時(shí)序模型,針對(duì)特定電路分析其是否違反設(shè)計(jì)者給定的時(shí)序限制。說白了就是檢查fpga內(nèi)部所有寄存器的建立時(shí)間保持時(shí)間是否滿足spec給定的要求。
1、Data Arrival Time 數(shù)據(jù)到達(dá)目的寄存器REG2時(shí)間
3、Data Required Time 數(shù)據(jù)需求時(shí)間-Setup
指數(shù)據(jù)需要在需求時(shí)間前到達(dá)目的寄存器,否則不滿足建立時(shí)間關(guān)系,不能被正確采樣。
最大延遲是防止數(shù)據(jù)來的太慢 ,當(dāng)時(shí)鐘沿已經(jīng)到來時(shí),數(shù)據(jù)還沒到,這樣就不能在上升沿被寄存器正確采樣。
4、Data Required Time 數(shù)據(jù)需求時(shí)間-Hold
指數(shù)據(jù)在時(shí)鐘鎖存沿到達(dá)后,必須保持一段穩(wěn)定的時(shí)間,使數(shù)據(jù)被正確采樣。做最小延遲約束是為了防止數(shù)據(jù)傳輸過快,使得寄存器還在鎖存上一個(gè)數(shù)據(jù)時(shí),下一個(gè)數(shù)據(jù)就來了,使得上次鎖存數(shù)據(jù)發(fā)生錯(cuò)誤。
所以 保持時(shí)間必須小于 tco+tlogic(組合邏輯延時(shí)),這里 tco+tlogic(組合邏輯延時(shí))就是數(shù)據(jù)從源寄存器到目的寄存器的時(shí)間。
5、時(shí)序裕量slack
Setup Slack=Setup Required Time - Data Arrival Time
Hold Slack=Data Arrival Time - Hold Required Time
時(shí)序裕量為正 表示時(shí)序滿足時(shí)序約束條件,為負(fù),時(shí)序不滿足。
6、Input Delay 輸入最大最小延遲
Input Delay=數(shù)據(jù)路徑延遲-時(shí)鐘路徑延遲+utco(外部器件)
輸入延遲 Input Delay=Data Arrival Time-Clock Arrival Time
=launch Edge+Tclk1+uTco+Tdata-latch edge-Tclk2
數(shù)據(jù)相對(duì)于時(shí)鐘到達(dá)目的寄存器的時(shí)間差值。即數(shù)據(jù)和時(shí)鐘從同一時(shí)間點(diǎn)(launch)開始,到達(dá)目的寄存REG2的時(shí)間差。
數(shù)據(jù)到達(dá)REG2走的路徑延時(shí)是:時(shí)鐘從launch開始 經(jīng)過Tclk1的延遲到達(dá)REG1,REG1在時(shí)鐘沿來之后,經(jīng)過Tco的時(shí)間把數(shù)據(jù)送出REG1,然后數(shù)據(jù)再經(jīng)過路徑延遲Tdata 到達(dá)REG2的數(shù)據(jù)管腳。
時(shí)鐘到達(dá)REG2走的路徑延時(shí)是:時(shí)鐘也從同一時(shí)間點(diǎn)(launch)開始,經(jīng)過路徑延遲Tclk2就到達(dá)REG2的時(shí)鐘管腳。
輸入最大延遲是約束為了滿足寄存器的建立時(shí)間,輸入最小延遲是位了滿足寄存器的保持時(shí)間。
Input Maximum Delay=Data Arrival Time最大值-Clock Arrival Time 最小值
“fpga-centric”Input Maximum Delay<=tclk-tsu(fpga)
Input Minimum Delay=Data Arrival Time最小值-Clock Arrival Time 最大值
“fpga-centric” Input Minimum Delay>=th(fpga)
7、output Delay 輸出最大最小延遲
output Maximum Delay=外部器件tsu+數(shù)據(jù)路徑最大延遲-時(shí)鐘路徑最小延遲
output Minimum Delay=外部器件th+數(shù)據(jù)路徑最小延遲-時(shí)鐘路徑最大延遲
8、Fmax
指設(shè)計(jì)能運(yùn)行的最高頻率,即周期為最小時(shí),頻率最大
當(dāng)Setup Slack=0時(shí),系統(tǒng)剛好滿足建立時(shí)間,此時(shí)周期為最小值。
period=tco+data_delay+tsu-tskew
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1630文章
21794瀏覽量
605110 -
寄存器
+關(guān)注
關(guān)注
31文章
5363瀏覽量
120925
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論