名称: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
阅读全文
1822