- Intel FPGA權威設計指南:基于Quartus Prime Pro 19集成開發環境
- 何賓編著
- 9407字
- 2021-10-29 21:34:04
2.10 查看時序分析結果
通過查看時序分析的結果,設計者才能最終確定設計結果是否滿足要求,也就是說在設計在下載到FPGA運行時,不會出現任何不穩定的狀態。
2.10.1 時序分析的基本概念
時序分析中使用的一些基本術語如表2.15所示。
表2.15 時序分析中使用的一些基本術語

續表

2.10.2 時序路徑和時鐘分析
時序分析器測量設計中所有識別的時序路徑,測量時序性能。時序分析器需要一個描述設計節點和連接的時序網表用于分析。時序分析器通過分析在發送沿和鎖存沿之間的時鐘建立和保持關系,確定設計中所有寄存器到寄存器傳輸的時鐘關系。
1.時序網表
時序分析器使用時序網表數據來確定設計中所有時序路徑的數據和時鐘到達時間與所要求的時間。在運行完適配或全編譯后,可以隨時在時序分析器中生成時序網表。
時序網表將設計元素劃分為單元、引腳、網絡和端口,用于測量延遲,如圖2.108所示。
2.時序路徑
時序路徑連接兩個設計節點,如一個寄存器輸出到另一個寄存器的輸入。
理解時序路徑的類型對時序收斂和優化非常重要。時序分析器識別并分析以下的時序路徑,如圖2.109所示。
(1)沿路徑(圖2.109中無)。從端口到引腳、從引腳到引腳和從引腳到端口的連接。

圖2.108 簡單設計的原理圖及其時序網表

圖2.109 時序分析器使用的路徑類型
(2)時鐘路徑。從器件端口或內部生成時鐘引腳到一個寄存器時鐘引腳的連接。
(3)數據路徑。從時序元件的端口或數據輸出引腳到另一個時序元件的端口或數據輸入引腳的連接。
(4)異步路徑。來自端口或者另一個時序元素異步引腳的連接,如異步復位或異步清除。
除識別設計中的各種路徑外,時序分析器還分析時鐘特性,用于計算在單個寄存器到其他寄存器中任意兩個寄存器之間的最壞情況。在分析時鐘特性之前,必須約束設計中的所有時鐘。
3.數據和時鐘到達時間
在時序分析器識別路徑類型后,時序分析器能報告數據和時鐘到達寄存器引腳的時間。通過將發送沿時間到來自時鐘源的延遲添加到源寄存器的時鐘引腳,時序分析器計算數據到達的時間、源寄存器的微時鐘到輸出的延遲(μtCO)和從源寄存器輸出(Q)到目的寄存器的數據輸入(D)的延遲。
通過將鎖存沿時間添加到時鐘端口和目的寄存器時鐘引腳之間的總延遲(包括時鐘端口緩沖區延遲,并減去目標寄存器的微建立時間 μtSU),時序分析器來計算寄存器數據要求的時間,其中μtSU是FPGA內部寄存器的固有建立時間。
數據到達的時間和所要求的數據時間如圖 2.110 所示。數據到達的時間和所要求的數據時間的基本計算(包括發送沿和鎖存沿)如下:
數據到達的時間=發送沿+源時鐘延遲+μtCO+寄存器到寄存器的延遲
所要求的數據時間=鎖存沿+目的時鐘的延遲-μtSU

