




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、長沙理工大學(xué)計算機(jī)組成原理課程設(shè)計報告毛 俊學(xué) 院 計算機(jī)與通信工程 專 業(yè) 網(wǎng)絡(luò)工程 班 級 網(wǎng)絡(luò)工程08-02學(xué)號 200858080214學(xué)生姓名 毛 俊指導(dǎo)教師 蔡 爍課程成績 完成日期 2010年12月31日課程設(shè)計任務(wù)書計算機(jī)與通信工程學(xué)院計算機(jī)科學(xué)與技術(shù)專業(yè)課程名稱計算機(jī)組成原理課程設(shè)計時間20102011學(xué)年第一學(xué)期1718周學(xué)生姓名毛俊指導(dǎo)老師蔡 爍題 目基于單片機(jī)水溫控制系統(tǒng)主要內(nèi)容:使用EDA技術(shù)并用VHDL語言來設(shè)計一個智力競賽搶答器,從而達(dá)到熟練掌握VHDL。要求:(1)通過對相應(yīng)文獻(xiàn)的收集、分析以及總結(jié),給出相應(yīng)課題的背景、意義及現(xiàn)狀研究分析。(2)通過課題設(shè)計,掌
2、握計算機(jī)組成原理的分析方法和設(shè)計方法。(3)學(xué)按要求編寫課程設(shè)計報告書,能正確闡述設(shè)計和實(shí)驗(yàn)結(jié)果。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極投入到課程設(shè)計過程中,認(rèn)真查閱相應(yīng)文獻(xiàn)以及實(shí)現(xiàn),給出個人分析、設(shè)計以及實(shí)現(xiàn)。應(yīng)當(dāng)提交的文件:(1)課程設(shè)計報告。(2)課程設(shè)計附件(主要是源程序)。課程設(shè)計成績評定學(xué) 院 計算機(jī)通信工程 專 業(yè) 網(wǎng)絡(luò)工程班 級 網(wǎng)絡(luò)08-02 班 學(xué) 號 200858080214學(xué)生姓名 毛 俊 指導(dǎo)教師 蔡 爍課程成績 完成日期 2010年12月31日指導(dǎo)教師對學(xué)生在課程設(shè)計中的評價評分項(xiàng)目優(yōu)良中及格不及格課程設(shè)計中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計完成情況課程設(shè)計動手
3、能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計論文的質(zhì)量指導(dǎo)教師對課程設(shè)計的評定意見綜合成績 指導(dǎo)教師簽字 年 月 日基于VHDL的智力競賽搶答器學(xué)生:毛 俊 指導(dǎo)老師:蔡 爍摘要:EDA技術(shù)作為現(xiàn)代電子設(shè)計最新技術(shù)的結(jié)晶,其廣闊的應(yīng)用前景和深遠(yuǎn)的影響已毋庸置疑,它在信息工程類專業(yè)中的基礎(chǔ)地位和核心作用也逐漸被人們所認(rèn)識。許多高等學(xué)校開設(shè)了相應(yīng)的課程,并為學(xué)生提供了課程設(shè)計、綜合實(shí)踐、電子設(shè)計競賽、畢業(yè)設(shè)計、科學(xué)研究和產(chǎn)品開發(fā)等EDA技術(shù)的綜合應(yīng)用實(shí)踐環(huán)節(jié)。相關(guān)的工程技術(shù)人員也特別重視學(xué)習(xí)EDA技術(shù),并渴望提高其工程應(yīng)用能力。 對于迅猛發(fā)展的EDA技術(shù)的綜合應(yīng)用,從EDA技術(shù)的綜
4、合應(yīng)用系統(tǒng)的深度來分,可分為3個層次: 功能電路模塊的設(shè)計; 算法實(shí)現(xiàn)電路模塊的設(shè)計; 片上系統(tǒng)/嵌入式系統(tǒng)/現(xiàn)代DSP系統(tǒng)的設(shè)計。 從EDA技術(shù)的綜合應(yīng)用系統(tǒng)的最終主要硬件構(gòu)成來分,已出現(xiàn)6種形式: CPLD/FPGA系統(tǒng); "CPLD/FPGA+MCU"系統(tǒng); "CPLD/FPGA+專用DSP處理器"系統(tǒng); 基于FPGA實(shí)現(xiàn)的現(xiàn)代DSP系統(tǒng); 基于FPGA實(shí)現(xiàn)的SOC片上系統(tǒng); 基于FPGA實(shí)現(xiàn)的嵌入式系統(tǒng)。 從EDA技術(shù)的綜合應(yīng)用系統(tǒng)的完善層次來分,可分為3個層次:"
5、;EDA綜合系統(tǒng)"主體電路的設(shè)計、仿真及硬件驗(yàn)證;"EDA綜合系統(tǒng)"主體電路的設(shè)計、仿真、硬件驗(yàn)證+系統(tǒng)外圍電路PCB的設(shè)計與制作;"EDA綜合系統(tǒng)"主體電路的設(shè)計、仿真、硬件驗(yàn)證+系統(tǒng)整體電路PCB的設(shè)計與制作及系統(tǒng)的組裝、調(diào)試。關(guān)鍵詞:EDA、搶答器、電路設(shè)計、程序設(shè)計、仿真、嵌入式系統(tǒng)目錄1 引言61.1 智力競賽搶答器的設(shè)計目的61.2 本設(shè)計任務(wù)和基本內(nèi)容72 EDA 和VHDL簡介82.1 EDA的簡介82.2.1 VHDL的簡介82.2.2 VHDL語言的特點(diǎn)103 基于VHDL的智力競賽搶答器的設(shè)計規(guī)劃過程103.1智力競賽搶答
6、器的組成原理123.2搶答器模塊的設(shè)計133.2.1鑒別鎖存模塊的設(shè)計133.2.2答題計時模塊的設(shè)計143.2.3計分電路模塊163.2.4掃描顯示模塊194 結(jié)束語22參考文獻(xiàn)23代碼附錄241 引言無論是在學(xué)校、工廠、軍隊(duì)還是益智性電視節(jié)目, 都會舉辦各種各樣的智力競賽, 都會用到搶答器。目前市場上已有各種各樣的智力競賽搶答器, 但絕大多數(shù)是早期設(shè)計的, 以模擬電路、數(shù)字電路或者模擬電路與數(shù)字電路相結(jié)合的產(chǎn)品。這部分搶答器已相當(dāng)成熟, 但功能越多的電路相對來說就越復(fù)雜, 且成本偏高, 故障高, 顯示方式簡單( 有的甚至沒有顯示電路) , 無法判斷提前搶按按鈕的行為, 不便于電路升級換代。
7、本設(shè)計就是基于VHDL設(shè)計的一個智力競賽搶答器盡量使競賽真正達(dá)到公正、公平、公開。1.1 設(shè)計的目的本次設(shè)計的目的就是在掌握EDA實(shí)驗(yàn)開發(fā)系統(tǒng)的初步使用基礎(chǔ)上,了解EDA技術(shù),了解并掌握VHDL硬件描述語言的設(shè)計方法和思想,通過學(xué)習(xí)的VHDL語言結(jié)合電子電路的設(shè)計知識理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識,學(xué)習(xí)VHDL基本單元電路的綜合設(shè)計應(yīng)用。通過對智力競賽搶答器的設(shè)計,鞏固和綜合運(yùn)用所學(xué)課程,理論聯(lián)系實(shí)際,提高設(shè)計能力,提高分析、解決計算機(jī)技術(shù)實(shí)際問題的獨(dú)立工作能力。本文采用經(jīng)輸入與非門和非門后的反饋信號的高電平作為解鎖存,用555定時器的模型來倒計時,同時以脈沖信號來控制加法器和減法器來控制搶
8、答過程中的計分,應(yīng)用二極管和數(shù)碼顯示管為主要部件來設(shè)計掃描顯示器。通過課程設(shè)計深入理解VHDL語言的精髓和掌握運(yùn)用所學(xué)的知識,達(dá)到課程設(shè)計的目標(biāo)。1.2設(shè)計的基本內(nèi)容本文是設(shè)計的一個四路智力競賽搶答器,利用VHDL設(shè)計搶答器的各個模塊,并使用EDA 工具對各模塊進(jìn)行仿真驗(yàn)證。智力競賽搶答器的設(shè)計分為四個模塊:鑒別鎖存模塊;答題計時模塊;搶答計分模塊以及掃描顯示模塊。把各個模塊整合后,通過電路的輸入輸出對應(yīng)關(guān)系連接起來。設(shè)計成一個有如下功能的搶答器:(1)具有第一搶答信號的鑒別鎖存功能。在主持人發(fā)出搶答指令后,若有參賽者按搶答器按鈕,則該組指示燈亮,顯示器顯示出搶答者的組別。同時電路處于自鎖狀態(tài)
9、,使其他組的搶答器按鈕不起作用。(2)具有計分功能。在初始狀態(tài)時,主持人可以設(shè)置答題時間的初始值。在主持人對搶答組別進(jìn)行確認(rèn),并給出倒計時計數(shù)開始信號以后,搶答者開始回答問題。此時,顯示器從初始值開始計時,計至0時停止計數(shù)。(3)具有計分功能。在初始狀態(tài)時,主持人可以給每組設(shè)置初始分值。第三者組搶答完畢后,由主持人打分,答對一次加10分階段,錯則減10分。(4)掃描顯示功能。在初始狀態(tài)時,各組計分給出一個固定的值并將它掃描顯示在屏幕上,當(dāng)計分或者要顯示的數(shù)據(jù)發(fā)生變化時,再次掃描并顯示出來。2 EDA、VHDL簡介2.1 EDA技術(shù) EDA技術(shù)是在電子CAD技術(shù)基礎(chǔ)上發(fā)展起來的計算機(jī)
10、軟件系統(tǒng),是指以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計。利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程在計算機(jī)上自動處理完成。現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA 技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。本文所指
11、的EDA技術(shù),主要針對電子電路設(shè)計、PCB設(shè)計和IC設(shè)計。EDA 設(shè)計可分為系統(tǒng)級、電路級和物理實(shí)現(xiàn)級。2.2 硬件描述語言VHDLVHDL的簡介 VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言 。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡稱87版)之后,各EDA公司相繼推出了自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。此后VHDL在電子設(shè)計領(lǐng)域得到了廣
12、泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語言。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計任務(wù)。 VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于
13、一般的計算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計,或稱設(shè)計實(shí)體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實(shí)體。這種將設(shè)計實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點(diǎn)。VHDL比其它硬件描述語言相比有以下優(yōu)點(diǎn): (1)與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保
14、證。(2)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗(yàn)設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。(3)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實(shí)現(xiàn)。(4)對于用VHDL完成的一個確定的設(shè)計,可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。(5)VHDL對設(shè)計的描述具有相對獨(dú)立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計。VHDL語言的特點(diǎn)應(yīng)用VHDL進(jìn)行系統(tǒng)設(shè)計,
15、有以下幾方面的特點(diǎn)。(一)功能強(qiáng)大VHDL具有功能強(qiáng)大的語言結(jié)構(gòu)。它可以用明確的代碼描述復(fù)雜的控制邏輯設(shè)計。并且具有多層次的設(shè)計描述功能,支持設(shè)計庫和可重復(fù)使用的元件生成。VHDL是一種設(shè)計、仿真和綜合的標(biāo)準(zhǔn)硬件描述語言。(二)可移植性VHDL語言是一個標(biāo)準(zhǔn)語言,其設(shè)計描述可以為不同的EDA工具支持。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。此外,通過更換庫再重新綜合很容易移植為ASIC設(shè)計。(三)獨(dú)立性VHDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān)。設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行
16、獨(dú)立的設(shè)計。程序設(shè)計的硬件目標(biāo)器件有廣闊的選擇范圍,可以是各系列的CPLD、FPGA及各種門陣列器件。(四)可操作性由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對于已完成的設(shè)計,在不改變源程序的條件下,只需改變端口類屬參量或函數(shù),就能輕易地改變設(shè)計的規(guī)模和結(jié)構(gòu)。(五)靈活性VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語句和庫函數(shù)。使其在任何大系統(tǒng)的設(shè)計中,隨時可對設(shè)計進(jìn)行仿真模擬。所以,即使在遠(yuǎn)離門級的高層次(即使設(shè)計尚未完成時),設(shè)計者就能夠?qū)φ麄€工程設(shè)計的結(jié)構(gòu)和功能的可行性進(jìn)行查驗(yàn),并做出決策。3 設(shè)計規(guī)劃過程3.1智力競賽搶答器的組成原理因?yàn)樵O(shè)計的是四路搶答器,所以系統(tǒng)的
17、輸入信號有:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號CLR,系統(tǒng)時鐘信號CLK,計分復(fù)位端RST,加分按鈕端ADD,計時預(yù)置控制端LDN,計時使能端EN,計時預(yù)置數(shù)據(jù)調(diào)整按鈕TA、TB;系統(tǒng)的輸出信號有:四個組搶答成功與否的指示燈控制信號輸出口LEDA、LEDB、LEDC、LEDD,四個組搶答時的計時數(shù)碼顯示控制信號若干,搶答成功組別顯示的控制信號若干,各組計分動態(tài)顯示的控制信號若干。根據(jù)以上的分析,我們可將整個系統(tǒng)分為四個主要模塊:鑒別鎖存模塊,答題計時模塊,計分電路模塊,掃描顯示模塊??傁到y(tǒng)框圖如3.1所示。 第四組 第一組掃描顯示揚(yáng)聲器組別顯示主持人復(fù)位時間到搶答信號計 分 電 路答題
18、計時電路 第一信號輸出第一信號鑒別,鎖存加分復(fù)位減分圖3.1 系統(tǒng)框圖3.2搶答器模塊的設(shè)計搶答器中各個模塊由VHDL實(shí)現(xiàn)后,利用EDA工具對各模塊進(jìn)行了時序仿真(Timing Simulation),其目的是通過時序可以更清楚的了解程序的工作過程。鑒別鎖存模塊的設(shè)計鑒別鎖存模塊的關(guān)鍵是準(zhǔn)確判斷出第一搶答者并將其鎖存,實(shí)現(xiàn)的方法可使用觸發(fā)器或鎖存器,在得到第一信號后將輸入封鎖,使其它組的搶答信號無效。形成第一搶答信號后,用編碼、譯碼及數(shù)碼顯示電路顯示第一搶答者的組別,控制揚(yáng)聲器發(fā)出音響,并啟動答題計時電路。本模塊采用74HC373芯片,一開始,當(dāng)所有開關(guān)均未按下時,鎖存器輸出全為高電平,經(jīng)輸入
19、與非門和非門后的反饋信號仍為高電平,該信號作為鎖存器使能端控制信號,使鎖存器處于等待接收觸發(fā)輸入狀態(tài);當(dāng)任一開關(guān)按下時,輸出信號中必有一路為低電平,則反饋信號變?yōu)榈碗娖?,鎖存器剛剛接收到的開關(guān)被鎖存,這時其它開關(guān)信息的輸入將被封鎖。由此可見,觸發(fā)鎖存電路具有時序電路的特征,是實(shí)現(xiàn)搶答器功能的關(guān)鍵。鑒別鎖存電路可以由VHDL程序來實(shí)現(xiàn),以下是一斷鑒別鎖存的VHDL程序: BEGIN PROCESS(CLK) IS BEGIN IF CLR='0' THEN STATES<="0000" A1<='0'B1<='0
20、9;C1<='0'D1<='0' ELSIF CLK'EVENT AND CLK='1' THEN IF (A='0'AND B='1'AND C='1'AND D='1') THEN A1<='1' B1<='0' C1<='0' D1<='0' STATES<=W1; ELSIF (A='1'AND B='0'AND C='1&
21、#39;AND D='1') THEN A1<='0' B1<='1' C1<='0' D1<='0' STATES<=W2; ELSIF (A='1'AND B='1'AND C='0'AND D='1') THEN A1<='0' B1<='0' C1<='1' D1<='0' STATES<=W3; ELSIF (A=
22、9;1'AND B='1'AND C='1'AND D='0') THEN A1<='0' B1<='0' C1<='0' D1<='1' STATES<=W4; - ELSE A1<='0' B1<='0' C1<='0' D1<='0' STATES<="0000" END IF; END IF; END PROCESS; END
23、 ARCHITECTURE ART; 鑒別鎖存電路由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖所示。 圖 鑒別鎖存仿真圖時序仿真分析:RST,STA為輸入控制信號,A,B,C,D為輸入信號,表示參與答題的四位選手,START,A1,B1,C1,D1為輸出信號,表示搶答的輸出結(jié)果,如圖所示:當(dāng)A,B,C,D四個輸入信號,有一個先為1時候,表示首先搶答,則輸出A1為1,表示搶答成功,其他信號被屏蔽,為無效信號。3.2.2答題計時模塊答題計時模塊的任務(wù)是當(dāng)主持人啟動這個計時開關(guān)時開始計時,如果在規(guī)定的時間內(nèi)答完題則答題有效,如果在規(guī)定的時間內(nèi)沒有完成,則答題無效。計時器從規(guī)定的時間倒計時,計時為零時計時結(jié)束。
24、答題有無效作憑主持人來判斷。本模塊由比較器C1和C2,基本RS觸發(fā)器和三極管T1組成。兩個比較器的翻轉(zhuǎn)分別由高電平觸發(fā)THR和低電平觸發(fā)TRI的輸入電壓與比較基準(zhǔn)電壓比較決定,其輸出控制RS觸發(fā)器和放電BJT晶體客T的狀態(tài)。計時電路可以由VHDL程序來實(shí)現(xiàn),以下是一斷計時的VHDL程序: BEGIN IF CLR='0' THEN DA<="0000" DB<="0000" ELSIF clock'event and clock='1' then IF TA='0' THEN IF DA
25、="1001" THEN DA<="0000" ELSE DA<=DA+'1' ; END IF; END IF; IF TB='0' THEN IF DB="1001" THEN DB<="0000" ELSE DB<=DB+'1' END IF; END IF; END IF; END PROCESS; PROCESS(clock) IS VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIAB
26、LE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLR='0' THEN TMPA:="0000" TMPB:="0000" ELSIF clock'EVENT AND clock='1' THEN IF LDN='0' THEN TMPA:=DA; TMPB:=DB; ELSIF EN='1' THEN IF TMPA="0000" THEN TMPA:="1001" IF TMPB="
27、;0000" THEN TMPB:="1001" ELSE TMPB:=TMPB-1; END IF; ELSE TMPA:=TMPA-1; END IF; END IF; END IF; QA<=TMPA; QB<=TMPB; END PROCESS; END ARCHITECTURE ART; 答題計時電路由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖所示。 圖 答題計時仿真圖時序仿真分析:CLK為輸入時鐘信號,LDN為輸入信號,表示開始答題,如圖所示:當(dāng)選手開始答題的時候,CLK輸入時鐘脈沖信號,開始記時間,當(dāng)選手答題完畢后,記時結(jié)束,如若在規(guī)定時間內(nèi)沒完成
28、答題,則表示答題失敗。3.2.3計分電路模塊計分電路模塊是給答題人計分用的,按照規(guī)定如果主持人判定答題有效則加分,如無效則按照設(shè)定不加分或者扣分。并將分?jǐn)?shù)顯示在計分屏幕上。本模塊采用74LS112芯片,設(shè)置成兩個電路一個加法器和一個減法器。個位電路始終顯示為0所以將它直接接顯示器的個位,再把十位的看成個位加減,依此類推。電路中設(shè)加分,減分和復(fù)位按鈕。加法器和減法器電路中的單脈沖分別為加分和減分按鈕,而兩個電路中的清零電平開關(guān)就是復(fù)位按鈕。計分電路可以由VHDL程序來實(shí)現(xiàn),以下是一斷計分的VHDL程序:BEGIN IF (clk'EVENT AND clk='1') TH
29、EN IF RST='0' THEN POINTS_A1:="0000" POINTS_B1:="0000" POINTS_C1:="0000" POINTS_D1:="0000" ELSIF ADD='0' then cnt:=cnt+1; IF cnt=2500000 then cnt:=0; IF CHOS="0001" THEN IF POINTS_A1="1001" THEN POINTS_A1:="0000" E
30、LSE POINTS_A1:=POINTS_A1+'1' END IF; ELSIF CHOS="0010" THEN IF POINTS_B1="1001" THEN POINTS_B1:="0000" ELSE POINTS_B1:=POINTS_B1+'1' END IF; ELSIF CHOS="0011" THEN IF POINTS_C1="1001" THEN POINTS_C1:="0000" ELSE POINTS_C1:=P
31、OINTS_C1+'1' END IF; ELSIF CHOS="0100" THEN IF POINTS_D1="1001" THEN POINTS_D1:="0000" ELSE POINTS_D1:=POINTS_D1+'1' END IF; else cnt:=0; END IF; END IF; END IF; END IF; AA1<=POINTS_A1; BB1<=POINTS_B1; CC1<=POINTS_C1; DD1<=POINTS_D1; END PROC
32、ESS; END ARCHITECTURE ART;計分電路由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖所示。 圖 計分電路仿真圖時序仿真分析:RST為輸入控制信號,用來復(fù)位,ADD為輸入信號,表示答對一題加分,CHOSE輸入信號,用來選擇選手,AA2,AA1,AA0,BB2,BB1,BB0為輸出信號,表示記分的結(jié)果,如圖所示:選擇A選手答題,如答對,則輸出A2為1,如答錯,則輸出A1為-1,如沒答,則輸出A0為0。3.2.4掃描顯示模塊此模塊將計分電路中的計分結(jié)果通過掃描并顯示出來于屏幕上。搶答者和觀眾則通過顯示屏幕上的分?jǐn)?shù)來判別競賽都之間的成績。最終勝負(fù)結(jié)果也是通過這個分?jǐn)?shù)來判別的。顯示部分采用動態(tài)
33、掃描4 位LED 顯示接口電路, LED 動態(tài)顯示是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式, 其接口電路是把所有顯示器的8個筆劃段adp 同名端并聯(lián)在一起, 而每一個顯示器的公共極COM是各自獨(dú)立地受I/O 線控制, CPU 的字段輸出口送出字形碼時, 所有顯示器由于同名端并連接收到相同的字形碼, 但究竟哪個顯示器亮, 則取決于COM端, 而這一端是由I/O 控制的, 所以就可以自行決定何時顯示哪一位了, 在輪流點(diǎn)亮掃描過程中, 每位顯示器的點(diǎn)亮?xí)r間表是極為短暫的, 但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝將就盡管實(shí)際上各位顯示器并非同時點(diǎn)亮, 但只要掃描速度足夠快, 給人的印象就是一組穩(wěn)定的顯示
34、數(shù)據(jù), 不會有閃爍感。掃描顯示電路可以由VHDL程序來實(shí)現(xiàn),以下是一斷掃描顯示的VHDL程序:begin if (clk_fresh'event and clk_fresh='1') then cnt:=cnt+1; if cnt="000" then segcs<="10000000" seg<=ZBXS; elsif cnt="001" then segcs<="00100000" seg<=A1; elsif cnt="010" then s
35、egcs<="00010000" seg<=B1; elsif cnt="011" then segcs<="00001000" seg<=C1; elsif cnt="100" then segcs<="00000100" seg<=D1; elsif cnt="101" then segcs<="00000010" seg<=JSXS1; elsif cnt="110" then se
36、gcs<="00000001" seg<=JSXS2; elsif cnt="111" then segcs<="00000000" seg<="0000000" end if; end if;end process;end rtl;掃描顯示由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖所示。 圖 掃描顯示電路仿真圖時序仿真分析:IN4為輸入信號,OUT為輸出顯示信號,如圖所示,把輸入信號進(jìn)行編碼輸出。4 結(jié)束語通過一個多星期的緊張工作,我終于完成了基于VHDL的四路智力競賽搶答器的設(shè)計。通過本次課程設(shè)
37、計的學(xué)習(xí),我深深的體會到設(shè)計課的重要性和目的性所在。本次設(shè)計課不僅僅培養(yǎng)了我們實(shí)際操作能力,也培養(yǎng)了我們靈活運(yùn)用課本知識,理論聯(lián)系實(shí)際,獨(dú)立自主的進(jìn)行設(shè)計的能力。它不僅僅是一個學(xué)習(xí)新知識新方法的好機(jī)會,同時也是對我所學(xué)知識的一次綜合的檢驗(yàn)和復(fù)習(xí),使我明白了自己的缺陷所在,從而查漏補(bǔ)缺。希望學(xué)校以后多安排一些類似的實(shí)踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。在設(shè)計中要求我要有耐心和毅力,還要細(xì)心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,而對錯誤的檢查要求我要有足夠的耐心,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗(yàn),對以后從事集成電路設(shè)計工作會有一定的幫助。在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并
38、行運(yùn)行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。用VHDL硬件描述語言的形式來進(jìn)行數(shù)字系統(tǒng)的設(shè)計方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真度極大地減少了電路設(shè)計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設(shè)計方法必將在未來的數(shù)字系統(tǒng)設(shè)計中發(fā)揮越來越重要的作用。參考文獻(xiàn)1康華光電子技術(shù)基礎(chǔ)教程部分M北京:高等教育版社,20002宋衛(wèi)海,王明晶數(shù)字電子技術(shù)M濟(jì)南:山東科學(xué)技術(shù)出版社,20063曾繁泰,陳美金.VHDL程序設(shè)計M.北京:清華大學(xué)出版社,20014潘松.VHDL實(shí)用教程M.成都:電子科技大學(xué)出版社,2000附件(1)SCN 模塊的VHDL程序:-任一選手按下鍵后,鎖存器完成鎖存,對
39、-其余選手的請求不做響應(yīng),直到主持人按-下復(fù)位鍵 -LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCN IS PORT( CP:IN STD_LOGIC; CLR:IN STD_LOGIC; Q:OUT STD_LOGIC);END SCN;ARCHITECTURE RTL OF SCN ISBEGIN PROCESS(CP,CLR) BEGIN IF CLR='0' THEN -不完整的條件產(chǎn)生鎖存 Q<='0' ELSIF CP'EVENT AND CP='0' THEN Q&
40、lt;='1' END IF; END PROCESS;END RTL;(2)譯碼器模塊YMQ的VHDL程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END YMQ; ARCHITECTURE ART OF YMQ ISBEGIN PROCESS(AIN4) BEGIN C
41、ASE AIN4 IS when "0000" =>DOUT7<="1000000"-0 when "0001" =>DOUT7<="1111001"-1 when "0010" =>DOUT7<="0100100"-2 when "0011" =>DOUT7<="0110000"-3 when "0100" =>DOUT7<="0011001&q
42、uot;-4 when "0101" =>DOUT7<="0010010"-5 when "0110" =>DOUT7<="0000010"-6 when "0111" =>DOUT7<="1111000"-7 when "1000" =>DOUT7<="0000000"-8 when "1001" =>DOUT7<="0010000"-
43、9 when others =>DOUT7<="1111111" END CASE; END PROCESS; END ARCHITECTURE ART;(3)顯示模塊的VHDL程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity seg is Port (clk : in std_logic; A1:in std_logic_vector(6 downto 0); B1:in std_logi
44、c_vector(6 downto 0); C1:in std_logic_vector(6 downto 0); D1:in std_logic_vector(6 downto 0); ZBXS:in std_logic_vector(6 downto 0); JSXS1:in std_logic_vector(6 downto 0); JSXS2:in std_logic_vector(6 downto 0); seg : out std_logic_vector(6 downto 0); -輸出7位seg數(shù)據(jù); segcs : out std_logic_vector(7 downto
45、0); -數(shù)碼管位選信號;end seg;architecture rtl of seg issignal clk_fresh : std_logic;beginprocess(clk)- -1KHZ;用于數(shù)碼管掃描信號variable cnt : integer range 0 to 20000;-定時1MSbegin if clk'event and clk='1' then cnt:=cnt+1; if cnt<10000 then clk_fresh<='1' elsif cnt<20000 then clk_fresh<
46、='0' else cnt:=0;clk_fresh<='0' end if; end if;end process;process(clk_fresh)-位選信號(掃描時間1MS)variable cnt : std_logic_vector(2 downto 0);begin if (clk_fresh'event and clk_fresh='1') then cnt:=cnt+1; if cnt="000" then segcs<="10000000" seg<=ZBXS;
47、 elsif cnt="001" then segcs<="00100000" seg<=A1; elsif cnt="010" then segcs<="00010000" seg<=B1; elsif cnt="011" then segcs<="00001000" seg<=C1; elsif cnt="100" then segcs<="00000100" seg<=D1; els
48、if cnt="101" then segcs<="00000010" seg<=JSXS1; elsif cnt="110" then segcs<="00000001" seg<=JSXS2; elsif cnt="111" then segcs<="00000000" seg<="0000000" end if; end if;end process;end rtl;(4)主控模塊QDJB的VHDL程序:LIBRA
49、RY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT(CLR: IN STD_LOGIC; CLK: IN STD_LOGIC; A, B, C, D: IN STD_LOGIC; A1,B1,C1,D1: OUT STD_LOGIC; STATES: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY QDJB; ARCHITECTURE ART OF QDJB IS CONSTANT W1: STD_LOGIC_VECTOR:="0001" CONSTANT W2: ST
50、D_LOGIC_VECTOR:="0010" CONSTANT W3: STD_LOGIC_VECTOR:="0011" CONSTANT W4: STD_LOGIC_VECTOR:="0100" BEGIN PROCESS(CLK) IS BEGIN IF CLR='0' THEN STATES<="0000" A1<='0'B1<='0'C1<='0'D1<='0' ELSIF CLK'EVEN
51、T AND CLK='1' THEN IF (A='0'AND B='1'AND C='1'AND D='1') THEN A1<='1' B1<='0' C1<='0' D1<='0' STATES<=W1; ELSIF (A='1'AND B='0'AND C='1'AND D='1') THEN A1<='0' B1<=
52、9;1' C1<='0' D1<='0' STATES<=W2; ELSIF (A='1'AND B='1'AND C='0'AND D='1') THEN A1<='0' B1<='0' C1<='1' D1<='0' STATES<=W3; ELSIF (A='1'AND B='1'AND C='1'AND D='0
53、9;) THEN A1<='0' B1<='0' C1<='0' D1<='1' STATES<=W4; - ELSE A1<='0' B1<='0' C1<='0' D1<='0' STATES<="0000" END IF; END IF; END PROCESS; END ARCHITECTURE ART; (5)定時模塊的VHDL程序:LIBRARY IEEE; USE IEEE.
54、STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ IS PORT(CLR,LDN,EN,CLK: IN STD_LOGIC; TA,TB: IN STD_LOGIC; QA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY JSQ; ARCHITECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DB: STD_LO
55、GIC_VECTOR(3 DOWNTO 0); signal tempcounter: integer range 0 to 5000000; signal clock:std_logic; BEGINprocess(clk)beginif(clk'event and clk='1')then-上升沿tempcounter<=tempcounter+1;if tempcounter<2500000 then clock<='0'elsif tempcounter<5000000 then clock<='1'
56、else tempcounter<=0;clock<='1'end if;end if;-end if;end process; PROCESS(TA,TB,CLR,clock) IS BEGIN IF CLR='0' THEN DA<="0000" DB<="0000" ELSIF clock'event and clock='1' then IF TA='0' THEN IF DA="1001" THEN DA<="0000" ELSE DA<=DA+'1' ; END IF; END IF; IF TB='0' THEN IF DB="1001" THEN DB<="0000" ELSE DB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國超聲切割止血刀市場前景預(yù)測及投資規(guī)劃研究報告
- 2025年中國環(huán)境污染防治專用設(shè)備制造市場供需格局及未來發(fā)展趨勢報告
- 2025-2030年中國多功能攝影床項(xiàng)目投資可行性研究分析報告
- 二零二五年度北京零售店長聘用與供應(yīng)鏈風(fēng)險管理合同
- 2025年中國環(huán)氧防腐膠市場調(diào)查研究報告
- 2025年中國牙杯架市場調(diào)查研究報告
- 貨架合同范本
- 2025年度辦公室租賃與綠化養(yǎng)護(hù)服務(wù)合同
- 出資股份合同范本
- 合同范本需求表
- 工業(yè)機(jī)器人仿真與離線編程項(xiàng)目-8-KUKA-Sim-Pro-軟件的介紹及基本操作
- 第2課++生涯規(guī)劃+筑夢未來(課時2)【中職專用】中職思想政治《心理健康與職業(yè)生涯》高效課堂 (高教版基礎(chǔ)模塊)
- 2023年江蘇省鎮(zhèn)江市中考數(shù)學(xué)試卷及答案
- 高校輔導(dǎo)員招聘筆試試題及答案
- 密目網(wǎng)覆蓋施工方案
- 學(xué)前兒童角色游戲的組織與指導(dǎo)(學(xué)前兒童游戲課件)
- 新藥研發(fā)的過程
- 浙教版一年級下冊勞動全冊教學(xué)課件
- 2024年臺州市宏泰供電服務(wù)有限公司招聘筆試參考題庫附帶答案詳解
- 廚房安全知識課件
- 部編版語文四年級下冊第四單元整體教學(xué)設(shè)計教案
評論
0/150
提交評論