版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計說明書1引言隨著科學(xué)技術(shù)的日益發(fā)展,電子計算機的出現(xiàn),使得人們的學(xué)習(xí)生活變得更加方便,而其中電子設(shè)計方面更是受益不淺。20世紀(jì)90年代,國際上電子和計算機技術(shù)較先進的國家,一直在積極探索新的電子電路設(shè)計方法,并在設(shè)計方法、工具等方面進行了徹底的變革,取得了巨大成功。EDA技術(shù)就是以計算機為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言VHDL完成設(shè)計文件,然后由計算機自動的完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA設(shè)計可分為系統(tǒng)級、電路級和物理實現(xiàn)級。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減
2、輕了設(shè)計者的勞動強度。在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進行產(chǎn)品重構(gòu),從而使得硬件的設(shè)計可以如同軟件設(shè)計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法、設(shè)計進程和設(shè)計觀念,促進了EDA技術(shù)的迅速發(fā)展。EDA技術(shù)的應(yīng)用引起電子產(chǎn)品及系統(tǒng)開發(fā)的革命性變革。同時減少了設(shè)計芯片的數(shù)量、縮小了體積、降低了功耗、提高了設(shè)計的靈活性、可靠性和可擴展性?,F(xiàn)在對EDA的概念或范疇用的很寬。包括在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都
3、有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機制造過程中,從設(shè)計、性能測試及特性分析直到飛行模式,都可以設(shè)計到EDA技術(shù)。本文所指的EDA技術(shù),主要針對電子電路設(shè)計、PCB設(shè)計和IC設(shè)計。2 VHDL/Quartus2簡介2.1 VHDL介紹在電子電路設(shè)計領(lǐng)域中,電子設(shè)計自動化(EDA)工具已成為主要的設(shè)計手段,而VHDL語言則是EDA的關(guān)鍵技術(shù)之一。VHDL是一種硬件描述語言,它可以對電子電路和系統(tǒng)的行為進行描述?;谶@種描述,結(jié)合相關(guān)的軟件工具,可以得到所期望的實際電路與系統(tǒng)。VHDL采用自頂向下的設(shè)計方法,即從系統(tǒng)總體要求出發(fā),自上而下地將設(shè)計任
4、務(wù)分解為不同的功能模塊,最后將各功能模塊連接形成頂層模塊,完成系統(tǒng)硬件的整體設(shè)計。電子設(shè)計自動化技術(shù)EDA的發(fā)展給電子系統(tǒng)的設(shè)計帶來了革命性的變化,EDA軟件設(shè)計工具,硬件描述語言,可編程邏輯器件(PLD)使得EDA技術(shù)的應(yīng)用走向普及。CPLD是新型的可編程邏輯器件,采用CPLD進行產(chǎn)品開發(fā)可以靈活地進行模塊配置,大大縮短了產(chǎn)品開發(fā)周期,也有利于產(chǎn)品向小型化,集成化的方向發(fā)展。2.2 Quartus2介紹Quartus2, 在21世紀(jì)初推出,由著名的FPGA廠商Altera 公司提供。它提供了一個與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便的進行設(shè)計輸入、快速編程和器件編程。在Quartus2中,可以
5、完成設(shè)計輸入、HDL綜合、布線布局(適配)、仿真、下載和硬件測試等流程。FPGA/CPLD開發(fā)集成環(huán)境,屬于平臺化設(shè)計工具,用戶可以在Quartus2中實現(xiàn)整個數(shù)字電路的FPGA設(shè)計流程。Quartus2提供了多平臺的設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)設(shè)計的綜合環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP開發(fā)包進行系統(tǒng)模型設(shè)計提供了綜合環(huán)境。Quartus2設(shè)計工具內(nèi)部嵌有VHDL、Verilog邏輯綜合器。Quartus2也可利用第三方的綜合工具,例如:Leonardo Spectrum、Synplifiy Pro、FPGA Complier2,并能直接調(diào)
6、用這些工具。同樣,Quartus2具有仿真功能,同時也支持第三方的仿真工具,如:ModelSim。3智力競賽搶答器設(shè)計3.1設(shè)計內(nèi)容:(1)設(shè)計一個四組(人)參加的智力競賽搶答計時器,它具有四路搶答輸入,主持人按下復(fù)位鍵后,系統(tǒng)復(fù)位進入搶答狀態(tài),計時顯示初始值; (2)某組首先按下?lián)尨疰I,該路搶答信號,競賽搶答器能夠設(shè)別最先搶答的信號,鎖定該信號,同時揚聲器響起,參賽小組的序號在數(shù)碼管上顯示;(3)主持人對搶答結(jié)果進行確認(rèn),給出倒計時計數(shù)允許信號,開始回答問題,計時顯示器從初始值開始以秒為單位倒計時,計數(shù)至0時,停止計數(shù),揚聲器發(fā)出超時報警信號,以中止繼續(xù)回答問題;(4)參賽者在規(guī)定時間內(nèi)回答
7、完問題,主持人給出倒計時計數(shù)禁止信號,以免揚聲器鳴叫,按下復(fù)位鍵,又可開始新一輪的搶答;3.2功能分析搶答信號判別電路在系統(tǒng)復(fù)位后,對A,B,C,D四路搶答信號進行判別,輸出端A1D1與AD一一對應(yīng),優(yōu)勝者對應(yīng)為“1”,其余為“0”,且將結(jié)果鎖存。完成搶答判別的同時,輸出端SET輸出有效信號,對揚聲器進行選通。分頻電路用于產(chǎn)生倒計時電路所需的周期為1s的時鐘脈沖,分頻系數(shù)視輸入時鐘clk的頻率而定。臺號顯示控制電路將輸入信號LIGHT接入LED數(shù)碼管對應(yīng)電路,以驅(qū)動數(shù)碼管,顯示臺號。倒計時及時間顯示控制電路有stop信號控制,由復(fù)位信號RESET將答題時間作為初值給倒計時計數(shù)器;由計數(shù)允許信號
8、jishi啟動計數(shù)。輸出信號為count1,count2,music與music1,其中music與music1為蜂鳴器選通控制信號。揚聲器控制電路系統(tǒng)只在兩種情況下輸出驅(qū)動揚聲器的脈沖信號:一種是倒計時計數(shù)處于禁止計數(shù)狀態(tài),并且完成初始化,開始對搶答信號進行判決,當(dāng)某參賽組搶先按下按鍵,系統(tǒng)在輸出該組臺號信息的同時,輸出脈沖信號;一種是確認(rèn)優(yōu)先搶答的參賽組后,啟動倒計時計數(shù)器計數(shù),當(dāng)計數(shù)到“0”時,輸出脈沖信號。3.3整體設(shè)計思想當(dāng)主持人宣布開始搶答時,四個選手誰先按下他面前的控制開關(guān),他的燈就會亮,同時會有警報聲響起,而且這時其他的人再怎么按,也就不會亮,說明已經(jīng)鎖住。當(dāng)有一個指示燈亮了,
9、等待主持人確定,主持人確定以后計數(shù)器就開始從10開始倒計時,到0時還要警告聲,直到主持人按下復(fù)位鍵為止。在選手答題過程中,如果在規(guī)定時間內(nèi)答完,主持人按下暫停鍵,倒計時停止顯示當(dāng)前時間,待主持人按下復(fù)位鍵以后開始下一輪搶答,這樣計數(shù)器開始工作就是在選手搶答以后在主持人的控制下工作。所以可以設(shè)四個人分別為輸入端A,B,C,D;因為四個輸入端在VHDL中,要求四個輸入端應(yīng)該是相等優(yōu)先級別,但只要有一個輸入端接入高電平時,就給其他信號一個反饋,使得他們的輸入無效,及他們對應(yīng)的指示燈不亮;所以我們可以設(shè)置并行語句,讓他們分為四個進程(process),同時也要求每個進程中都有反饋信號傳給其他進程語句中
10、,這樣就可以完成搶答器基礎(chǔ)部分。其次就是計數(shù)器部分,當(dāng)有人開始進入答題部分,指示燈亮,同時警報器開始工作,當(dāng)主持人確定以后計時開始并要求是倒計時方式用七段數(shù)碼管顯示出來,通過這些消息,我們可知,主持人確定鍵即是計數(shù)器開始倒計時的信號,本設(shè)計中采用了元件例化(component)語句,在搶答器中某個選手已經(jīng)開始回答了信號插口,給計數(shù)器中的置零輸入端,這樣就基本上完成了設(shè)計,計數(shù)器采用倒計時方式,實現(xiàn)方式也很簡單,只要給他們最初賦值為10,而后在每個上升沿來到減一,具體設(shè)計情況看程序設(shè)計部分。本設(shè)計由于蜂鳴器是在脈沖控制下才會發(fā)出明顯聲響,因此在此加了一個分頻器,具體看程序部分。3.4分頻模塊設(shè)計
11、此程序?qū)崿F(xiàn)了64HZ的脈沖信號64分頻,得到1HZ的脈沖信號,給倒計時提供脈沖信號。if(RISING_EDGE(CLK)then temp:temp+1; if(temp=64 and ena='1')then temp:=0;其仿真圖如下圖所示:圖34脈沖信號仿真波形圖3.5復(fù)位模塊設(shè)計此程序?qū)⑺行盘柍跏蓟?,通過ean使數(shù)碼管也初始化為初值10。if (RESET='1')thenLIGHT<="1111110" SET<='0'SET<='0'A0<='0'B0&
12、lt;='0'C0<='0'D0<='0'ean<='1'其仿真圖如下圖所示:圖3-5復(fù)位仿真波形圖3.6搶答模塊設(shè)計begin A2<=not A1; B2<=not B1; C2<=not C1; D2<=not D1; L1:process (A0) begin A1<=(A0 and B2 and C2 and D2 ); end process L1; L2:process (B0) begin B1<=(B0 and A2 and C2 and D2 ); end
13、process L2; L3:process (C0) begin C1<=(C0 and A2 and B2 and D2 ); end process L3; L4:process (D0) begin D1<=(D0 and A2 and C2 and B2 ); end process L4;搶答模塊仿真圖如下圖所示:圖3-6搶答模塊仿真波形圖3.7倒計時模塊設(shè)計begin C1:process(SET,CLK,MUSIC1,ena) variable temp:integer range 0 to 255; begin if (SET='0')then M
14、USIC1<='0'HIGH<="0001"LOW<="0000" elsif(RISING_EDGE(CLK)then temp:=temp+1; if (temp=64 and ena='1')then temp:=0; if(LOW="0000")then LOW<="1001" if(HIGH="0000")then HIGH<="0001" else HIGH<=HIGH-1; end if; el
15、se LOW<=LOW-1; end if; end if; end if; if(HIGH="0000" and LOW="0000")then MUSIC1<=CLK; end if; end process C1;倒計時仿真圖如下圖所示:圖3-7-1倒計時為零時仿真波形圖圖3-7-2主持人按下暫停鍵仿真波形圖此程序主要功能是實現(xiàn)倒計時功能,當(dāng)有人搶答以后蜂鳴器響起,在主持人確認(rèn)以后開始倒計時10秒,如果在規(guī)定時間內(nèi)回答完畢,主持人則按下暫停鍵,停止計數(shù)顯示當(dāng)前時間,如果超出規(guī)定時間則蜂鳴器響起,知道主持人按下復(fù)位鍵為止。所有信號初始化,
16、數(shù)碼管顯示10等待下一輪搶答??偨Y(jié):由以上仿真圖可知,該設(shè)計基本實現(xiàn)了原先的設(shè)計要求,并將選手的序號用數(shù)碼管顯示出來。3.8引腳鎖定引腳鎖定如下圖:圖3-8引腳鎖定圖4 心得體會實踐是檢驗真理的唯一標(biāo)準(zhǔn)。為期幾天的課程設(shè)計在緊張的氛圍中,接近尾聲,時間不長,但是對于我們起到了很大幫助。這次的EDA課程設(shè)計,掌握了基本的編寫系統(tǒng)模塊的知識以及編譯仿真的操作,雖然其中也遇到了很多困難,但經(jīng)一次次的改進,最后成功后的喜悅溢于言表。理論要聯(lián)系實踐,當(dāng)然實踐也離不開理論。日常的學(xué)習(xí)中,我們只掌握簡單的模塊代碼,當(dāng)看到任務(wù)書時,開始覺得無從下手。在認(rèn)真看完設(shè)計內(nèi)容后,明白了智能競賽搶答的整個流程。再根據(jù)流
17、程把各個模塊的輸入輸出,以及要實現(xiàn)的功能,需要用到的變量、信號做些整理,然后又通過上網(wǎng)以及查閱相關(guān)書籍,進行一遍一遍的整理、修改代碼,程序。模塊功能的實現(xiàn)并為易事。在設(shè)計VHDL語言編程的時候,總是不能完成硬件模塊的連接,編譯時總是有錯誤,在自己以及同學(xué)們的幫助下一遍一遍仔細(xì)檢查糾錯,將程序全部重新封裝,以及重新連接,最后通過了編譯。在仿真過程中,也出現(xiàn)了問題。倒計時模塊是以10秒倒計時的,在仿真過程中,在倒計時顯示到09秒后,數(shù)碼管不再繼續(xù)倒計時顯示。而后,又重新調(diào)整了程序,原來把COUT2只顯示了0和1兩個數(shù)字。后來添加了其它幾個數(shù)字后,數(shù)碼管終于可以從10倒計到0,并且到計到0后,警報聲
18、響起。由于一開始搶答模塊設(shè)計時,設(shè)計為哪位選手搶先按,他的指示燈就先亮。后來,仔細(xì)看設(shè)計內(nèi)容,要求為其序號在數(shù)碼管中顯示出來。所以,又重新將LIGHT進行了修改,最終完成了設(shè)計。通過這次課程設(shè)計,我們不但進一步掌握了數(shù)字電路設(shè)計的基礎(chǔ)知識以及一門專業(yè)仿真軟件的基本操作,還提高了自己的設(shè)計能力及動手操作能力,同時對于智能搶答器的設(shè)計有了深刻的認(rèn)識,更讓我明白了凡事需要耐心,端正自己的態(tài)度。在此,感謝學(xué)校能夠為我們提供良好的教育平臺,感謝老師的淳淳教導(dǎo),以及同學(xué)們的幫助。參考文獻1.Voknei A.Pedroni.VHDL數(shù)字電路設(shè)計教程.電子工業(yè)出版社,2008.52.潘松,黃繼業(yè).EDA技術(shù)
19、實用教程(第二版).科學(xué)出版社,2005.23.焦素敏.EDA應(yīng)用技術(shù).清華大學(xué)出版社,2002.44.曹昕燕,周鳳臣,聶春燕.EDA技術(shù)實驗與課程設(shè)計.清華大學(xué)出版社5.譚會生,張昌凡.EDA技術(shù)A.西安電子科技大學(xué)出版社附錄-頂層頭文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity aaa is port(A,B,C,D,CLK,RESET,jishi,stop:in std_logic; MUSIC,MUSIC0:out std_logic; COUT1:out std_log
20、ic_vector(6 downto 0); COUT2:out std_logic_vector(6 downto 0); LIGHT:out std_logic_vector(6 downto 0); end aaa; architecture aaa of aaa is component COUNTER is port(ean,SET,jishi,stop,CLK:in std_logic; MUSIC, MUSIC0:out std_logic; COUT1:out std_logic_vector(6 downto 0); COUT2:out std_logic_vector(6
21、downto 0); end component COUNTER; component qiangda is port(A,B,C,D,RESET:in std_logic; CLK:in std_logic; ean,SET:out std_logic; LIGHT:out std_logic_vector(6 downto 0); end component qiangda; signal ean,SET:std_logic; begin U0:COUNTER port map(ean,SET,jishi,STOP,CLK,MUSIC,MUSIC0,COUT1,COUT2); U1:qia
22、ngda port map (A,B,C,D,RESET,CLK,ean,SET,LIGHT); end aaa; -qiangdaqimokuaichengxu library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qiangda is port(A,B,C,D,RESET:in std_logic; CLK:in std_logic; ean,SET:out std_logic; LIGHT:out std_logic_vector(6 downto 0); end qiangda;
23、architecture qiangda of qiangda is signal A0,B0,C0,D0:std_logic; signal A1,B1,C1,D1:std_logic; signal A2,B2,C2,D2:std_logic; begin A2<=not A1; B2<=not B1; C2<=not C1; D2<=not D1; L1:process (A0) -qiangda begin A1<=(A0 and B2 and C2 and D2 ); end process L1; L2:process (B0) begin B1<
24、;=(B0 and A2 and C2 and D2 ); end process L2; L3:process (C0) begin C1<=(C0 and A2 and B2 and D2 ); end process L3; L4:process (D0) begin D1<=(D0 and A2 and C2 and B2 ); end process L4; L5:process(A1,B1,C1,D1,A,B,C,D,RESET) begin if(RESET='1')then -fuwei LIGHT<="1111110" A
25、0<='0'B0<='0'C0<='0'D0<='0'ean<='1'SET<='0' else ean<='0' if(A='1')then A0<='1' end if; if(B='1')then B0<='1' end if; if(C='1')then C0<='1' end if; if(D='1')t
26、hen D0<='1' end if; if(A1='1')then LIGHT<="0110000" elsif(B1='1')then LIGHT<="1101101" elsif(C1='1')then LIGHT<="1111001" elsif(D1='1')then LIGHT<="0110011" else LIGHT<="1111110" end if; -qian
27、g da xiang guan deng SET<=(A1 or B1 or C1 or D1); end if; end process L5; end qiangda; -daojishimokuailibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity COUNTER is port(ean,SET,jishi,stop,CLK:in std_logic; MUSIC, MUSIC0:out std_logic; COUT1:out std_logic_vector(6 down
28、to 0); COUT2:out std_logic_vector(6 downto 0); end COUNTER; architecture COUNTER of COUNTER is signal MUSIC1,MUSIC2,ena,jishiqi,stop1:std_logic; signal HIGH:std_logic_vector(3 downto 0 ):="0001" signal LOW:std_logic_vector(3 downto 0 ):="0000" begin C1:process(SET,CLK,MUSIC1,ena)
29、 variable temp:integer range 0 to 255; begin if (SET='0')then MUSIC1<='0'HIGH<="0001"LOW<="0000" elsif(RISING_EDGE(CLK)then temp:=temp+1; if (temp=64 and ena='1')then temp:=0; if(LOW="0000")then LOW<="1001" if(HIGH="000
30、0")then HIGH<="0001" else HIGH<=HIGH-1; end if; else LOW<=LOW-1; end if; end if; end if; if(HIGH="0000" and LOW="0000")then MUSIC1<=CLK; end if; end process C1; C2:process(stop,jishi,SET,ean,HIGH,LOW) begin if(stop='1')then stop1<='1'
31、 if(stop1='1')then ena<='0' end if; end if; if(jishi='1' and SET='1')then ena<='1' end if; if(ean='1')then ena<='0'stop1<='0' end if; if(HIGH="0000" and LOW="0000")then ena<='0' end if; end pro
32、cess C2; C3:process(jishi,SET) begin if(jishi='1')then jishiqi<='1' end if; if(SET='0')then MUSIC2<='0'jishiqi<='0' else MUSIC2<=CLK; if(jishiqi='1')then MUSIC2<='0' end if; end if; end process C3; MUSIC<=MUSIC1; MUSIC0<=MUSIC2; process(LOW) begin case LOW is when "0000"=> COUT1 <="1111110" when "0001"=> COUT1 <="0110000" when "0010"=> COUT1 <="1101101" when "0011"=> CO
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木材行業(yè)碳排放權(quán)交易合同8篇
- 二零二五版農(nóng)村電商合作發(fā)展合同4篇
- 二零二五年度環(huán)保設(shè)施滅四害服務(wù)合同及環(huán)保標(biāo)準(zhǔn)協(xié)議4篇
- Preparing for Pregnancy助產(chǎn)專業(yè)資源庫
- 水電安裝工程2025年度工程監(jiān)理合同2篇
- 2025版民間借貸教育基金擔(dān)保合同示例3篇
- 2025年度生態(tài)環(huán)保項目投資擔(dān)保合同書
- 2025年度離婚財產(chǎn)分割糾紛訴訟保全與執(zhí)行全程服務(wù)合同2篇
- 二零二五年度水利工程內(nèi)部施工合同4篇
- 2025年度個人別墅抵押借款合同范本5篇
- 乳腺癌的綜合治療及進展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 信息安全意識培訓(xùn)課件
- 2024年山東省泰安市初中學(xué)業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 2024安全員知識考試題(全優(yōu))
- 2024年衛(wèi)生資格(中初級)-中醫(yī)外科學(xué)主治醫(yī)師考試近5年真題集錦(頻考類試題)帶答案
- 中國大百科全書(第二版全32冊)08
- 第六單元 中華民族的抗日戰(zhàn)爭 教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版八年級歷史上冊
評論
0/150
提交評論