2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  1 引言</b></p><p>  EDA技術(shù)是指以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計。</p><p>  利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版

2、圖的整個過程的計算機(jī)上自動處理完成。</p><p>  現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA 技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。</p><p>  傳統(tǒng)的設(shè)計方法采用自底向上的設(shè)計方法

3、,一般先按電子系統(tǒng)的具體功能要求進(jìn)行功能劃分,然后對每個子模塊畫出真值表,用卡諾圖進(jìn)行手工邏輯簡化,寫出布爾表達(dá)式,畫出相應(yīng)的邏輯線路圖,再據(jù)此選擇元器件,設(shè)計電路板,最后進(jìn)行實測與調(diào)試,由于無法進(jìn)行硬件系統(tǒng)功能仿真,如果某一過程存在錯誤,查找和修改十分不便,所以這是一種費時、費力的設(shè)計方法,而現(xiàn)代電子設(shè)計技術(shù)(EDA)是自頂向下且先進(jìn)高效的。在電子產(chǎn)品的設(shè)計理念、設(shè)計方式、系統(tǒng)硬件構(gòu)成、設(shè)計的重用性、知識產(chǎn)權(quán)、設(shè)計周期等方面,EDA技

4、術(shù)具有一定的優(yōu)勢。所以本次設(shè)計的搶答器拋棄了傳統(tǒng)的設(shè)計方法,選擇了采用主流的EDA技術(shù)進(jìn)行設(shè)計。</p><p>  智力競賽是“快樂學(xué)習(xí)”這一教育模式的典范,它采用在規(guī)定的一段時間內(nèi)搶答和必答等方式,在給人們的生活帶來樂趣的同時,也使參與者和觀眾在愉悅的氛圍中學(xué)到一些科學(xué)知識和生活知識,因此很受大家的喜歡。智力搶答器在智力競賽中起到很重要的角色,能夠準(zhǔn)確、公正、直觀地判斷出首輪搶答者,并且通過搶答器的數(shù)碼顯示和

5、警示蜂鳴等方式指示出首輪搶答者。</p><p>  2 VHDL硬件描述語言及硬件平臺QuartusII概述</p><p>  2.1VHDL硬件描述語言</p><p>  VHDL全名Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEE

6、E和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言 。自IEEE-1076(簡稱87版)之后,各EDA公司相繼推出自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,簡稱93版。VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多EDA公司支持,在電子工程領(lǐng)域,已成為

7、事實上的通用硬件描述語言。</p><p>  2.1.1 VHDL簡介</p><p>  VHDL語言是一種用于電路設(shè)計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計語言 。</p><p>  VHDL翻譯成中文就是超高速集成電路硬件描述語言,主要是應(yīng)用在數(shù)字電路的設(shè)計中。目前,它

8、在中國的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計中。當(dāng)然在一些實力較為雄厚的單位,它也被用來設(shè)計ASIC。</p><p>  VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風(fēng)格以及語法是十分類似于一般的計算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端

9、口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。</p><p>  與其他硬件描述語言相比,VHDL具有以下特點:</p><p>  1.功能強(qiáng)大、設(shè)計靈活</p><p>  VHDL具有功能強(qiáng)

10、大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計描述功能,層層細(xì)化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計,這是其他硬件描述語言所不能比擬的。VHDL還支持各種設(shè)計方法,既支持自底向上的設(shè)計,又支持自頂向下的設(shè)計;既支持模塊化設(shè)計,又支持層次化設(shè)計。</p><p>  2.支持廣泛、易于修改</p><p>  由于VHDL已

11、經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計過程中,主要的設(shè)計文件是用VHDL編寫的源代碼,因為VHDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計。</p><p>  3.強(qiáng)大的系統(tǒng)硬件描述能力</p><p>  VHDL具有多層次的設(shè)計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采

12、用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。</p><p>  4.獨立于器件的設(shè)計、與工藝無關(guān)</p><p>  設(shè)計人員用VHDL進(jìn)行設(shè)計時,不需要首先考慮選擇完成設(shè)計的器件,就可

13、以集中精力進(jìn)行設(shè)計的優(yōu)化。當(dāng)設(shè)計描述完成后,可以用多種不同的器件結(jié)構(gòu)來實現(xiàn)其功能。</p><p><b>  5.很強(qiáng)的移植能力</b></p><p>  VHDL是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個設(shè)計描述可以被不同的工具所支持,使得設(shè)計描述的移植成為可能。</p><p><b>  6.易于共享和復(fù)用</b><

14、;/p><p>  VHDL采用基于庫(Library)的設(shè)計方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計或使用以前設(shè)計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設(shè)計中進(jìn)行復(fù)用,可以使設(shè)計成果在設(shè)計人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計。</p><p>  2.1.2 VHDL優(yōu)勢</p><p>  1.與其他的硬件描述語言相比,VHDL具有

15、更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。</p><p>  2.VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。</p><p>  3.VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和

16、已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。</p><p>  4.對于用VHDL完成的一個確定的設(shè)計,可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。</p><p>  5.VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)

17、計。</p><p>  2.2硬件平臺QuartusII概述</p><p>  2.2.1 Quartus II介紹</p><p>  Quartus II是Altera 公司單芯片可編程系統(tǒng)(SOPC) 設(shè)計的綜合性環(huán)境,也是適合SOPC的最全面的設(shè)計環(huán)境。它擁有現(xiàn)場可編程門陣列(FPGA) 和復(fù)雜可編程邏輯器件(CPLD) 設(shè)計的所有階段的解決方案。Qua

18、rtus II 設(shè)計軟件改進(jìn)了性能、提升了功能性、解決了潛在的設(shè)計延遲等,在工業(yè)領(lǐng)域率先提供FPGA與mask-programmed devices開發(fā)的統(tǒng)一工作流程。同時,Altera的Quartus II可編程邏輯軟件還屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設(shè)計要求,其中包括支持VHDL、Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。同樣,Quartus II具備仿真功能,同時也支持第三方的

19、仿真工具。Quartus II支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同</p><p>  輸入設(shè)計方式完成的模塊進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計的問題,并且在設(shè)計輸入之后,Quartus II的編譯器將給出設(shè)計輸入的錯誤報告。</p><p>  在設(shè)計實驗過程中有以下幾點需要注意:</p><p>  1.在編程時要注意信號與變量的區(qū)

20、別,并能正確定義和應(yīng)用。</p><p>  2.在創(chuàng)建工程時,要注意工程名和文件名和實體名要保持一致;</p><p>  3.設(shè)計結(jié)束時間時最好是時間周期的15倍,否則可能會出現(xiàn)時序圖圖像重疊不好識別的現(xiàn)象;</p><p>  4.仿真中,適當(dāng)進(jìn)制的轉(zhuǎn)換有時候可以更使觀察者更明顯地看出來時序圖的功能。</p><p>  2.2.2 Q

21、uartus II的設(shè)計優(yōu)勢應(yīng)用舉例</p><p>  隨著邏輯設(shè)計復(fù)雜性的不斷增加,僅依賴于軟件方式的仿真測試來了解設(shè)計系統(tǒng)的硬件功能已經(jīng)遠(yuǎn)遠(yuǎn)不夠了,而需要重復(fù)進(jìn)行硬件系統(tǒng)測試的測試也變得更為困難。嵌入式邏輯分析儀SignalTapII的使用就解決了這一問題。它可以隨設(shè)計文件一并下載于目標(biāo)芯片中,用以捕捉目標(biāo)芯片內(nèi)部系統(tǒng)信號節(jié)點處的信息或總線上的數(shù)據(jù)流,而又不影響原硬件系統(tǒng)的正常工作。【4】嵌入式邏輯分析儀S

