1. 문제 및 설명
A. 입력 신호 x에서 "101" 시퀀스를 인식하는 밀리머신을 구현하시오
- 출력신호 z: "101" 시퀀스가 검출되었을 때 논리 1이 출력되어야 합니다.
2. 요구사항
A. 입력 바이트 스트림을 받아 메시지 경계를 탐지하는 FSM설계 하시오.
- 리셋: active low 비동기 리셋 기능을 갖추어야 한다.
- 상태 제한: State 개수는 오직 3개로만 구성되어야 한다.
- 중첩 인식: 중첩된 시퀀스를 인식할 수 있어야 한다.
- ex) "10101"이 입력되면 "101"이 두 번 검출된 것으로 간주한다.
3. 문제 풀이
A. State

4. 모듈 정의
module top_module (
input clk,
input aresetn, // Asynchronous active-low reset
input x,
output z );
5. 답
module top_module (
input clk,
input aresetn, // Asynchronous active-low reset
input x,
output z );
parameter A = 2'b00, B = 2'b01, C = 2'b10;
reg [1:0] state, next_state;
assign z = (state == C & x == 1);
always@(*)
begin
case(state)
A: next_state = x?B:A;
B: next_state = x?B:C;
C: next_state = x?B:A;
endcase
end
always@(posedge clk, negedge aresetn)
begin
if(aresetn == 1'b0)
state <= A;
else
state <= next_state;
end
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Exams/ece241 2014 q5b (0) | 2026.05.10 |
|---|---|
| [HDLBits] Exams/ece241 2014 q5a (0) | 2026.05.10 |
| HDLbits[HDLBits] Fsm hdlc (0) | 2026.05.10 |
| [HDLBits] Fsm serialdp (0) | 2026.05.06 |
| [HDLBits] Fsm serialdata (0) | 2026.05.05 |