21301143
21301143
module fsm_1 (input wire clk,input wire reset,input wire input_w,output reg output_z);
parameter STATE0 = 3'b000, STATE1 = 3'b001, STATE2 = 3'b010, STATE3 = 3'b011, STATE4
= 3'b100;
reg [2:0] current_state, next_state;
endmodule
Task-3
Code:
module fsm_done (input wire clk_in,input wire rst_n,input wire signal_a,input wire
signal_b,output reg match_out);
parameter IDLE = 3'b000, CHECK1 = 3'b001, CHECK2 = 3'b010, CHECK3 = 3'b011, MATCH
= 3'b100;
next_state_reg = state_reg;
match_out = 0;
case (state_reg)
IDLE: begin
if (signal_a == signal_b)
next_state_reg = CHECK1;
end
CHECK1: begin
if (signal_a == signal_b)
next_state_reg = CHECK2;
else
next_state_reg = IDLE;
end
CHECK2: begin
if (signal_a == signal_b)
next_state_reg = CHECK3;
else
next_state_reg = IDLE;
end
CHECK3: begin
if (signal_a == signal_b)
next_state_reg = MATCH;
else
next_state_reg = IDLE;
end
MATCH: begin
match_out = 1;
if (signal_a == signal_b)
next_state_reg = CHECK1;
else
next_state_reg = IDLE;
end
default: begin
next_state_reg = IDLE;
end
endcase
End
endmodule
Task-4
module vending_machine (input clk,input reset,input [1:0] w,output reg z,output reg [1:0]
return_money );
endmodule