22、ignalTapII有很多的優(yōu)點:(1)允許對設(shè)計層次的模塊的信號節(jié)點進(jìn)行測試,可以使用多時鐘驅(qū)動;(2)利用Signal Tap II成功的采集了FPGA內(nèi)部信號的波形,不占用額外的I/O引腳;(3)Signal Tap II為硬件板級調(diào)試工具,它采集的波形是工程下載后的實時波形,方便設(shè)計者查找引起設(shè)計缺陷的原因;(4)節(jié)約成本。Signal Tap II集成在Quartus II軟件中,無需另外付費;(5)能通過設(shè)置以確定前后觸發(fā)捕

23、捉信號信息的比例.</p><p>  除此之外,應(yīng)用Signal Tap II還能解決各種各樣的問題,如外部存儲器的雙向數(shù)據(jù)口的實時波形檢測、驅(qū)動模塊的并串轉(zhuǎn)換波形等。</p><p>  3 智能搶答器系統(tǒng)的設(shè)計與實現(xiàn)</p><p>  3.1 搶答器系統(tǒng)設(shè)計要求 </p><p>  本文是設(shè)計的一個四路智力競賽搶答器,利用V

24、HDL設(shè)計搶答器的各個模塊,并使用EDA 工具對各模塊進(jìn)行仿真驗證。智力競賽搶答器的設(shè)計分為四個模塊:鑒別鎖存模塊;答題計時模塊;答題超時提醒模塊以及顯示模塊。把各個模塊整合后,通過電路的輸入輸出對應(yīng)關(guān)系連接起來。設(shè)計成一個有如下功能的搶答器:</p><p>  (1)設(shè)計一個四組人參加的智力競賽搶答計時器,它具有四路搶答輸入,主持人按下復(fù)位鍵后,系統(tǒng)復(fù)位進(jìn)入搶答狀態(tài),計時顯示初始值; </p>

25、<p> ?。?)某組首先按下?lián)尨疰I,該路搶答信號,競賽搶答器能夠設(shè)別最先搶答的信號,鎖定該信號,同時揚聲器響起,參賽小組的序號在數(shù)碼管上顯示;</p><p> ?。?)主持人對搶答結(jié)果進(jìn)行確認(rèn),給出倒計時計數(shù)允許信號,開始回答問題,計時顯示器從初始值開始以秒為單位倒計時,計數(shù)至0時,停止計數(shù),揚聲器發(fā)出超時報警信號,以中止繼續(xù)回答問題;</p><p>  (4)當(dāng)主持人給出

26、倒計時計數(shù)禁止信號時,揚聲器停止鳴叫;</p><p>  (5)參賽者在規(guī)定時間內(nèi)回答完問題,主持人給出倒計時計數(shù)禁止信號,以免揚聲器鳴叫,按下復(fù)位鍵,又可開始新一輪的搶答;</p><p>  3.2系統(tǒng)總體設(shè)計思想</p><p>  本設(shè)計為四路智能搶答器,所以這種搶答器要求有四路不同組別的搶答輸入信號,并能識別最先搶答的信號,直觀地通過數(shù)顯和蜂鳴等方式顯示

27、出組別;對回答問題所用的時間進(jìn)行計時、顯示、超時報警、預(yù)置答題時間,同時該系統(tǒng)還應(yīng)有復(fù)位、倒計時啟動功能。</p><p>  搶答過程:主持人按下系統(tǒng)復(fù)位鍵(RST),系統(tǒng)進(jìn)入搶答狀態(tài),計時模塊輸出初始信號給數(shù)碼顯示模塊并顯示出初始值。當(dāng)某參賽組搶先將搶答鍵按下時,系統(tǒng)將其余三路搶答信號封鎖,同時揚聲器發(fā)出聲音提示,組別顯示模塊送出信號給數(shù)碼顯示模塊,從而顯示出該搶答成功組臺號,并一直保持到下一輪主持人將系統(tǒng)清

