EDA设计智力抢答器设计.doc
文本预览下载声明
用EDA设计智力抢答器设计
一、用EDA设计智力抢答器设计,设计要求:
1设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮。
2电路具有第一抢答信号鉴别和锁存功能。
3设置记分电路。
二、原理分析:
将电路分为三个主要模块:抢答鉴别模块QDJB;计时模块JSQ;记分模块JFQ;译码器显示模块YMQ;元件例化QDQ
三、代码:
方法1用静态显示,使用4个数码管,两个显示计时,一个显示组别,一个显示分数
1抢答鉴别模块QDJB
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS? PORT(CLR:? IN STD_LOGIC; ?????? A, B, C, D:? IN STD_LOGIC;?--4个组?????? A1,B1,C1,D1:? OUT STD_LOGIC; ?????? STATES:? OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY QDJB; ARCHITECTURE ART OF QDJB ISsignal a_1,b_1,c_1,d_1:std_logic;? BEGIN? PROCESS(CLR,A,B,C,D) IS? BEGINIF CLR=1 THEN STATES=0000;a_1=0;b_1=0;c_1=0;d_1=0;--清零elsif a_1=1 or b_1=1 or c_1=1 or d_1=1 then null;--锁存,当有一组选中时其他组再抢答没作用elsif a=1 then a_1=1;states=0001;elsif b=1 then b_1=1;states=0010;elsif c=1 then c_1=1;states=0011;elsif d=1 then d_1=1;states=0100;end if;a1=a_1;b1=b_1;c1=c_1;d1=d_1;? END PROCESS; END ARCHITECTURE ART;
2计时模块JSQ
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS? PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; ?????? TA,TB:IN STD_LOGIC_vector(3 downto 0);?????? QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --ge wei?????? QB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); --shi weiEND ENTITY JSQ; ARCHITECTURE ART OF JSQ IS? BEGIN ?PROCESS(CLK) IS?? VARIABLE TMPA:STD_LOGIC_VECTOR(3 DOWNTO 0); ?? VARIABLE TMPB:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN??? IF CLR=1 THEN TMPA:=0000; TMPB:=0110; --清零,倒计时60秒??? ELSIF CLKEVENT AND CLK=1 THEN??????? IF LDN=1 THEN TMPA:=tA; TMPB:=tB; --置数控制,如果不想要60可以从TA,TB输入倒计时秒数??????? ELSIF EN=1 THEN--计时开始?????????? IF TMPA=0000 THEN--遇到9则自动变为0,否则减一???????????? TMPA:=1001; ????????????? IF TMPB=0000 THEN TMPB:=0110; ????????????? ELSE TMPB:=TMPB-1; END IF; ?????????? ELSE TMPA:=TMPA-1; ?????????? END IF; ??????? END IF; ??? END IF; ??? QA=TMPA; QB=TMPB; ? END PROCESS; END ARCHITECTURE ART;
3记分模块JFQ
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JFQ IS? PORT(RST: IN STD_LOGIC; ?????? ADD: IN
显示全部