時序約束與時序分析
一、基礎知識
FPGA設計中的約束主要有時序約束、位置及區域約束和其他約束。位置和區域約束用於實現FPGA設計的端口和資源位置的指導,其他約束則泛指芯片信號和電氣標准的約束。時序約束的作用則是使得時序能夠滿足輸入時鍾的要求。
時序約束的作用有:
(1)提高設計的工作頻率
(2)獲得正確的時序分析報告
設計者正確的時序約束,可以在軟件工具下得到STA報告,可以分析靜態時序。STA是忽略邏輯功能的,只是用於判斷設計延時是否符合要求。這也是后仿真需要做的原因。
二、時序分析報告的組成
Timing Analyzer Settings:時序分析設置
Timing Analyzer Summary:時序分析概要
Clock Setup:時鍾建立關系
tsu:輸入建立時間
th:輸入保持時間
tco:時鍾到輸出延時
tpd:管腳到管腳延時
Minimum tpd & tco:最小tPD和tCO
這是quartus中時序分析報告的內容,基於這個報告,初步理解時序約束的內容。
三、周期和時鍾頻率
(1)周期:就時鍾常用的描述的物理量。
最小周期tCLK=MicrotCO+tLOGIC+tNET+MicrotSU-tCLK_SKEW
其中tCLK_SKEW=tCD1-tCD2
各個物理量的作用:MicrotCO,固有寄存器延時;tLOGIC,邏輯延時;tNET,布線延時;MicrotSU,寄存器固有時鍾建立時間;tCLK_SKEW時鍾偏斜。
理解的話還是在圖上分析。
(2)最大頻率
最小周期的倒數就是最大頻率。在時序報告中可以查看每條路徑的最大頻率fmax,最小的那個就是關鍵路徑。
(3)quartus中時序工具
在時序報告中,可以從Clock Setup中查看每條路徑的fmax。
對於有路徑的界面,都可以右擊調出以下命令:
1️⃣List Paths:列出路徑的信息
2️⃣Locate in Assignment Editor:在Assignment Editor中定義路徑。
3️⃣Located in chip Editor:在Chip Editor中定位路徑
4️⃣Located in Timing Closure Floorplan:在時序收斂平面布局器中定位
5️⃣located in Last Compilation Floorplan:在最近編譯結果平面布局器中定位路徑
6️⃣Locate in Technology MAP Viewer:在工藝映射查看器中定位路徑。
四、時鍾建立時間
理論上,數據和使能信號可以和時鍾邊沿同步到達。實際電路中,數據和使能信號必須先於時鍾信號,這就是時鍾的建立時間Tsu。如果數據或使能信號無法在大於時鍾建立時間前到達,時鍾觸發的信號將出現亞穩態。Tsu=DataDelay-ClockDelay+MicrotSU,右式第一個是數據延時,第二個是時鍾延時,第三個是寄存器固有建立時間。可以看到,最小時鍾建立時間等於固有建立時間加上數據晚到於時鍾信號的時間。這里的到指的是到寄存器輸入口。
五、時鍾保持時間
時鍾保持時間tH,指能保證有效時鍾沿正確采樣的最小時間。tH=Clock Delay - Data Delay+MicrotH,最小保持時間等於固有保持時間加上數據早到於時鍾的時間。現在還不好理解這個時間的作用,后面會有建立保持時間需要滿足的條件。這里記住如何根據時鍾延時和數據延時得到時鍾建立保持時間即可。
六、時鍾輸出延時
時鍾輸出延時tCO=Clock Delay+Data Delay+MicroTco,也是對固有傳輸延時的一次修正。固有延時信息則是由觸發器電路決定的,有興趣可以看一下數字電路知識集合里面的內容,那里面就是寄存器的固有建立保持傳輸時間的計算。現在一般會有直接通過測試給出。
七、引腳到引腳的延時
Tpd,指的是從一個引腳輸入到另外一個引腳輸出所需的時間。
八、時序余量slack
這個量就是判斷時序約束是否符合要求的關鍵描述量。slack為正,則有時序余量,設計達到要求。反之,則需要降低設計要求或者更改設計方案以實現時序要求。
前面的周期、建立時間、保持時間都需要有正的slack才能保證整個設計的時序正確。周期余量不足,數據傳輸會出錯;建立時間和保持時間不足,會導致寄存器數據寫入和讀出出現錯誤。
九、時鍾歪斜skew
同一時鍾由於位置不同導致的相位不同,時鍾邊沿出現不同的延時,這就意味着延時需要考慮時鍾延時的影響。Tskew=Tcd1(前一級寄存器)-Tcd2(后一級寄存器),物理意義是后一級相對於前一級早到的時間。
十、小結
大致了解了Altera時序約束的基本名詞,為使用altera的quartus做時序約束提供了基礎。