智力競賽搶答計時器的設(shè)計-eda課程設(shè)計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  學生姓名: 學 號: </p><p>  專業(yè)班級: </p><p>  課程名稱: EDA技術(shù)課程設(shè)計 </p>&

2、lt;p>  學年學期: 2012 —2013 學年第 1 學期 </p><p>  指導教師: </p><p>  2 0 12 年 12 月</p><p><b>  目錄</b></p><p><b>  設(shè)計目的</b>&

3、lt;/p><p><b>  設(shè)計原理</b></p><p><b>  設(shè)計方案</b></p><p><b>  設(shè)計結(jié)果</b></p><p><b>  改進意見及建議</b></p><p><b>  心得

4、體會</b></p><p><b>  設(shè)計目的</b></p><p>  全面熟悉、掌握VHDL語言基本知識,掌握利用VHDL語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用設(shè)計綜合電路的能力,養(yǎng)成提供文檔資料的習慣和規(guī)范編程的思想。</p

5、><p><b>  設(shè)計原理</b></p><p>  設(shè)計一個智力競賽搶答器要求具有四路搶答輸入,能夠識別最先搶答的信號,顯示該臺號;對回答問題所用的時間進行計時、顯示、超時報警;可以預置回答問題的時間;同時具有復位功能,倒計時啟動功能。</p><p>  簡易邏輯數(shù)字搶答器由主體電路與擴展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊的

6、輸入信號在顯示器上輸出;用控制電路和主持人開關(guān)啟動報警電路,以上兩部分組成主體電路。通過定時電路和譯碼電路將秒脈沖產(chǎn)生的信號在顯示器上輸出實現(xiàn)計時功能,構(gòu)成擴展電路。</p><p>  電路主要由脈沖產(chǎn)生電路、鎖存電路、編碼及譯碼顯示電路、倒計時電路和音響產(chǎn)生電路組成。當有選手搶答時,首先鎖存,阻止其他選手搶答,然后編碼,再經(jīng)譯碼器將數(shù)字顯示在顯示器上同時產(chǎn)生音響。主持人宣布開始搶答時,倒計時電路啟動由20計到

7、0,如有選手搶答,倒計時停止,如20秒后無人搶答,則會顯示報警。</p><p><b>  設(shè)計方案</b></p><p>  本設(shè)計為四路智能搶答器,所以這種搶答器要求有四路不同組別的搶答輸入信號,并能識別最先搶答的信號,直觀地通過數(shù)顯和蜂鳴等方式顯示出組別;對回答問題所用的時間進行計時、顯示、超時報警、預置答題時間,同時該系統(tǒng)還應有復位、倒計時啟動功能。<

8、;/p><p>  此搶答器的設(shè)計中采用自頂向下的設(shè)計思路,運用VHDL硬件描述語言對各個模塊進行層次化、系統(tǒng)化的描述,并且先設(shè)計一個頂層文件,再把各個模塊連接起來。【3】系統(tǒng)的總體框圖如下</p><p><b>  設(shè)計結(jié)果</b></p><p>  根據(jù)對搶答器的功能要求,把要設(shè)計的系統(tǒng)劃分為五個功能模塊:搶答信號鑒別模塊、計時模塊、計分模

9、塊、數(shù)碼顯示模塊和揚聲器控制電路,具體的說,顯示模塊又包含最先搶答的組別顯示電路、計時值顯示電路和計分顯示電路。計時模塊、計分模塊、數(shù)碼顯示模塊和揚聲器控制電路,具體的說,顯示模塊又包含最先搶答的組別顯示電路、計時值顯示電路和計分顯示電路。</p><p><b>  (1)搶答鑒別模塊</b></p><p>  搶答鑒別模塊用來準確直觀地判斷A、B、C、D四組搶答

