직접회로설계 4번째 실습

학번 :           이름 :

1. 다음 소스에 주석을 작성하고, State machine 동작을 그림으로 그리세요.

module fsm_ex2 (clk, rst_n, go, ws, rd, ds);

input  clk, rst_n, go, ws;

output rd, ds;

parameter IDLE = 2'b00,

READ = 2'b01,

DLY  = 2'b10,

DONE = 2'b11;

reg [1:0] state, next;

reg rd, ds;

always @(posedge clk or negedge rst_n)

if (!rst_n) state <= IDLE;

else       state <= next;

always @(state or go or ws) begin

next = 2'bx; rd = 1'b0; ds = 1'b0;

case (state)

IDLE : if (go) next = READ;

else    next = IDLE;

READ : begin

rd = 1'b1;

next = DLY;

end

DLY : begin

rd = 1'b1;

if (!ws) next = DONE;

else next = READ;

end

DONE : begin

ds = 1'b1;

next = IDLE;

end

endcase

end

endmodule