반응형
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로 변환되어 나온다는 것이다.
반응형
댓글