電子搶答器課程設(shè)計(jì)論文_第1頁
電子搶答器課程設(shè)計(jì)論文_第2頁
電子搶答器課程設(shè)計(jì)論文_第3頁
電子搶答器課程設(shè)計(jì)論文_第4頁
電子搶答器課程設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 引言現(xiàn)代電子產(chǎn)品在性能提高、復(fù)雜度增大的同時(shí),價(jià)格卻一直呈下降趨勢,而且產(chǎn)品更新?lián)Q代的步伐也越來越快,實(shí)現(xiàn)這種進(jìn)步的主要因素是生產(chǎn)制造技術(shù)和電子設(shè)計(jì)技術(shù)的發(fā)展。前者以微細(xì)加工技術(shù)為代表,目前已進(jìn)展到深亞微米階段,可以在幾平方厘米的芯片上集成數(shù)千萬個(gè)晶體管。后者的核心就是EDA技術(shù)。1.1 關(guān)于 EDAEDA是電子設(shè)計(jì)自動化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來的。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺上,用硬件

2、描述語言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。目前有多種EDA工具支持采用VHDL進(jìn)行電路綜合、仿真以及實(shí)現(xiàn)。一些可編程器件生產(chǎn)商將使用VHDL進(jìn)行電路設(shè)計(jì)所需的多種EDA工具集成為統(tǒng)一的開發(fā)平臺提供給用戶,進(jìn)行針對本公司可編程器件產(chǎn)品的開發(fā),從而使整個(gè)設(shè)計(jì)流程更加簡捷和易于使用。目前比較常見的是Altera公司的QuartusII 和Xilinx 公司的ISE開發(fā)平臺。1.2關(guān)于VHDLVHDL是一種用于電路設(shè)計(jì)的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍

3、用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語言 。VHDL的英文全寫是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級語言。VHDL

4、的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn) 。與其他硬件描述語言相比,VHDL具有以下特點(diǎn):(1)功能強(qiáng)大、設(shè)計(jì)靈活。VHDL具有功能強(qiáng)大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他

5、硬件描述語言雖不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。(2)支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過程中,主要的設(shè)計(jì)文件是用VHDL編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。(3)強(qiáng)大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外

6、,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。(4)獨(dú)立于器件的設(shè)計(jì)、與工藝無關(guān)。設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能。(5)很強(qiáng)的移植能力,易于共享和復(fù)用。VHDL采用基于庫(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員

7、之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。VHDL語言最直接的應(yīng)用領(lǐng)域是可編程邏輯器件和專用集成電路(ASIC:Application Specific Integrated Circuits),其中可編程邏輯器件包括復(fù)雜可編程邏輯器件(CPLD:Complex Programmable Logic Devices )和現(xiàn)場可編程門陣列(FPGA:Field Programmable Gate Arrays )??删幊踢壿嬈骷云呤甏詠?,經(jīng)歷了PAL、GAL、CPLD、FPGA幾個(gè)發(fā)展階段,其中CPLD/FPGA屬高密度可編程邏輯器件,目前集成度已高達(dá)200萬門/片,它將掩膜ASIC集成度高的

8、優(yōu)點(diǎn)和可編程邏輯器件設(shè)計(jì)生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā)。2 功能簡介本次設(shè)計(jì)的四組(人)參加的智力競賽搶答計(jì)時(shí)器,它具有四路搶答輸入,主持人按下復(fù)位鍵后,系統(tǒng)復(fù)位進(jìn)入搶答狀態(tài),計(jì)時(shí)顯示初始值;當(dāng)某組首先按下?lián)尨疰I時(shí),該路搶答信號,競賽搶答器能夠設(shè)別最先搶答的信號,鎖定該信號,同時(shí)揚(yáng)聲器響起,參賽小組的序號在數(shù)碼管上顯示;主持人對搶答結(jié)果進(jìn)行確認(rèn),給出倒計(jì)時(shí)計(jì)數(shù)允許信號,開始回答問題,計(jì)時(shí)顯示器從初始值30開始以秒為單位倒計(jì)時(shí),計(jì)數(shù)至0時(shí),停止計(jì)數(shù),揚(yáng)聲器發(fā)出超時(shí)報(bào)警信號,以中止繼續(xù)回答問題;當(dāng)主持人給出倒計(jì)時(shí)計(jì)數(shù)禁止信號時(shí),揚(yáng)聲器停止鳴叫;參賽者在規(guī)定時(shí)間內(nèi)回答完

