数字逻辑综合工具-DC-09——关于timing的一些补充
1、 默认时钟的占空比(Duty cycle)是50%,在DDR器件中,占空比很重要
2、 set_input_delay 有可能驱动源不止一个。
3、 外部的驱动源的时钟有可能是下降沿触发的,应该怎么加约束?
4、 输出到外部的负载可能有多个

create_clock -period 2 [get_ports CLK]
这个单位在report_libs里面可以看到

数字逻辑综合工具-DC-09——关于timing的一些补充
如果在创建clock的时候没有加入-name选项,那么默认的名字跟端口名是一样的
如果制定了名字,那么在set_input_delay 的时候添加相对的clock就必须是所制定的clock名字而不是clock端口的名字。
例如:
数字逻辑综合工具-DC-09——关于timing的一些补充

【改变占空比:-wave_form选项】
数字逻辑综合工具-DC-09——关于timing的一些补充
花括号里指定上升沿和下降沿的时间。
数字逻辑综合工具-DC-09——关于timing的一些补充
可以有初始的相位偏移。
这种方法虽然可以做,但是不推荐。
在有多个时钟交界(由时钟分频得到的不同时钟)的地方,这么写约束的边沿不对。(《专用集成电路设计实用教程》虞希清 著)
最好用set_clock_latency(source latency&network_latency)

比较奇葩的clock:
数字逻辑综合工具-DC-09——关于timing的一些补充
(一般不会有这样的,振荡器做不出来。)
如果真的这么设计了,DC会选择严格的上升沿间隔(在这里是0.6ns)。

【input delay的一些特殊情况】

数字逻辑综合工具-DC-09——关于timing的一些补充
数字逻辑综合工具-DC-09——关于timing的一些补充
如果外部是一个下降沿触发的同步触发器,使用选项-clock_fall
这样建立时间约束就只剩半个周期了。

【Input delay:多个驱动源,用mux选择】
数字逻辑综合工具-DC-09——关于timing的一些补充
使用-add_delay,告诉DC:针对同一个端口A,有两个约束,让DC自己去算哪个更紧一些。
如果不用-add_delay,后面的会把之前的覆盖掉。
计算方法:
数字逻辑综合工具-DC-09——关于timing的一些补充

【set_driving_cell】
数字逻辑综合工具-DC-09——关于timing的一些补充
数字逻辑综合工具-DC-09——关于timing的一些补充
设置input delay的时候,模仿外部驱动是基于0负载的。

【output delay的一些特殊用法】

数字逻辑综合工具-DC-09——关于timing的一些补充
数字逻辑综合工具-DC-09——关于timing的一些补充
输出的驱动路径不止一条,而且有下降沿触发的路径,怎么加约束。
数字逻辑综合工具-DC-09——关于timing的一些补充
(Ts,max = 1.3ns)

注意观察下降沿触发的路径。

【Clock Latency的一些计算】
数字逻辑综合工具-DC-09——关于timing的一些补充

【写命令时的顺序】
数字逻辑综合工具-DC-09——关于timing的一些补充
这里选项的顺序可以变,但是添加约束的对象(port or pin)一定是放在最后的。

【实操】关于Tcl编程

数字逻辑综合工具-DC-09——关于timing的一些补充

Switch结构
数字逻辑综合工具-DC-09——关于timing的一些补充
while循环
数字逻辑综合工具-DC-09——关于timing的一些补充

for循环
数字逻辑综合工具-DC-09——关于timing的一些补充

foreach结构(sv里面也有)
数字逻辑综合工具-DC-09——关于timing的一些补充
foreach是针对list结构
如果是collection,应该用foreach_in_collection
foreach 的另一个例子:
数字逻辑综合工具-DC-09——关于timing的一些补充

文件操作:

创建并写:
数字逻辑综合工具-DC-09——关于timing的一些补充
w后面的+表示:如果不存在这个文件,就创建一个这个名字的文件。

puts表示把变量SRC的内容写到文件里面去
flush表示更新,把内存里面的东西写到磁盘上去
close:文件打开一定要对应着关闭

读:
数字逻辑综合工具-DC-09——关于timing的一些补充
如果Tcl打不开这个文件,路径写错了或者文件名写错了,会自动报error

gets:从这个文件里读一行,放到变量DST里

子程序的定义
数字逻辑综合工具-DC-09——关于timing的一些补充
max是名称,a,b是变量
调用:
数字逻辑综合工具-DC-09——关于timing的一些补充

子程序里面的指针指向外面的变量数字逻辑综合工具-DC-09——关于timing的一些补充

相关文章:

  • 2021-09-24
  • 2021-06-03
  • 2021-05-02
  • 2021-06-07
  • 2021-09-08
  • 2021-10-23
  • 2022-12-23
  • 2021-08-10
猜你喜欢
  • 2021-07-08
  • 2021-11-26
  • 2021-04-21
  • 2021-09-08
  • 2022-12-23
  • 2021-07-07
  • 2021-08-30
相关资源
相似解决方案