【正文】
439。b1101101。end4:begin temp=in5。input clk。endend//if(qd2)beginif(df2l!=439。if(df2h==9)df2h=0。h03)begin{qh,ql}=0。endendendend////蜂鳴器發(fā)聲always(counter[7])if(flag==1) buzzout=!(counter[11]amp。if(count!=0)beginif(!out1)seg_reg=839。 count=0。我們的題目是四路搶答器設(shè)計,剛開始一頭霧水,通過查資料和借鑒前輩的作品,我一步一步從迷茫到困惑再到柳暗花明,我發(fā)現(xiàn)做學(xué)問要知其然知其所以然,靜下心來,仔細(xì)研究,才能有所發(fā)現(xiàn)。d7:{a,b,c,d,e,f,g}=739。439。end3:begin temp=in4。 end end end end endendmodule計時模塊圖在這個模塊中主要實現(xiàn)搶答過程中的計時功能,在有搶答開始后進(jìn)行30秒的倒計時,并且在30秒倒計時后無人搶答顯示超時并報警。endmodule搶答鑒別模塊圖搶答鑒別模塊用來準(zhǔn)確直觀地判斷K1,K2,K3,K4四組搶答者誰最先按下按鈕,并為顯示端送出信號,通過數(shù)顯和蜂鳴等途徑使觀眾能夠清楚地知道是哪一組搶答成功,是整個系統(tǒng)的核心部分。h99。flag=0。采用鎖存器74175實現(xiàn),如右圖所示。由主持人控制。(2) 復(fù)位后,主持人宣讀試題,按下開始鍵,發(fā)動開始搶答命令,啟動搶答限時計數(shù)器。信號鎖存電路信號定義:CLK:時鐘信號;KKKK4:搶答按鈕信號;outoutoutout4:搶答LED顯示信號;judge:裁判員搶答開始信號;buzzout:示警輸出信號;flag:答題是否超時的標(biāo)志; module sel(clk,k1,k2,k3,k4,judge, seg,sl,out1,out2,out3,out4,out5,buzzout)。endelsebeginif(!k1) //第一組別按鍵是否按下beginif(!block) beginout1=0。endsl_reg =439。同時組別顯示端為下一模塊輸入信號,以方便主持人為該組搶答成功者進(jìn)行加減分的操作。系統(tǒng)復(fù)位信號reset; module sell(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g)。ms4=1。d2:{a,b,c,d,e,f,g}=739。b1110000??偟膩碚f,這次設(shè)計的搶答器還是比較成功的,在設(shè)計中遇到了很多問題,最后在老師的辛勤的指導(dǎo)下,終于迎刃而解,有點小小的成就感,終于覺得平時所學(xué)的知識有了實用的價值,達(dá)到了理論與實際相結(jié)合的目的,不僅學(xué)到了不少知識,而且鍛煉了自己的能力。flag=0。hf9。counter[22]amp。out=1。elsedf2h=df2h+1。b0000)df2l=df2l1。input [3:0] in1,in2,in3,in4,in5,in6,in7,in8。ms5=1。439。d8:{a,b,c,d,e,f,g}=739。b1110000。d2:{a,b,c,d,e,f,g}=739。ms4=1。endend//endendmodule//選擇模塊modulesel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g)。df1l=9。end////if(qd2)beginif(df2l==9)begindf2l=0。else begin if({qh,ql}==839。 //置蜂鳴器發(fā)聲標(biāo)志endelsebegincount=count+1。hc0。b111110。結(jié)論與致謝這次EDA課程設(shè)計讓我加深理解了VHDL程序設(shè)計的步驟和原理。439。b0110000。ms3=1。 end else begin ql=ql+1。assign sl=sl_reg。if(!out4)seg_reg=839。 count=0。 軟件設(shè)計整體框架第一信號鑒別鎖存模塊的原理:① 在得到第一信號后,準(zhǔn)確