提高器件工作的速度

摘自《Xilinx 可编程逻辑器件应用与系统设计》

提高器件工作的速度

1 评估逻辑设计的工作速度fmax=1/(Tco+Tsu+Tnet) (忽略了clock skew和clock jitter)

 例如:器件的时钟频率要求达到50MHz,那么周期应为20ns

       假设Tco+Tsu=1ns , 每级组合逻辑延时和线延时共Tpd+Tnet=5ns

       那么允许增加的逻辑级数为:(20-1)/5=3(三级组合逻辑)

2 全局时钟缓冲器(BUFG)和第2全局时钟资源

  使用BUFG来驱动时钟是为了让Tskew最小

3 流水线(pipeline)逻辑

4 并行逻辑与串行逻辑

   采用并行逻辑后,可以减少逻辑的级数,从而改善设计的性能,提高器件的工作速度

   并行逻辑和串行逻辑的典型HDL结构为“else”和“if…else”。如果需要提高器件的速度,在设计中就不要采用“if…else”

5 复制寄存器

  多扇出网线会造成网络延时大,从而降低逻辑运行频率。

6 复制逻辑

  原理同上

7 选择状态机类型

  One-hot计数器由于始终只有一位变化,组合反馈资源少,具有最高的速度和较强的抗干扰性能,可以提高设计的工作速度。

8 clock uncertainty

  如逻辑跑在200M以上,这个参数需要考虑,需检查是否可以减少输入始终抖动,去掉DCM,以及是否可以减少DCM,PLL抖动和phase error.

9 hold time error

  大部分情况下,这个问题是因为clock skew大于data path delay 造成的。即两个寄存器的时钟端的时钟存在较大相位偏差,且因为数据路径的延时较小,导致了此问题。解决问题一般从时钟的角度出发,可能是没有时钟全局时钟线所致,很少情况也因为数据路径的延时很小造成,这时通过在数据通路上插入两级反相器来解决。

补充:

状态机最好选用三段式,经试验三段式比一段式速度快。

原文地址:https://www.cnblogs.com/lueguo/p/3286439.html