《VHDL音樂播放器》由會員分享,可在線閱讀,更多相關(guān)《VHDL音樂播放器(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、洛 陽 理 工 學 院課 程 設(shè) 計 報 告課程名稱EDA 技術(shù)與 VHDL設(shè)計題目音樂播放器的設(shè)計與仿真專業(yè)通信工程班級B1105學號B1105姓名完成日期2014 年 12 月 22 日前言隨著科學技術(shù)的進步,電子器件和電子系統(tǒng)設(shè)計方法日新月異,電子設(shè)計自動化(Electronics Design Automation ,EDA)技術(shù)正是適應(yīng)了現(xiàn)代電子產(chǎn)品設(shè)計的要求,吸收了多學科最新成果而形成的一門新技術(shù)。 現(xiàn)如今掌握 EDA技術(shù)是電子信息類專業(yè)的學生、工程技術(shù)人員所必備的基本能力和技能。傳統(tǒng)電子電路的設(shè)計, 首先要對系統(tǒng)進行分析, 然后按功能對系統(tǒng)進行劃分,接下來就要選擇特定芯片, 焊接
2、成 PCB電路板,最后對成品 PCB電路板進行調(diào)試。這樣的設(shè)計沒有靈活性可言, 搭成的系統(tǒng)需要的芯片種類多且數(shù)目大, 而且對于電路圖的設(shè)計和電路板的設(shè)計都需要很大的工作量, 工作難度也很高。 隨著可編程器件和 EDA技術(shù)的發(fā)展,傳統(tǒng)設(shè)計的劣勢被克服, 采用可編程邏輯器件基于芯片的設(shè)計方法, 期間的內(nèi)部邏輯和引腳可以由設(shè)計者自行決定, 提高了設(shè)計的靈活性和工作效率;同時,將系統(tǒng)集成在一個芯片上的設(shè)計,使系統(tǒng)具有體積小、功耗低、可靠性高等特點。EDA技術(shù)即電子設(shè)計自動化技術(shù), 它是以可編程邏輯器件 (PLD)為載體,以硬件描述語言 (HDL)為主要的描述方式,以 EDA軟件為主要的開發(fā)軟件的電子設(shè)
3、計過程。它主要采用“自頂向下”的設(shè)計方法,設(shè)計流程主要包括:設(shè)計輸入、綜合、仿真、適配、下載。EDA技術(shù)主要有以下特征:(1)高層綜合的理論和方法取得進展,從而將EDA設(shè)計層次由 RT級提高到了系統(tǒng)級,并推出了系統(tǒng)級綜合優(yōu)化工具,縮短了復雜ASIC 的設(shè)計周期。( 2)采用硬件描述語言來描述10 萬門以上的設(shè)計,并形成了VHDL和Verilog-HDL 兩種標準硬件描述語言。(3)采用平面規(guī)劃技術(shù)對邏輯綜合和物理版圖設(shè)計聯(lián)合管理,做到在邏輯設(shè)計綜合早期階段就考慮到物理設(shè)計信息的影響。(4)可測性綜合設(shè)計。(5)為帶有嵌入式IP 核的 ASIC設(shè)計提供軟、硬件協(xié)同設(shè)計工具。(6)建立并設(shè)計工具框
4、架結(jié)構(gòu)的集成化設(shè)計環(huán)境,以適應(yīng)當今ASIC 規(guī)模大而復雜、數(shù)字與模擬電路并存、硬件與軟件設(shè)計并存、產(chǎn)品上市速度快等特點??偠灾?, EDA技術(shù)的出現(xiàn),給電子信息產(chǎn)業(yè)帶來了革命性的變革。一.設(shè)計任務(wù)及要求本次課程設(shè)計要求使用 EDA工具,設(shè)計實現(xiàn)簡易音樂播放器,理解音名與頻率的關(guān)系及數(shù)控分頻原理,經(jīng)過對整體進行模塊化分析、編程、綜合、仿真及最終下載,完整實現(xiàn)簡易音樂器的播放功能。用 VHDL語言設(shè)計樂音的節(jié)拍與音符產(chǎn)生電路;用 VHDL語言設(shè)計分頻系數(shù)、音符顯示數(shù)據(jù)產(chǎn)生電路;用 VHDL語言設(shè)計可控分頻器電路;理解簡易音樂播放器總體設(shè)計方案。掌握基本的 VHDL語言;理解音樂播放電路設(shè)計方案。掌
5、握用 VHDL語言設(shè)計節(jié)拍與音符產(chǎn)生電路; 掌握用 VHDL語言設(shè)計分頻系數(shù)、 音符顯示數(shù)據(jù)產(chǎn)生電路;掌握用 VHDL語言設(shè)計可控分頻器電路。設(shè)計結(jié)果:原理圖與原程序、電路仿真圖、能在實訓系統(tǒng)上播放悅耳動聽的音樂。二.設(shè)計實現(xiàn)2.1 準備知識在本次設(shè)計中采用了梁祝茉莉花蟲兒飛作為要播放的樂曲,根據(jù)聲樂知識,組成樂曲的每個音符的發(fā)音頻率值及其持續(xù)的時間是樂曲能連續(xù)演奏所需的兩個基本要素, 獲取這兩個要素所對應(yīng)的數(shù)值以及通過純硬件的手段來利用這些數(shù)值實現(xiàn)所希望樂曲的演奏效果是本實驗的關(guān)鍵。該演奏電路演奏的樂曲是“梁?!逼?,其最小的節(jié)拍為1 拍。將 1 拍的時長定為 0.25 秒,則只需要再提供一
6、個 4Hz 的時鐘頻率即可產(chǎn)生 1 拍的時長,演奏的時間控制通過 ROM查表的方式來完成。 對于占用時間較長的節(jié)拍, 如全音符為 4 拍(重復 4),2/4 音符為 2 拍(重復 2),1/4 音符為 1 拍(重復 1)。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將得到的分頻數(shù)四舍五入取整。 若基準頻率過低, 則由于分頻系數(shù)過小, 四舍五入取整后的誤差較大,若基準頻率過高,雖然誤碼差變小,但分頻結(jié)構(gòu)將變大。實際的設(shè)計應(yīng)綜合考慮兩方面的因素 , 在盡量減小頻率誤差的前提下取舍合適的基準頻率。本設(shè)計中選取 4MHz的基準頻率。表2-1 為簡譜中音名與頻率的對應(yīng)關(guān)系。表 2.1樂譜編碼和
7、樂音頻率音符編碼頻率 f分頻數(shù) 106/f計數(shù)值 (106/2f)-111262106/262190722294106/294169933330106/3301514低44349106/349143155392106/3921274音66440106/440113577494106/494101118523106/52395529587106/587850310659106/659757中411698106/698715512784106/784636音613880106/880567714988106/988505高音1151047106/10474762.2 樂曲演奏電路的結(jié)構(gòu)示意時鐘樂譜
8、樂音存儲器揚聲器分頻器地址2.3 樂曲演奏電路的子結(jié)構(gòu)頂層結(jié)構(gòu)所包含的模塊分別有地址計數(shù)器模塊(ADDR)、樂音分頻器模塊( SPEAKER)、數(shù)據(jù)存儲器( YP)以下便是對各個子模塊的分析。2.3.1地址計數(shù)器模塊1. 地址計數(shù)器功能在此模塊中設(shè)置了一個 9 位二進制計數(shù)器 (計數(shù)最大值為 512),這個計數(shù)器的計數(shù)頻率選為 4Hz,即每一計數(shù)值的停留時間為 0.25s ,恰好為當全音符設(shè)為 1s 時。例如,梁祝樂曲的第一個音符為“ 3”,此音在邏輯中停留了 4 個時鐘節(jié)拍,即為 1s 時間,相應(yīng)地所對應(yīng)“ 1”音符分頻預(yù)置數(shù)為 1409 在 ADDR的輸入端停留了 1s。隨著 ADDR中的
9、計數(shù)器按 4Hz 的時鐘頻率做加法計數(shù)時,樂譜逐次被選取,梁祝樂曲就開始自然連續(xù)的演奏起來了。2. 程序代碼LIBRARY ieee;USE IEEE.STD_LOGIC_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 ISBEGINPROCESS (clk)BEGINIF (clkevent AND clk = 1)THENA temp temp
10、 temp temp temp temp temp temp temp temp temp temp temp temp temp=2048;end case;end process;process(clk)beginif(clkevent and 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ù)存
11、器從菜 里的 Tools 選擇 MegaWizard Plug- In Manager ,按照向 完成ROM的定制, ROM初始化文件 附 。圖 2.7 數(shù)據(jù)存儲器設(shè)計圖2.3.3數(shù)據(jù)仿真1. 符號 圖 2.8存儲器和地址計數(shù)器符號圖2. 波形圖圖 2.9存儲器存入的數(shù)據(jù)存儲器存入了梁祝茉莉花蟲兒飛三首音樂,最小編程單元是八分音符即每個數(shù)字占0.37 秒。每首歌結(jié)束之后空0.37*8*2= 6 秒。三首歌共 424 個地址,即 0.37*424 = 155秒,即兩分半左右。2.3.4時鐘分頻器1. 二十分頻器程序代碼 :library ieee;use ieee.std_logic_1164.
12、all;entity fenpin20 isport(clk : in std_logic; -out1 : out std_logic);-輸入輸出20MHZ信號1MHZend;architecture one of fenpin20 issignal T1 : integer range 0 to 10-1;signal F1M : std_logic;beginprocess(clk)beginif(clkevent and clk=1)thenT1=T1+1;if(T1=9) then F1M= not F1M;T1=0;end if;end if;end process;out1=F
13、1M;end;符號圖:圖 2.10分頻器符號圖波形圖:圖 2.11分頻器波形圖波形圖意義:此分頻器是 20 分頻,即把頻率分成其本身頻率的 1/20 。波形圖中 clk 周期設(shè)置為 1ns,則 cout1 的周期是 20ns 實現(xiàn) 20 分頻。2.1M分頻 4hz程序代碼:library ieee;use ieee.std_logic_1164.all;entity FENPIN4HZ isport(clk : in std_logic; -輸入1MHZ信號F : out std_logic);-輸出4HZend;architecture one of FENPIN4HZ issignal T
14、1 : integer range 0 to 124999;signal F1M : std_logic;beginprocess(clk)beginif(clkevent and clk=1)thenT1=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整體符號圖心得體會通過這幾天的課程設(shè)計,使我對VHDL語言有了更加深刻的了解,在書本上學的理論知識能夠運用到了實踐中,而課程設(shè)計做的
15、成功,增加了我學習EDA的興趣,不論在以后的學習中還是工作中, EDA肯定是我們必不可少的設(shè)計工具。通過此次課程設(shè)計我已經(jīng)可以按計劃將要求把簡易音樂演奏器設(shè)計出來,并能實現(xiàn)所要的功能。在設(shè)計過程中, 我遇到了許多問題, 通過自己上網(wǎng)、 查閱資料、問同學老師,解決了各個問題, 并設(shè)計出所需要的要求的程序代碼。在設(shè)計過程中, 我了解到設(shè)計程序代碼的基本過程,首先建立子模塊,并對各個模塊進行仿真,調(diào)試,直到實現(xiàn)所要的功能為止。 再用元件例化對頂層文件進行仿真,調(diào)試,到仿真圖正確止。最后將程序代碼下載到FPGA實驗箱上??偟膩碚f,通過實驗,我激發(fā)了 EDA學習的興趣,也對這門課程有了更深的理解,對 E
16、DA設(shè)計軟件 Quarter 的使用也更加熟練。更重要的是在此次實驗過程中,更好的培養(yǎng)了我們的具體實驗的能力。 又因為在在實驗過程中有許多實驗現(xiàn)象,需要我們仔細的觀察, 并且分析現(xiàn)象的原因。 特別有時當實驗現(xiàn)象與我們預(yù)計的結(jié)果不相符時, 就更加的需要我們仔細的思考和分析了, 并且進行適當?shù)恼{(diào)節(jié)。參考文獻1 張順興 . 數(shù)字電路與系統(tǒng)設(shè)計 . 第 1 版 . 南京:東南大學出版社 ,20042 王玉秀 . 電工電子基礎(chǔ)實驗 . 第 1 版. 南京:東南大學出版社 ,20063 孫肖子 . 模擬電子技術(shù)基礎(chǔ) . 第 1 版 . 西安:西安電子科技大學出版社 ,2001.14 謝自美 . 電子線路設(shè)
17、計 ?實驗 ?測試 . 第 2 版 . 武昌:華中科技大學出版社 ,2000.75 張豫滇 . 電子電路課程設(shè)計 . 第 1 版. 南京:河海大學出版社 ,2005.86 沈明山 .EDA技術(shù)及可編程器件應(yīng)用實訓 , 科學出版社 ,2004.6 (4):318-3267 劉婷婷 , 李軍 . 電子設(shè)計自動化( EDA) . 北京師范大學出版社, 2007,9( 2) :250-2578趙明富 , 李立軍 .EDA技術(shù)基礎(chǔ) , 北京大學出版社 ,2007.5 (5):221-224附錄:Addr+0+1+2+3+4+5+6+703333555688889685516121212151312101
18、224999999993277665556409991077664855568899563388656864555555557210101012779980685555008835535679966666665610488891212121011299109886512033338888128686535681365555550014400000000152000000001601010101213151513168121212131212121217610101012131515131841212121312121212192121212121212101220012131313121212
19、12梁???6 秒茉莉花20810109101212109+2168889888822410981099910232121213151212121224099101291086248555566882569991088862645555550027200000000280000000002881010101011111212296101010109999304888899101031210101077777320661010999932866101099993366610109998344888888883521091212121211103609999121110936812121210999937666101099993846610109999392111011109999400111011101515984088888888841600000000空 6 秒蟲兒飛空 3 秒