28、零為止。主持人對搶答結(jié)果進(jìn)行確認(rèn),隨后,計時模塊送出倒計時計數(shù)允許信號,開始回答問題,計時顯示器則從初始值開始以計時,計時至0時,停止計時,揚聲器發(fā)出超時報警信號,以中止未回答完問題。當(dāng)主持人給出倒計時停止信號時,揚聲器停止鳴叫。若參賽者在規(guī)定時間內(nèi)回答完為題,主持人可給出倒計時計數(shù)停止信號,以免揚聲器鳴叫。主持人按下復(fù)位鍵,即RST為高電平有效狀態(tài),清除前一次的搶答組別,又可開始新的一輪的搶答。</p><p>

29、;  總系統(tǒng)框圖如圖3.1所示</p><p>  3.3子模塊的設(shè)計思想和實現(xiàn)</p><p>  根據(jù)對搶答器的功能要求,把要設(shè)計的系統(tǒng)劃分為4個功能模塊:搶答信號鑒別模塊、計時模塊,報警模塊和數(shù)碼顯示模塊 。</p><p>  3.3.1 搶答信號鑒別模塊的設(shè)計與實現(xiàn)</p><p>  搶答鑒別模塊用來準(zhǔn)確直觀地判斷A、B、C、D四

30、組搶答者誰最先按下按鈕,并為顯示端送出信號,通過數(shù)顯和蜂鳴等途徑使觀眾能夠清楚地知道是哪一組搶答成功,是整個系統(tǒng)的核心部分。同時組別顯示端為下一模塊輸入信號,以方便主持人為該組搶答成功者進(jìn)行確認(rèn)。</p><p>  輸入信號:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號rst。</p><p>  輸出信號: 各組的搶答按鈕顯示端A1、B1、C1、D1,組別顯示端state[3..0]。&

31、lt;/p><p>  原理:第一個按下鍵的小組,搶答信號判定電路LOCK通過緩沖輸出信號的反饋將本參賽組搶先按下按鍵的信號鎖存,組別顯示和計時會保存到主持人對系統(tǒng)進(jìn)行清零操作時為止。當(dāng)rst=1時系統(tǒng)復(fù)位,使組別顯示信號G=0000,各組的指示燈信號A1=0,B1=0,C1=0,D1=0;當(dāng)rst=0,即低電平有效,使其進(jìn)入搶答鑒別狀態(tài),到CLK的上升沿到來時,以A組搶答成功為例,當(dāng)輸入信號為A=1,B=0,C=0

32、,D=0,輸出信號G=1000,A1=1,即為鑒別出A組搶答成功,同時屏蔽其他組的輸入信號,以免發(fā)生錯誤。同理其他組別搶答成功也是這樣的鑒別過程。</p><p>  理論上來說,A、B、C、D四組搶答,應(yīng)該有從0000—1111等16種可能情況,但是由于時鐘信號的頻率很高而且是在時鐘信號上升沿的狀況下才做出的鑒別,所以在這里兩組以上同時搶答成功的可能性非常小,因此可以只設(shè)計四種情況,即A、B、C、D分別為100

33、0、0100、0010、0001,這大大簡化了電路的設(shè)計復(fù)雜性。</p><p>  鑒別鎖存電路可以由VHDL程序來實現(xiàn),以下是一斷鑒別鎖存的VHDL程序:</p><p>  process(rst,a,b,c,d,clk) </p><p>  variable temp :std_logic_vector (3 downto 0);</p>&

34、lt;p><b>  begin</b></p><p>  if rst='1'then temp:="0000";speaker1<='0'; </p><p>  elsif(a='1'and b='0'and c='0'and d='0

35、9;)then</p><p>  a1<='1'; b1<='0';c1<='0';d1<='0';temp:="0001";speaker1<='1';</p><p>  elsif(a='0'and b='1'and c=

36、'0'and d='0')then</p><p>  a1<='0'; b1<='1';c1<='0';d1<='0';temp:="0010";speaker1<='1';</p><p>  elsif(a='0&#

37、39;and b='0'and c='1'and d='0')then</p><p>  a1<='0'; b1<='0';c1<='1';d1<='0';temp:="0011";speaker1<='1';</p>&

