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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、洛 陽 理 工 學 院課 程 設 計 報 告 課程名稱 EDA技術與VHDL 設計題目 音樂播放器的設計與仿真 專 業(yè) 通信工程 班 級 B1105 學 號 B1105 姓 名 完成日期 2014年12月22日 前言隨著科學技術的進步,電子器件和電子系統(tǒng)設計方法日新月異,電子設計自動化(Electronics Design Automation,EDA)技術正是適應了現(xiàn)代電子產品設計的要求,吸收了多學科最新成果而形成的一門新技術?,F(xiàn)如今掌握EDA技術是電子信息類專業(yè)的學生、工程技術人員所必備的基本能力和技能。傳統(tǒng)電子電路的設計,首先要對系統(tǒng)進行分析,然后按功能對系統(tǒng)進行劃分

2、,接下來就要選擇特定芯片,焊接成PCB電路板,最后對成品PCB電路板進行調試。這樣的設計沒有靈活性可言,搭成的系統(tǒng)需要的芯片種類多且數(shù)目大,而且對于電路圖的設計和電路板的設計都需要很大的工作量,工作難度也很高。隨著可編程器件和EDA技術的發(fā)展,傳統(tǒng)設計的劣勢被克服,采用可編程邏輯器件基于芯片的設計方法,期間的內部邏輯和引腳可以由設計者自行決定,提高了設計的靈活性和工作效率;同時,將系統(tǒng)集成在一個芯片上的設計,使系統(tǒng)具有體積小、功耗低、可靠性高等特點。EDA技術即電子設計自動化技術,它是以可編程邏輯器件(PLD)為載體,以硬件描述語言(HDL)為主要的描述方式,以EDA軟件為主要的開發(fā)軟件的電子

3、設計過程。它主要采用“自頂向下”的設計方法,設計流程主要包括:設計輸入、綜合、仿真、適配、下載。EDA技術主要有以下特征:(1)高層綜合的理論和方法取得進展,從而將EDA設計層次由RT級提高到了系統(tǒng)級,并推出了系統(tǒng)級綜合優(yōu)化工具,縮短了復雜ASIC的設計周期。(2)采用硬件描述語言來描述10萬門以上的設計,并形成了VHDL和Verilog-HDL兩種標準硬件描述語言。(3)采用平面規(guī)劃技術對邏輯綜合和物理版圖設計聯(lián)合管理,做到在邏輯設計綜合早期階段就考慮到物理設計信息的影響。(4)可測性綜合設計。(5)為帶有嵌入式IP核的ASIC設計提供軟、硬件協(xié)同設計工具。 (6)建立并設計工具框

4、架結構的集成化設計環(huán)境,以適應當今ASIC規(guī)模大而復雜、數(shù)字與模擬電路并存、硬件與軟件設計并存、產品上市速度快等特點。總而言之,EDA技術的出現(xiàn),給電子信息產業(yè)帶來了革命性的變革。一. 設計任務及要求本次課程設計要求使用EDA工具,設計實現(xiàn)簡易音樂播放器,理解音名與頻率的關系及數(shù)控分頻原理,經過對整體進行模塊化分析、編程、綜合、仿真及最終下載,完整實現(xiàn)簡易音樂器的播放功能。用VHDL語言設計樂音的節(jié)拍與音符產生電路;用VHDL語言設計分頻系數(shù)、音符顯示數(shù)據(jù)產生電路;用VHDL語言設計可控分頻器電路;理解簡易音樂播放器總體設計方案。掌握基本的VHDL語言;理解音樂播放電路設計方案。掌握用VHDL

5、語言設計節(jié)拍與音符產生電路;掌握用VHDL語言設計分頻系數(shù)、音符顯示數(shù)據(jù)產生電路;掌握用VHDL語言設計可控分頻器電路。設計結果:原理圖與原程序、電路仿真圖、能在實訓系統(tǒng)上播放悅耳動聽的音樂。二. 設計實現(xiàn)2.1 準備知識在本次設計中采用了梁祝 茉莉花 蟲兒飛作為要播放的樂曲,根據(jù)聲樂知識,組成樂曲的每個音符的發(fā)音頻率值及其持續(xù)的時間是樂曲能連續(xù)演奏所需的兩個基本要素,獲取這兩個要素所對應的數(shù)值以及通過純硬件的手段來利用這些數(shù)值實現(xiàn)所希望樂曲的演奏效果是本實驗的關鍵。該演奏電路演奏的樂曲是“梁?!逼?,其最小的節(jié)拍為1拍。將1拍的時長定為0.25秒,則只需要再提供一個4Hz的時鐘頻率即可產生1

