FPGA-xilinx系列芯片的复位,你真的明白吗?(二)

简介: FPGA-xilinx系列芯片的复位,你真的明白吗?

块RAM使用同步重置


RAM只有同步复位,块ram通过使用输出寄存器获得最小时钟输出时间。

image.png

非复位不可吗?


流水线的操作在几个周期内就会把垃圾数据给移走,所以在这里的设计进行复位是多余的。

image.png

但是有一些情况下,复位的释放后是很重要的。

image.png

比如独热码状态机。如果表示独热码状态的第一个触发器比第二个触发器早释放了一个时钟周期,那状态机的状态机会跳转到一个无效的状态。如果所有的表示独热码的寄存器无法在同一个周期内被释放,那状态机肯定会跳转到一个无效的状态。

image.png

其实当Xilinx FPGA配置或重新配置时,所有的单元都会被初始化。称为master reset,因为这可比你复位一些D触发器要强得多,它甚至初始化了片内RAM。

Xilinx的器件也有嵌入处理的系列,软核或硬核。在程序执行第一条指令前,程序和数据区域已经定义好了。有了上电复位,还用专门消耗逻辑资源去复位触发器是没有意义的。

通常可以将设计分为两部分,控制路径和数据路径

-至于数据路径,初始值并不重要。重置是不必要的。

-只在设计中需要获得有效帧信号或设计回到已知良好状态的部分使用外部复位

不复位是最好的!


总之就是能不用复位就尽量不用。

image.png

demo分享


demo1


优化前资源使用:

image.png

优化后:

资源节约的不是一点点阿…

image.png

全局复位和模块复位对比


image.png

高扇出

image.png

优化后你就说带不带劲哈哈哈哈。

复位总结


  1. 复位前考虑是否需要复位
  2. 尽量不用复位
  3. 使用初始化代码寄存器进行复位
  4. 使用异步复位时候要注意

image.png

image.png

使用异步复位,同步释放的方法。用内部定义复位信号的方法来复位触发器,而不是全都直接使用全局复位信号。当进行复位操作时,所有的触发器被预设为1。如上图,移位寄存器的最后一个触发器去操作模块内部定义的复位网络。当复位信号释放时,移位寄存器经过移位,当最后一个触发器由高电平变为低电平时,对本地的复位网络进行复位操作。也就是异步复位,同步释放。

异步复位,就是复位信号可以直接不受时钟信号影响,在任意时刻只要是低电平就能复位(假如约定低电平复位),也就是说,复位信号不需要和时钟同步。而同步释放就很有意思了,它的意思是让复位信号取消的时候,必须跟时钟信号同步,也就是说正好跟时钟同沿。

module Reset_test(
  input clk,
  input rst_nin,
  output reg rst_nout
);
  reg rst_mid;
  always@(posedge clk or negedge rst_nin)
  begin
    if(!rst_nin)
    begin
      rst_mid <= 0;
      rst_nout <= 0;
    end
    else
    begin
      rst_mid <= 1;
      rst_nout <= rst_mid;
    end
  end
endmodule

Reference


  1. xilinx FPGA复位浅析
  2. 你真的会Xilinx FPGA的复位吗?
目录
相关文章
|
机器学习/深度学习 调度 芯片
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(一)
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC
103 0
|
7月前
|
存储 芯片 异构计算
【FPGA原型验证】FPGA 技术:芯片和工具-当今的 FPGA 器件技术_fpga原型版本
【FPGA原型验证】FPGA 技术:芯片和工具-当今的 FPGA 器件技术_fpga原型版本
189 0
|
存储 前端开发 芯片
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(三)
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(三)
119 0
|
芯片 C++ 异构计算
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(二)
快速入门数字芯片设计,UCSD ECE111(九)FPGA vs ASIC(二)
83 0
|
存储 前端开发 Linux
(上)【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
(上)【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
|
人工智能 算法 安全
(下)【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
(下)【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|
|
开发工具 芯片 异构计算
芯片设计:FPGA开发学习
芯片设计:FPGA开发学习
258 0
芯片设计:FPGA开发学习
|
存储 数据安全/隐私保护 芯片
如何读取FPGA芯片的序列号ID?
如何读取FPGA芯片的序列号ID?
399 0
如何读取FPGA芯片的序列号ID?
|
存储 芯片 异构计算
Xilinx FPGA SPI配置芯片都支持哪些型号
Xilinx FPGA SPI配置芯片都支持哪些型号
569 0
Xilinx FPGA SPI配置芯片都支持哪些型号
|
2天前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
39 26

热门文章

最新文章