【正文】
U BO U CO U Dr e s tc lk g es t o pc lk s hC O T R O Lins t 15r e s tc lk g ec lk jss t o pc lk s hqaqbqcqdqa1qb2q c 3qd4A L E R TL O C KJSins t 21c lk _ s p e a kCFs p e a ks p e a k e rins t 22O R 2in s t 27gsabcs u baddqa1qb1q c 1qd1qa2qb2DAq c 2DBqd2DCDDqa3qb3q c 3qd3qa4qb4q c 4qd4JFin s t 12X O Rin s t 1N O Tins t 2X O Rins t 3I0I1I2I3enSRE O Nou10u20u30u4JBins t 5n u m 0n u m 1n u m 2le d 0le d 1le d 2le d 3xsin s t 8n u m 0n u m 1n u m 2le d 0le d 1le d 2le d 3xsin s t 9X O Rins t 4 圖 頂層原理圖 14 第三 章 采用 動(dòng)態(tài)顯示 第一節(jié): 搶答鑒別功能 LIBRARY IEEE。 out1=tmp1。 u2: jfq PORT map (rst=rst,add=add,chos=tmp1,out1=out2)。 signal tmp1,tmp2,tmp3,tmp4 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 out1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 ADD: IN STD_LOGIC。 END COMPONENT YMQ。 COMPONENT ymq IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 QB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 TA,TB:IN STD_LOGIC_vector(3 downto 0)。 END ponent QDJB。 A1,B1,C1,D1: OUT STD_LOGIC。 ARCHITECTURE aa OF qdq IS COMPONENT qdjb IS PORT(CLR:IN STD_LOGIC。 out3 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 out2 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 qdo :OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 clk,en,ldn,add,rst,clrqd,clrsj IN std_logic。 USE 。 圖 譯碼器顯示模塊( YMQ)仿真波形 A I N 4[ 3. . 0] D O U T 7[ 6. . 0]Y M Qin s t 圖 譯碼器顯示模塊( YMQ) 框圖 第六節(jié): 系統(tǒng)元件例化 元件例化 LIBRARY IEEE。 11 END PROCESS。 9 WHEN OTHERS=DOUT7=0000000。 7 WHEN 1000=DOUT7=1111111。 5 WHEN 0110=DOUT7=1011111。 3 WHEN 0100=DOUT7=0110011。 1 WHEN 0010=DOUT7=1101101。 ARCHITECTURE ART OF YMQ IS BEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN 0000=DOUT7=1111110。 DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 USE 。 END ARCHITECTURE ART 圖 記分模塊( JFQ)仿真波形 10 R S TA D DC H O S [ 3 . . 0 ]O U T 1 [ 3 . . 0 ]J F Qin s t 圖 記分模塊( JFQ)仿真波形模塊 框圖 第五節(jié): 譯碼顯示模塊 譯碼器顯示模塊 YMQ 譯碼器的 VHDL 源程序如下: LIBRARY IEEE。 END IF。 ELSIF chos=0100 then out1=POINTS_D0。 ELSIF chos=0010 then out1=POINTS_b0。 END IF。 END IF。 ELSIF CHOS=0100 THEN IF POINTS_D0=1001 THEN POINTS_D0:=0000。 ELSE POINTS_C0:=POINTS_C0+1。 9 END IF。 ELSIF CHOS=0010 THEN IF POINTS_B0=1001 THEN POINTS_B0:=0000。 ELSE POINTS_A0:=POINTS_A0+1。 POINTS_D0:=0000。 POINTS_B0:=0000。139。139。 BEGIN IF (ADD39。 VARIABLE POINTS_C0: STD_LOGIC_VECTOR(3 DOWNTO 0)。 ARCHITECTURE ART OF JFQ IS BEGIN PROCESS(RST,ADD,CHOS) IS VARIABLE POINTS_A0: STD_LOGIC_VECTOR(3 DOWNTO 0)。 OUT1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 ADD: IN STD_LOGIC。 USE 。 其 VHDL 源程序如下: LIBRARY IEEE。但隨著數(shù)位的增加,電路的接口也會(huì)相應(yīng)增加。 圖 計(jì)時(shí)模塊( JSQ)仿真波形 C LRLD NENC LKT A[ 3. . 0]T B[ 3. . 0]QA [ 3. . 0]QB [ 3. . 0]J SQins t 圖 計(jì)時(shí)模塊( JSQ)仿真 波形 框圖 8 第四節(jié) : 記分模塊 記分模塊 JFQ 搶答計(jì)分電路的設(shè)計(jì)一般按一定數(shù)制進(jìn)行加減即可,但隨著計(jì)數(shù)數(shù)目的增加,要將計(jì)數(shù)數(shù)目分解成十進(jìn)制并進(jìn)行譯碼顯示會(huì)變得較為復(fù)雜。 END PROCESS。 QA=TMPA。 END IF。 ELSE TMPA:=TMPA1。 ELSE TMPB:=TMPB1。 THEN計(jì)時(shí)開(kāi)始 IF TMPA=0000 THEN遇到 9 則自動(dòng)變?yōu)?0,否則減一 TMPA:=1001。 置數(shù)控制,如果不想要 60 可以從 TA,TB 輸入倒計(jì)時(shí)秒數(shù) ELSIF EN=39。 THEN TMPA:=tA。 THEN IF LDN=39。EVENT AND CLK=39。 TMPB:=0110。139。 VARIABLE TMPB:STD_LOGIC_VECTOR(3 DOWNTO 0)。 shi wei END ENTITY JSQ。 QA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC。 USE 。其中,初始值的預(yù)置功能是將兩位數(shù)分解成兩個(gè)數(shù)分別進(jìn)行預(yù)置。 END ARCHITECTURE ART。d1=d_1。b1=b_1。 END IF。139。139