作为用于控制移位寄存器的FSM的一部分,我们希望能够在检测到正确的位模式时,使移位寄存器能够精确地工作4个时钟周期。我们在Exames/Review2015fsmseq中处理序列检测,因此FSM的这部分仅处理移位寄存器的4个周期启用。无论何时重置FSM,都要将shift_ena断言4个周期,然后永远为0(直到重置)
从波形图分析,reset下降后shift_ena保持四个周期高电平后置0。
module top_module (
input clk,
input reset, // Synchronous reset
output shift_ena);
reg [32:0] q;
always @(posedge clk)
begin
if(reset) begin shift_ena=1;q<=0; end
else
begin
q<=q+1;
if(q>=3) shift_ena <=0;
end
end
endmodule