網(wǎng)絡課程《數(shù)字集成電路靜態(tài)時序分析基礎》的筆記
地址:https://www.iccollege.cn/portal/courseDetail/193.mooc
?
STA 環(huán)境
PT
本節(jié)主要講解如何編寫 SDC 文件
什么是 STA 環(huán)境
STA 環(huán)境就是指導設計的環(huán)境,主要包括時鐘、IO、特殊路徑、多周期路徑
STA 針對的是同步電路,無法分析異步電路。
?
時鐘約束
時鐘約束包括:時鐘源、周期、占空比、邊沿翻轉時間
create_clock -name SYSCLK -period 20 -waveform {0 5} [get_ports SCLK]
上面這條命令就是對時鐘的約束,下面是其他例子。
?
時鐘的其他屬性
通過 set_clock_uncertainty 設定悲觀條件,收緊約束,例如下圖中設定建立時間和保持時間
指定不同時鐘之間的不確定度
時鐘之間的不確定度的意義
時鐘延遲,networks 延遲和 source 延遲
延遲指定方法,默認是 networks 延遲。
一些注意的點:
如果時鐘樹已經(jīng)建立好了,就不需要關心 network 延遲,使用圖中的指令可以獲得精確的時鐘。在時鐘樹建立以前,才需要對時鐘進行估算。
?
生成時鐘
master clock 通過分頻等手段產(chǎn)生的時鐘,需要定義為 generated clock
新時鐘也可以定義為 master clock,但是會存在一些問題。如果直接定義為 master clock,會使兩者失去聯(lián)系,系統(tǒng)會認為兩者是異步的,相關性丟失,導致出現(xiàn)問題。
此外,master clock 和 generated clock 之間是有聯(lián)系的,參數(shù)是有繼承性的。
下圖為一個例子,延遲會累加
并不是所有情況下都需要定義生成時鐘,下面的時鐘通過邏輯門以后新時鐘和原來的關系并不大,最好直接定義行時鐘。
下面是例子
ASIC 中的時鐘
?
input path 和 output path
約束 input path
由于輸入路徑只有終點有時鐘,所以需要指定輸入延遲
?
針對建立時間和保持時間分別設立最大最小延遲
?
output path
和 input path 類似
針對建立時間和保持時間設定最大值最小值
?
路徑組
路徑通過終點進行分類。
對 IO pins 來說,時鐘和輸入輸出的延遲約束是不夠的,還需要約束其他參數(shù)
屬性設定方法
驅動值越小,驅動能力越大,0 代表無限大。
設定驅動能力以后,就能夠計算第一個門的延遲。
也可以從庫里參考驅動能力,取庫里 cell 的屬性拿來用。
輸入路徑的第一個 cell 一定要通過約束設定 delay,而默認是理想值,即 0
輸出路徑也是類似的
理想情況下也是 0,實際需要自行設定相關值。
?
design rule checks
縮寫就是 DRC
主要的兩個參數(shù)就是 max_transition 和 max_capactiance
其他的屬性,但是并不是主要的,和庫有關系
?
虛擬時鐘
虛擬時鐘和所有 pin 和 port 都沒關系,它用來作為 STA 的參考,指定輸入和輸出延遲和一個時鐘的關系
定義方法,這里不需要指定那個 pin 或者 port 是時鐘
?
讓 STA 更加精確
有四點
?
case_analysis
芯片在不同情況下的約束,例如在 DFT 下,可以關閉 DFT 部分的檢查
?
disable_timing
告訴工具這不是一條 timing path
?
false_path
偽路徑,告訴工具不需要檢查
?
multicycle_path
多周期路徑