📄 qiangda.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY qiangda IS
PORT( clk,start,clr_1,clr_2:IN BIT;
sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
answer:IN STD_LOGIC;
led: OUT INTEGER RANGE 1 TO 2;
ring:OUT STD_LOGIC;
mark1:OUT INTEGER RANGE 0 TO 31;
mark2:OUT INTEGER RANGE 0 TO 31 );
END qiangda;
ARCHITECTURE a OF qiangda IS
signal aa,bb,cc:integer range 0 to 31;
begin
PROCESS(clk,start,clr_1,clr_2,sel,answer,aa)
BEGIN
IF (clk'EVENT AND clk = '1') THEN --时钟信号--
IF (start='1') THEN aa<=30;led<=0; --主持人按start,选手开始抢答,给aa30倒记时,显示0--
IF (aa>=0) THEN aa<=aa-1; --开始倒记时--
IF(aa=0) THEN NULL;
END IF;
CASE sel IS
WHEN"01"=> --选手抢答--
IF(clr_1='1') THEN led<=1;ring<='1'; --开始,显示选手号,铃声响--
ELSIF(answer='1') THEN bb<=30; --当答案对的时候,给选手加30分--
ELSE bb<=0; --答案错误是,给选手0分--
END IF;
WHEN "10"=> --表示另外一选手抢答--
IF(clr_2='1') THEN led<=2;ring<='1';
ELSIF(answer='1') THEN cc<=30;
ELSE cc<=0;
END IF;
WHEN OTHERS =>NULL; --其他操作为空操作--
END CASE;
END IF;
END IF;
END IF;
mark1<=bb;
mark2<=cc;
end process;
END a;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -