synchronous reset 은 reset 또한 clock 신호와 동기적으로 적용됨을 의미한다.
지금까지 보통
always @(posedge clk or negedge rst)
만 써왔어서 당황했다. 위에 저건 비동기(asynchronous) 리셋이다.
verilog code:
module top_module (
input clk,
input reset, // Synchronous reset
input [7:0] d,
output [7:0] q
);
always @(posedge clk ) begin
if (reset) begin
q<=0;
end
else begin
q<=d;
end
end
endmodule
result: