数字电路基础知识——锁存器与触发器的建立时间和保存时间(二)

mac2022-06-30  99

数字电路基础知识——锁存器与触发器的建立时间和保存时间(二)

一、建立时间和保持时间的计算1
时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。 求:触发器D2的建立时间T3和保持时间T4应该满足什么条件? tcq:寄存器的输出延时为,即时钟有效沿之后延时Tcq时间,数据才到达寄存器Q端。第一个寄存器有效时钟沿之后Tcq时间,数据才到达Q1端。 tlogic:再经过组合逻辑运算,得到数据C1,其中组合逻辑的延时为。

考虑时钟偏斜时,为tskew 1)对于建立时间,组合逻辑考虑最大延迟T2max 因此建立时间裕量:= tcycle - (tcq + T2max) + tskew - Tsu 根据建立时间裕量 > 0 即 tcycle - (tcq + T2max) + tskew - Tsu >= 0 故: Tsu <= Tcycle - (tcq + T2max) + tskew 若不考虑寄存器的输出延迟和时钟偏斜,则 Tsu <= Tcycle - T2max

2)对于保持时间,组合逻辑考虑最小延迟T2min 如果触发器D2的输入信号还在保持的时候,这时候D1已经通过组合逻辑传来改变了D2,因此会破坏D2本来的保持的数据,因此组合逻辑延时太小也不好。 保持时间裕量:= tcq + T2min - tskew - Thd 根据建立时间裕量 > 0 即 tcq + T2min - tskew - Thd >= 0 故: Thd <= tcq + T2min - tskew 若不考虑寄存器的输出延迟和时钟偏斜 (tcq = tskew = 0),则 Thd <= T2min

3)关于考虑组合逻辑的最大延迟和最小延迟问题。 由于组合逻辑有关键路径,即关键路径对应最大延迟,也有最小延迟,即对应数据最快到达输出端。 因此 对于建立时间来说,考虑到最恶劣的情况就是必须考虑到这些最大的延迟; 因此 对于保持时间,我们需要考虑到下一个信号最快传输到D2的情况,那么最小的延时也就是代表着最快的传输

二、 建立时间和保持时间的计算2——实际电路的Setup和Hold公式及violation(违反)分析

因为在不同的情形下,例如不同的温度,电压,loading等等,每一段电路的delay是不同的,所以对于同一段电路,其delay可以在如下范围中:

Min_delay<= Delay <= max_delay

1. 建立时间 Tperiod - (Tc->q_FF1 + Tcomb_logic) + Tskew - Tsetup >= 0 Tskew = Tclk_delay_FF2 - Tclk_delay_FF1 即: Tclk_delay_FF1 + Tc->q_FF1 + Tcomb_logic + Tsetup <= Tclk_delay_FF2 + Tperiod 应该满足: MAX_data_path_delay + Tsetup <= MIN_clk_path_delay + Tperiod 才能保证电路是可靠的。所以在实际电路中:

Tdata_path_max + Tsetup <= Tclk_path_min + Tperiod

对应上图,该公式应该是:

2ns+ 11ns + 2ns + 9ns + 2ns + 4ns <= 2ns + 5ns + 2ns + Tperiod

所以: 30 <= 9 + 15.因为违反了该公式,所以该电路出现了setup violation。

2. 保持时间 Tc->q_FF1 + Tcomb_logic - Tskew - Thold >= 0 即: Tclk_delay_FF1 + Tc->q_FF1 + Tcomb_logic –Thold>= Tclk_delay_FF2 应该满足: MIN_data_path_delay – Thold >= MAX_clk_path_delay 才能保证电路是可靠的。所以在实际电路中:

Tdata_path_min - Thold >= Tclk_path_max 对应上图,该公式应该是:

1ns +9ns + 1ns + 6ns + 1ns – 2ns >= 3ns + 9ns + 3ns

所以: 16ns >= 15ns,满足公司要求,所以该电路无holdviolation。

在某些电路中,可以认为clk tree上面没有延迟,可以认为wire没有延迟,那么setup和hold公式就得到简化。

参考博客: https://blog.csdn.net/FBICIACCC/article/details/52683901

最新回复(0)