圖2.110 數據到達的時間和所要求的數據時間
4.發送沿和鎖存沿
所有的時序分析都需要存在一個或多個時鐘信號。通過分析發送沿與鎖存沿之間的時間建立和保持關系,時序分析器確定設計中所有寄存器到寄存器傳輸的時鐘關系。
時鐘信號的發送沿是時鐘沿,它發送一個寄存器或其他時序元件的輸出數據,充當數據傳輸的源。鎖存沿是活動時鐘邊沿,它捕獲一個寄存器或其他時序元件的數據輸出,充當數據傳輸的目的。
發送沿在0ns發送來自寄存器reg1的數據,寄存器reg2在10ns時由鎖存邊沿觸發時捕獲數據。在下一個鎖存沿之前,數據到達目的寄存器,如圖2.111所示。
設計者可以為所有時鐘創建定義約束,并且將約束分配到設計中的節點。這些時鐘約束提供了可重復數據關系所要求的結構。如果在設計中不約束時鐘,Quartus Prime軟件將根據1GHz 時鐘進行分析,以最大限度地提高基于時序的適配器工作量。要確保實際的松弛值,必須使用真實值來約束設計中的所有時鐘。

圖2.111 用于發送沿與鎖存沿分開10ns的建立和保持關系
2.10.3 時鐘建立分析
要執行時鐘建立檢查,時序分析器通過分析每個寄存器到寄存器路徑的每個發送沿和鎖存沿來確定一個建立關系。
對于目的寄存器的每個鎖存沿,時序分析器使用源寄存器最接近的前一個時鐘沿作為發送邊沿。圖 2.112 顯示了兩種建立關系,即建立 A 和建立 B。對于在 10ns 處的鎖存沿,在3ns 處的最近時鐘用作發送沿,并標記為建立 A。對于在 20ns 處的鎖存沿,在 19ns 處最近的時鐘當作發送沿,并標記為建立 B。時序分析器分析最嚴格的建立關系,在這種情況下建立B;如果關系滿足設計要求,默認建立A滿足要求。

圖2.112 建立檢查
時序分析器將時鐘建立檢查的結果報告為松弛值(Slack)。松弛值是滿足/不滿足時序要求的余量。正的松弛值表示滿足要求的余量,負的松弛值表示余量不滿足要求。
(1)對于內部寄存器到寄存器路徑的時鐘建立松弛,計算公式如下。
時鐘建立松弛=所要求的數據時間-數據到達的時間
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+μtCO+寄存器到寄存器的延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲-μtSU-建立的不確定
時序分析器執行建立檢查,當計算數據到達的時間時,使用最大的延遲;當計算所要求的數據時間時,使用最小的延遲。
(2)從輸入端口到內部寄存器的時鐘建立松弛,計算公式如下。
時鐘建立松弛=所要求的數據時間-數據到達的時間
數據到達的時間=發送沿+時鐘網絡延遲+輸入最大的延遲+端口到寄存器的延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲-μtSU-建立的不確定
(3)從內部寄存器到輸出端口的時鐘建立松弛,計算公式如下。
時鐘建立松弛=所要求的數據時間-數據到達的時間
所要求的數據時間=鎖存沿+時鐘網絡到輸出端口的延遲-輸出最大的延遲
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+μtCO+寄存器到端口的延遲
2.10.4 時鐘保持分析
要執行時鐘保持檢查,時序分析器為存在所有源寄存器和目的寄存器對的每個可能的建立關系確定一個保持關系。時序分析器通過檢查來自所有建立關系的所有相鄰的時鐘沿來確定保持關系。
時序分析器為每個建立關系執行兩次保持檢查。第一次保持檢查確定當前發送沿所發送的數據沒有被前面的鎖存沿捕獲;第二次保持檢查確定由下一個發送沿發送的數據沒有被當前的鎖存沿捕獲。從可能的保持關系中,時序分析器選擇最嚴格的保持關系。最嚴格的保持關系是在鎖存沿和發送沿之間具有最小差異的保持關系,并確定寄存器到寄存器路徑的最小允許延遲。如圖 2.113 所示為時序分析器選擇保持檢查 A2 作為兩個建立關系的最嚴格保持關系,建立A和建立B,以及它們各自的保持檢查。

