异步复位同步释放

发布于 2021-08-03  172 次阅读


定义

复位信号在到来时不受时钟信号的同步,复位信号释放时需要进行时钟信号的同步

电路实现

典型代码

module areset_srelease(
    input      rst_n,  //异步复位信号
    input      clk,    //时钟
    input      din,    //输入数据
    output reg dout    //输出数据
);
reg rst_n_r1;
reg rst_n_r2;
always @(posedge clk, negedge rst_n) begin
  if(!rst_n) begin
    rst_n_r1 <= 'b0;
    rst_n_r2 <= 'b0; //异步复位
  end
  else 
    rst_n_r1 <= 'b1; //同步释放
    rst_n_r2 <= rst_n_r2; //同步打拍,时序差可以多延迟几拍
end
//使用rst_n_r2做同步释放,复位信号可以添加到敏感列表中
always @(posedge clk, negedge rst_n_r2) begin
  if(!rst_n_r2)
    dout <= 'b0;//同步复位
  else 
    dout <= din;
end

追求理性 独立思考 不做韭菜