题解 | #异步复位同步释放#

异步复位同步释放

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

异步复位同步释放,重点在复位的释放上,在复位有效后,对高电平打两拍来避免亚稳态,产生新的复位信号

全部评论

相关推荐

投递腾讯等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务