当前位置: 首页 > 聚焦

FPGA中三种常用复位电路 天天速读

发布时间:2023-05-14 15:13:43 来源:FPGA入门到精通

FPGA设计中,复位电路是非常重要的一部分,它能够确保系统从初始状态开始启动并保证正确运行。 本文将分别介绍FPGA中三种常用复位电路:同步复位、异步复位和异步复位同步释放,以及相应的Verilog代码示例。

异步复位 or 同步复位 or 异步复位同步释放,真的是“异步复位同步释放”更好吗?


(资料图片仅供参考)

一、同步复位

同步复位是一种在时钟信号的下降沿或上升沿触发的复位方式,复位信号与时钟信号同步。 由于在同步复位中,复位信号和时钟信号是同步的,因此可以确保复位操作的稳定和可预测性。 同步复位通常由一个或多个寄存器实现,如下面的实例:

module sync_reset(  input clk,  input rstn,  input data_in,  output reg data_out);always @(posedge clk) begin  if(!rstn) begin       data_out <= "b0;  end else begin       data_out <= data_in;  endendendmodule

在上述代码中,rst是同步复位信号,当时钟上升沿到来时,检测到复位信号为低电平时,计数器将被初始化。

综合后电路图如下:

从图中可看出,综合后,调用的(D Flip-Flop with Clock Enable and Synchronous Reset带使能功能的同步清除D触发器) FDRE型D触发器。

二、异步复位

异步复位是一种在时钟信号之外触发的复位方式,不管时钟边沿信号有没有到来,只要复位有效信号到来,即执行复位操作。 以下是异步复位的基本代码示例:

module async_reset(  input clk,  input rstn,  input data_in,  output reg data_out);always @(posedge clk or negedge rstn) begin  if(!rstn) begin    data_out <= "b0;  end else begin    data_out <= data_in;  endendendmodule

在异步复位中,rst信号不需要和时钟信号同步,并且可以在任何时候生效。在上述代码中,rst信号被用来异步地清零计数器的值,并且不需要等待时钟信号。

综合后电路如下:

从图中可看出,综合后,调用的(D Flip-Flop with Clock Enable and AsynchronousReset带使能功能的异步清除D触发器) FDCE型D触发器。

三、异步复位同步释放

异步复位同步释放通常是这种说法,一种结合了异步与同步复位优点的复位方式,它使用一个同步器来将异步复位信号转换为同步的复位信号,从而确保复位操作的可控性和稳定性。以下是异步复位同步释放的基本代码示例:

module test_reset(  input clk,  input rstn,  input data_in,  output reg data_out);reg arstn_r, arstn_s_r;always @(posedge clk or negedge rstn) begin  if(!rstn) begin      arstn_r <= "b0;      arstn_s_r <= "b0;  end else begin      arstn_r <= "b1;      arstn_s_r <= arstn_r;  endendalways @(posedge clk or negedge arstn_s_r ) begin  if(!arstn_s_r ) begin      data_out<= "b0;  end else begin      data_out<= data_in;  endendendmodule

在上述代码中,rstn是异步复位信号,在异步复位条件下,计数器会被清零并重置其他必要的信号。rstn信号经过异步和同步两级的处理后,生成了一个同步释放的复位信号arstn_s_r ,它与时钟信号同步并在时钟边缘上生效。然后,同步复位电路将控制信号传递给其他电路,使其从复位状态转换到正常操作状态。

综合后电路如下:

从图中可看出,即使复位信号通过两级同步处理,也是用的两个异步复位D触发器FDCE实现的,所以实际上无需做这种异步复位同步释放的处理。

四、总结

在实际应用中,选择合适的复位方式取决于具体的设计要求和运行环境,但实际上我们写verilog代码常用的是异步复位的方式,当然关于复位设计,真的需要每一个寄存器都复位吗,下一个文章,我们再来唠唠。

关键词:

Copyright   2015-2023 港澳艺术网 版权所有  备案号:京ICP备2023022245号-31   联系邮箱:435 226 40 @qq.com