74138VHDL-逻辑功能仿真波形图
3.实验总结:
通过本次实验,我对优先编码器和译码器的逻辑功能有进一步的了解,了解到译码器与编码器的功能正好相反,编码器是将各种输入信号转换成一组二进制代码,而译码器则是用一组二进制代码来产生各种独立的输出信号。
4.附录(VHDL程序)
4.1 附录1
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY V74148 IS
PORT(
EIN : IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(0 TO 7);
A:OUT STD_LOGIC_VECTOR(0 TO 2) );
END V74148;
ARCHITECTURE V74184_A OF V74148 IS
SIGNAL A_I : STD_LOGIC_VECTOR(0 TO 2);
BEGIN
PROCESS(D,A_I,EIN)
BEGIN
IF ((NOT EIN)='1')
THEN
IF (D(7)='0') THEN A_I<="111";
ELSIF (D(6)='0')THEN A_I<="110";
ELSIF (D(5)='0')THEN A_I<="101";
ELSIF (D(4)='0')THEN A_I<="100";
ELSIF (D(3)='0')THEN A_I<="011";
ELSIF (D(2)='0')THEN A_I<="010";
ELSIF (D(1)='0')THEN A_I<="001";
ELSIF (D(0)='0')THEN A_I<="000";
END IF;
ELSE A_I <= "ZZZ";
END IF;
A<= A_I;
END PROCESS;
END;
4.2 附录2
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY V74138 IS
PORT ( G1,G2A_L,G2B_L: IN STD_LOGIC;
A: IN STD_LOGIC_VECTOR(2 DOWNTO 0);
Y_L: OUT STD_LOGIC_VECTOR (0 TO 7) );
END V74138;
ARCHITECTURE V74138_A OF V74138 IS
SIGNAL Y_L_I : STD_LOGIC_VECTOR(0 TO 7);
BEGIN
WITH A SELECT Y_L_I <=
"01111111" WHEN "000" ,
"10111111" WHEN "001" ,
"11011111" WHEN "010" ,
"11101111" WHEN "011" ,
"11110111" WHEN "100" ,
"11111011" WHEN "101" ,
"11111101" WHEN "110" ,
"11111110" WHEN "111" ,
"11111111" WHEN OTHERS;
Y_L <= Y_L_I WHEN (G1 AND NOT G2A_L AND NOT G2B_L)='1' ELSE "11111111";
END V74138_A;