题解 | #异步复位同步释放#
异步复位同步释放
https://www.nowcoder.com/practice/9b892b6f75954267b4574b042f8a8d6a
`timescale 1ns/1ns module ali16( input clk, input rst_n, input d, output reg dout ); //*************code***********// reg rst1_n; reg rst2_n; always@(posedge clk or negedge rst_n)begin if(!rst_n) rst1_n<=0; else rst1_n<=1'b1; end always@(posedge clk or negedge rst_n)begin if(!rst_n) rst2_n<=0; else rst2_n<=rst1_n; end always@(posedge clk or negedge rst2_n)begin if(!rst2_n) dout<=0; else dout<=d; end //*************code***********// endmodule
异步复位同步释放,重点在复位的释放上,在复位有效后,对高电平打两拍来避免亚稳态,产生新的复位信号