6、拍的時長,演奏的時間控制通過ROM查表的方式來完成。對于占用時間較長的節(jié)拍,如全音符為4拍(重復4),2/4音符為2拍(重復2),1/4音符為1拍(重復1)。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將得到的分頻數(shù)四舍五入取整。若基準頻率過低,則由于分頻系數(shù)過小,四舍五入取整后的誤差較大,若基準頻率過高,雖然誤碼差變小,但分頻結構將變大。實際的設計應綜合考慮兩方面的因素,在盡量減小頻率誤差的前提下取舍合適的基準頻率。本設計中選取4MHz的基準頻率。表2-1為簡譜中音名與頻率的對應關系。表2.1 樂譜編碼和樂音頻率音符編碼頻率f分頻數(shù)106/f計數(shù)值(106/2f)-1低音11262

7、106/262190722294106/294169933330106/330151444349106/349143155392106/392127466440106/440113577494106/4941011中音18523106/52395529587106/587850310659106/659757411698106/698715512784106/784636613880106/880567714988106/988505高音1151047106/10474762.2樂曲演奏電路的結構示意2.3樂曲演奏電路的子結構頂層結構所包含的模塊分別有地址計數(shù)器模塊(ADDR)、樂音分頻器模塊

8、(SPEAKER)、數(shù)據(jù)存儲器(YP)以下便是對各個子模塊的分析。2.3.1 地址計數(shù)器模塊1. 地址計數(shù)器功能在此模塊中設置了一個9位二進制計數(shù)器(計數(shù)最大值為512),這個計數(shù)器的計數(shù)頻率選為4Hz,即每一計數(shù)值的停留時間為0.25s,恰好為當全音符設為1s時。例如,梁祝樂曲的第一個音符為“3”,此音在邏輯中停留了4個時鐘節(jié)拍,即為1s時間,相應地所對應“1”音符分頻預置數(shù)為1409在ADDR的輸入端停留了1s。隨著ADDR中的計數(shù)器按4Hz的時鐘頻率做加法計數(shù)時,樂譜逐次被選取,梁祝樂曲就開始自然連續(xù)的演奏起來了。2. 程序代碼LIBRARY ieee;USE IEEE.STD_LOGI