9、問題,主持人給出倒計(jì)時(shí)計(jì)數(shù)禁止信號,以免揚(yáng)聲器鳴叫,按下復(fù)位鍵,又可開始新一輪的搶答;總原理圖如圖2-1所示。圖2-1 總原理圖3 系統(tǒng)設(shè)計(jì)本次設(shè)計(jì)的搶答器系統(tǒng)由5部分模塊組成,分別是:選手搶答模塊、鎖存模塊、計(jì)數(shù)模塊、聲音模塊、聲音信號產(chǎn)生模塊。3.1 選手搶答模塊設(shè)計(jì)本模塊主要完成兩個(gè)功能,一是準(zhǔn)確的判斷出第一位搶答者,二是當(dāng)選手搶答后送出聲音使能信號,從而作為下個(gè)模塊的聲音的觸發(fā)信號。其VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;entity xuanshou isport(player:in std_logic_vector(3

10、 downto 0); clear:in std_logic; y1:buffer integer range 0 to 9; y2:out std_logic_vector(3 downto 0); ea:out std_logic);end;architecture bhv of xuanshou isbeginprocess(clear,player )beginif clear=1 then -復(fù)位信號有效則清零;y1=0;y2=0000;eay1=1;y2=0001;eay1=2;y2=0010;eay1=3;y2=0100;eay1=4;y2=1000;eaNULL;end cas

11、e;end if;end process;end;仿真波形如圖3-1-1所示。其中player3,player2,player1,player0分別代表四個(gè)參賽選手,組別為4、3、2、1組。按下clear鍵,系統(tǒng)清零且置ea為高電平,否則,系統(tǒng)自動識別第一位搶答者 player3,并且將ea置低,其后的搶答無效。輸出顯示第一位搶答者的組別4并且使選手前指示燈亮。此模塊生成的元件圖如圖3-1-2所示。圖3-1-1選手搶答模塊仿真圖圖3-1-2 選手搶答元件3.2 鎖存模塊設(shè)計(jì)鎖存模塊是對第一位搶答者的信號進(jìn)行鎖存,其后的信號無效。其中alm0為觸發(fā)選手搶答報(bào)警的聲音信號。整個(gè)模塊VHDL源程序如

12、下:library ieee;use ieee.std_logic_1164.all;entity suocunqi isport(d:in integer range 0 to 9; clear,ea:in std_logic; q: out integer range 0 to 9; clk:in std_logic; alm0:out std_logic); end; architecture bhv of suocunqi is begin process(clear,ea,clk) variable temp:integer range 0 to 20:=0; begin if cl

13、ear=1then q=0;alm0=0;temp:=0; elsif ea=0then -ea為零時(shí)鎖定選手號,再次選中則無效 q=d; if clkevent and clk=1thentemp:=temp+1;if temp=2 then alm0=0; temp:=temp-1; else alm0=1; end if; end if; end if; end process; end;仿真圖及生成元件圖分別如圖3-2-1、圖3-2-2所示圖3-2-1鎖存模塊仿真圖3-2-2 鎖存元件圖3.3計(jì)數(shù)模塊設(shè)計(jì)比賽中要求第一搶答者在規(guī)定時(shí)間內(nèi)回答問題,系統(tǒng)開始30秒倒計(jì)時(shí),倒計(jì)時(shí)完畢發(fā)出響聲

