Verilog HDL 之 3-8译码器

一、原理:

  译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。
  译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。这种译码器可以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。另一种是将一种代码转换成另一种代码,所以也称为代码变换器。

java译码器 译码器实例_译码器

                  图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