1. 문제 및 설명
A. 아래 주어진 상태 머신은 하나의 입력 w와 하나의 출력 z를 가진다.
B. 다음 상태 머신을 구현하시오.

2. 요구사항
A. 순차회로와 조합회로를 분리하여 구현하시오
- 조합회로: 상태 전이 테이블을 위한 always block
- 순차회로: 상태 플립플롭을 위한 always block
B. FSM의 출력인 z는 다음 두 방법 중 하나를 사용하여 기술하시오.
- assign 구문
- always block
3. 문제 풀이
A. State
- A: 000
- B: 001
- C: 010
- D: 011
- E: 100
- F: 101
4. 모듈 정의
mmodule top_module (
input clk,
input reset, // Synchronous active-high reset
input w,
output z
);
5. 답
module top_module (
input clk,
input reset, // Synchronous active-high reset
input w,
output z
);
parameter A = 3'b000, B = 3'b001, C = 3'b010, D = 3'b011, E = 3'b100, F = 3'b101;
reg [3:1] state, next_state;
assign z = (state==F)|(state==E);
always@(*)
begin
case(state)
A: next_state = w?B:A;
B: next_state = w?C:D;
C: next_state = w?E:D;
D: next_state = w?F:A;
E: next_state = w?E:D;
F: next_state = w?C:D;
default next_state = state;
endcase
end
always@(posedge clk)
begin
if(reset)
state <= A;
else
begin
state <= next_state;
end
end
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Exams/2013 q2afsm (0) | 2026.05.17 |
|---|---|
| [HDLBits] Exams/2012 q2b (0) | 2026.05.17 |
| [HDLBits] Exams/m2014 q6 (0) | 2026.05.17 |
| [HDLBits] Exams/m2014 q6c (0) | 2026.05.17 |
| [HDLBits] Exams/m2014 q6b (0) | 2026.05.17 |