圖2.113 建立和保持檢查關系
(1)用于內部寄存器到寄存器路徑的時鐘保持松弛,計算公式如下。
時鐘保持松弛=數據到達的時間-所要求的數據時間
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+μtCO+寄存器到寄存器的延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲+μtH+保持的不確定
注:μtH為目標寄存器的微保持時間。
時序分析器執行保持檢查,當計算數據到達的時間時,使用最小的延遲;當計算所要求的數據時間時,使用最大的延遲。
(2)從輸入端口到內部寄存器的時鐘保持松弛,計算公式如下。
時鐘保持松弛=數據到達的時間-所要求的數據時間
數據到達的時間=發送沿+時鐘網絡延遲+輸入最小的延遲+引腳到寄存器的延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲+μtH
(3)從內部寄存器到輸出端口的時鐘保持松弛,計算公式如下。
時鐘保持松弛=數據到達的時間-所要求的數據時間
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+μtCO+寄存器到引腳的延遲
所要求的數據時間=鎖存沿+時鐘網絡延遲-輸出最小的延遲
2.10.5 恢復和去除分析
本節將介紹恢復和去除分析。
1.恢復時間分析
恢復時間是異步控制信號無效相對于下一個時鐘沿的最小時間長度。例如,在下一個活動的時鐘沿之前,清除和置位必須保持穩定。恢復松弛計算類似于時鐘建立松弛計算,但是計算適用于異步控制信號。
(1)如果異步控制信號被寄存,計算公式如下。
恢復松弛的時間=所要求的數據時間-數據到達的時間
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲-μtSU
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+μtCO+寄存器到寄存器的延遲
(2)如果沒有寄存異步控制信號,計算公式如下。
恢復松弛的時間=所要求的數據時間-數據到達的時間
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲-μtSU
數據到達的時間=發送沿+時鐘網絡延遲+輸入最小的延遲+端口到寄存器的延遲

注
如果異步復位信號來自器件的I/O端口,則必須為異步復位端口創建輸入延遲約束,以便時序分析器執行路徑上的恢復分析。
2.去除時間分析
去除時間是在有效時鐘沿之后異步控制信號無效必須穩定的最小時間長度。時序分析器去除松弛的計算類似時鐘保持松弛的計算,但是計算應用于異步控制信號。
(1)如果異步控制信號被寄存,計算公式如下。
去除松弛的時間=數據到達的時間-所要求的數據時間
數據到達的時間=發送沿+時鐘網絡到源寄存器的延遲+源寄存器的μtCO+寄存器到寄存器的延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲+μtH
(2)如果沒有寄存異步控制信號,計算公式如下。
去除松弛的時間=數據到達的時間-所要求的數據時間
數據達到的時間=發送沿+時鐘網絡的延遲+引腳的最小輸入延遲+引腳到寄存器的最小延遲
所要求的數據時間=鎖存沿+時鐘網絡到目的寄存器的延遲+μtH
如果異步復位信號來自器件引腳,必須為異步復位引腳分配 Input Minimum Delay 時序,用于時序分析器在路徑上執行去除分析。
2.10.6 多周期路徑分析
多周期路徑是要求非默認建立或保持關系的數據路徑,用以進行正確分析。
例如,一個寄存器可能要求在每兩個或3個時鐘的上升沿捕獲數據。一個例子就是在乘法器數據寄存器和輸出寄存器之間的多周期路徑,其目標是在每隔一個時鐘沿鎖存數據,如圖2.114所示。

圖2.114 多周期路徑
當源時鐘src_clk具有10ns周期和目的時鐘dst_clk具有5ns周期時,一條寄存器到寄存器的路徑用于默認的建立和保持關系,各自的時序圖用于源和目的時鐘,以及默認的建立和保持關系。默認的建立關系是5ns,默認的保持關系是0ns,如圖2.115所示。

圖2.115 寄存器到寄存器的路徑,以及建立和保持關系的時序圖
為了滿足系統要求,可以通過為寄存器到寄存器的路徑指定多周期時序約束來修改默認的建立和保持關系。一條寄存器到寄存器的路徑如圖 2.116 所示。一個例子是多周期路徑建立分配為2,使用第2個鎖存沿。如圖2.117所示,在該例子中,從默認的5ns改成10ns。

圖2.116 寄存器到寄存器的路徑

圖2.117 修改后的建立圖
1.多周期時鐘的保持
時鐘發送沿和鎖存沿之間的時鐘周期數定義了保持關系。
默認,時序分析器執行單周期路徑分析,這會導致保持關系等于一個時鐘周期(發送沿-鎖存沿)。當分析一條路徑時,時序分析器執行兩次保持檢查。第一次保持檢查確定當前發送沿發送的數據沒有被前面的鎖存沿捕獲;第二個保持檢查確定下一個發送沿發送的數據不會被當前的鎖存沿捕獲。時序分析器僅報告最嚴格的保持檢查。通過比較發送沿和鎖存沿,時序分析器計算保持檢查。時序分析器執行的計算用于確定保持檢查。兩個保持檢查表示為
保持檢查1=當前發送沿-前面的鎖存沿
保持檢查2=下一個發送沿-當前鎖存沿

注
如果保持檢查與建立檢查重疊,則忽略保持檢查。
開始多周期保持分配,通過將鎖存沿指定的時鐘個數移動到默認發送沿的右側來修改時鐘的發送沿。圖2.118給出了開始多周期保持(Start Multicycle Hold,SMH)分配的不同值和最終的發送沿。
結束多周期保持分配通過將鎖存沿指定的時鐘周期數移動到默認鎖存沿的左側來修改目標時鐘的鎖存沿。圖 2.119 給出了結束多周期保持(End Multicycle Hold,EMH)分配和最終的鎖存沿。

圖2.118 開始多周期保持分配的不同值和最終的發送沿

圖2.119 結束多周期保持分配和最終的鎖存沿
圖2.120給出了時序分析器對于負保持關系給出的保持關系。

圖2.120 時序分析器對于負保持關系給出的保持關系
2.多周期時鐘的建立
建立關系定義為鎖存沿和發送沿之間的時鐘周期數。默認,時鐘分析器執行單周期路徑的分析,結果導致建立關系等于一個時鐘周期(鎖存沿-發送沿)。應用多周期建立分配,通過多周期建立值來調整建立關系。調整值可能是負的。
一個結束多周期建立分配通過將鎖存沿指定的時鐘周期數移動到所確定默認鎖存沿的右側來調整目的時鐘的鎖存沿。如圖 2.121 所示,給出了結束多周期建立(End Multicycle Setup,EMS)分配和最終的鎖存沿。
開始多周期建立分配通過移動發送沿指定的時鐘周期數到默認確定發送沿的左側來修改源時鐘的發送沿。如圖2.122所示,包含不同值的開始多周期建立(Start Multicycle Setup,SMS)分配導致一個特定的發送沿。

圖2.121 結束多周期建立分配和最終的鎖存沿

圖2.122 開始多周期建立分配的不同值和一個特定的發送沿
對于負建立關系,時序分析器給出的建立關系和SMS值如圖2.123所示。

