zoukankan      html  css  js  c++  java
  • [FPGA与ASIC] 优化方法

    • reg表示综合出触发器(该说法错误).因为always块(变量必须为reg)既能是时序电路,也能是组合电路。
    • 组合电路一般是电平敏感的always块,或assign语句;
    • 时序电路一般是时钟沿敏感的always块。

    优选设计原则

    优选同步设计

    • 尽可能使用时钟驱动的触发器(Flip-Flop)作为时序器件。因为综合器在时钟信号的基准下能优化触发器之间的组合电路。

    优选触发器输出

    • 模块的输出推荐使用触发器输出,这使得模块与模块间的连线在时序上有充裕的延迟时间,便于后端工具满足时序要求。
      也可以消除毛刺(组合逻辑输出信号容易有毛刺出现)。

    区分控制模块和运算模块

    • 使设计更加简捷。

    写完整的信号敏感列表

    • 如果有信号没有列在信号敏感列表上,综合器会综合出Latch。

    复位所有触发器

    • 避免在测试向量仿真时产生Unknown。
    • 异步输入端只有复位信号,不要混合其他同步信号。

    时钟在顶层模块分频

    • 时钟信号不会再综合阶段综合,而是在自动布局布线阶段做CTS。

    内存(MEM,存储器)放在顶层模块

    • 内存合并之后可能会得到架构上的简化,或者更易布局。

    使用有意义的命名

    • 如使用rst_n表示复位信号低电平有效。

    避免/禁用设计原则

    禁用异步触发器或锁存器(Latch)

    • JK触发器和锁存器不能算作同步时序器件。

    禁用含反馈的纯组合逻辑电路

    • 组合逻辑的反馈形成异步电路,应予以避免。

    禁用混合上升沿和下降沿的设计

    混合使用会压缩组合逻辑的传递时间,而且在Scan Chain时,下降沿触发器无法被串接。

    避免使用触发器驱动其他触发器

    对于综合器而言,这违反了"时钟信号的综合应由CTS(Clock Tree Synthesis)处理"的原则。但很难避免,例如时钟分频电路。

    禁用模块内部的Inout

    • 设计更加简捷。

    其他设计

    有限状态机的状态编码方案

    • 二进制编码:parameter [1:0] S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;
    • 格雷码:parameter [1:0] S0=2'b00,S1=2'b01,S2=2'b11,S3=2'b10;
    • 独热码:parameter [3:0] S0=4'b0001,S1=4'b0010,S2=4'b0100,S3=4'b1000;

    二进制和格雷码: 占用触发器资源少(位宽少),但转移条件和跳转时(判断2位)组合逻辑多;
    独热码: 占用触发器资源多(位宽多),但转移条件和跳转时(只判断1位)组合逻辑少;

    • FPGA编程(Flip-Flop多)一般使用独热码;
    • CPLD编程(组合逻辑多)一般使用格雷码或二进制码;
    • IC设计中,状态较少时,使用独热码,状态较多时,使用格雷码.

    算术模块

    • 避免使用L=A×C+B×C,使用L=(A+B)×C;(前者用两个乘法器)
    • 避免使用A={B,1'b0}+1,使用A={B,1'b1};(前者用了加法器)
    • 避免使用Y=A+B+C+D,使用Y=(A+B)+(C+D);(前者串接了3个加法器,形成3级延时,后者2级加法器,形成2级延时)

    结论: 优选使用 逻辑运算(位运算) > 算术运算; 加法运算 > 乘法运算; 逻辑表达式合并为每2项1级。
    如果还不行,那就切流水咯。

  • 相关阅读:
    win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
    JQUERY UI Datepicker Demo
    Official online document, install svn server in centOS
    JAVE not work in linux
    AMR 转mp3 失败
    XD, XR, DR 股票
    Linux 下MySql 重置密码
    Difinition Of Done
    Apache, Tomcat, JK Configuration Example
    Linux 安装tomcat
  • 原文地址:https://www.cnblogs.com/charleechan/p/12620247.html
Copyright © 2011-2022 走看看