时序分析的一个重要部分是准确地指定时钟和相关属性,例如延迟(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
未经作者同意,请勿转载!
推荐阅读
想了解更多内容,欢迎关注芯片数字实验室专栏