10、者誰最先按下按鈕,并為顯示端送出信號,通過數(shù)顯和蜂鳴等途徑使觀眾能夠清楚地知道是哪一組搶答成功,是整個系統(tǒng)的核心部分。同時組別顯示端為下一模塊輸入信號,以方便主持人為該組搶答成功者進行加減分的操作。</p><p>  搶答鑒別模塊的元件圖如下圖所示:</p><p>  圖-1 鑒別模塊元件框圖</p><p><b>  引腳作用:</b>

11、</p><p>  輸入信號:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號INI。</p><p>  輸出信號: 各組的搶答按鈕顯示端A1、B1、C1、D1,組別顯示端G[3..0]。</p><p>  原理:第一個按下鍵的小組,搶答信號判定電路LOCK通過緩沖輸出信號的反饋將本參賽組搶先按下按鍵的信號鎖存,并且以異步清零的方式將其他參賽組的鎖存器清零,組別顯示

12、、計時和計分會保存到主持人對系統(tǒng)進行清零操作時為止。當INI=1時系統(tǒng)復位,使組別顯示信號G=0000,各組的指示燈信號A1=0,B1=0,C1=0,D1=0;當INI=0,即低電平有效,使其進入搶答鑒別狀態(tài),到CLK的上升沿到來時,以A組搶答成功為例,當輸入信號為A=1,B=0,C=0,D=0,輸出信號G=1000,A1=1,即為鑒別出A組搶答成功,同時屏蔽其他組的輸入信號,以免發(fā)生錯誤。同理其他組別搶答成功也是這樣的鑒別過程?!?】

13、</p><p>  其用VHDL語言進行編程的流程圖如下圖所示:</p><p>  圖-2 搶答鑒別模塊的流程圖</p><p><b>  (2) 計時模塊</b></p><p>  當搶答鑒別模塊成功判別出最先按下?lián)尨鸢粹o的參賽組后,在成功鑒別出哪組最先搶答后,主持人按下計時信號,則進入計時狀態(tài)。計時模塊可分作

14、兩部分:(1)預置數(shù);(2)60秒倒計時。60秒時間用兩個數(shù)碼管QA,QB顯示,其中QA表示60秒的個位,QB表示60秒的十位。計時模塊開始工作從預置初始值開始以秒計時,計時至0秒時停止,時間耗盡時,揚聲器會發(fā)出超時報警信號,以中止答題。</p><p>  圖-3 計時模塊的元件圖</p><p>  該系統(tǒng)輸入信號有:系統(tǒng)清零信號CLR,計時預置控制端LDN,計時使能端EN,系統(tǒng)時鐘信

15、號CLK,計時預置數(shù)據(jù)調(diào)整按鈕TA、TB。系統(tǒng)輸出信號有:倒計時輸出端QA[3..0]、QB[3..0]。</p><p>  當清零信號CLR=1時,模塊輸出信號QA=0000 ,QB=0000。當預置數(shù)控制信號LDN=1可通過TA來調(diào)整QA,TA來一次高電平,則QA的數(shù)值就加1;用TB來調(diào)整QB,通過這兩個調(diào)整信號可調(diào)整參賽者答題所需要的時間。在CLR=0,LDN=0,EN=1時,通過時鐘信號CLK的上升沿來

16、進行60秒到計時。【1】其用VHDL語言進行編程的流程圖如下:</p><p>  圖-4 搶答計時模塊的流程圖</p><p><b> ?。?)分模塊</b></p><p>  計分模塊的運行方式是按照十進制進行加減,即當時鐘出現(xiàn)上升沿時就進行加一或者減一的操作。</p><p>  記分模塊為哪組進行記分取決于鑒

17、別模塊的輸入信號G,當G=1000時表示A組最先搶答,則在此模塊中為A組記分,當G=0100時表示B組最先搶答,則在此模塊中為B組記分,當G=0010時表示C組最先搶答,則在此模塊中為C組記分,當G=0001時表示D組最先搶答,則在此模塊中為D組記分。</p><p>  計分模塊的元件圖如下圖所示:</p><p>  圖-5 計分模塊的元件圖</p><p> 

