一个module中 上升沿和下降沿,一直混用
时间:10-02
整理:3721RD
点击:
代码中有些寄存器用posedge,有些则用negedge
always @ (posedge i_clk or negedge i_rst_n) begin
.... // reg 1
end
always @ (negedge i_clk or negedge i_rst_n) begin
.... // reg 2
end
这样使用,到底会有什么隐患?
看具体的时序吧,可能DDR采样,可能某些信号得用下降沿采,但是尽量不要这样写
没有特殊原因的话,一般不建议这样做,因为对时钟的占空比有要求。
对时钟的占空比有要求,且如果不同边沿下的D触发器有互采样的话,会导致综合的频率提高一倍
问题不够清晰啊。
这样写的好处是可以提高速度,但是代价是可能会产生时序问题,锁相环产生时钟时,只能保证每个上升沿间隔大致相同,但是下降沿抖动的很严重,而且这种问题通过仿真是看不出来问题的,下到板子上之后才会出现问题,而且还是有时出现问题有时没问题。
若是你的时钟频率本来就很小时,可以采用。
可综合,肯定没问题;
有些专用场合必须这么做,但在一般逻辑设计中尽量不要用双沿,这样会让自己的逻辑产生混乱,可以使用double时钟
除了ddr和时钟控制,不建议这样做
这样用,还有一种可能,只是testbench 或者 某个器件的verilog model