38、lt;p>  elsif(a='0'and b='0'and c='0'and d='1')then</p><p>  a1<='0';b1<='0';c1<='0';d1<='1';temp:="0100";speaker1<=

39、'1';</p><p>  elsif (a='0'and b='0'and c='0'and d='0') then </p><p>  a1<='0'; b1<='0';c1<='0';d1<='0';temp:=&

40、quot;0000";</p><p><b>  end if;</b></p><p>  if en='1' then speaker1<='0';</p><p><b>  end if;</b></p><p>  states<=t

41、emp;</p><p>  end process;</p><p>  鑒別鎖存電路由VHDL程序?qū)崿F(xiàn)后,可以根據(jù)數(shù)碼管顯示判斷搶答成功組號的,其仿真圖如圖3.3.1所示。</p><p>  圖3.3.1 搶答信號鑒別模塊仿真圖</p><p><b>  引腳作用:</b></p><p>

42、;  系統(tǒng)輸入信號:各組的搶答按鈕A、B、C、D,系統(tǒng)清零信號CLR,CLK時鐘信號。</p><p>  系統(tǒng)的輸出信號: 各組的搶答按鈕顯示端A1、B1、C1、D1,組別顯示端控制信號state。</p><p><b>  仿真分析:</b></p><p>  當(dāng)鑒別模塊的清零信號CLR為高電平時,無論A、B、C、D四組參賽者誰按下?lián)尨?/p>

43、按鈕,系統(tǒng)輸出均為零,同時組別顯示端G輸出信號也顯示為零;當(dāng)清零信號CLR為低電平時,A、B、C、D四組參賽者誰先按下?lián)尨鸢粹o,組別顯示端就顯示該組別的號碼。假如A組按下?lián)尨鸢粹o時,組別輸出為0001,同時A組的顯示燈被點亮。</p><p>  3.3.2 計時模塊的設(shè)計與實現(xiàn)</p><p>  當(dāng)搶答鑒別模塊成功判別出最先按下?lián)尨鸢粹o的參賽組后,在成功鑒別出哪組最先搶答后,主持人按下

44、計時信號,則進(jìn)入計時狀態(tài)。10秒時間用兩個數(shù)碼管QA,QB顯示,其中QA表示10秒的個位,QB表示10秒的十位。采用兩個數(shù)碼管以方便隨時對預(yù)置的時間進(jìn)行調(diào)整。計時模塊開始工作從預(yù)置初始值開始以秒計時,計時至0秒時停止,時間耗盡時,計時報警器會發(fā)出超時報警信號,以中止答題。</p><p>  該系統(tǒng)輸入信號有:系統(tǒng)清零信號CLR,計時使能端EN,系統(tǒng)時鐘信號CLK,系統(tǒng)輸出信號有:倒計時輸出端QA[3..0]、Q

45、B[3..0]。</p><p>  當(dāng)清零信號CLR=1時,模塊輸出信號QA=0000 ,QB=0000。在CLR=0, EN=1時,通過時鐘信號CLK的上升沿來進(jìn)行10秒到計時。當(dāng)EN使能信號發(fā)出時,搶答蜂鳴器停止蜂鳴。</p><p>  計時電路可以由VHDL程序來實現(xiàn),以下是計時的VHDL程序:</p><p>  variable tmpa: std_l

46、ogic_vector(3 downto 0);</p><p>  variable tmpb: std_logic_vector(3 downto 0);</p><p><b>  begin </b></p><p>  if rst='1' then tmpa:="0000";tmpb:=&q

47、uot;0001"; speaker2<='0';--fuwei</p><p>  elsif clk'event and clk='1' then</p><p>  if en='1' then </p><p>  if con='1'or(tmpa="000

