1.带屏蔽功能的锁存器(SLDFF14)
(1)VHDL程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SLDFF14 IS
PORT(RES:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
ALARM:OUT STD_LOGIC);
END SLDFF14;
ARCHITECTURE BHV OF SLDFF14 IS
BEGIN
VARIABLE Q1:STD_LOGIC_VECTOR(7 DOWNTO 0);
VARIABLE EN:STD_LOGIC;
BEGIN
IF RES='0'
THEN EN:= '1';
Q<="11111111";
ALARM<='0';
END IF;
Q1:= D;
IF EN='1' THEN IF Q1<"11111111"
EN:='0';
Q<=Q1;END IF;
END IF;
END PROCESS;
END BHV;
(2)封装框图
(3)仿真波形
2.8-4编码器(SLCODER1)
(1)VHDL程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SLCODER1 IS
PORT(DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
FOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END SLCODER1;
ARCHITECTURE BHV OF SLCODER1 IS
BEGIN
PROCESS(DIN)
BEGIN
CASE DIN IS
WHEN "11111101"=>FOUT<="0010";
WHEN "11111011"=>FOUT<="0011";
WHEN "11110111"=>FOUT<="0100";
WHEN "11101111"=>FOUT<="0101";
WHEN "11011111"=>FOUT<="0110";
WHEN "10111111"=>FOUT<="0111";
WHEN "01111111"=>FOUT<="1000";
WHEN "11111111"=>FOUT<="0000";
WHEN OTHERS=>NULL;
END CASE;
END PROCESS;
END;
(2)封装框图
(3)仿真波形
3.4-7译码器(SLDECODER)
(1)VHDL程序
(2)封装框图
(3)仿真波形
4.完整抢答器
(1)完整框图
(2)封装框图
(3)仿真波形
三、设计心得