본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/m2014 q6

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