18、 系統(tǒng)的輸入信號有:計分復位端RST,加分按鈕端ADD,減分按鈕端SUB,組別號輸入端CHOS[3..0]。系統(tǒng)的輸出信號有:A組分數(shù)輸出端AA2[3..0]、AA1[3..0]、AA0[3..0],B組分數(shù)輸出端BB2[3..0]、BB1[3..0]、BB0[3..0],C組分數(shù)輸出端CC2[3..0]、CC1[3..0]、CC0[3..0],D組分數(shù)輸出端DD2[3..0]、DD1[3..0]、DD0[3..0]。</p>

19、;<p>  計分模塊用VHDL語言進行編程的流程圖如下:</p><p>  圖3-6計分模塊的設(shè)計狀態(tài)圖</p><p>  注:在設(shè)計中減法的實現(xiàn)是以加法運算來實現(xiàn)的。也以A為例,由于每次減分都是減去10分,即每次為POINTS_A1減一,所以可以用POINTS_A1+ "1111"來實現(xiàn)。如:0111-0001=0110,用加法實現(xiàn):0111+11

20、11=10110。由于POINTS_A1: STD_LOGIC_VECTOR(3 DOWNTO 0),所以POINTS_A1=0110。</p><p><b> ?。?)顯示模塊</b></p><p>  該模塊實際上是一個譯碼器,譯碼器是組合邏輯電路的一個重要的器件,其可以分為:變量譯碼和顯示譯碼兩類。變量譯碼一般是一種較少輸入變?yōu)檩^多輸出的器件,一般分為2n譯

21、碼和8421BCD碼譯碼兩類。 顯示譯碼主要解決二進制數(shù)顯示成對應的十、或十六進制數(shù)的轉(zhuǎn)換功能,一般其可分為驅(qū)動LED和驅(qū)動LCD兩類。譯碼是編碼的逆過程。</p><p>  圖-7 譯碼顯示模塊的元件圖</p><p>  主要原理是四位二進制BCD編碼轉(zhuǎn)換成七段二進制數(shù)字,以阿拉伯數(shù)字的形式輸出在數(shù)碼管上,使觀眾能夠更直觀的看到結(jié)果。譯碼器的譯碼對照表如下所示:</p>

22、<p>  顯示的數(shù)字/字母BCD編碼七段數(shù)碼管2進制</p><p>  表3-1 譯碼器的譯碼對照表</p><p>  單獨模塊只有彼此聯(lián)系起來構(gòu)成一個完整的系統(tǒng),才能實現(xiàn)其功能,這個過程有兩種實現(xiàn)方法:①元件例化。也是用編程的方式將它們各個程序、信號、輸入輸出之間的關(guān)系用VHDL語言來敘述清楚,還關(guān)系到程序的調(diào)用問題,需要設(shè)計者思路清晰,設(shè)計合理;②元器件圖示連線。

23、這種連線方法思路清晰可見,而且用的時候很簡單方便,出現(xiàn)錯誤也很好檢查。在設(shè)計中選擇的是這種方法。通過總的頂層元件圖可以很清晰的看到模塊連接的原理。</p><p>  圖3-8 頂層元件圖 </p><p>  注:本設(shè)計中,搶答器組別信號A、B、C、D為高電平時,其功能為有效狀注:本設(shè)計中,搶答器組別信號A、B、C、D為高電平時,其功能為有效狀態(tài)。同樣,系統(tǒng)清零信號CLR、預置及倒

