日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

静态时序分析——多周期、半周期和伪路径

發布時間:2023/12/10 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 静态时序分析——多周期、半周期和伪路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、多周期 multicycle paths

在一些情況下,如下圖所示,兩個寄存器之間的組合電路傳輸的邏輯延時超過一個時鐘周期。在這樣的情況下,這個組合路徑被定義為多周期路徑(multicycle path)。盡管后一個寄存器會在每一個的時鐘的上升沿嘗試捕獲(capture)數據,但我們會在STA中指定個時鐘周期后的上升沿(relevant capture edge)去捕獲數據。

以上圖為例,組合路徑的延時為三個周期,那么三個時鐘周期的多周期setup check可以用以下語句進行約束

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 設置時鐘源 set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

這樣,我們就達成了下面的圖的效果,在第三個時鐘沿進行建立時間的檢查。

由于工具一般會在建立時間檢查時鐘沿(capture edge)的前一個時鐘沿進行保持時間檢查,而在多周期的情況下,這樣進行保持時間檢查較為嚴苛,以上圖為例,在2nd時鐘沿進行保持時間檢查,那么,數據需要保持到2nd時鐘之后才能變化。所以,在多時鐘周期的情況下,我們如果在N個周期后進行簡歷時間檢查,那么我們會將簡歷時間檢查提前N-1個時鐘周期。

同樣以上面的的電路為例,多周期hold check可以用以下語句進行約束:

cerate_clock -name CLKM -period 10 [get_ports CLKM] // 設置時鐘源 set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D] //multicycle

?

二、半周期 half-cycle paths

如果一個電路設計中同時存在正時鐘沿觸發和負時鐘沿觸發的觸發器,那么在這種電路中需要進行半周期的檢查。

我們以下面的電路為例:

對其進行建立時間檢查,那么其檢查的時鐘沿如下圖:

其時序報告如下:

? ?

與一般的時序報告不同的是,需要注意startpoint和endpoint,其注明的觸發沿是不同的。

由于時序路徑中僅有半個時鐘周期用來進行建立時間檢查,那么我們有額外的半個時鐘周期來進行保持時間檢查,如下圖:

其保持時間檢查時序報告如下:

? ?

三、偽路徑 false paths

某些情況下,一些時序路徑可能在電路設計的真實功能中并不存在,我們會在STA中將將這些路徑設置為偽路徑,這樣,工具(prime time)會忽略這些路徑,不對其進行時序分析。

一般需要進行偽路徑的處理情況有:

1.? 從邏輯上考慮,與電路正常工作不相關的那些路徑,比如測試邏輯,靜態或準靜態邏輯。
2.? 從時序上考慮,我們在綜合時不需要分析的那些路徑,比如跨越異步時鐘域的路徑。

設置偽路徑可以減少工具的分析工作,讓工具更專注于分析真實的時序路徑,而且能減少分析時間。但是,設置過多的偽路徑會降低分析的效率,反而使分析速度減慢。

我們有以下幾種方法來設置偽路徑約束:

set_flase_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK] //任何從SCAN_CLK時鐘域到CORE_CLK時鐘域的時序路徑都是偽路徑set_false_path -through [get_pins UMUX0/S] //所有通過這個pin的時序路徑都是偽路徑

建議減少使用-through,因為through命令會增加分析復雜度。

總結

以上是生活随笔為你收集整理的静态时序分析——多周期、半周期和伪路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。