原创 clock的处理(未完)

2010-8-1 13:29 10440 9 9 分类: FPGA/CPLD

clock的处理

1. 概念:

1.1 clock tree:从一个clock源出发,clock网络经过多级buffer,到达每个时序器件的clk脚。为了保证从clock源到每个器件clk脚的延时相差不多,clock在布局布线时做成树形网络结构,叫做clock tree。
1.2 clock latency:clock源到时序器件的clk脚的延迟叫做clock latency。分为source latency和network latency两部分。从clock源到设计的clock管脚的延迟叫source latency。从clock管脚到寄存器的clock脚叫network latency。
1.3 clock jitter:clock源是芯片外部管脚引入或是内部PLL产生的。clock的每个周期时间都会有微小的偏差,这种偏差叫做clock jitter。参见:http://blog.ednchina.com/olivernie/169580/message.aspx
1.4 clock skew:clock在不同时序器件clk脚上的时间差异叫做clock skew。
1.5 clock uncertainty:clock在时序器件clk脚上的不确定性,包括clock jitter和clock skew两部分的总和。
1.6 clock transition:clock信号的slew时间。分为上升沿时间和下降沿时间。
1.7 clock gating:指门控时钟。由于低功耗的要求,有些模块会停止工作。通过停掉clock减少这些模块的耗电。




2. DC综合:
2.1 create_clcok:    create_clock -name "MY_CLOCK" -period 6 -waveform {0 3} [get_ports {clk}]
2.2 set_clock_uncertainty:    set_clock_uncertainty 0.5 [get_clocks {MY_CLOCK}]
2.3 set_clock_transition:       set_clock_transition 0.5 [get_clocks {MY_CLOCK}]
2.4 set_clock_latency:           set_clock_latency 1 [get_clocks {MY_CLOCK}]
2.5 set_ideal_network:          set_ideal_network [all_clocks]



3. Pre-layout STA:


3.1 create_clock:


3.2 set_clock_uncertainty:


3.3 set_clock_latency:


3.4 如果clock tree没有做完,还是要设定一个clock transition,不然计算出来的transition会很悲观:
      set_clock_transition 0.5 [get_clocks {MY_CLOCK}]


4. Post-layout STA:


4.1 create_clock:
      create_clock -name "MY_CLOCK" -period 6 -waveform {0 3} [get_ports {clk}]


4.2 set_clock_latency:
       set_clock_latency 1 [get_clocks {MY_CLOCK}]


4.3 如果更保守的时序分析,给定较小的uncertainty:
       set_clock_uncertainty  0.5 -setup [get_clocks {MY_CLOCK}]
       set_clock_uncertainty  0.2 -hold [get_clocks {MY_CLOCK}]


4.4 设定clock为propagated:
      
set_propagated_clock [all_clocks] 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条