圖2.123 時序分析器給出的建立關系和SMS值(負建立關系)
2.10.7 亞穩態分析
當信號在無關或異步時鐘域的電路中傳輸時就可能會發生亞穩態問題,這是因為信號不滿足建立和保持時間的要求。
為了最大限度地減少亞穩態引起的故障,典型地,電路設計人員使用一系列的寄存器,也稱為同步寄存器鏈或同步器,將數據重新同步到新的時鐘域。
平均故障時間(Mean Time Between Failures,MTBF)是對由亞穩態引起故障實例之間平均時間的估計。
時序分析器分析設計中潛在的亞穩態可能性,并且為同步寄存器鏈計算 MTBF,然后時序分析器根據設計中包含的同步鏈來估算整個設計的MTBF。
除報告在設計中發現的同步鏈外,Quartus 也保護這些寄存器免受可能對 MTBF 產生不利影響的優化,如寄存器復制和邏輯重定時。如果 MTBF 太低,Quartus 軟件也優化設計的MTBF。
2.10.8 時序悲觀
公共時鐘路徑悲觀的消除考慮了靜態時序分析期間與公共時鐘路徑相關的最小和最大延遲變化,它通過將公共時鐘路徑的最大和最小延遲值的差值添加到合適的松弛等式中來實現消除。
當兩個不同的延遲值用于相同的時鐘路徑時,就可能發生最小和最大延遲的變化。例如,在一個簡單的建立分析中,到源寄存器的最大時鐘路徑延遲用于確定數據到達的時間。到目的寄存器的最小時鐘路徑延遲用于確定所要求的數據時間。然而,如果到源寄存器和目的寄存器的時鐘路徑共享一個公共時鐘路徑,則最大延遲和最小延遲都用來在時序分析期間建模公共時鐘路徑。最小延遲和最大延遲導致過度悲觀的分析,因為兩個不同的延遲值,即最大和最小延遲,不能用于建模相同的時鐘路徑。
一個典型的寄存器到寄存器的路徑如圖2.124所示。

圖2.124 一個典型的寄存器到寄存器的路徑
段A是reg1和reg2之間的公共時鐘路徑,最小的延遲是5.0ns,最大的延遲是5.5ns。最大和最小延遲值之間的差值等于公共時鐘路徑悲觀消除值。在這種情況下,公共時鐘路徑悲觀消除值為 0.5ns。時序分析器將公共時鐘路徑悲觀消除值添加到適當的松弛等式以確定整個的松弛,松弛是1.2ns(包含了公共時鐘路徑的悲觀消除值)。
設計者還可以使用公共時鐘路徑悲觀消除值來確定寄存器的最小脈沖寬度。時鐘信號必須滿足寄存器可以識別的最小脈沖寬度要求。最小高電平時間定義了上升沿觸發寄存器的最小脈沖寬度,最小低電平時間定義了下降沿觸發寄存器的最小脈沖寬度。
違反寄存器最小脈沖寬度的時鐘脈沖將阻止在寄存器的數據引腳上鎖存數據。為了計算最小脈沖寬度的松弛,時序分析器從真實的最小脈沖寬度時間中減去所要求的最小脈沖寬度時間。時序分析器通過為饋送到寄存器時鐘端口的時鐘指定的時鐘要求來決定實際的最小脈沖寬度。通過最大上升、最小上升、最大下降和最小下降時間,時序分析器確定所要求的最小脈沖寬度時間,如圖2.125所示。

圖2.125 用于高脈沖和低脈沖所要求的最小脈沖寬度時間
通過公共時鐘路徑悲觀,通過最大上升時間減去最小上升時間,或最大下降時間減去最小下降時間,來增加最小脈沖寬度松弛。在該例子中,松弛值可以增加 0.2ns,這是 0.3ns (0.8-0.5=0.3ns)和0.2ns(0.9-0.7=0.2ns)之間的最小值。
2.10.9 時鐘作為數據分析
大多數FPGA設計包含任意兩個節點之間的簡單連接,稱為數據路徑或時鐘路徑。數據路徑是同步元件輸出與另一個同步元件輸入之間的連接。一個時鐘是與同步元件時鐘引腳的連接。然而,對于更復雜的FPGA設計,如使用源同步接口的設計,這種簡化的視圖就不充分。在包含時鐘分頻器和DDR源同步輸出的電路中,執行時鐘作為數據分析。
在輸入時鐘端口和輸出時鐘端口之間的連接可看作時鐘路徑或數據路徑。一個從clk_in端口到clk_out端口的路徑都是時鐘和數據路徑的設計。時鐘路徑是從clk_in端口到寄存器 reg_data 時鐘引腳的路徑,數據路徑是從 clk_in 端口到 clk_out 端口的路徑,如圖2.126所示。

