加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

门控时钟与多时钟电路的时序约束

(2013-04-17 09:31:54)
分类: 数字后端

问题1:
假设clk1分频生成clk2,clk2分频生成clk3,那么在定义generated clock的时候是否应该把clk3的源时钟定义成clk1??
A:两者都可以,clk3的源时钟定义成clk2比较安全,可以被更多的工具接受


问题2:
对于下面的这种形式的时钟逻辑,clk1clk2的时钟定义能否穿透中间的逻辑到达clk3?
assign a = (sel1)?clk1:clk2;
assign clk3 = (sel2)?a:~a;
A:
可以穿透。对于clk3建议在这里例化单元来实现,然后把clk3定义在单元的pin上。


问题3:
为了关断模块时钟clk,加入了一个使能信号clk_en,那么在代码书写时是否可以直接写成clk_out=clk&clk_en,然后让DC自己去生成门控逻辑,还是应该例化库中的门控单元来实现呢?如果例化门控单元来实现,那么clk的时钟定义能否穿透这个门控的单元呢?
A: 1.
建议例化库中的门控单元来实现,最好用集成and+latch的门控单元,这种门控单元可以去除毛刺。

2.时钟定义能穿透门控单元的。


问题4:
如果问题3采用门控单元来实现,那么对这个单元有特殊的约束要求没有呢?
A:
如果用集成and+latch的门控单元,不需要额外的约束。只需set_dont_touch


问题5:
设计内部有多个时钟,这些时钟都是由一个时钟通过不同的分频而得到的,但是在插入门控过后,对那些门控后的时钟引入了额外的skewlatency,工具会自动对相关参数进行处理吗?会保持他们之间的同步的关系来确保不同时钟域之间的数据交换么?

A: 后端工具有办法处理带门控单元的时钟树的。

问题6:
对于由模块内部生成的用于其他模块的异步复位信号,需要关注哪些问题?这两个模块的时钟是同步时钟,只是一快一慢而已.
A:
如果你可以保证在异步复位信号有效时没有时钟边沿的话,

set_false_path -from reset; 如果不能保证的话,就按照一般的信号处理,让工具去收敛时序


问题7:
假设一段较长的流水线逻辑都是多周期路径,是否有简单的方法可以只约束一次,而不用去对每一个寄存器之间的路径都去约束,以声明其为多周期路径?

A:试着用*号去做

问题8:
综合时设置input/output delay时用到了虚拟时钟,那么在提供给版图的sdc文件中,这个虚拟时钟是否应该继续存在呢?

A:虚拟时钟始终要存在sdc文件中,因为做post-layoutSTA时也需要的。

问题9:
对于那种由一个时钟不同分频得到的时钟之间的数据交换,是否需要设置多周期路径?

A:一般来讲,不需要设置为多周期路径,除非你从功能上可以保证它是多周期路径

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有