文档详情

EDA设计智力抢答器设计.doc

发布:2017-12-13约1.23万字共15页下载文档
文本预览下载声明
用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 IS signal a_1,b_1,c_1,d_1:std_logic; ? BEGIN ? PROCESS(CLR,A,B,C,D) IS ? BEGIN IF 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 wei END 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
显示全部
相似文档