欢迎关注微信公共号:小鱼FPGA ,一起学Verilog数字电路设计。
先读文章:《时序逻辑电路的建立,保持时间裕量分析》
先读文章:《寄存器以及建立保持时间,输出延时介绍》
先读文章:《一个实例彻底拿下流水线》
时序逻辑电路示意图如下。前后两级寄存器之间有一个组合逻辑运算电路。
假设寄存器的建立时间要求为tsetup, 保持时间要求为thold, 输出延时为tcq(这些参数只要工艺库或者器件确定了,就是确定的);组合逻辑电路的运算延时为tlogic; 两级寄存器之间的clk线路延时为tclk_delay;clk的随机抖动为tjitter;tcycle为时钟周期。故电路必须满足如下建立时间,保持时间要求:
tsetup_slack = tcycle-(tcq+tlogic) - tsetup+tclk_delay-tjitter>0
thold_slack = tcq+tlogic-thold-tclk_delay-tjitter>0
当tsetup_slack要求不满足时,我们可以选择增大tcycle。当然这就使得电路的整体时钟频率下降,从而速度下降。
从另一个角度考虑,我们可以通过减少tlogic来使得电路的建立时间裕量满足要求。 达到这个目的,只有两个办法:
第一是优化,简化组合逻辑电路,使得电