본문 바로가기
개발 Tools/Verilog HDL

Vreilog HDL decoder (디코더) (코드, 예제)

by 전컴반 2022. 2. 15.
반응형

4비트의 신호를 받아서 16비트로 디코딩하는 진리표

 

 

module decoder_4to16( input [3:0] a, output wire [15:0] y );
    // input [3:0] a;
    // output [15:0] y;
    // wire [15:0] y;

    genvar i;
    generate
        for (i = 0; i < 16; i = i+ 1) begin : dec
            assign y[i] = a == i;
        end
    endgenerate


/* 위의genvari; 부터endgenerate까지의문장은다음문장들을대체하는문법임
assign y[0] = a == 4'b0000; assign y[1] = a == 4'b0001;
assign y[2] = a == 4'b0010; assign y[3] = a == 4'b0011;
assign y[4] = a == 4'b0100; assign y[5] = a == 4'b0101;
assign y[6] = a == 4'b0110; assign y[7] = a == 4'b0111;
assign y[8] = a == 4'b1000; assign y[9] = a == 4'b1001;
assign y[10] = a == 4'b1010; assign y[11] = a == 4'b1011;
assign y[12] = a == 4'b1100; assign y[13] = a == 4'b1101;
assign y[14] = a == 4'b1110; assign y[15] = a == 4'b1111; */
endmodule


module tb_decoder_4to16;
    reg [4:0] a;
    wire [15:0] y;
    
    decoder_4to16 u0(a, y);
    
    initial
        for(a=5'b0; a<= 5'b01111; a = a + 1) #10;
endmodule

 

 

16진수를 기준으로 본다. 그러니 4비트 입력에서 0~ 15까지 입력을 넣었을 때, 16bit로 변환되어 나온다는 것이다.

반응형

댓글