來自微信公眾號 「數字晶元實驗室」

時序分析的一個重要部分是準確地指定時鐘和相關屬性,例如延遲(latency)和不確定性(uncertainty)

EDA工具可以分析以下類型的時鐘信息:

時鐘網路latency和 skew:時鐘網路相對於時鐘源的延遲(latency)和

時鐘網路中到達各個終點的時間偏差(skew)。對於多時鐘設計,還可以指定時鐘間的偏差。

在生成時鐘樹之前,一般設置時鐘網路為ideal

門控時鐘:門控時鐘是一個由門控邏輯(除了簡單的緩衝器或反相器)控制的時鐘信號。

生成時鐘:生成時鐘是由另一個時鐘信號產生的,例如分頻器。

創建時鐘

使用create_clock命令指定設計中的所有時鐘。這個命令在指定時鐘源創建時鐘。時鐘源 可以在輸入埠(input port)或內部引腳(internal pin)EDA工具會自動跟蹤時鐘網路到達其扇出的所有寄存器。

使用create_clock命令創建的時鐘是理想的。所以在創建時鐘後,必須準確地描述時鐘網路以執行準確的時序分析。

create_clock命令同時也創建了一個與時鐘同名的路徑組(path group)。

在埠C1和CK2上創建時鐘週期為10,上升沿為2,下降沿為4:

create_clock -period 10 -waveform {2 4} {C1 CK2}

EDA工具通常支持分析多個時鐘設計。使用create_clock命令的-add選項在同一埠或引腳上定義多個時鐘。

創建虛擬時鐘

可以使用create_clock命令為外部時鐘器件定義虛擬時鐘(Virtual Clock)。 虛擬時鐘在當前設計中沒有實際時鐘源,但可以使用它來設置輸入或輸出延遲。

要創建名為vclk的虛擬時鐘

create_clock -period 8 -name vclk -waveform {2 5}

選擇時鐘對象

get_clocks命令選擇時鐘,例如,report週期小於等於5的時鐘PHI1*的屬性

report_clock [get_clocks -filter 「period <= 5.0」 PHI1 * ]

將命令應用於所有時鐘

all_clocks命令等同於get_clocks *命令。該命令返回所有時鐘對象的集合。 例如,

set_max_time_borrow 0 [all_clocks]

刪除時鐘對象

可以使用remove_clock命令刪除時鐘對象。例如,

remove_clock [get_clocks CLKB *]

要刪除所有時鐘:

remove_clock –all

reset_design命令除了刪除時鐘還刪除了其他信息。


推薦閱讀:
相關文章