24、計時控制信號LDN,亦為高電平有效。當CLR有效時,搶答信號判別電路清零,為判別優(yōu)先搶答信號做出準備。當計時使能端EN為低電平,預置時間設(shè)置信號LDN=1時,通過計時預置數(shù)據(jù)調(diào)整按鈕TA、TB進行預置數(shù)。當計時使能端EN為高電平,有系統(tǒng)時鐘信號CLK時,進行一分鐘倒計時。輸入時鐘CLK一方面作為揚聲器控制電路的輸入信號,另一方面作為搶答信號判別電路中鎖存器時鐘,為使揚聲器音調(diào)較為悅耳,且是搶答判別電路有較高的準確度(對信號判別的最大誤差

25、是一個時鐘周期),CLK信號頻率高低應適中,可取500Hz-1KHz;同時CLK信號經(jīng)過分頻后向倒計時電路提供信號。</p><p>  附表:輸入/輸出引腳的作用:</p><p><b>  鑒別模塊的仿真驗證</b></p><p>  利用MAX+plusII進行編譯,綜合,仿真,時序圖如下:</p><p>&

26、lt;b>  引腳作用:</b></p><p>  系統(tǒng)輸入信號:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號CLR,CLK時鐘信號。</p><p>  系統(tǒng)的輸出信號: 各組的搶答按鈕顯示端A1、B1、C1、D1,組別顯示端控制信號G[3..0]。</p><p><b>  仿真分析:</b></p>&l

27、t;p>  當鑒別模塊的清零信號CLR為高電平時,無論A、B、C、D四組參賽者誰按下?lián)尨鸢粹o,系統(tǒng)輸出均為零,同時組別顯示端G輸出信號也顯示為零;當清零信號CLR為低電平時,A、B、C、D四組參賽者誰先按下?lián)尨鸢粹o,組別顯示端就顯示該組別的號碼。假如C組按下?lián)尨鸢粹o時,組別輸出為0010,同時C組的顯示燈被點亮。仿真圖上顯示的為A先搶答,因為在0-1.28微秒之間A、C雖然都按搶答鍵,但CLR為有效狀態(tài),所以在此時間段內(nèi)的搶答無效

28、。</p><p><b>  計時模塊的仿真驗證</b></p><p>  用MAX+plusII進行編譯,綜合,仿真,時序圖如下:</p><p><b>  引腳作用:</b></p><p>  系統(tǒng)輸入信號:系統(tǒng)清零信號CLR,計時預置控制端LDN,計時使能端EN,系統(tǒng)時鐘信號CLK,計

29、時預置數(shù)據(jù)調(diào)整按鈕TA、TB。</p><p>  系統(tǒng)輸出信號:倒計時輸出端QA[3..0]、QB[3..0]。</p><p><b>  計分模塊的仿真驗證</b></p><p>  利用MAX+plusII進行編譯,綜合,仿真,時序圖如下:</p><p><b>  引腳作用:</b>&

30、lt;/p><p>  系統(tǒng)的輸入信號有:計分復位端RST,加分按鈕端ADD,減分按鈕端SUB,組別號輸入端CHOS[3..0]。</p><p>  系統(tǒng)的輸出信號有:A組分數(shù)輸出端AA2[3..0]、AA1[3..0]、AA0[3..0],B組分數(shù)輸出端BB2[3..0]、BB1[3..0]、BB0[3..0],C組分數(shù)輸出端CC2[3..0]、CC1[3..0]、CC0[3..0],D組

31、分數(shù)輸出端DD2[3..0]、DD1[3..0]、DD0[3..0]。</p><p>  仿真分析:首先應該清楚,在計分器電路的設(shè)計中,按十進制進行加減分操作的,當出現(xiàn)時鐘信號上升沿CLK就可以完成對參賽者加減分操作。智能搶答器記分模塊的仿真時以加分操作為例。由仿真圖3-10可知以下情況:</p><p> ?。?)系統(tǒng)設(shè)計過程中,當計分復位端RST=1時,并且組別輸入信號CHOS=00

32、00,其中的組別輸入信號是搶答鑒別模塊的輸出信號,計分器復位,此時以上四組都不會產(chǎn)生加減分操作。</p><p> ?。?)然而當計分復位端RST=0時,此時計分器可以計分。當CHOS=0001時,組別顯示為A組,此時主持人利用計分器對A組進行加減分操作;當CHOS=0010時,組別顯示為B組,此時主持人則利用計分器對B組進行加減分操作;當CHOS=0100時,組別顯示為C組,此時系統(tǒng)對C組進行加減分操作;當CH

