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

2. 문제 풀이
A. State
- A: 000
- B: 001
- C: 010
- D: 011
- E: 100
- F: 101
4. 모듈 정의
module top_module (
input clk,
input reset, // synchronous reset
input w,
output z);
5. 답
module top_module (
input clk,
input reset, // synchronous 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?A:B;
B: next_state = w?D:C;
C: next_state = w?D:E;
D: next_state = w?A:F;
E: next_state = w?D:E;
F: next_state = w?D:C;
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/2012 q2b (0) | 2026.05.17 |
|---|---|
| [HDLBits] Exams/2012 q2fsm (0) | 2026.05.17 |
| [HDLBits] Exams/m2014 q6c (0) | 2026.05.17 |
| [HDLBits] Exams/m2014 q6b (0) | 2026.05.17 |
| [HDLBits] Exams/2014 q3c (0) | 2026.05.17 |