【正文】
。039。139。139。039。139。 STATES=W1。 D1=39。 C1=39。 B1=39。) THEN A1=39。AND D=39。AND C=39。AND B=39。 THEN IF (A=39。EVENT AND CLK=39。039。039。039。039。 THEN STATES=0000。 BEGIN PROCESS(CLK) IS BEGIN IF CLR=39。 CONSTANT W3: STD_LOGIC_VECTOR:=0011。 ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:=0001。 STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 A, B, C, D: IN STD_LOGIC。 ENTITY QDJB IS PORT(CLR: IN STD_LOGIC。 ( 4)主控模塊 QDJB 的 VHDL 程序: LIBRARY IEEE。 end process。 end if。 elsif t=111 then segcs=00000000。 elsif t=110 then segcs=00000001。 elsif t=101 then segcs=00000010。 elsif t=100 then segcs=00000100。 elsif t=011 then segcs=00001000。 elsif t=010 then segcs=00010000。 28 elsif t=001 then segcs=00100000。 if t=000 then segcs=10000000。139。 begin if (clk_fresh39。 end process。 end if。clk_fresh=39。039。139。 then t:=t+1。event and clk=39。 begin process(clk) 1KHZ;用于數(shù)碼管掃描信號 variable t : integer range 0 to 20210。 數(shù)碼管位選信號; end seg。 seg : out std_logic_vector(6 downto 0)。 JSXS1:in std_logic_vector(6 downto 0)。 D1:in std_logic_vector(6 downto 0)。 B1:in std_logic_vector(6 downto 0)。 entity seg is Port (clk : in std_logic。 use 。 ( 3)顯示模塊的 VHDL 程序: library IEEE。 END PROCESS。9 when others =DOUT7=1111111。7 when 1000 =DOUT7=0000000。5 when 0110 =DOUT7=0000010。3 when 0100 =DOUT7=0011001。1 when 0010 =DOUT7=0100100。 ARCHITECTURE ART OF YMQ IS BEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS when 0000 =DOUT7=1000000。 DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 USE 。 ( 2)譯碼器模塊 YMQ 的 VHDL 程序: LIBRARY IEEE。 END PROCESS。139。039。 ELSIF CP39。 THEN 不完整的條件產(chǎn)生鎖存 Q=39。 ARCHITECTURE RTL OF SCN IS BEGIN PROCESS(CP,CLR) BEGIN IF CLR=39。 Q:OUT STD_LOGIC)。 ENTITY SCN IS PORT( CP:IN STD_LOGIC。 23 參考文獻(xiàn) [1]康華 光.電子 技術(shù)基礎(chǔ)教程部分 [M].北京:高等教育版社, 2021. [2]宋衛(wèi)海,王明晶.?dāng)?shù)字電子技術(shù) [M].濟(jì)南:山東科學(xué)技術(shù)出版社, 2021. [3] 曾繁泰 ,陳美金 .VHDL 程序設(shè)計(jì) [M].北京 :清華大學(xué)出版社 ,2021 [4]潘松 .VHDL 實(shí)用教程 [M].成都 :電子科技大學(xué)出版社 ,2021 24 附件 ( 1) SCN 模塊的 VHDL 程序: 任一選手按下鍵后,鎖存器完成鎖存,對 其余選手的請求不做響應(yīng),直到主持人按 下復(fù)位鍵 LIBRARY IEEE。在應(yīng)用 VHDL 的過程中讓我真正領(lǐng)會到了其并行運(yùn)行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計(jì)上的優(yōu)越性。希望學(xué)校以后多安排一些類似的實(shí)踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。本次設(shè)計(jì)課不僅僅培養(yǎng)了我們實(shí)際操作能力,也培養(yǎng)了我們靈活運(yùn)用課本知識,理論聯(lián)系實(shí)際,獨(dú)立自主的進(jìn)行設(shè)計(jì)的能 力。 22 4 結(jié)束語 通過 一個多星期的 緊張工作, 我終于完成了基于 VHDL 的四路智力競賽搶答器的 設(shè)計(jì)。 掃描顯示由 VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖 所示。 end process。 end if。 elsif t=111 then segcs=00000000。 elsif t=110 then 21 segcs=00000001。 elsif t=101 then segcs=00000010。 elsif t=100 then segcs=00000100。 elsif t=011 then segcs=00001000。 elsif t=010 then segcs=00010000。 elsif t=001 then segcs=00100000。 if t=000 then segcs=10000000。139。 20 掃描顯示電路可以由 VHDL 程序來實(shí)現(xiàn),以下是一斷掃描顯示的 VHDL 程序: begin if (clk_fresh39。最終勝負(fù)結(jié)果也是通過這個分?jǐn)?shù)來判別的。 掃描顯示模塊 此模塊 將計(jì)分電路中的計(jì)分結(jié)果通過掃描并顯示出來于屏幕上。 計(jì)分電路由 VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖 所示。 END PROCESS。 CC1=POINTS_C1。 AA1=POINTS_A1。 END IF。 END IF。 END IF。 ELSE POINTS_D1:=POINTS_D1+39。 END IF。 ELSE POINTS_C1:=POINTS_C1+39。 END IF。 ELSE POINTS_B1:=POINTS_B1+39。 END IF。 ELSE POINTS_A1:=POINTS_A1+39。 IF t=2500000 then t:=0。039。 POINTS_D1:=0000。 POINTS_B1:=0000。039。139。 計(jì)分電路可以由 VHDL 程序來實(shí)現(xiàn),以下是一斷計(jì)分的 VHDL 程序: BEGIN 17 IF (clk39。電路中設(shè)加分,減分和復(fù)位按鈕。本模塊采用 74LS112 芯片,設(shè)置成兩個電路一個加法器和一個減 法器。 計(jì)分電路模塊 計(jì)分電路 模塊 是給答題人計(jì)分用的,按照規(guī)定如果主持人判定答題有效則加分,如無效則按照設(shè)定不加分或者扣分。 答題計(jì)時電路由 VHDL 程序?qū)崿F(xiàn)后,其仿真圖如圖 所示。 END PROCESS。 QA=TMPA。 END IF。 ELSE TMPA:=TMPA1。 ELSE TMPB:=TMPB1。 THEN IF TMPA=0000 THEN TMPA:=1001。 ELSIF EN=39。 THEN TMPA:=DA。 THEN IF LDN=39。EVENT AND clock=39。 TMPB:=0000。039。 VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0)。 END PROCESS。 END IF。139。 THEN IF DB=1001 THEN 15 DB=0000。 IF TB=39。 END IF。139。 THEN IF DA=1001 THEN DA=0000。 then IF TA=39。event and clock=39。 DB=0000。039。兩個比較器的翻轉(zhuǎn)分別由高電平觸發(fā) THR 和低電平觸發(fā) TRI 的輸入電壓與比較基準(zhǔn)電壓比較決定,其輸出控制 RS 觸發(fā)器和放電 BJT 晶體客 T 的狀態(tài)。答題有無效作憑主持人來判斷。 答題計(jì)時模塊 答題計(jì)時模塊的任務(wù)是當(dāng)主持人啟動這個計(jì)時開關(guān)時開始計(jì)時,如果在規(guī)定的時間內(nèi)答完題則答題有效,如果在規(guī)定的時間內(nèi)沒有完成,則答題無效。 鑒別鎖存電路由 VHDL 程序?qū)崿F(xiàn)后,其仿真圖如圖 所示。 END PROCESS。 END IF。039。039。039。039。 STATES=W4。 D1=39。 C1=39。 B1=39。) THEN A1=39。AND D=39。AND C=39。AND B=39。 ELSIF (A=39。039。139。039。039。139。039。139。139。 STATES=W2。 D1=39。 C1=39。 B1=39。) THEN A1=39。AND D=39。AND C=39。AND B=39。 13 ELSIF (A=39。039。039。039。139。139。139。139。039。139。 ELSIF CLK39。D1=39。C1=39。B1=39。 A1=39。039。由此可見,觸發(fā)鎖存電路具有時序電路的特征,是實(shí)現(xiàn)搶答器功能的關(guān)鍵 。形成第一搶答信號后,用編碼、譯碼及數(shù)碼顯示電路顯示第一搶答者的組別,控制揚(yáng)聲器發(fā)出音響,并啟動答題計(jì)時電路。 圖 系統(tǒng)框圖 第四組 ?? 第一組 掃描顯示 揚(yáng)聲器 組別顯示 主持人復(fù)位 時間到 搶答信號 計(jì) 分 電 路 答題計(jì)時電路 第一信號輸出 第一信號鑒別 ,鎖存 加 分 復(fù)位 減分 12 搶答器模塊的設(shè)計(jì) 搶答器中各個模塊由 VHDL 實(shí)現(xiàn)后,利用 EDA 工具對各模塊 進(jìn)行了 時序仿真( Timing Simulation),其目的是通過時序可 以更清楚的了解程序的工作過程 。 根據(jù)以上的分析,我們可將整個系統(tǒng)分為 四 個主要模塊: 鑒別鎖存模塊 ,答題計(jì)時模塊 ,計(jì)分電路模塊 ,掃描顯示模塊 。所以,即使在遠(yuǎn)離門級的高層次(即使設(shè)計(jì)尚未完成時),設(shè)計(jì)者就能夠?qū)φ麄€工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性進(jìn)行查驗(yàn),并做出決策。 (五)靈活性 VHDL 最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語句和庫函數(shù)。程序設(shè)計(jì)的硬件目標(biāo)器件有廣闊的選擇范圍,可以是各系列的 CPLD、 FPGA 及各種門陣列器件。 (三)獨(dú)立性 VHDL 的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān)。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植