圖2.126 從clk_in端口到clk_out端口的數據路徑
通過時鐘作為數據分析,時序分析器基于用戶的約束提供了更準確的路徑分析。對于時鐘路徑分析,任何包含與 PLL 有關的相移都應該考慮。對于數據延遲分析,任何與 PLL 相關的相移都應考慮而不是忽略。
時鐘作為數據分析也應用到內部生成的時鐘分頻器。一個內部生成的時鐘分頻器,如圖2.127 所示,在時序分析期間,波形用于分析反相器的反饋路徑。分頻器寄存器的輸出用于確定發送時間,以及寄存器的時鐘端口用于確定鎖存時間。

圖2.127 時鐘分頻器
2.10.10 多角時序分析
時序分析器執行多角時序分析,在執行靜態時序分析時驗證設計在不同條件(如電壓、過程和溫度)下的操作。
要改變當前器件的操作條件或速度等級,請使用set_operating_conditions命令。
如果指定一個操作條件Tcl對象,則-model、-speed、-temperature和-voltage可供選擇。如果沒指定一個操作條件Tcl對象,則Tcl要求-model選項。-speed、-temperature和-voltage是可選的。
要獲取目標期間的可用操作條件列表,請使用 get_available_operating_conditions-all命令。
為了確保器件運行期間不會在各種條件下出現違規,請在所有可用操作條件下執行靜態時序分析。
用于慢時序和快時序模型的操作條件如表2.16所示。
表2.16 用于慢時序和快時序模型的操作條件

在設計中,使用下面的代碼可以設置操作條件用于慢時序模型,電壓為 1100mV,溫度為85℃:

也可以使用帶有Tcl對象設置相同的操作條件:

2.10.11 時序分析的實現
本節將對設計執行簡單的時序分析(注:在本書的后面將詳細介紹時序的概念)。
1.啟動時序分析
啟動時序分析的主要步驟包括:
(1)通過下面方式之一運行Timing Anaylzer。
① 在 Quartus Prime 主界面主菜單下,選擇 Processing->Start->Start Timing Analysis (Signoff)。
② 在Quartus Prime主界面的“Compilation Dashboard”界面下,單擊“Timing Analysis(Signoff)”前面的(Run during full compilation)按鈕。
(2)開始重新對設計進行編譯,完成對設計的時序分析。
2.打開時序分析報告
打開時序分析報告的主要步驟包括:
(1)在Quartus Prime主界面的“Compilation Dashboard”界面下,單擊“Timing Analysis(Signoff)”后面名字為“Timing Analyzer Summary”(時序分析器總結)的按鈕。
(2)出現“Compilation Report-top”界面,如圖2.128所示。在Timing Analyzer文件夾下,給出了各種時序報告。其中 Slow 900mV 100C Model、Slow 900mV 0C Model、Fast 900mV 100C Model和Fast 900mV 0C Model文件夾給出了慢時序模型和快時序模型在不同操作條件(VCC 為 0.9V,最低溫度為 0℃,最高溫度為 100℃)下的時序分析報告,如圖 2.129 所示,主要包括 Fmax Summary(Fmax 總結)、Timing Closure Recommendations (時序收斂推薦)、Setup Summary (建立總結)、Hold Summary (保持總結)、Recovery Summary(恢復總結)、Minimum Pulse Width Summary(最小脈沖寬度總結)、Metastability Summary(亞穩態總結)。

圖2.128 “Compilation Report-top”界面

圖2.129 慢時序模型和快時序模型在不同操作條件下的時序分析報告
(3)單擊圖2.129中的“Multicorner Timing Analysis Summary”選項,出現如圖2.130所示的“Multicorner Timing Analysis Summary”界面。無論設計者指定的時鐘周期如何,該界面報告設計中每個時鐘的 Fmax。只為源和目的寄存器的路徑,或者由相同時鐘驅動的端口計算 Fmax。忽略不同時鐘的路徑(包括生成的時鐘)。對于一個時鐘和它反相之間的路徑,計算 Fmax,就像上升沿和下降沿與 Fmax 一起標定一樣,從而保持占空比(以百分比表示)。Intel推薦設計者使用時鐘約束和其他松弛報告用于簽核(sign-off)分析。

