六三编码器在数码管上显示对应的数字1,2,3,4,5,6
1.(case 版):
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY code6_to_3 IS
PORT(din:IN STD_LOGIC_VECTOR(0 TO 5);
seg:OUT STD_LOGIC;
dout: OUT STD_LOGIC_VECTOR(0 TO 7));
END ENTITY code6_to_3;
ARCHITECTURE dataflow of code6_to_3 IS
SIGNAL indata:STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL G1:STD_LOGIC:='1';
SIGNAL G2:STD_LOGIC:='0';
SIGNAL G3:STD_LOGIC:='0';
BEGIN
seg<='0';
p1:PROCESS(din)IS
BEGIN
CASE din IS
WHEN"111110"=>indata<="000";
WHEN"111101"=>indata<="001";
WHEN"111011"=>indata<="010";
WHEN"110111"=>indata<="011";
WHEN"101111"=>indata<="100";
WHEN"011111"=>indata<="101";
WHEN OTHERS=>indata<="111";
END CASE;
END PROCESS;
p2:PROCESS(indata,G1,G2,G3)IS
BEGIN
IF(G1='1' AND G2='0' AND G3='0') THEN
CASE indata IS
WHEN"000"=>dout<="10011111";
WHEN"001"=>dout<="00100101";
WHEN"