时序分析之fmax定义及推导

时钟是一个电路的心脏和节拍器,学习时序分析当然要从时钟周期 ( 时钟频率 ) 开始了, 时序约束主要是为了满足器件稳定工作在我们需要的工作频率 !!!
     以前对频率的理解很简单,认为晶振输入多少就是多少工作频率,可是现在才认识到 FPGA 器件在设计出功能后,因为器件内部的各种延迟,数据的采集、建立和传输都有时间延迟,如果时钟周期小于这个延迟,则芯片内部的数据在当前时钟还没有正常的采集、建立和传输,下一个时钟就已经来到,造成工作错乱——这就是电路能承受的最高工作频率,如果要求工作在 100MHz  ,但是电路只能跑到 80MHz ,如果硬是上到 100MHz 的输入频率,那么这个芯片由于不满足时序将不能正常工作,下面是 Quartus II 官方的 fmax 定义:
The maximum clock frequency that can be achieved without violating internal setup (tSU) and hold (tH) time requirements. Unrestricted fMAX is the maximum frequency at which a design can run. Restricted fMAX is the maximum frequency a design can run considering device limits, such as maximum toggle rates. The Classic Timing Analyzer analyzes and reports fMAX following timing analysis.
You can specify the fMAX required by default for a design in the Classic Timing Analysis Settings page of the Settings dialog box. You can also specify the required fMAX of individual clock signals in a design by creating clock settings and assigning them to signals in the design.
The Classic Timing Analyzer calculates fMAX with the following equation:
fMAX = 1/( -    +    +   )
简化公式就是: fmax=1/(data delay+Tsu+Tco -clock skew)
Clock skew delay is calculated with the following equation:
-  
简化公式就是: clock skew=Tc2d-Tc2s
 

下面看看这个fmax是怎么计算出来的,Quartus II标准周期定义按下图计算:

时序分析之fmax定义及推导_第1张图片

Ø  Clk-to-out :时钟沿到输出延迟 (Tco)
Ø  Data Delay :数据传输延迟 (B)
Ø  Setup Time :数据建立时间 (Tsu)
Ø  Clk Skew :偏移时间 (E-C)
假设数据已经被时钟的上升沿打入DFF,数据到DFF1的Q端需要Tco时间,再经过组合逻辑的延时data delay到达DFF2的D端,要想在CLK的第二个上升沿到来前DFF2的D端数据再次稳定打入DFF2,其数据还要保持Tsu时间,因此看上面的时序图,整个时钟周期(高-低的一个时钟周期) 就是DFF2的第个时钟上升沿到第个时钟上升沿间隔的时间。
显而易见 Tclk  =  Tco  +  data delay  +  Tsu  -  clk skew ,而 fmax=1/Tclk
     而如果使用的是全局时钟, clk skew 很小可以忽略 ;针对某一个器件, Tco Tsu 的时间也是固定的 ,影响到设计的时钟频率就只有 data delay 这一因素了—— data delay 又包括组合逻辑延迟 Tlogic 布线延迟 Troute ,只要把 Tlogic Troute 控制在一定范围内,就能够达到想要的 fmax

你可能感兴趣的:(fpga)