如何对这种类型的信号进行时序约束
always @(posedge clk or negedge rstb)
beign
if (!rstb) syn_lck <= 1'b0;
else syn_lck <= lck;
end
always @(posedge syn_lck or negedge rstb)
begin
......
end
这不是系统同步设计...
楼下回答~
约束为clk的衍生时钟吧。
这什么意思呀,这代码要做的事情没有看懂了。
这种design不好。
您好!这的确不是同步设计,如果是同步设计,应该是
always @(posedge clk or negedge rstb)
beign
if (!rstb) syn_lck <= 1'b0;
else syn_lck <= lck;
end
always @(posedge clk or negedge rstb)
begin
if (!rstb) ...
else if (syn_lck==1'b1) ...
end
您好!那时钟频率是否也约束为与clk一样呢?
代码的意思是,也用lck来做时钟。
我现在有点不明白了,采用你这种同步方法,那么综合出来的是锁存器吧? 如果采用小编的方法,那么综合出来的还是触发器,并且时钟频率为低 ?为什么综合出来的锁存器效果要比触发器要好呢?难道是时钟抖动的原因吗啊?
您好!综合出来应该是带使能的D触发器。
典型的门控时钟,这种情况在实际中是要尽量避免的
不一定的,看实际需要,如果分频的信号直接控制外部,我觉得可以这样使用,如果还在进行FPGA控制。
我泡泡综合,我还是觉得综合出来的是锁存器的
典型的门控时钟,这种情况在实际中是要尽量避免的
综合出来不会是latch。
这种写法相对同步设计来说是“不好”的并且是“不推荐的”。
不过,对于异步的系统,也没啥。
综合的时候,如果syn_lck只是驱动这一个dff的clk pin,则不约束它,让综合器自己去处理。
如果syn_lck后级有n多dff需要它驱动,形成high fanout网络,那么需要设定ideal_network,
然后交给后端处理。
您好!请问如何约束为ideal_network,我用的是Quartus II自带的TimeQuest Timing Analyzer。