圖2.130 “Multicorner Timing Analysis Summary”界面
3.打開時序分析器
打開時序分析器的步驟主要包括:
(1)通過下面方式之一打開時序分析器主界面。
① 在 Quartus Prime 主界面左下方的“Tasks”窗口中,找到“Analysis”標題。在該標題下,找到并用鼠標左鍵單擊“Timing Analyzer”。
② 在Quartus Prime主界面主菜單下,選擇Tools->Timing Analyzer。
(2)彈出“Timing Analyzer”(時序分析器)主界面。
(3)在時序分析器主界面主菜單下,選擇Netlist->Create Timing Netlist...。
(4)彈出“Create Timing Netlist”對話框。在該對話框中,選中“Slow-corner”前面的復選框。
(5)單擊“OK”按鈕,創建時序網表。
(6)在時序分析器主界面左上方的窗口中,給出了4個可選擇的操作條件,如圖2.131所示。

圖2.131 “Set Operating Conditions”窗口
(7)在時序分析器主界面左下方的“Tasks”窗口中,找到并展開Custom Reports文件夾。在展開項中,用鼠標左鍵單擊“Report Timing...”。
(8)彈出“Report Timing”對話框,如圖2.132所示,按如下設置參數。

圖2.132 “Report Timing”對話框
① From clock:clk1(通過下拉框選擇)。
② To clock:clk1(通過下拉框選擇)。
③ Analysis Type:Setup(建立)。
④ Report number of paths:100(報告所有的路徑)。
這些設置參數對應的Tcl命令格式如下:

(9)單擊“Open”按鈕,退出“Report Timing”對話框。
(10)在右側以列表形式給出了在Slow 900mV 100C Model操作條件下的路徑時序,如圖2.133所示。

圖2.133 在Slow 900mV 100C Model操作條件下的路徑時序
(11)在圖 2.133 給出的列表中,選擇第一行的“From Node”列下的“b_1”和“To Node”列下的“z[5]~reg0”。單擊圖 2.133 中“Path#1:Setup slack is 8.755”標題下面的“Path Summary”標簽。在該標簽頁下,給出了該路徑的信息,包括From Node(從節點):b_1;To Node(到節點):z[5]~reg0;Launch Clock(發送時鐘):clk1;Latch Clock(鎖存時鐘):clk1;Data Arrival Time(數據到達的時間):5.290;Data Required Time:14.045;Slack:8.755(14.045-5.29=8.755)。
(12)單擊圖2.133中“Path#1:Setup slack is 8.755”標題下面的“Data Path”標簽,出現“Data Path”標簽頁,如圖2.134所示。
①“Data Arrival Path”(數據到達路徑)窗口中,前面 clock path(時鐘路徑)給出了clk 從輸入到 b_1|clk 所使用的元素(Element)和總的時間為 3.819ns。例如,從 clk~input|i到 clk~input|o 對應在“Incr”欄中給出所用的時間為 0.535ns;后面 data path(數據路徑)給出了從 b_1 到 z[5]~reg0 所使用的元素(Element)和總的時間為 1.471ns。因此,時鐘路徑加上數據路徑總的時間是5.29ns(3.819+1.471=5.29)。

圖2.134 “Data Path”標簽頁
②“Data Required Path”(數據要求時間)窗口中,以latch edge time(鎖存沿)的10ns為基準,加上時鐘路徑傳播時間 3.776ns,時間變為 13.776ns(10+3.776=13.776);然后,加上時鐘的不確定值-0.03ns,時間變為 13.746ns(13.776-0.03=13.746);最后,加上到 z[5]~reg的時間μtSU(0.299ns),時間變為14.045ns(13.746+0.299=14.045)。
很明顯,根據時序建立松弛的計算公式,得到:
時鐘建立松弛=所要求的數據時間-數據到達的時間=14.045-5.290=8.755ns
(13)單擊圖2.134中的“Waveform”標簽。“Waveform”標簽頁如圖2.135所示,該波形直觀地給出了時鐘的建立關系。