33、OS=1000時,組別顯示為D組,此時對D組進行加減分操作。由仿真圖可知,當主持人按下系統(tǒng)復位鍵RST鍵時,使分數(shù)復位,每位設(shè)置的初始分數(shù)為100分。當CHOS=1000時,即D搶答成功時,加分鍵ADD輸入四個脈沖,DD1加到4,說明加分成功,成績變?yōu)?40分。其他搶答者搶答成功后的加分操作與此相同。減分的仿真與此類似,因為是以加法實現(xiàn),本質(zhì)與加分相同,當計分復位端RST=0時,可以計分。由仿真圖可知,初始成績均為100分。當CHOS=

34、1000時,即D搶答成功時,減分鍵SUB輸入四個脈沖,DD1加到4,說明減分成功,成績變?yōu)?0分。其他搶答者搶答成功后的減分操作與此相同。</p><p><b>  數(shù)顯模塊的仿真驗證</b></p><p>  利用MAX+plusII進行編譯,綜合,仿真,時序圖如下:</p><p><b>  引腳作用:</b>&

35、lt;/p><p>  輸入信號:AIN4;</p><p>  輸出信號:DOUT7。</p><p><b>  仿真分析:</b></p><p>  當AIN4= "0000" , DOUT7輸出"1111110",此時數(shù)碼管顯示0; </p><p>

36、  當AIN4= "0001" , DOUT7輸出"0110000",此時數(shù)碼管顯示1;</p><p>  當AIN4= "0010" , DOUT7輸出"1101101",此時數(shù)碼管顯示2; </p><p>  當AIN4= "0011" , DOUT7輸出"1111001&

37、quot;,此時數(shù)碼管顯示3; </p><p>  當AIN4= "0100" , DOUT7輸出"0110011",此時數(shù)碼管顯示4; </p><p>  當AIN4= "0101" , DOUT7輸出"1011011",此時數(shù)碼管顯示5;</p><p>  當AIN4= &qu

38、ot;0110" , DOUT7輸出"1011111",此時數(shù)碼管顯示6;</p><p>  當AIN4= "0111" , DOUT7輸出"1110000",此時數(shù)碼管顯示7;</p><p>  當AIN4= "1000" , DOUT7輸出"1111111",此時數(shù)碼管顯示

39、8;</p><p>  當AIN4= "1001" , DOUT7輸出"1111011",此時數(shù)碼管顯示9;</p><p>  系統(tǒng)整體的仿真驗證:</p><p><b>  五、改進意見及建議</b></p><p>  1.在搶答鑒別模塊中,搶答成功后各組臺號燈具有記憶功

40、能,這一點會造成即使下一輪搶答沒有搶答成功者(即有兩人或兩人以上同時按下?lián)尨鹌鳎氨稽c亮的led燈會仍然保持點亮狀態(tài)。雖然此時可以根據(jù)有沒有警報聲來提示搶答是否有效,但是仍然不夠完善;</p><p>  2.在計時器模塊內(nèi)應增加計時結(jié)束報警功能,但是由于小組成員對vhdl語言運用不夠熟練,在設(shè)計該項程序時遇到很多問題,進程之間不能很好的協(xié)調(diào),故最終沒有實現(xiàn)這一功能;</p><p>

41、  3. 在波形仿真時,當信號之間配合不當時有可能造成預期的結(jié)果不能在波形上得到正確顯示,故應協(xié)調(diào)各個開關(guān)的功能及其有效時間然后進行仿真,方能得出正確的仿真波形。</p><p>  4.另外,本產(chǎn)品還有需要改進的地方,如管腳過多,實際連接時不夠簡潔,容易造成連接錯誤。故應將各個模塊綜合起來設(shè)計總電路,但是由于成員對頂層程序設(shè)計這一部分不甚了解,故沒有完成這一環(huán)節(jié)。</p><p><

42、;b>  六、心得體會</b></p><p>  這次設(shè)計中,我花了不少的時間,其中有苦也有樂。苦的是我付出了不少的汗水,樂的是在付出的過程中我得到了許多,也學會了許多。</p><p>  因為一個人的能力畢竟有限,在設(shè)計方面難免會出現(xiàn)這樣那樣的錯誤,但正是這些錯誤促進了我的進步。根據(jù)電路的特點,我用層次化結(jié)構(gòu)化設(shè)計概念,將此項設(shè)計任務分成若干模塊,規(guī)定每一模塊的功能

43、和各模塊之間的接口,然后再將各模塊合起來聯(lián)試,這培養(yǎng)我了層次化設(shè)計的概念。在這次課程設(shè)計中,我真正體會到了知識的重要性。在設(shè)計的過程中,遇到問題我會先獨立思考,到自己不能解決的時候我就會和同學討論,實在解決不了我就會向指導老師請教,應該說從功能的實現(xiàn)到流程圖的繪制,從程序的編寫到程序的檢查,從程序的調(diào)試到實驗報告的寫作,其間每一個過程都凝聚著大家對我的幫助。</p><p>  最后,在設(shè)計的過程中我進一步養(yǎng)成了

44、軟件設(shè)計的方法,完成一個項目的的程序,進一步了解了設(shè)計的步驟,進一步加深了對課程的理解,增強了以后學習的興趣,為以后的工作積累了一定的經(jīng)驗,感謝學院及張老師給我們提供這次設(shè)計的機會。</p><p><b>  附件</b></p><p><b>  鑒別模塊代碼</b></p><p>  LIBRARY IEEE;

45、 </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY jianbie IS</p><p>  PORT(CLK,CLR:IN STD_LOGIC;</p><p>  Q :OUT STD_LOGIC);</p><p>  END jianbie;&

46、lt;/p><p>  ARCHITECTURE jianbie_mk OF jianbie IS </p><p><b>  BEGIN</b></p><p>  PROCESS(CLK,CLR)</p><p><b>  BEGIN</b></p><

47、;p>  IF CLR='0'THEN --利用IF_THEN_ELSE語句</p><p><b>  Q<='0';</b></p><p>  ELSIF CLK'EVENT AND CLK='0'THEN --邊緣檢測信號為低電平

48、</p><p><b>  Q<='1';</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  END jianbie_mk;</p><p>  2、鎖存器模塊源代碼</

49、p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY suocunqi IS</p><p>  PORT(D1,D2,D3,D4:IN STD_LOGIC; --輸入端口定義4個變量</p><p>

50、;  CLK,CLR:IN STD_LOGIC; </p><p>  Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC);</p><p>  END suocunqi;</p><p>  ARCHITECTURE suocunqi_mk OF suocunqi IS</p><p>

51、;  BEGIN </p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF CLR='0'THEN</p><p><b>  Q1<='

52、;0';</b></p><p><b>  Q2<='0';</b></p><p><b>  Q3<='0';</b></p><p><b>  Q4<='0';</b></p><p&g

53、t;  ALM<='0'; </p><p>  ELSIF CLK'EVENT AND CLK='1'THEN --檢測為高電平,則有人搶答</p><p><b>  Q1<=D1;</b></p><p&

54、gt;<b>  Q2<=D2;</b></p><p><b>  Q3<=D3;</b></p><p><b>  Q4<=D4;</b></p><p><b>  ALM<='1';</b></p><p>

55、;<b>  END IF;</b></p><p>  END PROCESS;</p><p>  END suocunqi_mk;</p><p><b>  3、模塊源代碼</b></p><p>  LIBRARY IEEE; </p>

56、<p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY zhuanhuan IS</p><p>  PORT(D1,D2,D3,D4:IN STD_LOGIC;</p><p>  Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END

57、zhuanhuan;</p><p>  ARCHITECTURE zhuanhuan_mk OF zhuanhuan IS </p><p>  BEGIN </p><p>  PROCESS(D1,D2,D3,D4)</p><p>  

58、VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); </p><p><b>  BEGIN</b></p><p>  TMP:=D1&D2&D3&D4;</p><p>  CASE TMP IS --類似于真值表的CASE語句

59、</p><p>  WHEN "0111"=>Q<="0001";</p><p>  WHEN "1011"=>Q<="0010";</p><p>  WHEN "1101"=>Q<="0011";<

60、/p><p>  WHEN "1110"=>Q<="0100";</p><p>  WHEN OTHERS=>Q<="1111"; </p><p><b>  END CASE;</b></p><p>  EN

61、D PROCESS;</p><p>  END zhuanhuan_mk;</p><p>  4、三選一模塊源代碼</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY sanxuanyi IS</p&g

62、t;<p>  PORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  D1,D2,D3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END sanxuanyi;&l

63、t;/p><p>  ARCHITECTURE sanxuanyi_mk OF sanxuanyi IS </p><p><b>  BEGIN</b></p><p>  PROCESS(SEL,D1,D2,D3)</p><p><b>  BEGIN</b></p><

64、p>  CASE SEL IS</p><p>  WHEN "000"=>Q<=D1;</p><p>  WHEN "001"=>Q<=D2;</p><p>  WHEN "111"=>Q<=D3;</p><p>  WHEN OTH

65、ERS=>Q<="1111";</p><p><b>  END CASE;</b></p><p>  END PROCESS; </p><p>  END sanxuanyi_mk;</p><p>  5、倒

66、計時模塊源代碼</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY daojishi IS</p><p>  PORT(CL

67、K,EN:IN STD_LOGIC; </p><p>  H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SOUND:OUT STD_LOGIC);</p><p>  END daojishi;</p><p>  ARCHITECTURE daoj

68、ishi_mk OF daojishi IS</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK,EN)</p><p>  VARIABLE HH,LL:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b>

69、;</p><p>  IF CLK'EVENT AND CLK='1'THEN</p><p>  IF EN='1'THEN</p><p>  IF LL=0 AND HH=0 THEN </p><p>  SOUND<='1';</p>

70、;<p>  ELSIF LL=0 THEN</p><p>  LL:="1001";</p><p>  HH:=HH-1; </p><p><b>  ELSE</b></p><p><b>  LL:=LL-1;</b>

71、</p><p><b>  END IF;</b></p><p>  ELSE </p><p>  SOUND<='0';</p><p>  HH:="1001";</p><p>  LL:=&q

72、uot;1001";</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  H<=HH;</b></p><p><b>  L<=LL;</b></

73、p><p>  END PROCESS;</p><p>  END daojishi_mk;</p><p><b>  6、片選模塊源代碼</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;

74、 </p><p>  ENTITY pianxuan IS </p><p>  PORT(CLK:IN STD_LOGIC;</p><p>  a :OUT INTEGER RANGE 0 TO 7); </p&

75、gt;<p>  END pianxuan;</p><p>  ARCHITECTURE pianxuan_mk OF pianxuan IS </p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p>  VARIABLE AA:

76、INTEGER RANGE 0 TO 7; --定義標準邏輯位矢量類型</p><p><b>  BEGIN</b></p><p>  IF CLK'EVENT AND CLK='1'THEN --利用IF_THEN語句</p><p><b>  AA:=AA+1;</b>&l

77、t;/p><p><b>  END IF;</b></p><p><b>  A<=AA;</b></p><p>  END PROCESS;</p><p>  END pianxuan_mk;</p><p><b>  7、顯示模塊源代碼</b&

