• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

3线-8线译码器74LS138设计VHDL代码Quartus仿真

08/15 09:04
1822
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240R91H2554D.doc

共1个文件

名称:3线-8线译码器74LS138设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

74LS138 为3 线-8 线译码器,其74LS138工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。下图是它的真值表:

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY LS138 IS
   PORT (
      S1,S2,S3  : IN STD_LOGIC;--控制信号S1,S2,S3
      A2,A1,A0  : IN STD_LOGIC;--输入A2,A1,A0
      Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7 : OUT STD_LOGIC--输出Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7
   );
END LS138;
ARCHITECTURE behave OF LS138 IS
signal A210:STD_LOGIC_VECTOR(2 DOWNTO 0);
signal Y:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
A210<=A2 & A1 & A0;--3个输入拼接为3bit信号
   
   PROCESS (S1, S2, S3, A210)
   BEGIN
      IF (S1 = '0') THEN--S1低电平时输出全为高电平
         Y <= "11111111";
      ELSIF (S2 = '1') THEN--S1高电平时输出全为高电平
         Y <= "11111111";
      ELSIF (S3 = '1') THEN--S2高电平时输出全为高电平
         Y <= "11111111";
      ELSE
         CASE A210 IS--根据A输出Y
            WHEN "000" =>--输入A2,A1,A0为000时
               Y <= "11111110";--Y0低电平,其他高电平
            WHEN "001" =>
               Y <= "11111101";--Y1低电平,其他高电平
            WHEN "010" =>
               Y <= "11111011";--Y2低电平,其他高电平
            WHEN "011" =>
               Y <= "11110111";--Y3低电平,其他高电平
            WHEN "100" =>
               Y <= "11101111";--Y4低电平,其他高电平
            WHEN "101" =>
               Y <= "11011111";--Y5低电平,其他高电平
            WHEN "110" =>
               Y <= "10111111";--Y6低电平,其他高电平
            WHEN "111" =>
               Y <= "01111111";--Y7低电平,其他高电平
            WHEN OTHERS =>
         END CASE;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=988

  • 2-240R91H2554D.doc
    下载

相关推荐