clock


Prime Time中的clock分析包括:

1)Multiple clocks,clock from port/pin,virtual clock。

2)Clock network delay and skew,clock latency----delay of the clock network relative to the source。

                                                 clock skew-----variation of arrival time of clock at destination point。

3)Gated clock,perform both setup and hold check on the gating signal。

4)Generated clocks,such as clock divider or PLL。

5)Clock transition times,specify the transition times of clock signals。

 

create_clock -period 10 -waveform {2 4} [get_ports A]

clock的source可以是port A,net N或者FF的pin Q。不指定source時,表示virtual clock。

-name 對該clcok的命名,不添加時,由clock的source名代替。

-add 在同一source上定義兩個clock,create_clock -period 20 -waveform {1 3} [get_ports A] -add。

-waveform [a1 a2]第一個值表示第一個上升沿,第一個值表示第一個下降沿。

-source 一般加get_pins/get_ports等,表示一個端口或門電路接口。

-master_clock 一般是一個clock name,來自create_clock或create_generate_clock等命令。

                     也可以是get_ports命令,可以和-source的變量一致。

 

get_clocks -filter "period <= 5.0" PHI*

-filter 進行條件過濾。

get_clocks *表示所有clock。

remove_clock [get_clocks CLKB*] 刪除時鍾定義。。

 

Specifying clock characteristic:

Latency包括clock source latency和clock network latency。中間點clock definition point。

uncertainty表示maximum difference在register的clock arrival signals。也叫做skew。

使用set_clock_latency -source對source latency進行model,對network latency的model分不同的階段:

在post_layout之后,使用set_propagated_clock來進行model,在pre_layout,使用set_clock_latency來進行model。

set_clock_latency 1.5 -source -early [get_clocks CLK]

-rise/fall來指定latency在rising/falling edg。

-min/max指定一個range。

-late/early指定longest path as late path,shortest path as early path。

               做setup check時,source clock做late version,destination clock做early version。

               做hold check時,source clock做early version,destination clock做late version。

-source指定source latency,沒有定義時表示network latency。

可以通過-dynamic 指定clock jitter的值

 

Intraclock Uncertainty:

在single clock上定義skew和jitter,需要指定一個clock,port,pin,

如果指定一個clock,表示所有這個clockdrive的sequential elements都會使用這個uncertainty,

如果指定一個port,pin,表示所有的fanout都會使用這個uncertainty。

針對setup和hold的check,uncertainty的值可以設置不同,-setup/-hold

setup check會被jitter和skew影響,hold只會被skew影響。

set_clock_uncertainty -setup 0.5 [get_clocks C2]

 

Interclock uncertainty:

-from表示start clock(launch reg),-to表示destination clock(capture reg)

setup check和hold check都會被jitter和skew影響。

set_clock_uncertainty -from C1 -to C2 -setup

set_clock_uncertainty -rise_from C1 -fall_to C2 0.5

-from和-to的屬性會被嚴格執行,如果會出現-from建模capture reg的情況,需要在定義。

如果interclock uncertainty和intraclock uncertainty都被定義,inter的優先級較高。

 

set_clock_transition 0.64 -fall [get_clocks CLK1]

-fall/-rise,分別指定transition time。

-min/max,分別制定range。

 

對於multiple clock的分析:

兩個clock之間的關系可以是:synchronous,asynchronous,exclusive。

 

在沒有其他設置時,如果存在一條path,launched by one clock,captured by other clock,PT會認為

這兩個clock的關系是sync的,由create_clock定義的time zero為sync點,expands到兩個clock時鍾的

least common multiple,來進行同步和分析。

 

async clock,對於兩個clock domain,clock edges可以發生在any time的時鍾。

對於這樣的async clock,launched by one clock,captured by other,PrimeTime不會檢查timing path,

通過set_clock_groups -usync 命令設置之后,效果等同於設置false path。

 

Exclusive clock,沒有interact的clock,only one clock is enabled at any given time。

set_clock_groups -logically_exclusive -group {CK1} -group {CK2}

當定義兩個group時,表示兩個group之間是exclusive的,在與第三個group之間是沒有這個設置的。(CK1與CK2 exclusive)

set_clock_groups -logically_exclusive -group {CK1}

當只定義一個group時,表示該group與剩下的所有的clock都是這樣的設置。(CK1與剩下的所有的clock都是exclusive的)

還有一種physically_exclusive的設置,主要用在PT SI分析crosstalk時。

 

clock mux時的處理:

1)列出所有的false_path

2)使用set_case_analysis

3)使用disable_timing命令

4)set_clock_group命令

特例:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM