📄 tel.vhd.bak
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity tel is
port(
clk:in std_logic;
h_row:in std_logic_vector(3 downto 0);
l_row:out std_logic_vector(3 downto 0);
reset:in std_logic;
start:in std_logic;
addr:out std_logic_vector(31 downto 0)
);
end;
architecture behave of tel is
signal tele,H11,H22:std_logic_vector(3 downto 0);
signal addrr:integer range 0 to 32;
signal HH:std_logic_vector(7 downto 0);
signal p:integer range 0 to 3:=0;
signal q:std_logic_vector(1 downto 0);
signal N1,N2,N3,H0,H1,H2,H3,A,B,C,D: integer range 0 to 9;
signal data:std_logic_vector(3 downto 0);
begin
--******************************************
--process(N1,N2,N3,H0,H1,H2,H3,A,B,C,D)
--begin
--end process;
--******************************************
process(clk)
begin
if clk'event and clk='1' then
case p is
when 0 => l_row<="1000";p<=p+1;q<="00";
when 1 => l_row<="0100";p<=p+1;q<="01";
when 2 => l_row<="0010";p<=p+1;q<="10";
when 3 => l_row<="0001";p<=0;q<="11";
end case;
end if;
end process;
process(q,clk,h_row)
begin
case q is
when "00" =>
case h_row is
when "1000" => data<="0000";--0
when "0100" => data<="0001";--1
when "0010" => data<="0010";--2
when "0001" => data<="0011";--3
when others => data<=null;
end case;
when "01" =>
case h_row is
when "1000" => data<="0100";--4
when "0100" => data<="0101";--5
when "0010" => data<="0110";--6
when "0001" => data<="0111";--7
when others => data<=null;
end case;
when "10" =>
case h_row is
when "1000" => data<="1000";--8
when "0100" => data<="1001";--9
when "0010" => data<="1010";
when "0001" => data<="1011";
when others => data<=null;
end case;
when "11" =>
case h_row is
when "1000" => data<="1100";
when "0100" => data<="1101";
when "0010" => data<="1110";
when "0001" => data<="1111";
when others => data<=null;
end case;
end case;
end process;
--******************************************
process(H0,tele)
begin
--H11<=conv_std_logic_vector(H1,4);
--H22<=conv_std_logic_vector(H2,4);
--HH<=H11&H22;
N1=conv_integer(data);
N2=conv_integer(data);
N3=conv_integer(data);
H0=conv_integer(data);
H1=conv_integer(data);
H2=conv_integer(data);
H3=conv_integer(data);
A=conv_integer(data);
B=conv_integer(data);
C=conv_integer(data);
D=conv_integer(data);
if H0=0 then
if N3=9 then--139********
case H1 is
when 1 =>
case H2 is
when 0 => addrr<=1;--beijing
when 1 => addrr<=1;
when 2 => addrr<=1;
when 3 => addrr<=1;
when 4 => addrr<=2;
when 5 => addrr<=2;
when 6 => addrr<=3;
when 7 => addrr<=3;
when 8 => addrr<=3;
when 9 => addrr<=3;
end case;
when 2 =>
case H2 is
when 0 => addrr<=4;
when 1 => addrr<=4;
when 2 => addrr<=5;
when 3 => addrr<=5;
when 4 => addrr<=5;
when 5 => addrr<=5;
when 6 => addrr<=5;
when 7 => addrr<=5;
when 8 => addrr<=5;
when 9 => addrr<=5;
end case;
when 3 =>
case H2 is
when 0 => addrr<=5;
when 1 => addrr<=6;
when 2 => addrr<=6;
when 3 => addrr<=6;
when 4 => addrr<=7;
when 5 => addrr<=7;
when 6 => addrr<=8;
when 7 => addrr<=9;
when 8 => addrr<=9;
when 9 => addrr<=9;
end case;
when 4 =>
case H2 is
when 0 => addrr<=10;
when 1 => addrr<=10;
when 2 => addrr<=10;
when 3 => addrr<=11;
when 4 => addrr<=11;
when 5 => addrr<=8;
when 6 => addrr<=8;
when 7 => addrr<=12;
when 8 => addrr<=8;
when 9 => addrr<=10;
end case;
when 5 =>
case H2 is
when 0 => addrr<=13;
when 1 => addrr<=14;
when 2 => addrr<=14;
when 3 => addrr<=15;
when 4 => addrr<=15;
when 5 => addrr<=16;
when 6 => addrr<=16;
when 7 => addrr<=17;
when 8 => addrr<=17;
when 9 => addrr<=13;
end case;
when 6 =>
case H2 is
when 0 => addrr<=13;
when 1 => addrr<=14;
when 2 => addrr<=14;
when 3 => addrr<=15;
when 4 => addrr<=15;
when 5 => addrr<=17;
when 6 => addrr<=17;
when 7 => addrr<=17;
when 8 => addrr<=17;
when 9 => addrr<=13;
end case;
when 7 =>
case H2 is
when 0 => addrr<=18;
when 1 => addrr<=19;
when 2 => addrr<=19;
when 3 => addrr<=20;
when 4 => addrr<=20;
when 5 => addrr<=31;
when 6 => addrr<=31;
when 7 => addrr<=21;
when 8 => addrr<=21;
when 9 => addrr<=21;
end case;
when 8 =>
case H2 is
when 0 => addrr<=22;
when 1 => addrr<=22;
when 2 => addrr<=22;
when 3 => addrr<=22;
when 4 => addrr<=20;
when 5 => addrr<=23;
when 6 => addrr<=19;
when 7 => addrr<=24;
when 8 => addrr<=24;
when 9 => addrr<=25;
end case;
when 9 =>
case H2 is
when 0 => addrr<=22;
when 1 => addrr<=26;
when 2 => addrr<=5;
when 3 => addrr<=27;
when 4 => addrr<=27;
when 5 => addrr<=28;
when 6 => addrr<=16;
when 7 => addrr<=32;
when 8 => addrr<=10;
when 9 => addrr<=29;
end case;
when others =>addrr<=0;
end case;
elsif N3=8 then--138********
case H1 is
when 1 =>
case H2 is
when 0 => addrr<=1;--beijing
when 1 => addrr<=1;
when 2 => addrr<=1;
when 3 => addrr<=1;
when 4 => addrr<=2;
when 5 => addrr<=2;
when 6 => addrr<=3;
when 7 => addrr<=3;
when 8 => addrr<=3;
when 9 => addrr<=3;
end case;
when 2 =>
case H2 is
when 0 => addrr<=4;
when 1 => addrr<=4;
when 2 => addrr<=5;
when 3 => addrr<=5;
when 4 => addrr<=5;
when 5 => addrr<=5;
when 6 => addrr<=5;
when 7 => addrr<=5;
when 8 => addrr<=5;
when 9 => addrr<=5;
end case;
when 3 =>
case H2 is
when 0 => addrr<=4;
when 1 => addrr<=6;
when 2 => addrr<=6;
when 3 => addrr<=6;
when 4 => addrr<=7;
when 5 => addrr<=7;
when 6 => addrr<=8;
when 7 => addrr<=9;
when 8 => addrr<=9;
when 9 => addrr<=9;
end case;
when 4 =>
case H2 is
when 0 => addrr<=10;
when 1 => addrr<=10;
when 2 => addrr<=10;
when 3 => addrr<=11;
when 4 => addrr<=11;
when 5 => addrr<=8;
when 6 => addrr<=8;
when 7 => addrr<=12;
when 8 => addrr<=8;
when 9 => addrr<=10;
end case;
when 5 =>
case H2 is
when 0 => addrr<=13;
when 1 => addrr<=14;
when 2 => addrr<=14;
when 3 => addrr<=15;
when 4 => addrr<=15;
when 5 => addrr<=16;
when 6 => addrr<=16;
when 7 => addrr<=17;
when 8 => addrr<=17;
when 9 => addrr<=13;
end case;
when 6 =>
case H2 is
when 0 => addrr<=13;
when 1 => addrr<=14;
when 2 => addrr<=14;
when 3 => addrr<=15;
when 4 => addrr<=15;
when 5 => addrr<=17;
when 6 => addrr<=17;
when 7 => addrr<=17;
when 8 => addrr<=17;
when 9 => addrr<=13;
end case;
when 7 =>
case H2 is
when 0 => addrr<=18;
when 1 => addrr<=19;
when 2 => addrr<=19;
when 3 => addrr<=20;
when 4 => addrr<=20;
when 5 => addrr<=31;
when 6 => addrr<=31;
when 7 => addrr<=21;
when 8 => addrr<=21;
when 9 => addrr<=21;
end case;
when 8 =>
case H2 is
when 0 => addrr<=22;
when 1 => addrr<=22;
when 2 => addrr<=22;
when 3 => addrr<=30;
when 4 => addrr<=20;
when 5 => addrr<=13;
when 6 => addrr<=19;
when 7 => addrr<=24;
when 8 => addrr<=5;
when 9 => addrr<=15;
end case;
when 9 =>
case H2 is
when 0 => addrr<=14;
when 1 => addrr<=26;
when 2 => addrr<=5;
when 3 => addrr<=27;
when 4 => addrr<=23;
when 5 => addrr<=13;
when 6 => addrr<=5;
when 7 => addrr<=5;
when 8 => addrr<=5;
when 9 => addrr<=29;
end case;
when others =>addrr<=0;
end case;
elsif N3=7 then--137********
case H1 is
when 1 =>
case H2 is
when 0 => addrr<=1;--beijing
when 1 => addrr<=1;
when 2 => addrr<=1;
when 6 => addrr<=3;
when 7 => addrr<=3;
when 8 => addrr<=3;
when others => addrr<=0;
end case;
when 2 =>
case H2 is
when 0 => addrr<=4;
when 1 => addrr<=4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -