1、构建一个在输入比特流中搜索序列1101的有限状态机。找到序列后,应将start_shifting设置为1,直到重置。陷入最终状态是为了在一个尚未实施的更大的FSM中模拟前往其他状态。
这题看着就很简单嘛,不画状态图直接写
module top_module (
input clk,
input reset, // Synchronous reset
input data,
output start_shifting);
parameter A=0,B=1,C=2,D=3,E=4;
reg [2:0] state,nstate;
always @(posedge clk)
begin
if(reset) state<=A;
else state<=nstate;
end
always @(*)
begin
case(state)
A:nstate<=(data)?B:A;
B:nstate<=(data)?C:A;
C:nstate<=(!data)? D:C;
D:nstate<=(data)? E:A;
E:nstate<=E;
endcase
end
assign start_shifting = state==E;
endmodule