📄 pinlvji.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY pinlvji IS
PORT(sysclk:IN STD_LOGIC;
clkin:IN STD_LOGIC;
seg7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
scan:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END pinlvji;
ARCHITECTURE one OF pinlvji IS
SIGNAL cnt:STD_LOGIC_VECTOR(26 DOWNTO 0);
SIGNAL clk_cnt:STD_LOGIC;
SIGNAL cntp1,cntp2,cntp3,cntp4,cntp5,cntp6,cntp7,cntp8:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL cntq1,cntq2,cntq3,cntq4,cntq5,cntq6,cntq7,cntq8:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL dat:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(sysclk)
BEGIN
IF sysclk'event and sysclk='1'THEN
IF cnt=49999999 THEN
clk_cnt<=not clk_cnt;
cnt<=(others=>'0');
ELSE cnt<=cnt+1;
END IF;
END IF;
END PROCESS;
PROCESS(clkin)
BEGIN
IF clkin'event and clkin='1'THEN
IF clk_cnt='1'THEN
IF cntp1="1001"THEN cntp1<="0000";
IF cntp2="1001"THEN cntp2<="0000";
IF cntp3="1001"THEN cntp3<="0000";
IF cntp4="1001"THEN cntp4<="0000";
IF cntp5="1001"THEN cntp5<="0000";
IF cntp6="1001"THEN cntp6<="0000";
IF cntp7="1001"THEN cntp7<="0000";
IF cntp8="1001"THEN cntp8<="0000";
ELSE cntp8<=cntp8+1;END IF;
ELSE cntp7<=cntp7+1;END IF;
ELSE cntp6<=cntp6+1;END IF;
ELSE cntp5<=cntp5+1;END IF;
ELSE cntp4<=cntp4+1;END IF;
ELSE cntp3<=cntp3+1;END IF;
ELSE cntp2<=cntp2+1;END IF;
ELSE cntp1<=cntp1+1;END IF;
ELSE
IF cntp1/="0000" or cntp2/="0000" or cntp3/="0000" or
cntp4/="0000" or cntp5/="0000" or cntp6/="0000" or
cntp7/="0000" or cntp8/="0000" THEN
cntq1<=cntp1;cntq2<=cntp2;cntq3<=cntp3;
cntq4<=cntp4;cntq5<=cntp5;cntq6<=cntp6;
cntq7<=cntp7;cntq8<=cntp8;
cntp1<="0000";cntp2<="0000";cntp3<="0000";
cntp4<="0000";cntp5<="0000";cntp6<="0000";
cntp7<="0000";cntp8<="0000";
END IF;
END IF;
END IF;
END PROCESS;
PROCESS(cnt(10 downto 8),cntq1,cntq2,cntq3,cntq4,cntq5,cntq6,cntq7,cntq8,dat)
BEGIN
CASE cnt(10 downto 8) IS
WHEN "000"=>scan<="11111110";dat<=cntq1;
WHEN "001"=>scan<="11111101";dat<=cntq2;
WHEN "010"=>scan<="11111011";dat<=cntq3;
WHEN "011"=>scan<="11110111";dat<=cntq4;
WHEN "100"=>scan<="11101111";dat<=cntq5;
WHEN "101"=>scan<="11011111";dat<=cntq6;
WHEN "110"=>scan<="10111111";dat<=cntq7;
WHEN "111"=>scan<="01111111";dat<=cntq8;
WHEN OTHERS=>NULL;
END CASE;
END PROCESS;
PROCESS(dat)
BEGIN
CASE dat IS
WHEN"0000"=>seg7<="1000000";
WHEN"0001"=>seg7<="1111001";
WHEN"0010"=>seg7<="0100100";
WHEN"0011"=>seg7<="0110000";
WHEN"0100"=>seg7<="0011001";
WHEN"0101"=>seg7<="0010010";
WHEN"0110"=>seg7<="0000010";
WHEN"0111"=>seg7<="1111000";
WHEN"1000"=>seg7<="0000000";
WHEN"1001"=>seg7<="0010000";
WHEN OTHERS=>seg7<="1111111";
END CASE;
END PROCESS;
END one;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -