EDA音樂播放器_第1頁
EDA音樂播放器_第2頁
EDA音樂播放器_第3頁
EDA音樂播放器_第4頁
EDA音樂播放器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 電子信息工程專業(yè)綜合設(shè)計(報告)(課 程 設(shè) 計)題目題目 基于基于 FPGAFPGA 的音樂播放器的設(shè)計的音樂播放器的設(shè)計 二級學(xué)院 電子信息與自動化學(xué)院 專 業(yè) 電子信息工程 班 級 11007990201 學(xué)生姓名 仲維明 學(xué)號 11007990240 指導(dǎo)教師 包明 黃麗雯 時 間 2013-09-23 至 2013-10-18 目目 錄錄 引言.11 VHDL 及 QUARTUSII 軟件簡介.21.1 EDA 簡介 .21.2 硬件描述語言 VHDL.21.3 軟件介紹 .32 簡易音樂演奏器設(shè)計.52.1 硬件電路設(shè)計 .52.2 軟件代碼設(shè)計 .62.2.1 音符儲存單元.6

2、2.2.2 選擇播放模式及手動模塊單元.72.2.3 分頻模塊單元.82.2.4 預(yù)置數(shù)模塊單元.9 2.2.5 音頻發(fā)聲模塊單元.103 引腳鎖定及下載.153.1 引腳鎖定 .153.2 結(jié)果分析 .154 設(shè)計總結(jié).16參考文獻.16附錄.161引言VHDL 語言是一種用于電路設(shè)計的高級語言。它在 80 年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計語言 。隨著 EDA 技術(shù)的高速發(fā)展,電子系統(tǒng)的設(shè)計技術(shù)和工具發(fā)生了深刻的變化,大規(guī)??删幊踢壿嬈骷?CPLDFPGA 的出現(xiàn),給設(shè)計人員帶來了諸多方便。利用它進行產(chǎn)品開發(fā),不僅成本

3、低、周期短、可靠性高,而且具有完全的知識產(chǎn)權(quán)。突出了其作為硬件描述語言的良好的可讀性、可移植性和易讀性等優(yōu)點。本文基于 FPGA 開發(fā)系統(tǒng),在 QuartusII 7.2 軟件平臺上,完成了簡易樂曲演奏器設(shè)計和與仿真,并下載到試驗箱進行硬件實現(xiàn)。首先,本文介紹了 QuartusII 7.2軟件的基本使用方法和 VHDL 硬件描述語言的特點,采用 VHDL 硬件描述語言描述簡易信號發(fā)生器,完成對電路的功能仿真。在設(shè)計過程中,重點探討了簡易樂曲演奏設(shè)計思路和功能模塊劃分。然后,初步探討了電路邏輯綜合的原理,該軟件對簡易樂曲演奏器進行了邏輯綜合。最后,使用 EDA 實驗開發(fā)系統(tǒng)進行電路的下載和驗證。

4、驗證結(jié)果表明設(shè)計的簡易樂曲演奏器完成了預(yù)期的功能。本設(shè)計是采用 VHDL 來實現(xiàn)的簡易樂曲演奏器。它能實現(xiàn)自動播放和手動播放。21 VHDL 及 QuartusII 軟件簡介1.1 EDA 簡介簡介EDA 是電子設(shè)計自動化(Electronic Design Automation)的縮寫,在 20 世紀(jì)60 年代中期從計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。EDA 技術(shù)就是以計算機為工具,設(shè)計者在 EDA 軟件平臺上,用硬件描述語言HDL 完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、

5、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA 技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強度。 利用 EDA 工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出 IC 版圖或 PCB 版圖的整個過程的計算機上自動處理完成。現(xiàn)在對 EDA 的概念或范疇用得很寬。包括在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物等各個領(lǐng)域,都有 EDA 的應(yīng)用。1.2 硬件描述語言 VHDL硬件描述語言(HDL)是一種用于設(shè)計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電

6、子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。例如一個 32 位的加法器,利用圖形輸入軟件需要輸人 500 至 1000 個門,而利用 VHDL 語言只需要書寫一行“A=B+C” 即可。而且 VHDL 語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的 EDA 廠商開發(fā),互不兼容,而且不支持多層次設(shè)計,層次間翻譯工作要由人工完成。為了克服以上不足,1985 年美國國防部正式推出了高速集成電路硬件描述語言 VHDL,1987 年 IEEE 采納 VHDL 為硬件描述語言標(biāo)準(zhǔn)(IEEE-STD-1076)。VHD

7、L 是一種全方位的硬件描述語言,包括系統(tǒng)行為級。寄存器傳輸級和邏輯門多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL 幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設(shè)計過程都可以用 VHDL 來完成。VHDL 還具有以下優(yōu)點:(1)VHDL 的寬范圍描述能力使它成為高層進設(shè)計的核心,將設(shè)計人員的工作重心提高到了系統(tǒng)功能的實現(xiàn)與調(diào)試,而花較少的精力于物理實現(xiàn)。(2)VHDL 可以用簡潔明確的代碼描述來進行復(fù)雜控制邏輯設(shè)計,靈活且方便,而且也便于設(shè)計結(jié)果的交流、保存和重用。(3)VHDL 的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。3(4)VHDL 是一個

8、標(biāo)準(zhǔn)語言,為眾多的 EDA 廠商支持,因此移植性好。美國于 1981 年提出了一種新的、標(biāo)準(zhǔn)化的 HDL,稱之為 VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡稱 VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言。設(shè)計者可以利用這種語言來描述自己的設(shè)計思想,然后利用電子設(shè)計自動化工具進行仿真,再自動綜合到門電路,最后用 PLD 實現(xiàn)其功能。1.3 軟件介紹Quartus II 是 Altera 公司的綜合性 PLD 開發(fā)軟件,支持原理圖、VHDL、VerilogHDL 以及

9、AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整 PLD 設(shè)計流程。 Quartus II 可以在 XP、Linux 以及 Unix 上使用,除了可以使用 Tcl 腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方 EDA 工具的良好支持

10、也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA 工具。 此外,Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink 相結(jié)合,可以方便地實現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。 Maxplus II 作為 Altera 的上一代 PLD 設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。Altera 在 Quartus II 中包含了許多諸如 SignalTap II、Chip Editor和 RTL Viewer 的設(shè)計輔助工具,集

11、成了 SOPC 和 HardCopy 設(shè)計流程,并且繼承了 Maxplus II 友好的圖形界面及簡便的使用方法。 Altera Quartus II 作為一種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。42 簡易音樂演奏器的設(shè)計2.1 硬件電路設(shè)計根據(jù)要求:簡易功能演奏器的功能要求,需要設(shè)計手動播放功能和自動播放功能,所以系統(tǒng)頂層框圖設(shè)計如下圖所示:頂層設(shè)計圖簡易樂曲演奏器的原理圖如下:簡易樂曲演奏器2.2 軟件代碼設(shè)計軟件代碼設(shè)計部分由多個功能模塊組成,包括:音符儲存模塊、選擇播放模式和手動播放模塊、分頻模塊、預(yù)置數(shù)模塊和音頻發(fā)聲模塊。 2

12、.2.1 音符儲存單元隨著 clk 的計數(shù)變化 note 的輸出音符將內(nèi)部 rom 的輸出。此模塊的代碼為:分頻模塊自動播放模塊選擇及手動模塊預(yù)置數(shù)模塊播放模塊5library ieee;use ieee.std_logic_1164.all; entity notetaba isport(clk:in std_logic;note:out integer range 0 to 15);end notetaba;architecture bhv of notetaba issignal counter:integer range 0 to 120; beginprocess(clk,count

13、er)begin if counter=120 thencounter=0; elsif clkevent and clk=1 then counternotenotenotenotenotenotenotenotenotenotenoteNULL;6end case;end process;end bhv;形成的模塊框圖如下圖所示:clknote3.0notetabainst2 音符儲存模塊圖2.2.2 選擇播放模式及手動模塊單元當(dāng) cs=1 時為手動模式,cs=0 時為自動播放模式。此模塊的代碼為:library ieee;use ieee.std_logic_1164.all;entit

14、y bmux isport(d1,d2:in integer range 0 to 15;cs,rst:in std_logic;q:out integer range 0 to 15); end bmux;architecture bhv of bmux isbegin process(cs,rst)beginif rst=1 then qqqq=d1;end case;end if;end process;7end bhv;形成的模塊框圖為: 選擇播放模式和手動模塊圖2.2.3 分頻模塊單元本設(shè)計中需要的頻率 12KHz 分頻到 4Hz. .分頻模塊代碼為 library ieee;use

15、 ieee.std_logic_1164.all;entity fenpin isport(clk:in std_logic ; clkout:buffer std_logic);end fenpin;architecture bhv of fenpin is-signal temp:integer range 0 to 3000000;beginprocess(clk)variable temp :integer range 0 to 1500000;beginif clkevent and clk=1 thentemp:=temp+1;if temp=150 thenclkouttone=

16、2047;code=0;code1tone=1091;code=1;code1tone=1196;code=2;code1tone=1289;code=3;code1tone=1331;code=4;code1tone=1409;code=5;code1tone=1479;code=6;code1tone=1541;code=7;code1tone=1569;code=1;code1tone=1621;code=2;code1tone=1668;code=3;code1tone=1689;code=4;code1tone=1728;code=5;code1tone=1763;code=6;co

17、de1tone=1794;code=7;code1NULL;end case;end process;end bhv ;模塊圖如下: 預(yù)置數(shù)模塊圖2.2.5 音頻發(fā)聲模塊單元此模塊實現(xiàn)發(fā)聲的功能將對應(yīng)的頻率值的音輸出。代碼為:library ieee;use ieee.std_logic_1164.all;entity speak isport(clk:in std_logic;tone:in integer range 0 to 2047;spks:out std_logic);end speak;architecture bhv of speak issignal preclk:std_l

