Dinglei_hello · 2019年12月16日

数字IC设计基本概念之创建时钟

时序分析的一个重要部分是准确地指定时钟和相关属性,例如延迟(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}`
1.png
EDA工具通常支持分析多个时钟设计。使用create_clock命令的-add选项在同一端口或引脚上定义多个时钟。

创建虚拟时钟

可以使用create_clock命令为外部时钟器件定义虚拟时钟(Virtual Clock)。 虚拟时钟在当前设计中没有实际时钟源,但可以使用它来设置输入或输出延迟。
要创建名为vclk的虚拟时钟:
`
create_clock -period 8 -name vclk -waveform {2 5}`
2.jpg

选择时钟对象

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
未经作者同意,请勿转载!

推荐阅读
关注数
22
文章数
96
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息