zoukankan      html  css  js  c++  java
  • 提高器件工作的速度

    摘自《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 造成的。即两个寄存器的时钟端的时钟存在较大相位偏差,且因为数据路径的延时较小,导致了此问题。解决问题一般从时钟的角度出发,可能是没有时钟全局时钟线所致,很少情况也因为数据路径的延时很小造成,这时通过在数据通路上插入两级反相器来解决。

    补充:

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

  • 相关阅读:
    L1-050 倒数第N个字符串 (15分)
    Oracle存储过程的疑难问题
    Linux的细节
    Linux字符设备和块设备的区别
    Shell变量
    游标的常用属性
    Oracle中Execute Immediate用法
    Oracle中的sqlerrm和sqlcode
    Oracle把一个表的数据复制到另一个表中
    Oracle的差异增量和累积增量
  • 原文地址:https://www.cnblogs.com/lueguo/p/3286439.html
Copyright © 2011-2022 走看看