14、,若能在規(guī)定時(shí)間內(nèi)完成,由主持人按使能開關(guān)停止倒計(jì)時(shí),不發(fā)出響聲。整個(gè)計(jì)數(shù)模塊的源程序及仿真圖和元件圖如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishuqi isport(stop,clk,rst,en:in std_logic; m:out std_logic; high,low:out std_logic_vector(3 downto 0);end;architecture bhv of jishuqi issignal hh:std_logic_vector(3

15、 downto 0);signal ll:std_logic_vector(3 downto 0);begin process(clk,rst,en,hh,ll)beginif rst=1 then ll=0000;hh=0011;m=0;elsif clkevent and clk=1 then if en=1 then ll=ll-1; if ll=0000 then ll=1001;hh=hh-1; if hh=0000 and ll=0000 then m=1; -計(jì)時(shí)到則觸發(fā)聲音信號 hh=0000; ll=0000; if stop=1 then -停止計(jì)時(shí) ll=ll;hh=hh

16、; end if; end if; end if; end if;end if;high=ll;low=hh;end process;end;仿真圖:圖3-3-1計(jì)數(shù)模塊仿真圖圖3-3-2 計(jì)數(shù)元件圖3.4 聲音報(bào)警模塊設(shè)計(jì)當(dāng)鎖存器鎖存第一位搶答選手時(shí),觸發(fā)短時(shí)間報(bào)警,顯示搶答完成,并且當(dāng)計(jì)時(shí)完成時(shí)也產(chǎn)生報(bào)警信號。這部分的設(shè)計(jì)程序如下:library ieee;use ieee.std_logic_1164.all;entity shengyin isport(high:in integer range 0 to 9; low:in integer range 0 to 9; stop,m:i

17、n std_logic; clear:in std_logic; alm:out std_logic ); end; architecture bhv of shengyin is begin process(high,low,stop,clear) begin if clear=1then alm=0; elsif stop=1then alm=0; elsif high=0 and low=0 then alm=1; elsif m=1then alm=1; else alm=0; end if; end process; end; 其仿真波形如圖3-4-1所示。圖3-4-1聲音報(bào)警模塊仿

18、真圖元件圖如圖3-4-2所示圖3-4-2 聲音報(bào)警元件圖3.5 聲音信號產(chǎn)生模塊設(shè)計(jì)由于聲音頻率與搶答器頻率不同,因此本模塊使用單獨(dú)的時(shí)間信號,當(dāng)報(bào)警信號為高電平時(shí),此模塊向試驗(yàn)箱上揚(yáng)聲器輸入聲音信號使其產(chǎn)生報(bào)警音,反之則不輸出。其VHDL程序如下:library ieee;use ieee.std_logic_1164.all;entity fenpin is port(a,c:in std_logic; -c為聲音信號的時(shí)鐘 s:out std_logic);end;architecture bhv of fenpin isbegin process(a)beginif a=1thens=

19、c;elses=0;end if;end process;end;仿真圖及元件圖如圖3-5-1、圖3-5-2所示:圖3-5-1 聲音信號產(chǎn)生模塊仿真圖圖3-5-2 聲音模塊生成元件圖3.6 頂層文件設(shè)計(jì)將各個(gè)模塊生成的器件進(jìn)行原理圖連接或是按下面程序進(jìn)行綜合;并設(shè)置為頂層文件,其仿真圖如圖3-6-1所示。整個(gè)系統(tǒng)設(shè)計(jì)完成,下載到實(shí)驗(yàn)箱運(yùn)行成功。library ieee;use ieee.std_logic_1164.all;entity qiangdaqi isport(player:in std_logic_vector(3 downto 0); clear,clk,clock,rst,st

20、op:in std_logic; q:out integer range 0 to 9; y:out std_logic_vector(3 downto 0); alm:out std_logic; high:out integer range 0 to 9; low:out integer range 0 to 9 ); end ; architecture bhv of qiangdaqi is component xuanshou is port(player:in std_logic_vector(3 downto 0); clear:in std_logic; y1:out inte

21、ger range 0 to 9; y2:out std_logic_vector(3 downto 0); ea:out std_logic);end component; component suocunqi isport(d:in integer range 0 to 9; clear,ea:in std_logic; q: out integer range 0 to 9; clk:in std_logic; alm0:out std_logic); end component ; component jishuqi isport(clk,clear,rst,stop:in std_l

22、ogic; high:out integer range 0 to 9; low:out integer range 0 to 9);end component ; component shengyin isport(high:in integer range 0 to 9; low:in integer range 0 to 9; stop,m:in std_logic; clear:in std_logic; alm:out std_logic ); end component;component fenpin isport(a,c:in std_logic; s:out std_logi

23、c);end component; signal x1:integer range 0 to 9; signal x2,x3,x6:std_logic; signal x4:integer range 0 to 9; signal x5:integer range 0 to 9; begin -進(jìn)行元件例化 u1:xuanshou port map(player,clear,x1,y,x2); u2:suocunqi port map(x1,clear,x2,q,clk,x3); u3:jishuqi port map(clk,clear,rst,stop,x4,x5); u4:shengyi

24、n port map(x4,x5,stop,x3,clear,x6);u5:fenpin port map(x6,clock,alm); high=x4; low=x5; end;圖3-6-1總器件仿真圖4 設(shè)計(jì)總結(jié)經(jīng)過了一段時(shí)間的努力我終于完成了四路搶答器的設(shè)計(jì),從方案的選擇,再到設(shè)計(jì)與實(shí)現(xiàn)。在這個(gè)過程中我學(xué)習(xí)到了很多在課本上不能學(xué)習(xí)到的知識,對一個(gè)產(chǎn)品也有了一個(gè)新的認(rèn)識,以前我都很簡單的認(rèn)為一個(gè)產(chǎn)品很容易就做出來了,現(xiàn)在我知道了每一個(gè)產(chǎn)品都需要。通過這次的課程設(shè)計(jì)我學(xué)到了主要有如下幾點(diǎn):1提前做好準(zhǔn)備工作在開始動手之前,我們要把各器件的功能弄清楚,以及如何拓展,只有把這些真正的搞懂之后才能

25、順利完成設(shè)計(jì)。2.耐心分析,解決問題設(shè)計(jì)與實(shí)現(xiàn)的過程中我們會遇到一些困難這是很正常的事,但是不能一遇到問題就慌了,要耐心的分析問題并解決,這次課程設(shè)計(jì)的時(shí)候我就遇到了這樣的情況。3.團(tuán)隊(duì)合作,不懂請教。這次課程設(shè)計(jì)培養(yǎng)了團(tuán)隊(duì)合作,有些時(shí)候我們也需要別人的幫助,比如說當(dāng)我們把元器件連接錯(cuò)的時(shí)候,自己一個(gè)人很難找到錯(cuò)誤,就需要別人幫忙,無形中培養(yǎng)了團(tuán)隊(duì)合作的精神。有的時(shí)候可能遇到一些問題自己不能解決,這時(shí)我們應(yīng)該虛心像同學(xué)請教,只能這樣才能更好的解決問題。課程設(shè)計(jì)雖然結(jié)束了,但是我們還有很多的事情要做,對仍然不熟悉或不了解的知識點(diǎn)我們要盡快的去學(xué)習(xí)了解,對課程設(shè)計(jì)中出現(xiàn)的問題我們還要去認(rèn)真的分析研

26、究。還有我們還需要去增強(qiáng)自己的動手能力,去不斷的鍛煉,只有這樣該課程設(shè)計(jì)才能發(fā)揮最大的作用。本次實(shí)習(xí)最主要的收獲是:使我們對VHDL語言編程和QuartusII的使用有了更深層次的感性和理性認(rèn)識;培養(yǎng)和鍛煉我們的實(shí)際動手設(shè)計(jì)的能力。使我們的理論知識與實(shí)踐充分地結(jié)合,作到不僅具有專業(yè)知識,而且還具有較強(qiáng)的實(shí)踐動手能力,能分析問題和解決問題的高素質(zhì)人才,為以后的順利就業(yè)作好準(zhǔn)備。5參考文獻(xiàn)1.Voknei A.Pedroni.VHDL數(shù)字電路設(shè)計(jì)教程.電子工業(yè)出版社,2008.52.潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第二版).科學(xué)出版社,2005.23.焦素敏.EDA應(yīng)用技術(shù).清華大學(xué)出版社,2002.44.高吉祥,電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì).電子工業(yè)出版社5.曾繁態(tài),等.EDA工程概論.北京:清華大學(xué)出版社,2003tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論