48、0" and tmpb="0000")then</p><p>  qa<=tmpa;qb<=tmpb; </p><p>  elsif tmpa="0000" then</p><p>  tmpa:="1001";</p><p>  if tmpb=&q

49、uot;0000" then tmpb:="0010";</p><p>  else tmpb:=tmpb-1;</p><p><b>  end if;</b></p><p>  else tmpa:=tmpa-1;</p><p><b>  end if;</b&

50、gt;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  qa<=tmpa;qb<=tmpb;</p><p>  if tmpa="0000" and tmpb="0000"

51、; then -- time over</p><p>  speaker2<='1';</p><p>  if s='1' then</p><p>  speaker2<='0';</p><p><b>  end if;</b></p>

52、<p><b>  end if;</b></p><p>  end process;</p><p>  答題計時電路由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖3.3.2所示。</p><p>  圖3.3.2 計時電路模塊仿真圖</p><p><b>  引腳作用:</b></p&

53、gt;<p>  系統(tǒng)輸入信號:系統(tǒng)清零信號CLR,系統(tǒng)時鐘信號CLK</p><p>  系統(tǒng)輸出信號:倒計時輸出端QA[3..0]、QB[3..0]。</p><p>  仿真分析:當(dāng)系統(tǒng)清零信號CLR=1時,計時器的時鐘信號回到計時預(yù)置倒計時起始狀態(tài),此時倒計時輸出端QA=0000,QB=0000.當(dāng)計時使能端EN=1,系統(tǒng)清零信號CLR=0,通過時鐘信號上升沿CLK來

54、進(jìn)行10秒倒計時。</p><p>  當(dāng)小組開始答題時,答題倒計時的數(shù)碼管顯示信號qa,qb會從初始值開始以秒為單位倒計時,計數(shù)至0時,停止計數(shù)。</p><p>  3.3.3答題超時提醒模塊</p><p>  計時顯示器從初始值開始以秒為單位倒計時,計數(shù)至0時,停止計數(shù),揚聲器發(fā)出超時報警信號,以中止繼續(xù)回答問題。當(dāng)主持人再按下禁止鍵時,揚聲器停止報警。該系

55、統(tǒng)輸入信號有:聲音停止信號s,系統(tǒng)輸出信號有:倒計時輸出端speaker2。</p><p>  process(clk)is</p><p>  variable tmpa: std_logic_vector(3 downto 0);</p><p>  variable tmpb: std_logic_vector(3 downto 0);</p>

56、<p><b>  begin </b></p><p>  if rst='1' then tmpa:="0000";tmpb:="0001"; speaker2<='0';--fuwei</p><p>  elsif clk'event and clk=

57、9;1' then</p><p>  if en='1' then </p><p>  if con='1' or (tmpa="0000" and tmpb="0000" )then qa<=tmpa;qb<=tmpb; </p><p>  elsif tmpa=&

58、quot;0000" then</p><p>  tmpa:="1001";</p><p>  if tmpb="0000" then tmpb:="0010";</p><p>  else tmpb:=tmpb-1;</p><p><b>  end i

59、f;</b></p><p>  else tmpa:=tmpa-1;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>

60、;  qa<=tmpa;qb<=tmpb;</p><p>  if tmpa="0000" and tmpb="0000" then -- time over</p><p>  speaker2<='1';</p><p>  if s='1' then</p>

61、;<p>  speaker2<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  答題超時提醒電路由VHDL程序?qū)崿F(xiàn)后,其仿真圖如圖

62、3.3.3所示</p><p>  圖3.3.2答題警告模塊仿真圖</p><p>  系統(tǒng)輸入信號:及時使能EN,系統(tǒng)時鐘信號CLK</p><p>  系統(tǒng)輸出信號:倒計時輸出端QA[3..0]、QB[3..0]。</p><p>  仿真分析:當(dāng)系統(tǒng)清零信號CLR=1時,計時器的時鐘信號回到計時預(yù)置倒計時起始狀態(tài),此時倒計時輸出端QA=

