📄 八路彩灯控制器.txt
字号:
八路彩灯控制器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CDKZ IS
PORT(CLK:IN STD_LOGIC;
D:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END CDKZ;
ARCHITECTURE ART OF CDKZ IS
SIGNAL A:INTEGER RANGE 0 TO 8;
SIGNAL B:INTEGER RANGE 0 TO 3;
SIGNAL Q,T:STD_LOGIC;
BEGIN
PROCESS(CLK)IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF A=8 THEN
A<=1;T<=NOT T;
IF B=2 THEN
B<=0;
else
B<=B+1;
END IF;
ELSIF A=0 THEN
A<=1;T<='1';
ELSIF T='1'THEN
A<=A+1;
ELSIF T='0'AND Q='1'THEN
A<=A+1;Q<=NOT Q;
ELSIF T='0'AND Q='0'THEN
Q<=NOT Q;
END IF;
END IF;
END PROCESS;
D<="01010101"WHEN A=1 AND B=1 ELSE
"10101010"WHEN A=2 AND B=1 ELSE
"01010101"WHEN A=3 AND B=1 ELSE
"10101010"WHEN A=4 AND B=1 ELSE
"01010101"WHEN A=5 AND B=1 ELSE
"10101010"WHEN A=6 AND B=1 ELSE
"01010101"WHEN A=7 AND B=1 ELSE
"10101010"WHEN A=8 AND B=1 ELSE
"10000000"WHEN A=1 AND B=2 ELSE
"11000000"WHEN A=2 AND B=2 ELSE
"11100000"WHEN A=3 AND B=2 ELSE
"11110000"WHEN A=4 AND B=2 ELSE
"11111000"WHEN A=5 AND B=2 ELSE
"11111100"WHEN A=6 AND B=2 ELSE
"11111110"WHEN A=7 AND B=2 ELSE
"11111111"WHEN A=8 AND B=2 ELSE
"10000001"WHEN A=1 AND B=0 ELSE
"11000011"WHEN A=2 AND B=0 ELSE
"11100111"WHEN A=3 AND B=0 ELSE
"11111111"WHEN A=4 AND B=0 ELSE
"01111110"WHEN A=5 AND B=0 ELSE
"00111100"WHEN A=6 AND B=0 ELSE
"00011000"WHEN A=7 AND B=0 ELSE
"00000000"WHEN A=8 AND B=0;
END ARCHITECTURE ART;
--------七人表决器参考源程序--------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY vote7 IS
PORT
( men: IN std_logic_vector(6 downto 0);
pass,stop : buffer std_logic
);
END vote7;
ARCHITECTURE behave OF vote7 IS
BEGIN
stop<=not pass;
PROCESS (men)
variable temp:std_logic_vector(2 downto 0);
BEGIN
temp:="000";
for i in 0 to 6 loop
if(men(i)='1') then
temp:=temp+1;
else
temp:=temp+0;
end if;
end loop;
pass<=temp(2);
stop<=not(pass);
END PROCESS;
END behave;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -