【正文】
有效電平輸入信號(hào) i;狀態(tài)輸出信號(hào) q;計(jì)數(shù)脈沖 clk2。搶答器共有 3 個(gè)輸出顯示,選手代號(hào)、計(jì)數(shù)器的個(gè)位和十位,他們輸出全都為 BCD 碼輸出,這樣便于和顯示譯碼器連接。 《 EDA 技術(shù)綜合設(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 報(bào) 告 題 目: 基于 VHDL 的 四路搶答器 作者所在系部: 電子工程系 作者所在專業(yè): 自動(dòng)化 作者所在班級(jí): B07221 作 者 姓 名 : XXX 指導(dǎo)教師姓名: XXX 完 成 時(shí) 間 : 20201129 1 內(nèi) 容 摘 要 搶答器是為智力競(jìng)賽參賽者答題時(shí)進(jìn)行搶答而設(shè)計(jì)的一種優(yōu)先判決器電路,競(jìng)賽者可以分為若干組,搶答時(shí)各組對(duì)主持人提出的問題要在最短的時(shí)間內(nèi)做出判斷,并按下?lián)尨鸢存I回答問題 。 除此之外,整個(gè)搶答器還需有一個(gè)使能信號(hào)和一個(gè)歸零信號(hào),以便搶答器能實(shí)現(xiàn)公平搶答和停止。 數(shù)據(jù)選擇模塊: 在這個(gè)模塊中主要實(shí)現(xiàn)搶答過程中的數(shù)據(jù)輸入功能, 輸入信號(hào) a[3..0]、 b[3..0]、c[3..0];計(jì)數(shù)輸出信號(hào) s;數(shù)據(jù)輸出信號(hào) y; 計(jì)數(shù)脈沖 clk2,實(shí)現(xiàn) a、 b、 c 按脈沖輪流選通,在數(shù)碼管上顯示。 entity qdjb is port(rst,clk2:in std_logic。 then tmp=39。 or st(0)=39。 ) 6 then st(0)=39。139。 if (s2=39。 or st(3)=39。139。139。 elsif (st=0100) then states=0011。 entity js is port(clk,rst,s,stop:in std_logic。139。139。 end process p1。139。 end process p2。 y: out std_logic_vector(3 downto 0) )。event and clk2=39。 when 10=y=c。 ENTITY ALARM IS PORT(CLK,I:IN STD_LOGIC。139。 N=N+1。 USE 。 2 WHEN 0011=DOUT7=1111001。 END CASE。 clk16 : OUT STD_LOGIC)。 END IF 。 ELSE clk16 = 39。 use 。 s0,s1,s2,s3:in std_logic。 ponent sjxz is port(clk2,rst:in std_logic。 ponent alarm is port(clk,i:in std_logic。c=ledout(4)。 u4:ymq port map(ain4=y_out,DOUT7=ledout)。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。我們組的 3 位成員在實(shí)驗(yàn)室里日出而作,日落不息。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐 相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。 五、性能測(cè)試與分析 按下 rst 鍵清零,按下 s 鍵,觀察數(shù)碼管是否開始 倒計(jì)時(shí),揚(yáng)聲器是否發(fā)出報(bào)警聲,按下 s0,觀察數(shù)碼管是否顯示 1 和搶答的時(shí)間,再按 s1, 均不改變顯示,按下 rst 鍵,觀察是否清零,再按 s 鍵,不按別的,直到計(jì)時(shí)時(shí)間到,觀察是否顯示 00,揚(yáng)聲器是否發(fā)出報(bào)警。g=ledout(0)。 signal ledout:std_logic_vector(6 downto 0)。 end ponent。 ponent js is port(clk,rst,s,stop:in std_logic。 m:out std_logic_vector(1 downto 0)。 END PROCESS。event AND clk2=39。event AND clk2=39。 USE 。 6 WHEN 0111=DOUT7=1110000。 END YMQ。 END IF。039。 SIGNAL N:INTEGER RANGE 0 TO 20。 end body_chooser。 end if。 process(clk2,rst) begin