关于时钟的问题:分频后的时钟可以与原时钟一起用吗?
时间:10-02
整理:3721RD
点击:
分频后的时钟可以与原时钟一起用吗?
比如 原时钟是clk 分频后是clk2, 在同一个设计中可以同时使用这两个时钟吗?
always @(posedge clk)
a<=b;
always @(posedge clk2)
c<=d;
always @(posedge clk2)
e<=b;
前仿没问题,但是不是这样使用后 DC综合 和 后端需要增加很多麻烦的约束,还是说就不能用
比如 原时钟是clk 分频后是clk2, 在同一个设计中可以同时使用这两个时钟吗?
always @(posedge clk)
a<=b;
always @(posedge clk2)
c<=d;
always @(posedge clk2)
e<=b;
前仿没问题,但是不是这样使用后 DC综合 和 后端需要增加很多麻烦的约束,还是说就不能用
DC里面要用set_generate_clock这个设置一下。
用set_generate_clock设,会把两个时钟看成是一棵时钟树下的,平衡信号间的时序关系。
如果两个时钟之间在设计时已经当成异步处理,信号穿越很简单,用create_clock也可以。
统同意
可以,timing要注意
最好把分频时钟作为使能来用,模块中采用统一时钟,这样后端处理起来会舒服一些
syn俺不懂啊,用xilinx自带的综合器,会是什么现象呢?
3楼说的很详细,学习了!
其实我也倾向于6楼的做法,当使能信号,可以节省很多麻烦
不过对于这个问题觉得还是应该了解下,用generate_clock 时钟树没问题,但是两个时钟间进行数据传输的话,是不是需要增加set_multicycle_path的设置。
这个是门控时钟,是很难分析时序的
建议使用 PLL直接 产生所需要的时钟哦
首先 可以
时钟树时 其实并不麻烦的 有很多时候是必须要分频时钟的
当然你的这个可以用使能来做更好
如果完全无关 异步的话 就不用set_generate_clock了
学习了,同意3楼看法
建议不这样用,而是将分频出来的时钟作为使能来用,整个系统还是在一个时钟下面工作。
