时序分析的一个重要部分是准确地指定时钟和相关属性,例如延迟(latency)和不确定性(uncertainty)。
EDA工具可以分析以下类型的时钟信息:
时钟网络latency:时钟网络终点相对于时钟源的延迟(latency)
时钟网络skew:时钟网络中到达各个终点的时间偏差(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命令除了删除时钟还删除了设计中其他信息。
本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/JsOFW0yqwguQrTx4XU1ItQ
未经作者同意,请勿转载!