Verilog HDL 之 3-8译码器
一、原理:
译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。
译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。这种译码器可以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码变换器。
图1.1 3-8译码器真值表
二、实现
在设计文件中输入Verilog代码。
1 `timescale 1 ns / 1 ps 2 3 module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); 4 5 input G1 ; 6 wire G1 ; 7 input G2 ; 8 wire G2 ; 9 input [2:0] A ; 10 wire [2:0] A ; 11 input G3 ; 12 wire G3 ; 13 14 output [7:0] Y ; 15 reg [7:0] Y ; 16 reg s; 17 18 always @ ( A ,G1, G2, G3) 19 begin 20 s <= G2 | G3 ; 21 if ( G1 == 0) 22 Y <= 8'b1111_1111; 23 else if ( s) 24 Y <= 8'b1111_1111; 25 else 26 case ( A ) 27 3'b000 : Y<= 8'b1111_1110; 28 3'b001 : Y<= 8'b1111_1101; 29 3'b010 : Y<= 8'b1111_1011; 30 3'b011 : Y<= 8'b1111_0111; 31 3'b100 : Y<= 8'b1110_1111; 32 3'b101 : Y<= 8'b1101_1111; 33 3'b110 : Y<= 8'b1011_1111; 34 3'b111 : Y<= 8'b0111_1111; 35 endcase 36 end 37 38 endmodule