63、0000,QB=0001.若在指定時間內(nèi)沒有回答完問題,計時器倒計時到00,計時報警器speaker2為高電平。按下s使其停止報警。</p><p>  3.3.4 譯碼顯示模塊的設(shè)計與實現(xiàn)</p><p>  該模塊實際上是一個譯碼器,作用是用來顯示組別和時間,其主要原理是四位二進(jìn)制BCD編碼轉(zhuǎn)換成七段二進(jìn)制數(shù)字,以阿拉伯?dāng)?shù)字的形式輸出在數(shù)碼管上,使觀眾能夠更直觀的看到結(jié)果。譯碼器的譯碼

64、對照表3-1如下所示:</p><p>  表3-1 譯碼器的譯碼對照表</p><p>  備注 :在程序中只考慮0000-1001(即0-9)的情況,將其轉(zhuǎn)化為相應(yīng)的七段顯示器的碼子,其他情況不予考慮。</p><p><b>  結(jié)束語</b></p><p>  本文主要介紹了利用VHDL語言設(shè)計智能搶答器的詳細(xì)

65、流程,并橫向介紹了一些關(guān)于此設(shè)計的背景知識,比如EDA的應(yīng)用、QutartusrⅡ設(shè)計流程等等。在設(shè)計的過程中,文章通過對比傳統(tǒng)的自底向上的設(shè)計方法和和現(xiàn)代EDA的自頂向下的設(shè)計方法,突出了EDA設(shè)計方法的優(yōu)越性。</p><p>  在這次設(shè)計中,我們也遇到了一些問題,比如設(shè)置輸入信號不合適時,時序圖也會出現(xiàn)一些毛刺現(xiàn)象。同時,我也發(fā)現(xiàn)了自己的許多不足。首先,最初開發(fā)時,對系統(tǒng)沒有一個完整的思路,考慮不是很全面

66、,所以系統(tǒng)功能設(shè)計時,碰到不少困難,也耽擱了不少時間。其次,我發(fā)現(xiàn)自己對于書本上的很多知識還不夠熟悉,對開發(fā)工具的掌握還不算很全面,有很多我們需要掌握的知識還沒掌握,所以在設(shè)計編程、編譯以及仿真過程中走了不少彎路。再次,在論文的整理過程中,我對word文檔的操作技能不是很嫻熟,所以在以后的學(xué)習(xí)生活中,我會努力并盡量彌補(bǔ)我所缺少的一些相關(guān)知識,不斷提高自己的操作能力。</p><p><b>  參考文獻(xiàn)

67、</b></p><p>  [1] 漢澤西.EDA技術(shù)與應(yīng)用.北京:北京航空航天大學(xué)出版社,2004</p><p>  [2] 侯伯亨,顧新. VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計.西安:西安電子科技大學(xué)出版社,1997</p><p>  [3] 黃任.編著VHDL入門、解惑、經(jīng)典實例、經(jīng)驗總結(jié).北京:北京航空航天大學(xué)出版社,2005</p

68、><p>  [4] 羅朝霞,高書莉.CPLD/FPGA設(shè)計及應(yīng)用.北京:人民郵電出版社, 2007.7.</p><p>  [5] 陳云恰,保延翔.CPLD應(yīng)用技術(shù)與數(shù)字系統(tǒng)統(tǒng)計.電子工業(yè)出版社, 2006.</p><p>  [6] 李偉英,謝完成.基于EDA技術(shù)的搶答器的設(shè)計與實現(xiàn)【J】.科學(xué)技術(shù)與實現(xiàn), 2008.8(11).</p><

