dc检查:时钟常规约束

一、时钟的特征


首先,我们需要强调的是,我们静态时序分析简明教程四的前提,是同步设计电路,STA的静态时序分析,对异步电路,是无效的。

其次,在我们对时钟进行约束的条件下,我们需要掌握时钟的三个特性,他们分别是:

  1. 周期:是指经过特定时间之后时钟信号重复的动作。
  2. 有效沿:时钟沿分为上升沿和下降沿。
  3. 占空比:正相位时间在整个时钟周期所占的百分比。

三、create_clock


create_clock -period period_value
    [source_objects]
    [-name clock_name]
    [-waveform edge_list]
    [-add]
    [-comment comment_string]

1. 定义时钟周期

-period 选项用于定义时钟周期,通常情况下,时钟信号的单位默认是ns,但是我们也可以通过set_units设置ps等时钟单位。

create_clock -period 10

上面的语句意味着,我们设置了一个时钟周期为10ns的时钟信号,即100Mhz的时钟频率。

2. 标识时钟源

当我们确定了时钟周期后,我们也需要将时钟信号对应于某一个源对象(比如说是一个clk的端口,或者是触发器的引脚P、网络N),这一步操作就像是将一个STA中的时钟信号映射到电路层面的某一个对象加以驱动

我们可以使用如下的语句加以标识

#代表作为时钟源端口
create_clock -period 10 [get_ports A]
#代表作为时钟源的网络
create_clock -period 10 [get_nets N]
#代表作为时钟源的引脚,若触发器的名称为FF的话
create_clock -period 10 [get_pins FF/P]

3.命名时钟

当我们将端口做映射后,一个紧接着出现的问题就是这个时钟的命名,假如我们不单独指定名称,工具会将一个默认的名称赋值给该时钟,在STA的时序分析中,时钟的名称是很重要的信息,因为一旦时钟信号被定义和命名的话,其他所有依赖这个时钟的SDC命令,只需要提到该时钟即可。我们通过 -name 的尾缀来命名时钟,比如

#创建一个10ns的时钟,映射到端口A,时钟命名为PCLK
create_clock create_clock -period 10 [get_ports A] -name PCLK

4. 指定占空比

这里我们可以简略一点,因为对于数字电路而言,占空比不是1:1的电路结构,种类很少,但假如我们想要指定占空比的话,我们可以使用 -waveform 来进行,贴一下资料地址,感兴趣的读者可以自行查阅学习

Intel® Quartus® Prime Standard Edition User Guide: Timing Analyzer

5. 同源多时钟

当我们设计一个模块的时候,很多时候它的工作频率并不固定,比如一个UART模块,我们可能会将它用在200MHz的APB总线上,也可能会将它用在400M/1GHz的APB总线上,假如这个设计需要在时钟源指定多个时钟,从而满足多IO速度协议的需求,我们可能就需要在SDC中,对于进行约束,我们可以以“-add”的形式增加尾缀,使STA的过程中可以考虑到所有的时钟。假如我们不增加"-add"的话,后一个时钟信号可能就会覆盖掉前一个时钟信号

#同时对CLK端口做100MHz和50MHz的时钟约束
create_clock -name C1 -period 10 [get_ports CLK]
create_clock -name C2 -period 20 [get_ports CLK] -add

6. 注释时钟

除了使用tcl语言的注释外,SDC也给工程师们提供了注释的选项,使用 -comment的尾缀,我们可以将时钟信号的文档信息,以备注的形式加以添加,比如:

#设定一个时钟信号,周期为10ns,信号名称为PCLK,映射到clk端口,备注为“Clock for UART input”
create_clock -period 10 -name PCLK 9get_ports clk] -comment "Clock for UART input"

7. 虚拟时钟

最终的一个概念是虚拟时钟,顾名思义,虚拟时钟没有办法映射到真实的端口网络或引脚,但是他们的出现可以帮助设计者使用更为灵活的时钟特性(比如时钟偏移等)去进行检查,命令如下:

#建立一个周期为10ns,名称为vclk,不映射到具体端口的时钟(虚拟时钟)
create_clock -period 10 -name vclk
  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮Adam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值