天天看點

基于TimeQuest Timing Analyzer的時序分析筆記(一)

基于TimeQuest Timing Analyzer的時序分析筆記(一)

首先聲明英文來自ug-qpp-timing-analyzer(Intel® Quartus® Prime Pro Edition User Guide–Timing Analyzer)文檔,非專業翻譯,如有錯誤,自行解決。文檔下載下傳連結

一.簡單介紹時序分析

Comprehensive timing analysis of your design allows you to validate circuit performance, identify timing violations, and drive the Fitter’s placement of logic to meet your timing goals.

譯文: 對您的設計進行全面的時序分析,使您能夠驗證電路性能,識别時序違規,并驅動Fitter的邏輯位置,以滿足您的時序目标。

The Timing Analyzer verifies that required timing relationships are met for your design to correctly function, and confirms actual signal arrival times against the constraints that you specify

譯文: 時序分析器驗證所需的時序關系是否滿足您的設計以正确的功能,并根據您指定的限制确認實際信号到達時間。

其他來源:

時序分析:目的是通過分析FPGA設計中各個寄存器之間的資料和傳輸路徑,分析資料延遲和時鐘延遲之間的關系。一個設計ok的系統,必然能夠保證整個系統中所有的寄存器都能夠正确的寄存資料。

時序限制:

1.告知eda軟體,該設計需要達到怎樣的時序名額,然後eda軟體會根據時序限制的各個參數,盡力優化布局布線,以達到限制的名額。

2.協助eda軟體進行分析設計的時序路徑,以産生相應的時序報告。

二、 時序分析儀分析常用典型路徑

基于TimeQuest Timing Analyzer的時序分析筆記(一)

除了在設計中識别各種路徑外,時序分析器還分析時鐘特性,以計算單個寄存器到寄存器中任意兩個寄存器之間的最壞情況需求 路徑。 在分析時鐘特性之前,必須對設計中的所有時鐘進行限制。

資料到達時間與資料需要到達時間關系圖

基于TimeQuest Timing Analyzer的時序分析筆記(一)

寄存器到寄存器之間路徑關系圖

基于TimeQuest Timing Analyzer的時序分析筆記(一)

上面三個圖由淺入深介紹時序分析中重點時序路徑

三、建立時間保持時間

基于TimeQuest Timing Analyzer的時序分析筆記(一)

Setup Time:即建立時間,在時鐘上升沿之前資料必須穩定的最短時間。若不滿足setup time,資料無法進入寄存器

Hold Time:即保持時間,在時鐘上升沿之後資料必須穩定的最短時間。若不滿足hold time,資料無法進入寄存器:Th < Tco。Th 限制了資料傳輸的速度。如果Tco延時太短導緻上一級寄存器鎖存的資料侵占了下一級寄存器正在鎖存資料的保持時間,那麼下一級寄存器就無法有效的鎖存資料,系統時序也就無法達到要求。

發射沿與鎖存沿

基于TimeQuest Timing Analyzer的時序分析筆記(一)

Launch Edge:啟動沿,前級寄存器發送資料對應的時鐘沿,是時序分析的起點。

Latch Edge:鎖存沿,後級寄存器捕獲資料對應的時鐘沿,是時序分析的終點。相對于launch edge通常為一個時鐘周期,但不絕對,如多周期限制。

四、公式建立與分析

基于寄存器到寄存器之間路徑關系圖分析

基于TimeQuest Timing Analyzer的時序分析筆記(一)
基于TimeQuest Timing Analyzer的時序分析筆記(一)
基于TimeQuest Timing Analyzer的時序分析筆記(一)

對于上圖公式減去了setup uncertainty,即考慮最壞的情況仍需滿足data required time (setup)。我們先忽略setup uncertainty,後面介紹

那麼我們可以知道要滿足建立時間時序要求應達到

Tclk1+Tco+Tdata<=Tclk+Tclk2-Tsu

即Tclk+Tclk2-Tsu-(Tclk1+Tco+Tdata)>=0

Tclk+(Tclk2-Tclk1)-Tsu-Tco-Tdata>=0

Tclk+Tskew-Tsu-Tco-Tdata>=0

即建立時間餘量(如下圖)

Slack=Tclk+Tskew-Tsu-Tco-Tdata

Slack>0:目的寄存器能夠正确的接收源寄存器發射過來的資料

Tclk+Tclk2-Tsu:資料需求時間

Tclk1+Tco+Tdata:資料實際到達時間

Slack:資料需求時間與資料實際到達時間的內插補點,如果為正值說明資料能被目的寄存器正确接收;如果為負值說明資料不能被目的寄存器正确接收

基于TimeQuest Timing Analyzer的時序分析筆記(一)

Tco:時鐘上升沿到達D觸發器 到 資料輸出到Q端的延遲

Tsu:建立時間,目的寄存器自身的特性決定,在時鐘上升沿來臨之前,資料輸入端資料必須穩定的最小時間。

Tclk1:時鐘信号從時鐘源端口出發,到達源寄存器時鐘端口時間

Tdata:資料從源寄存器Q端出發,到達目的寄存器D端時間

Tclk:時鐘周期(Latch edge-launch edg)

Tclk2:時鐘信号從時鐘源端口出發,到達目的寄存器時鐘端口時間

Tskew:時鐘信号從時鐘源端口出發,到達源寄存器和目的寄存器時鐘端口的時間內插補點

時鐘偏斜(skew):時鐘從源端口出發,到達目的寄存器和源寄存器時間內插補點

本文暫時介紹建立時間相關知識一般分析,保持時間後續再出,下一篇介紹基于TimeQuest Timing Analyzer工具分析實際工具中涉及到的建立時間相關知識