zoukankan      html  css  js  c++  java
  • 【FPGA】全局复位是否有必要?

    在FPGA设计中,用户逻辑功能最终在芯片的实体资源上实现,所以逻辑写法不同最终影响两点:

    1) 路径延迟; 2) 资源占用;

    下面的例子对比非常明显,异步reset与同步reset。

    (一) 同步复位

    在always block中的所有输入信号都是同步的,A-E & RESET。因为优先级R>S>D,所以根据实际逻辑代码级层,充分利用了Reset、Set、Data同步输入引脚。

    充分利用了资源管脚,同时只有LUT-FF两级延迟。

    (二)异步复位

    敏感列表中的RST是异步输入信号,使用的是Asynchronous Flip-Flop FDCE,RST连接到Clear异步脚。

    那A-E五个同步信号就只能占用2xLUT4来实现,导致多一个LUT占用,同时延迟路径也多一级。

    在实际设计中,一般由于clk时钟都很高,建议都用同步复位,还可以避免异步竞争冒险。

    (三)没有复位

    芯片中像 reg & sram 这样具有storage能力的触发器都具有初始值,完全可以不用Reset信号。

    reg [7:0] data = 8'b11111111;// reg变量或者fsm状态机初始化定义,bram上电复位后全是00

    如果代码中没有Reset,那么R脚完全可以接一个取非后的与逻辑输入信号。

     

    优秀的代码结构完全可以带来量级的优化结果。

     以上分析是针对Xilinx结构分析的,暂未分析Altera家,但两家都是基于sram型的FPGA,理应一致。

  • 相关阅读:
    简单复利计算java板
    弹出提示框的方式——java
    实验一 命令解释程序
    简单复利计算c语言实现
    操作系统
    jsp 页面和 jsp标记
    对it行业的一些看法
    又穷自动机的构造
    复利计算——结对编程2.0
    汉堡包
  • 原文地址:https://www.cnblogs.com/kevinchase/p/9225212.html
Copyright © 2011-2022 走看看