圖2.135 “Wavefrom”標簽頁
(14)在時序分析器主界面左下方的“Tasks”窗口中,找到并展開Custom Reports文件夾。在展開項中,用鼠標左鍵單擊“Report Timing...”。
(15)彈出“Report Timing”對話框,如圖2.132所示,按如下設置參數。
① From clock:clk1(通過下拉框選擇)。
② To clock:clk1(通過下拉框選擇)。
③ Analysis Type:Hold(建立)。
④ Report number of paths:100(報告所有的路徑)。
這些設置參數對應的Tcl命令格式如下:

(16)單擊“Open”按鈕,退出“Report Timing”對話框。
(17)在右側以列表的形式給出了在Slow 900mV 100C Model操作條件下的路徑時序,如圖2.136所示。

圖2.136 在Slow 900mV 100C Model操作條件下的路徑時序
(18)在圖 2.136 給出的列表中,選擇第 12 行的“From Node”列下的“b_1”和“To Node”列下的“z[5]~reg0”。單擊圖2.136中“Path#12:Hold slack is 0.521”標題下面的“Path Summary”標簽。在該標簽頁下,給出了該路徑的信息,包括From Node(從節點):b_1;To Node(到節點):z[5]~reg0;Launch Clock(發送時鐘):clk1;Latch Clock(鎖存時鐘):clk1;Data Arrival Time(數據到達的時間):4.596;Data Required Time:4.075;Slack:0.521(4.596-4.075=0.521)。
(19)單擊圖2.136中“Path#12:Hold slack is 0.521”標題下面的“Data Path”標簽,出現“Data Path”標簽頁,如圖2.137所示。

圖2.137 “Data Path”標簽頁
①“Data Arrival Path”(數據到達路徑)窗口中,前面 clock path(時鐘路徑)給出了clk 從輸入到 b_1|clk 所使用的元素(Element)和總的時間為 3.545ns。例如,從 clk~input-CLKENA0|inclk 到clk~inputCLKENA0|outclk 對應在 Incr 欄中給出所用的時間為0.489ns;后面data path(數據路徑)給出了從b_1到z[5]~reg0所使用的元素(Element)和總的時間為1.051ns。因此,時鐘路徑加上數據路徑總的時間是4.596ns(3.545+1.051=4.596)。
②“Data Required Path”(數據要求時間)窗口中,以latch edge time(鎖存沿)的0ns為基準,到 z[5]~reg0 的時間為 3.834ns;然后,去除時鐘悲觀,即 3.834-0.216=3.618ns;最后,加上μtH,即3.618+0.457=4.075ns。
很明顯,根據時序保持松弛的計算公式,得到:
時鐘保持松弛=數據到達的時間-要求的數據時間=4.596-4.075=0.521ns
(20)單擊圖2.137中的“Waveform”標簽。“Waveform”標簽頁如圖2.138所示,該波形直觀地給出了時鐘的保持關系。
思考與練習2-13:讀者選擇其中一條路徑,分析其建立和保持關系。

圖2.138 “Wavefrom”標簽頁
- 計算機組裝與系統配置
- 電腦常見問題與故障排除
- BeagleBone By Example
- 深入淺出SSD:固態存儲核心技術、原理與實戰
- 嵌入式技術基礎與實踐(第5版)
- 平衡掌控者:游戲數值經濟設計
- 深入淺出SSD:固態存儲核心技術、原理與實戰(第2版)
- 分布式微服務架構:原理與實戰
- Apple Motion 5 Cookbook
- Building 3D Models with modo 701
- 計算機組裝維修與外設配置(高等職業院校教改示范教材·計算機系列)
- STM32自學筆記
- 基于網絡化教學的項目化單片機應用技術
- 計算機電路基礎(第2版)
- Building Machine Learning Systems with Python