69、p>  [7]譚會生,瞿遂存.EDA技術(shù)綜合應(yīng)用實例與分析【M】.西安:西安電子科技大學(xué)出版社, 2004.</p><p>  [8]姜雪松,吳鈺淳.VHDL設(shè)計實例與仿真.機(jī)械工業(yè)出版社, 2007.</p><p>  [9]Altera Corporation.Altera Digital Library.Altera,2002.</p><p>  

70、[10](美) Stephen Brown , Zvonko Vranesic 編著.Fundamengtals of Digital Logic with VHDL Design.McGraw—Hill Education(Asia),2002.8.</p><p><b>  附錄</b></p><p>  library ieee;</p>&l

71、t;p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity eda is</p><p>  port(rst: in std_logic;</p><p>  a,b,c,d: in std_logic

72、;</p><p>  a1,b1,c1,d1,speaker1,speaker2: out std_logic;</p><p>  states: out std_logic_vector(3 downto 0); </p><p>  en,clk,con:in std_logic;</p><p>  s:in std_log

73、ic;</p><p>  qa:out std_logic_vector(3 downto 0);</p><p>  qb:out std_logic_vector(3 downto 0));</p><p><b>  end eda;</b></p><p>  architecture art of eda i

74、s</p><p>  signal da: std_logic_vector(3 downto 0);</p><p>  signal db: std_logic_vector(3 downto 0);</p><p><b>  begin</b></p><p>  process(rst,a,b,c,d,clk

75、) </p><p>  variable temp :std_logic_vector (3 downto 0);</p><p><b>  begin</b></p><p>  if rst='1'then temp:="0000";speaker1<='0'; </p&g

76、t;<p>  elsif(a='1'and b='0'and c='0'and d='0')then</p><p>  a1<='1'; b1<='0';c1<='0';d1<='0';temp:="0001";speaker

77、1<='1';</p><p>  elsif(a='0'and b='1'and c='0'and d='0')then</p><p>  a1<='0'; b1<='1';c1<='0';d1<='0';temp

78、:="0010";speaker1<='1';</p><p>  elsif(a='0'and b='0'and c='1'and d='0')then</p><p>  a1<='0'; b1<='0';c1<='1

79、9;;d1<='0';temp:="0011";speaker1<='1';</p><p>  elsif(a='0'and b='0'and c='0'and d='1')then</p><p>  a1<='0'; b1<=&#

80、39;0';c1<='0';d1<='1';temp:="0100";speaker1<='1';</p><p>  elsif (a='0'and b='0'and c='0'and d='0') then </p><p>  

81、a1<='0'; b1<='0';c1<='0';d1<='0';temp:="0000";</p><p><b>  end if;</b></p><p>  if en='1' then speaker1<='0';

82、</p><p><b>  end if;</b></p><p>  states<=temp;</p><p>  end process;</p><p>  process(clk)is</p><p>  variable tmpa: std_logic_vector(3 dow

83、nto 0);</p><p>  variable tmpb: std_logic_vector(3 downto 0);</p><p><b>  begin </b></p><p>  if rst='1' then tmpa:="0000";tmpb:="0001"; s

84、peaker2<='0';--fuwei</p><p>  elsif clk'event and clk='1' then</p><p>  if en='1' then </p><p>  if con='1' or (tmpa="0000" and tmp

85、b="0000" )then qa<=tmpa;qb<=tmpb; </p><p>  elsif tmpa="0000" then</p><p>  tmpa:="1001";</p><p>  if tmpb="0000" then tmpb:="0010

86、";</p><p>  else tmpb:=tmpb-1;</p><p><b>  end if;</b></p><p>  else tmpa:=tmpa-1;</p><p><b>  end if;</b></p><p><b>  e

87、nd if;</b></p><p><b>  end if;</b></p><p>  qa<=tmpa;qb<=tmpb;</p><p>  if tmpa="0000" and tmpb="0000" then -- time over</p><

88、p>  speaker2<='1';</p><p>  if s='1' then</p><p>  speaker2<='0';</p><p><b>  end if;</b></p><p><b>  end if;</b&g

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論