📄 xianshi.vhd.bak
字号:
library ieee;
use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
entity xianshi is
port( flage:in std_logic_vector(1 downto 0);
in0:in std_logic_vector(7 downto 0);
in1:in std_logic_vector(7 downto 0);
in2:in std_logic_vector(7 downto 0);
in3:in std_logic_vector(7 downto 0);
out0:out std_logic_vector(7 downto 0);
out1:out std_logic_vector(7 downto 0);
out2:out std_logic_vector(7 downto 0);
out3:out std_logic_vector(7 downto 0));
end;
architecture behav of xianshi is
signal A :std_logic_vector(1 downto 0);
signal A0,A1,A2,A3,B0,B1,B2,B3,C0,C1,C2,C3,D0,D1,D2,D3: std_logic_vector(7 downto 0);
signal F0,F1,F2,F3,G0,G1,G2,G3: std_logic_vector(7 downto 0);
begin
process(flage)
begin
A<=flage;
case A is
when "00" =>
A0<=in0;
A1<=in1;
A2<=in2;
A3<=in3;
when "01" =>
A0<=in0;
A1<=in1 OR "10000000";
A2<=in2;
A3<=in3;
when "10" =>
A0<=in0;
A1<=in1;
A2<=in2 OR "10000000";
A3<=in3;
when "11" =>
A0<=in0;
A1<=in1;
A2<=in2;
A3<=in3 OR "10000000";
when others =>null;
end case;
C0<=A0 AND "01111111";
C1<=A1 AND "01111111";
C2<=A2 AND "01111111";
C3<=A3 AND "01111111";
if C0="00000000" then
if C1="00000000" then
if C2="00000000" then
B0<=A3;B2<="00000000";B1<="00000000";B3<="00000000";
else
B1<=A3;B0<=A2;B2<="00000000";B3<="00000000";
end if;
else
B2<=A3;B1<=A2;B0<=A1;B3<="00000000";
end if;
else
B3<=A3;B2<=A2;B1<=A1;B0<=A0;
end if;
F0<=B0 AND "01111111";
F1<=B1 AND "01111111";
F2<=B2 AND "01111111";
F3<=B3 AND "01111111";
if F3="00000000" then
if F2="00000000" then
if F1="00000000" then
G0<=B0;
CASE G0 IS
WHEN "00000000" => D0<="00111111";
WHEN "00000001" => D0<="00000110";
WHEN "00000010" => D0<="01011011";
WHEN "00000011" => D0<="01001111";
WHEN "00000100" => D0<="01100110";
WHEN "00000101" => D0<="01101101";
WHEN "00000110" => D0<="01111100";
WHEN "00000111" => D0<="00000111";
WHEN "00001000" => D0<="01111111";
WHEN "00001001" => D0<="01100111";
WHEN "10000000" => D0<="10111111";
WHEN "10000001" => D0<="10000110";
WHEN "10000010" => D0<="11011011";
WHEN "10000011" => D0<="11001111";
WHEN "10000100" => D0<="11100110";
WHEN "10000101" => D0<="11101101";
WHEN "10000110" => D0<="11111100";
WHEN "10000111" => D0<="10000111";
WHEN "10001000" => D0<="11111111";
WHEN "10001001" => D0<="11100111";
WHEN OTHERS => NULL;
END CASE;
D1<="00000000";D2<="00000000";D3<="00000000";
else
G0<=B0;G1<=B1;
CASE G0 IS
WHEN "00000000" => D0<="00111111";
WHEN "00000001" => D0<="00000110";
WHEN "00000010" => D0<="01011011";
WHEN "00000011" => D0<="01001111";
WHEN "00000100" => D0<="01100110";
WHEN "00000101" => D0<="01101101";
WHEN "00000110" => D0<="01111100";
WHEN "00000111" => D0<="00000111";
WHEN "00001000" => D0<="01111111";
WHEN "00001001" => D0<="01100111";
WHEN "10000000" => D0<="10111111";
WHEN "10000001" => D0<="10000110";
WHEN "10000010" => D0<="11011011";
WHEN "10000011" => D0<="11001111";
WHEN "10000100" => D0<="11100110";
WHEN "10000101" => D0<="11101101";
WHEN "10000110" => D0<="11111100";
WHEN "10000111" => D0<="10000111";
WHEN "10001000" => D0<="11111111";
WHEN "10001001" => D0<="11100111";
WHEN OTHERS => NULL;
END CASE;
CASE G1 IS
WHEN "00000000" => D1<="00111111";
WHEN "00000001" => D1<="00000110";
WHEN "00000010" => D1<="01011011";
WHEN "00000011" => D1<="01001111";
WHEN "00000100" => D1<="01100110";
WHEN "00000101" => D1<="01101101";
WHEN "00000110" => D1<="01111100";
WHEN "00000111" => D1<="00000111";
WHEN "00001000" => D1<="01111111";
WHEN "00001001" => D1<="01100111";
WHEN "10000000" => D1<="10111111";
WHEN "10000001" => D1<="10000110";
WHEN "10000010" => D1<="11011011";
WHEN "10000011" => D1<="11001111";
WHEN "10000100" => D1<="11100110";
WHEN "10000101" => D1<="11101101";
WHEN "10000110" => D1<="11111100";
WHEN "10000111" => D1<="10000111";
WHEN "10001000" => D1<="11111111";
WHEN "10001001" => D1<="11100111";
WHEN OTHERS => NULL;
END CASE;
D2<="00000000";D3<="00000000";
end if;
else
G0<=B0;G1<=B1;G2<=B2;
CASE G0 IS
WHEN "00000000" => D0<="00111111";
WHEN "00000001" => D0<="00000110";
WHEN "00000010" => D0<="01011011";
WHEN "00000011" => D0<="01001111";
WHEN "00000100" => D0<="01100110";
WHEN "00000101" => D0<="01101101";
WHEN "00000110" => D0<="01111100";
WHEN "00000111" => D0<="00000111";
WHEN "00001000" => D0<="01111111";
WHEN "00001001" => D0<="01100111";
WHEN "10000000" => D0<="10111111";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -