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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42、;b>  六、心得體會(huì)</b></p><p>  這次設(shè)計(jì)中,我花了不少的時(shí)間,其中有苦也有樂??嗟氖俏腋冻隽瞬簧俚暮顾瑯返氖窃诟冻龅倪^程中我得到了許多,也學(xué)會(huì)了許多。</p><p>  因?yàn)橐粋€(gè)人的能力畢竟有限,在設(shè)計(jì)方面難免會(huì)出現(xiàn)這樣那樣的錯(cuò)誤,但正是這些錯(cuò)誤促進(jìn)了我的進(jìn)步。根據(jù)電路的特點(diǎn),我用層次化結(jié)構(gòu)化設(shè)計(jì)概念,將此項(xiàng)設(shè)計(jì)任務(wù)分成若干模塊,規(guī)定每一模塊的功能

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

44、軟件設(shè)計(jì)的方法,完成一個(gè)項(xiàng)目的的程序,進(jìn)一步了解了設(shè)計(jì)的步驟,進(jìn)一步加深了對(duì)課程的理解,增強(qiáng)了以后學(xué)習(xí)的興趣,為以后的工作積累了一定的經(jīng)驗(yàn),感謝學(xué)院及張老師給我們提供這次設(shè)計(jì)的機(jī)會(huì)。</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 --邊緣檢測(cè)信號(hào)為低電平

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個(gè)變量</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 --檢測(cè)為高電平,則有人搶答</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、計(jì)時(shí)模塊源代碼</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; --定義標(biāo)準(zhǔn)邏輯位矢量類型</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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論