题解 | #异步复位同步释放#
异步复位同步释放
https://www.nowcoder.com/practice/9b892b6f75954267b4574b042f8a8d6a
`timescale 1ns/1ns
module ali16(
input clk,
input rst_n,
input d,
output reg dout
);
reg q1;
reg q2;
//*************code***********//
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin
q1 <= 1'b0;
q2 <= 1'b0;
end
else begin
q1 <= 1'b1;
q2 <= q1;
end
end
always@(posedge clk or negedge q2) begin
if(!q2)
dout <= 1'b0;
else
dout <= d;
end
//*************code***********//
endmodule