zoukankan      html  css  js  c++  java
  • 【连载】 FPGA Verilog HDL 系列实例38译码器

    【连载】 FPGA Verilog HDL 系列实例  

    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
  • 相关阅读:
    shell 脚本编程学习
    LMH6505 vs AD8336
    ubuntu 8.04 NFS服务的配置(转)
    新博客开张了!
    基于ARMlinux环境下的音频系统开发
    可恶的英语考试
    转HashTable(C#)
    我的手机3300
    高效注册DLL控件 让你的IE浏览器复活
    学习.NET2.0随笔
  • 原文地址:https://www.cnblogs.com/kongtiao/p/2150479.html
Copyright © 2011-2022 走看看