Simple FSM1(asynchronous reset)
1 module top_module( 2 input clk, 3 input areset, // Asynchronous reset to state B 4 input in, 5 output out);// 6 7 parameter A=0, B=1; 8 reg state, next_state; 9 10 always @(*) begin // This is a combinational always block 11 // State transition logic 12 case(state) 13 A:begin 14 if(in == 1'b1)begin 15 next_state = A; 16 end 17 else begin 18 next_state = B; 19 end 20 end 21 B:begin 22 if(in == 1'b1)begin 23 next_state = B; 24 end 25 else begin 26 next_state = A; 27 end 28 end 29 endcase 30 end 31 32 always @(posedge clk, posedge areset) begin // This is a sequential always block 33 // State flip-flops with asynchronous reset 34 if(areset)begin 35 state <= B; 36 end 37 else begin 38 state <= next_state; 39 end 40 end 41 42 // Output logic 43 // assign out = (state == ...); 44 assign out = (state == B); //这个是为什么?在图中并没有说吧 45 endmodule
再写:
assign out = (state == B);有写,直接根据图中的out来判断

浙公网安备 33010602011771号