18、ogic;signal fullspks:std_logic;beginprocess(clk)variable count4:integer range 0 to 15;beginpreclk11 thenpreclk=1;count4:=0;elsif clkevent and clk=1 thenadr3.0digit3.0higtone10.0zhishuinst1110count4:=count4+1;end if;end process;process(preclk,tone)variable count11:integer range 0 to 2047;beginif prec

19、lkevent and preclk=1 thenif count11=2047 thencount11:=tone;fullspks=1;elsecount11:=count11+1;fullspks=0;end if;end if;end process;process(fullspks)variable count2:std_logic;beginif fullspksevent and fullspks=1 thencount2:=not count2;if count2=1 thenspks=1;elsespks=0;end if;end if;end process;end bhv

20、;此模塊框圖: 音頻產(chǎn)生模塊clktone10.0spksspeakinst3113 引腳鎖定及下載3.1 引腳鎖定選擇 Assignments 菜單下的 Pins 命令,出現(xiàn)以下窗口: 引腳鎖定圖下載時,實驗箱上則需連續(xù)按“模式選擇”按鈕選擇模式 5,再按“系統(tǒng)復(fù)位”按鈕。進行引腳鎖定,查閱附表,分別點“l(fā)ocation”選擇引腳號。引腳鎖定后再編譯。如同此前進行過的。編譯成功后點確定。下載完后就可以在實驗箱查看結(jié)果。3.2 結(jié)果分析將程序代碼下載到實驗箱的 FPGA 芯片中,并驗證了在仿真中的結(jié)果的正確性。此簡易樂曲演奏器系統(tǒng),能夠產(chǎn)生所要求的功能。能夠自動播放儲存好的樂曲,手動實現(xiàn)音符的

21、發(fā)音并能實現(xiàn)復(fù)位功能。4 設(shè)計總結(jié)經(jīng)過四周的課程設(shè)計,已經(jīng)按計劃將要求的簡易音樂演奏器設(shè)計出來,并能實現(xiàn)所要的功能,可以實現(xiàn)手動播放功能、復(fù)位重新播放的功能。在設(shè)計過程中,我遇到了許多問題,通過自己上網(wǎng)、查閱資料、問同學(xué)老師,解決了各個問題,并設(shè)計出所需要的要求的程序代碼。在設(shè)計過程中,我了解到設(shè)計程序代碼的基本過程,首先建立子模塊,并對各個模塊進行仿真,調(diào)試,直到實現(xiàn)所要的功能為止。再用元件例化對頂層文件進行仿真,調(diào)試,到仿真圖正12確止。最后將程序代碼下載到 FPGA 實驗箱上。在設(shè)計過程中,深切感受到自己的渺小,做設(shè)計時,需要請教別人,也許是他人的一句簡單的話語,就能點醒自己的設(shè)計思路。

22、設(shè)計思路正確,結(jié)果未必正確,也許是語言表達的問題,使機器不能正確識別。此次設(shè)計對我的影響較大,也許對生活中存在的東西多問一個為什么,在你設(shè)計東西時,你就會感覺輕松許多,更加有時間去想一些別的功能,使自己的設(shè)計更加完美,使自己是享受設(shè)計的過程,是自己變得更加主動,而不是被動的接受。在設(shè)計中更使我明白,學(xué)習(xí)是無止境的??裢淖源缶褪菬o知。要時刻保持學(xué)習(xí)的態(tài)度,只要學(xué)會的才是自己的。參考文獻1.Voknei A.Pedroni.VHDL 數(shù)字電路設(shè)計教程.電子工業(yè)出版社,2008.52.潘松,黃繼業(yè).EDA 技術(shù)實用教程(第二版).科學(xué)出版社,2005.23.焦素敏.EDA 應(yīng)用技術(shù).清華大學(xué)出版社

23、,2002.44.潘松,黃繼業(yè).EDA 技術(shù)實用教程.北京:科學(xué)出版社,20025. 鄭家龍,王小海,章安元.集成電子技術(shù)基礎(chǔ)教程.北京:高等教育出版社,20026. 宋萬杰,羅豐,吳順君.CPLD 技術(shù)及其應(yīng)用.西安:西安電子科技大學(xué)出版社,19997. 張昌凡,龍永紅,彭濤.可編程邏輯器件及 VHDL 設(shè)計技術(shù).廣州:華南工學(xué)院出版社,20018. 盧杰,賴毅.VHDL 與數(shù)字電路設(shè)計.北京:科學(xué)出版社,20019. 王金明,楊吉斌.數(shù)字系統(tǒng)設(shè)計與 Verilog HDL.北京:電子工業(yè)出版社,2002 10. 張明.Verilog HDL 實用教程.成都:電子科技大學(xué)出版社,1999附錄

24、library ieee; use ieee.std_logic_1164.all; entity top1 is port ( clk : in std_logic cs,rst : in std_logic; 13 key : in integer range 0 to 15; code:out integer range 0 to 15; code1:out integer range 0 to 15; spkout: out std_logic ); end top1;architecture one of top1 is component notetaba is port(clk:in std_logic; note:out integer range 0 to 15);

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論