【正文】
D C=39。039。AND D=39。039。AND E=39。039。AND F=39。139。AND G=39。039。AND H=39。039。) THEN A1=39。039。 B1=39。039。 C1=39。039。 D1=39。039。E1=39。039。 F1=39。139。 G1=39。039。 H1=39。039。 X=W6。 ELSIF (A=39。039。AND B=39。039。AND C=39。039。AND D=39。039。AND E=39。039。AND F=39。039。AND G=39。139。AND H=39。039。) THEN A1=39。039。 B1=39。039。 C1=39。039。 D1=39。039。E1=39。039。 F1=39。039。 G1=39。139。 H1=39。039。 X=W7。 ELSIF (A=39。039。AND B=39。039。AND C=39。039。AND D=39。039。AND E=39。039。AND F=39。039。AND G=39。039。AND H=39。139。) THEN A1=39。039。 B1=39。039。 C1=39。039。 D1=39。039。E1=39。039。 F1=39。039。 G1=39。039。 H1=39。139。 X=W8。 END IF。 END PROCESS。 END ART。 附錄 2 搶答計時模塊 VHDL 程序( ) LIBRARY IEEE。 USE 。 USE 。 USE 。 ENTITY JSQ IS PORT (CLR, LDN, EN, CLK: IN STD_LOGIC。 成都 電子機械高等??茖W校 29 TA,TB: IN STD_LOGIC。 QA: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 QB: OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END JSQ。 ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR (3 DOWNTO 0)。 SIGNAL DB: STD_LOGIC_VECTOR (3 DOWNTO 0)。 SIGNAL TMPA: STD_LOGIC_VECTOR (3 DOWNTO 0)。 SIGNAL TMPB: STD_LOGIC_VECTOR (3 DOWNTO 0)。 BEGIN PROCESS (CLR,TB) BEGIN IF CLR=39。139。 THEN DB=0000。 ELSIF TB39。EVENT AND TB=39。139。THEN DB=DB+0001。 END IF。 END PROCESS。 PROCESS (CLR,TA) BEGIN IF CLR=39。139。 THEN DA=0000。 ELSIF TA39。EVENT AND TA=39。139。THEN DA=DA+0001。 END IF。 END PROCESS。 PROCESS (CLK) BEGIN IF CLK39。EVENT AND CLK=39。139。 THEN 成都 電子機械高等??茖W校 30 IF CLR=39。139。 THEN TMPA=0000。 TMPB=0000。 END IF。 IF LDN=39。139。 THEN TMPA=DA。TMPB=DB。 END IF。 IF EN=39。139。 THEN IF TMPA=0000 THEN IF TMPB=0000 THEN TMPB=0000。 ELSE TMPB=TMPB0001。 TMPA=1001。 END IF。 ELSE TMPA=TMPA0001。 END IF。 END IF。 END IF。 END PROCESS。 QA=TMPA。 QB=TMPB。 END ART。 附錄 3 搶答計分模塊 VHDL 程序( ) LIBRARY IEEE。 USE 。 USE 。 ENTITY JFQ IS PORT (RST: IN STD_LOGIC。 ADD: IN STD_LOGIC。 CHOS: IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 成都 電子機械高等專科學校 31 AA2, AA1, AA0, BB2, BB1, BB0: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 CC2, CC1, CC0, DD2, DD1, DD0: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 EE2, EE1, EE0, FF2, FF1, FF0: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 GG2, GG1, GG0, HH2, HH1, HH0: OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END ENTITY JFQ。 ARCHITECTURE ART OF JFQ IS BEGIN PROCESS (RST, ADD, CHOS) VARIABLE POINTS_A2, POINTS_A1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_B2, POINTS_B1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_C2, POINTS_C1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_D2, POINTS_D1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_E2, POINTS_E1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_F2, POINTS_F1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_G2, POINTS_G1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 VARIABLE POINTS_H2, POINTS_H1: STD_LOGIC_VECTOR (3 DOWNTO 0)。 BEGIN IF RST=39。139。 THEN POINTS_A2:=0001。 POINTS_A1:=0000。 POINTS_B2:=0001。 POINTS_B1:=0000。 POINTS_C2:=0001。 POINTS_C1:=0000。 POINTS_D2:=0001。 POINTS_D1:=0000。 POINTS_E2:=0001。 POINTS_E1:=0000。 POINTS_F2:=0001。 POINTS_F1:=0000。 POINTS_G2:=0001。 POINTS_G1:=0000。 POINTS_H2:=0001。 POINTS_H1:=0000。 成都 電子機械高等??茖W校 32 ELSIF ( ADD39。EVENT AND ADD=39。139。) THEN IF CHOS=00000001 THEN IF POINTS_A1=1001 THEN POINTS_A1:=0000。 IF POINTS_A2=1001 THEN POINTS_A2:=0000。 ELSE POINTS_A2:=POINTS_A2+0001。 END IF。 ELSE POINTS_A1:=POINTS_A1+0001。 END IF。 ELSIF CHOS=00000010 THEN IF POINTS_B1=1001 THEN POINTS_B1:=0000。 IF POINTS_B2=1001 THEN POINTS_B2:=0000。 ELSE POINTS_B2:=POINTS_B2+0001。 END IF。 ELSE POINTS_B1:=POINTS_B1+0001。 END IF。 ELSIF CHOS=00000100 THEN IF POINTS_C1=1001 THEN POINTS_C1:=0000。 IF POINTS_C2=1001 THEN POINTS_C2:=0000。 ELSE 成都 電子機械高等??茖W校 33 POINTS_C2:=POINTS_C2+0001。 END IF。 ELSE POINTS_C1:=POINTS_C1+0001。 END IF。 ELSIF CHOS=00001000 THEN IF POINTS_D1=1001 THEN POINTS_D1:=0000。 IF POINTS_D2=1001 THEN POINTS_D2:=0000。 ELSE POINTS_D2:=POINTS_D2+0001。 END IF。 ELSE POINTS_D1:=POINTS_D1+0001。 END IF。 ELSIF CHOS=00010000 THEN IF POINTS_E1=1001 THEN POINTS_E1:=0000。 IF POINTS_E2=1001 THEN POINTS_E2:=0000。 ELSE POINTS_E2:=POINTS_E2+0001。 END IF。 ELSE POINTS_E1:=POINTS_E1+0001。 END IF。 ELSIF CHOS=00100000 THEN IF POINTS_F1=1001 THEN 成都 電子機械高等??茖W校 34 POINTS_F1:=0000。 IF POINTS_F2=1001 THEN POINTS_F2:=0000。 ELSE POINTS_F2:=POINTS_F2+0001。 END IF。 ELSE POINTS_F1:=POINTS_F1+0001。 END