78、gt;</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  ENTITY xianshi IS </p><p>  PORT(D:IN STD_LOGIC_VECTOR

79、(3 DOWNTO 0);</p><p>  Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p>  END xianshi;</p><p>  ARCHITECTURE xianshi_mk OF xianshi IS </p><p><b>  BEGIN</b&g

80、t;</p><p>  PROCESS(D)</p><p>  BEGIN </p><p>  CASE D IS </p><p>  WHEN"0000"=>Q<=&qu

81、ot;0111111"; </p><p>  WHEN"0001"=>Q<="0000110";</p><p>  WHEN"0010"=>Q<="1011011";</p><p>  WHEN"0011"=>

82、;Q<="1001111";</p><p>  WHEN"0100"=>Q<="1100110";</p><p>  WHEN"0101"=>Q<="1101101";</p><p>  WHEN"0110"=&

83、gt;Q<="1111101";</p><p>  WHEN"0111"=>Q<="0100111";</p><p>  WHEN"1000"=>Q<="1111111";</p><p>  WHEN"1001"

84、=>Q<="1101111";</p><p>  WHEN OTHERS=>Q<="0000000";</p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  END xianshi_mk;

85、</p><p><b>  8、頂層文件源代碼</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTI

86、TY QDQ IS</p><p>  PORT(CLK,CLR:IN STD_LOGIC;</p><p>  D1,D2,D3,D4:IN STD_LOGIC;</p><p>  SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  Q: OUT STD_LOGIC_VECTOR(6 DOWNT

87、O 0));</p><p><b>  END QDQ;</b></p><p>  ARCHITECTURE DCWJ OF QDQ IS</p><p>  COMPONENT jianbie</p><p>  PORT(CLK,CLR:IN STD_LOGIC; </p><p>  

88、Q :OUT STD_LOGIC);</p><p>  END COMPONENT;</p><p>  COMPONENT pianxuan</p><p>  PORT(CLK:IN STD_LOGIC;</p><p>  A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p&g

89、t;  END COMPONENT;</p><p>  COMPONENT suocunqi</p><p>  PORT(D1,D2,D3,D4:IN STD_LOGIC;</p><p>  CLK,CLR:IN STD_LOGIC; </p><p>  Q1,Q2,Q3,Q4,ALM:O

90、UT STD_LOGIC);</p><p>  END COMPONENT;</p><p>  COMPONENT zhuanhuan</p><p>  PORT(D1,D2,D3,D4:IN STD_LOGIC;</p><p>  Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><

91、;p>  END COMPONENT;</p><p>  COMPONENT sanxuanyi</p><p>  PORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  D1,D2,D3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  Q :

92、OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END COMPONENT;</p><p>  COMPONENT daojishi</p><p>  PORT(CLK,EN:IN STD_LOGIC; </p><p>  H,L:OUT STD_LO

93、GIC_VECTOR(3 DOWNTO 0);</p><p>  SOUND:OUT STD_LOGIC);</p><p>  END COMPONENT;</p><p>  COMPONENT xianshi</p><p>  PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>&

94、lt;p>  Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p>  END COMPONENT;</p><p>  SIGNAL C,D,A1,A2,A3,A4,SOUND:STD_LOGIC;</p><p>  SIGNAL B1,B2,E,F:STD_LOGIC_VECTOR(3 DOWNTO 0);</p

95、><p>  SIGNAL M:STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  U1:suocunqi PORT MAP (D1=>D1,D2=>D2,D3=>D3,D4=>D4,CLK=>C,CLR=>CLR,</p>

96、<p>  Q1=>A1,Q2=>A2,Q3=>A3,Q4=>A4,AlM=>D);</p><p>  U2:pianxuan PORT MAP( CLK=>CLK,A=>SEL);</p><p>  U3:jianbie PORT MAP ( CLK=>CLK,CLR=>CLR,Q=>C);</p>

97、<p>  U4:daojishi PORT MAP (CLK=>CLK,L=>B1,H=>B2,SOUND=>SOUND,EN=>D);</p><p>  U5:zhuanhuan PORT MAP(D1=>A1,D2=>A2,D3=>A3,D4=>A4,Q=>E);</p><p>  U6:sanxuanyi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論