9、C_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDR ISPORT (clk : IN STD_LOGIC;A : BUFFER STD_LOGIC_VECTOR(8 DOWNTO 0);END;ARCHITECTURE ONE OF ADDR ISBEGIN PROCESS (clk)BEGINIF (clk'event AND clk = '1')THENA <= A + 1;END IF;END PROCESS;END;3. 地址計數(shù)器符號圖圖2.1 地址計數(shù)器符號圖4. 仿真波形圖圖2.2 地址計數(shù)器

10、波形圖圖2.3 地址計數(shù)器波形圖2.3.2 樂音分頻器1. 樂音分頻器模塊的功能此模塊的功能首先是提供決定所發(fā)音符的分頻預置數(shù),而此數(shù)在輸入端口停留的時間即為此音符的節(jié)拍值。電路中設置了梁祝 茉莉花 蟲兒飛樂曲全部音符所對應的分頻預置數(shù),每一音符的停留時間由音樂節(jié)拍和音調發(fā)生器模塊clk輸入頻率決定,在此為4Hz。2.樂音分頻器模塊的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speaker is port(clk : in std_logic;-1mhzTN :

11、in std_logic_vector(3 downto 0);-樂譜編碼spks : out std_logic);end;architecture rts of speaker is signal FM : std_logic;signal count : integer range 0 to 2047;signal temp : integer range 0 to 2048;begin process (TN)begincase TN iswhen "0000" => temp<=2048; when "0001" => tem

12、p<=1907; when "0010" => temp<=1699;when "0011" => temp<=1514;when "0101" => temp<=1275;when "0110" => temp<=1136;when "0111" => temp<=1011;when "1000" => temp<=955;when "1001" => temp<=

13、851;when "1010" => temp<=758;when "1100" => temp<=637;when "1101" => temp<=567;when "1110" => temp<=505;when "1111" => temp<=477;when others => temp<=2048;end case;end process;process(clk)beginif(clk'event and

14、clk='1') then count<=count+1;if(count=temp) then FM<=not FM;count<=0;end if;end if;end process;spks<=FM;end;3. 樂音分頻器符號圖圖2.4 樂音分頻器符號圖4. 樂音分頻器波形圖圖2.5 樂音2的波形圖圖2.6 樂音3的波形圖2.3.3 數(shù)據(jù)存儲器從菜單里的Tools選擇MegaWizard Plug-In Manager,按照向導完成ROM的定制,ROM初始化文件見附錄。圖2.7數(shù)據(jù)存儲器設計圖2.3.3 數(shù)據(jù)仿真1. 符號圖圖2.8 存儲器和地

15、址計數(shù)器符號圖2. 波形圖圖2.9 存儲器存入的數(shù)據(jù)存儲器存入了梁祝 茉莉花 蟲兒飛 三首音樂,最小編程單元是八分音符即每個數(shù)字占0.37秒。每首歌結束之后空0.37*8*2 = 6秒。三首歌共424個地址,即0.37*424 = 155秒,即兩分半左右。2.3.4 時鐘分頻器1. 二十分頻器程序代碼:library ieee;use ieee.std_logic_1164.all;entity fenpin20 is port(clk : in std_logic; -輸入20MHZ信號out1 : out std_logic);- 輸出1MHZend;architecture one of

16、 fenpin20 is signal T1 : integer range 0 to 10-1;signal F1M : std_logic;beginprocess(clk)beginif(clk'event and clk='1') then T1<=T1+1;if(T1=9) then F1M<= not F1M;T1<=0;end if;end if;end process;out1<=F1M;end;符號圖:圖2.10 分頻器符號圖波形圖:圖2.11 分頻器波形圖波形圖意義:此分頻器是20分頻,即把頻率分成其本身頻率的1/20。波形圖

17、中clk周期設置為1ns,則cout1的周期是20ns實現(xiàn)20分頻。2. 1M分頻4hz程序代碼:library ieee;use ieee.std_logic_1164.all;entity FENPIN4HZ is port(clk : in std_logic; -輸入1MHZ信號 F : out std_logic);- 輸出4HZend;architecture one of FENPIN4HZ is signal T1 : integer range 0 to 124999;signal F1M : std_logic;beginprocess(clk)beginif(clk

18、9;event and clk='1') then T1<=T1+1;if(T1=124999) then F1M<= not F1M;T1<=0;end if;end if;end process;F <= F1M;end;符號圖:圖2.12 分頻器符號圖波形圖:圖2.13 分頻器波形圖三. 整體仿真3.1 符號圖圖3.1 整體符號圖心得體會通過這幾天的課程設計,使我對VHDL語言有了更加深刻的了解,在書本上學的理論知識能夠運用到了實踐中,而課程設計做的成功,增加了我學習EDA的興趣,不論在以后的學習中還是工作中,EDA肯定是我們必不可少的設計工具。通

19、過此次課程設計我已經可以按計劃將要求把簡易音樂演奏器設計出來,并能實現(xiàn)所要的功能。在設計過程中,我遇到了許多問題,通過自己上網、查閱資料、問同學老師,解決了各個問題,并設計出所需要的要求的程序代碼。在設計過程中,我了解到設計程序代碼的基本過程,首先建立子模塊,并對各個模塊進行仿真,調試,直到實現(xiàn)所要的功能為止。再用元件例化對頂層文件進行仿真,調試,到仿真圖正確止。最后將程序代碼下載到FPGA實驗箱上。 總的來說,通過實驗,我激發(fā)了EDA學習的興趣,也對這門課程有了更深的理解,對EDA設計軟件Quarter 的使用也更加熟練。更重要的是在此次實驗過程中,更好的培養(yǎng)了我們的具體

20、實驗的能力。又因為在在實驗過程中有許多實驗現(xiàn)象,需要我們仔細的觀察,并且分析現(xiàn)象的原因。特別有時當實驗現(xiàn)象與我們預計的結果不相符時,就更加的需要我們仔細的思考和分析了,并且進行適當?shù)恼{節(jié)。參考文獻1 張順興.數(shù)字電路與系統(tǒng)設計.第1版.南京:東南大學出版社,20042 王玉秀.電工電子基礎實驗.第1版.南京:東南大學出版社,20063 孫肖子.模擬電子技術基礎.第1版.西安:西安電子科技大學出版社,2001.14 謝自美.電子線路設計實驗測試.第2版.武昌:華中科技大學出版社,2000.75 張豫滇.電子電路課程設計.第1版.南京:河海大學出版社,2005.86 沈明山.EDA技術及可編程器件應用實訓,科學出版社,2004.6(4):318-3267 劉婷婷,李軍.電子設計自動化(EDA).北京師范大學出版社,2007,9(2):250-2578 趙明富,李立軍.EDA技術基礎,北京大學出版社,2007.5(5):221-224附錄:Addr+0+1+2+3+4+5+6+7梁祝033335556888896855161212121513121012

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論