1. 문제 및 설명
- 현재 상태를 기반으로 다음 상태와 출력을 계산하도록 상태머신을 구현하시오.
- FSM의 상태 A로 초기화하는 비동기 리셋을 포함하라.
- A=2'b00, B=2'b01, C=2'b10, D=2'b11

2. 모듈 정의
module top_module(
input clk,
input in,
input areset,
output out);
3. 답
module top_module(
input clk,
input in,
input areset,
output out); //
parameter A=0, B=1, C=2, D=3;
reg [1:0] state, next_state;
// State transition logic: next_state = f(state, in)
always@(*)
begin
case(state)
A: next_state = (in==0)?A:B;
B: next_state = (in==0)?C:B;
C: next_state = (in==0)?A:D;
D: next_state = (in==0)?C:B;
endcase
end
always@(posedge clk, posedge areset)
begin
if(areset)
state <= A;
else
state <= next_state;
end
assign out = (state == D);
endmodule'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Exams/ece241 2013 q4 (1) | 2026.04.08 |
|---|---|
| [HDLBits] Fsm3s (0) | 2026.03.17 |
| [HDLBits] Fsm3onehot (0) | 2026.03.06 |
| [HDLBits] Fsm3comb (0) | 2026.03.06 |
| [HDLBits] Fsm2s (0) | 2026.02.01 |