EDA課程設(shè)計-音樂播放器_第1頁
EDA課程設(shè)計-音樂播放器_第2頁
EDA課程設(shè)計-音樂播放器_第3頁
EDA課程設(shè)計-音樂播放器_第4頁
EDA課程設(shè)計-音樂播放器_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

------------------------------------------------------------------------EDA課程設(shè)計—音樂播放器EDA課程設(shè)計音樂播放器一、前言1、課程的目的與任務(wù)《EDA課程設(shè)計》(注:EDA即電子設(shè)計自動化,ElectronicsDesignAutomation)是繼《模擬電子技術(shù)基礎(chǔ)》、《數(shù)字電子技術(shù)基礎(chǔ)》、《電子技術(shù)基礎(chǔ)實驗》課程后,電氣類、自控類和電子類等專業(yè)學(xué)生在電子技術(shù)實驗技能方面綜合性質(zhì)的實驗訓(xùn)練課程,是電子技術(shù)基礎(chǔ)的一個部分,其目的和任務(wù)是通過一周的時間,讓學(xué)生掌握EDA的基本方法,熟悉一種EDA軟件(MAXPLUS2),并能利用EDA軟件設(shè)計一個電子技術(shù)綜合問題,并在實驗板上成功下載,為以后進行工程實際問題的研究打下設(shè)計基礎(chǔ)。2、課程的基本要求通過課程設(shè)計使學(xué)生能熟練掌握一種EDA軟件(MAXPLUS2)的使用方法,能熟練進行設(shè)計輸入、編譯、管腳分配、下載等過程。通過課程設(shè)計使學(xué)生能利用EDA軟件(MAXPLUS2)進行至少一個電子技術(shù)綜合問題的設(shè)計(內(nèi)容可由老師指定或自由選擇),設(shè)計輸入可采用圖形輸入法或AHDL硬件描述語言輸入法。通過課程設(shè)計使學(xué)生初步具有分析尋找和排除電子電路中常見故障的能力。通過課程設(shè)計使學(xué)生能獨立寫出嚴謹?shù)摹⒂欣碚摳鶕?jù)的、實事求是的、文理通順的字跡端正的課程設(shè)計報告。3、與其他課程的聯(lián)系與分工《EDA課程設(shè)計》中應(yīng)用了《模擬電子技術(shù)基礎(chǔ)》、《數(shù)字電子技術(shù)基礎(chǔ)》中的基礎(chǔ)知識和基本理論,并且利用了《電子技術(shù)基礎(chǔ)實驗》中的基本實驗方法,在時間上的安排上應(yīng)該在這些課程之后?!禘DA課程設(shè)計》的后續(xù)課程是《微機原理》等其它專業(yè)課程,《EDA課程設(shè)計》中對學(xué)生綜合設(shè)計能力的培養(yǎng)將為這些后續(xù)課程的學(xué)習(xí)打下良好基礎(chǔ)。二、設(shè)計任務(wù)及要求用VHDL語言設(shè)計樂音的節(jié)拍與音符產(chǎn)生電路;用VHDL語言設(shè)計分頻系數(shù)、音符顯示數(shù)據(jù)產(chǎn)生電路;用VHDL語言設(shè)計可控分頻器電路;理解簡易音樂播放器總體設(shè)計方案。掌握基本的VHDL語言;理解音樂播放電路設(shè)計方案。掌握用VHDL語言設(shè)計節(jié)拍與音符產(chǎn)生電路;掌握用VHDL語言設(shè)計分頻系數(shù)、音符顯示數(shù)據(jù)產(chǎn)生電路;掌握用VHDL語言設(shè)計可控分頻器電路。設(shè)計結(jié)果:原理圖與原程序、電路仿真圖、能在實訓(xùn)系統(tǒng)上播放悅耳動聽的音樂。三、設(shè)計原理及總體框圖產(chǎn)生音樂的兩個因素是音樂頻率和音樂的持續(xù)時間,以純硬件完成演奏電路比利用微處理器(CPU)來實現(xiàn)樂曲演奏要復(fù)雜的多如果不借助于功能強大的EDA工具和硬件描述語言,憑借傳統(tǒng)的數(shù)字邏輯技術(shù),即使最簡單的演奏電路也難以實現(xiàn)。根據(jù)6.4.1的設(shè)計要求,樂曲硬件演奏電路系統(tǒng)主要由數(shù)控分頻器和樂曲存儲模塊組成。數(shù)控分頻器對FPGA的基準頻率進行分頻,得到與各個音階對應(yīng)的頻率輸出。樂曲存儲模塊產(chǎn)生節(jié)拍控制和音階選擇信號,即在此模塊中可存放一個樂曲曲譜真值表,由一個計數(shù)器來控制此真值表的輸出,而由計數(shù)器的計數(shù)時鐘信號作為樂曲節(jié)拍控制信號。1、音名與頻率的關(guān)系音樂的十二平均率規(guī)定:每兩個八度音(如簡譜中的中音1與高音1)之間的頻率相差一倍.在兩個八度音之間,又可分為十二個半音,每兩個半音的頻率比為4。另外,音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間,E到F之間為半音,其余為全音,由此可以計算出簡譜中從低音1到高音1之間每個音名的頻率如表1所示.表1簡譜中的音名與頻率的關(guān)系音名頻率/Hz音名頻率/Hz音名頻率/Hz低音1261.63中音1532.25高音11046.50低音2293.67中音2587.33高音21174.66低音3329.63中音3659.25高音31318.51低音4349.23中音4698.46高音41396.92低音5391.99中音5783.99高音51567.98低音6440中音6880高音61760低音7493.88中音7987.76高音71975.52由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將得到的分頻數(shù)四舍五入取整。若基準頻率過低,則由于分頻系數(shù)過小,四舍五入取整后的誤差較大,若基準頻率過高,雖然誤碼差變小,但分頻結(jié)構(gòu)將變大。實際的設(shè)計應(yīng)綜合考慮兩方面的因素,在盡量減小頻率誤差的前提下取舍合適的基準頻率。本例中選取4MHz的基準頻率,若無4MHz的時鐘頻率,實際上,只要各個音名間的相對品頻率關(guān)系不變,C作1與D作1演奏出的音樂聽起來都不會“走調(diào)”。各音階頻率及相應(yīng)的分頻系數(shù)如表2所示。為了減少輸出的偶次諧波分量,最后輸出到揚聲器的波形應(yīng)為對稱方波,因此在到達揚聲器之前,有一個二分頻的分頻器。表2中的分頻系數(shù)就是從4MHZ頻率二分頻得到的2MHZ頻率基礎(chǔ)上計算得出的。表2各音階頻率對應(yīng)的分頻值音名分頻系數(shù)初始值音名分頻系數(shù)初始值音名分頻系數(shù)初始值低音17644547中音138224369高音119116280低音268101381中音234054786高音212706921低音360672124中音330345157高音315176674低音457272464中音428645327高音414326759低音551023089中音525515640高音512566935低音645453646中音622735918高音611377054低音740504141中音720256166高音710137178由于最大的分頻系數(shù)為7644,故采用13位二進制計數(shù)器已能滿足分頻要求。在表2,除給出了分頻比以外,給出了對應(yīng)于各個音階頻率時計數(shù)器不同的初始值,對于樂曲中的休止符,要將分頻系數(shù)設(shè)為0,即初始值為8191即可,此時揚聲器將不會發(fā)聲。對于不同的分頻系數(shù),加載不同的初始值即可。用加載初始值而不是將分頻輸出譯碼反饋,可以有效地減少本設(shè)計占用可編程邏輯器件的資源,也是同步計數(shù)器的一個常用設(shè)計技巧。2、控制音長的節(jié)拍發(fā)生器該演奏電路演奏的樂曲是“梁祝”片段,其最小的節(jié)拍為1拍。將1拍的時長定為0.25秒,則只需要再提供一個4Hz的時鐘頻率即可產(chǎn)生1拍的時長,演奏的時間控制通過ROM查表的方式來完成。對于占用時間較長的節(jié)拍,如全音符為4拍(重復(fù)4),2/4音符為2拍(重復(fù)2),1/4音符為1拍(重復(fù)1)。3、總體框圖:(如圖1)圖圖1總體框圖說明:NOTETABS相當(dāng)于一個計數(shù)器,通過計數(shù)自動加1讀MUSIC模塊里的值,然后通過MUXA選擇模塊選擇MUSIC模塊中不同的輸出,TONETABA模塊根據(jù)MUXA模塊不同的輸出選擇相應(yīng)的值,SPEAKERA模塊根據(jù)TONETABA的輸出對12MHZ的時鐘信號進行分頻,從而得到相信的頻率輸出發(fā)出聲音(音調(diào)),從而實現(xiàn)播放不同的歌曲。四、程序設(shè)計:1、NOTETABS模塊:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYNOTETABSIS PORT(CLK: INSTD_LOGIC; COUNTER1:inoutSTD_LOGIC_vector(7downto0));ENDNOTETABS;ARCHITECTUREaOFNOTeTABsISBEGIN P1:PROCESS(CLK,COUNTER1) BEGIN IFCOUNTER1=183THEN COUNTER1<="00000000"; ELSIFCLK'EVENTANDCLK='1'THEN COUNTER1<=COUNTER1+1; ENDIF; ENDPROCESS;ENDa;創(chuàng)建符號:(如圖2)圖圖22、muxA模塊:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmuxAIS PORT(a: INSTD_LOGIC_vector(3downto0); b:outSTD_LOGIC_vector(3downto0); INDEX:OUTSTD_LOGIC_vector(3downto0); Q1:INSTD_LOGIC_vector(3downto0); Q2:INSTD_LOGIC_vector(3downto0); Q3:INSTD_LOGIC_vector(3downto0); Q4:INSTD_LOGIC_vector(3downto0));ENDmuxA;ARCHITECTUREaOFmuxAISBEGIN PROCESS(a,Q1,Q2,Q3,Q4) BEGIN CASEaIS WHEN"0001"=> b<="0001"; INDEX<=Q1; WHEN"0011"=> b<="0010"; INDEX<=Q2; WHEN"0010"=> b<="0011"; INDEX<=Q3; WHEN"0110"=> b<="0100"; INDEX<=Q4; WHENOTHERS=> null; ENDCASE; ENDPROCESS;ENDa;創(chuàng)建符號:(如圖3)圖圖33、TONETABA模塊:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTONETABAIS PORT( INDEX :IN STD_LOGIC_vector(3downto0); CODE :OUTSTD_LOGIC_vector(3downto0); HIGH:OUTSTD_LOGIC; TONE:OUTSTD_LOGIC_vector(10downto0));ENDTONETABA;ARCHITECTUREaOFTONETABAISBEGIN SEARCH: PROCESS(INDEX) BEGIN CASEINDEXIS WHEN"0000"=>TONE<="11111111111";CODE<="0000";HIGH<='0';--2047 WHEN"0001"=>TONE<="01100000101";CODE<="0001";HIGH<='0';--773 WHEN"0010"=>TONE<="01110010000";CODE<="0010";HIGH<='0';--912 WHEN"0011"=>TONE<="10000001100";CODE<="0011";HIGH<='0';--1036 WHEN"0101"=>TONE<="10010101101";CODE<="0101";HIGH<='0';--1197 WHEN"0110"=>TONE<="10100001010";CODE<="0110";HIGH<='0';--1290 WHEN"0111"=>TONE<="10101011100";CODE<="0111";HIGH<='0';--1372 WHEN"1000"=>TONE<="10110000010";CODE<="0001";HIGH<='1';--1410 WHEN"1001"=>TONE<="10111001000";CODE<="0010";HIGH<='1';--1480 WHEN"1010"=>TONE<="11000000110";CODE<="0011";HIGH<='1';--1542 WHEN"1100"=>TONE<="11001010110";CODE<="0101";HIGH<='1';--1622 WHEN"1101"=>TONE<="11010000100";CODE<="0110";HIGH<='1';--1668 WHEN"1111"=>TONE<="11011000000";CODE<="0001";HIGH<='1';--1728 WHENOTHERS=>NULL; ENDCASE; ENDPROCESS;ENDa;創(chuàng)建符號:(如圖4)圖圖44、SPEAKERA模塊:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;ENTITYSPEAKERAIS PORT(CLK:INSTD_LOGIC; TONE:INSTD_LOGIC_vector(10downto0); SPKS:OUTSTD_LOGIC);ENDSPEAKERA;ARCHITECTUREaOFSPEAKERAIS SIGNALPRECLK:STD_LOGIC; SIGNALFULLSPKS:STD_LOGIC;BEGIN DIVIDECLK: PROCESS(CLK) VARIABLECOUNT4:STD_LOGIC_vector(3downto0); BEGIN PRECLK<='0'; IFCOUNT4>11THEN PRECLK<='1'; COUNT4:="0000"; ELSIFCLK'EVENTANDCLK='1'THEN COUNT4:=COUNT4+1; ENDIF; ENDPROCESS; GENSPKS: PROCESS(PRECLK,TONE) VARIABLECOUNT11:STD_LOGIC_vector(10downto0); BEGIN IFPRECLK'EVENTANDPRECLK='1'THEN IFCOUNT11=16#7FF#THEN COUNT11:=TONE; FULLSPKS<='1'; ELSECOUNT11:=COUNT11+1; FULLSPKS<='0'; ENDIF; ENDIF; ENDPROCESS; DELAYSPKS: PROCESS(FULLSPKS) VARIABLECOUNT2:STD_LOGIC; BEGIN IFFULLSPKS'EVENTANDFULLSPKS='1'THEN COUNT2:=NOTCOUNT2; IFCOUNT2='1'THEN SPKS<='1'; ELSE SPKS<='0'; ENDIF; ENDIF; ENDPROCESS;ENDa;創(chuàng)建符號:(如圖5)圖圖55、MUSIC模塊:Music1:liangzhu_rom(歌曲名:梁祝)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENTBEGIN00:3;01:3;02:3;03:3;04:5;05:5;06:5;07:6;08:8;09:8;10:8;11:9;12:6;13:8;14:5;15:5;16:12;17:12;18:12;19:15;20:13;21:12;22:10;23:12;24:9;25:9;26:9;27:9;28:9;29:9;30:9;31:0;32:9;33:9;34:9;35:10;36:7;37:7;38:6;39:6;40:5;41:5;42:5;43:6;44:8;45:8;46:9;47:9;48:3;49:3;50:8;51:8;52:6;53:5;54:6;55:8;56:5;57:5;58:5;59:5;60:5;61:5;62:5;63:5;64:10;65:10;66:10;67:12;68:7;69:7;70:9;71:9;72:6;73:8;74:5;75:5;76:5;77:5;78:5;79:5;80:3;81:5;82:3;83:3;84:5;85:6;86:7;87:7;88:6;89:6;90:6;91:6;92:6;93:6;94:5;95:6;96:8;97:8;98:8;99:9;100:12;101:12;102:12;103:10;104:9;105:9;106:10;107:9;108:8;109:8;110:6;111:5;112:3;113:3;114:3;115:3;116:8;117:8;118:8;119:8;120:6;121:8;122:6;123:5;124:3;125:5;126:6;127:8;128:5;129:5;130:5;131:5;132:5;133:5;134:5;135:5;136:0;137:0;138:0;END;創(chuàng)建符號:(如圖6)圖圖6Music2:shengri_rom(歌曲名:生日快樂)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENTBEGIN00:13;01:13;02:13;03:13;04:13;05:13;06:13;07:12;08:12;09:10;10:10;11:10;12:10;13:12;14:12;15:12;16:12;17:15;18:15;19:15;20:15;21:13;22:13;23:12;24:12;25:13;26:13;27:13;28:13;29:13;30:13;31:13;32:13;33:10;34:10;35:10;36:10;37:12;38:12;39:13;40:13;41:12;42:12;43:12;44:12;45:10;46:10;47:10;48:10;49:8;50:8;51:6;52:6;53:12;54:12;55:10;56:10;57:9;58:9;59:9;60:9;61:9;62:9;63:9;64:9;65:9;66:9;67:9;68:9;69:9;70:9;71:10;72:10;73:12;74:12;75:12;76:12;77:12;78:12;79:13;80:13;81:10;82:10;83:10;84:10;85:9;86:9;87:9;88:9;89:8;90:8;91:8;92:8;93:8;94:8;95:8;96:8;97:12;98:12;99:12;100:12;101:12;102:12;103:10;104:10;105:9;106:9;107:8;108:8;109:6;110:6;111:8;112:8;113:5;114:5;115:5;116:5;117:5;118:5;119:5;120:5;121:5;122:5;123:5;124:5;125:0;126:0;127:0;END;創(chuàng)建符號:(如圖7)圖圖7Music3:yydcb_rom(歌曲名:隱形的翅膀)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENTBEGIN00:10;01:10;02:12;03:12;04:15;05:15;06:15;07:15;08:15;09:15;10:15;11:15;12:15;13:15;14:15;15:15;16:13;17:13;18:12;19:12;20:13;21:13;22:15;23:15;24:10;25:10;26:9;27:9;28:8;29:8;30:8;31:8;32:8;33:8;34:8;35:8;36:8;37:8;38:15;39:15;40:15;41:15;42:13;43:13;44:12;45:12;46:10;47:10;48:9;49:9;50:8;51:9;52:9;53:9;54:9;55:9;56:9;57:9;58:9;59:9;60:10;61:10;62:12;63:12;64:15;65:15;66:15;67:15;68:15;69:15;70:15;71:15;72:15;73:15;74:15;75:15;76:13;77:13;78:12;79:12;80:13;81:13;82:15;83:15;84:10;85:10;86:9;87:9;88:8;89:8;90:8;91:8;92:8;93:8;94:8;95:8;96:8;97:8;98:15;99:15;100:15;101:15;102:13;103:13;104:12;105:12;106:10;107:10;108:9;109:9;110:8;111:8;112:8;113:8;114:8;115:8;116:8;117:8;118:8;119:8;120:10;121:10;122:12;123:12;124:15;125:15;126:15;127:15;128:15;129:15;130:15;131:15;132:14;133:14;134:14;135:14;136:13;137:13;138:12;139:12;140:13;141:13;142:15;143:15;144:10;145:10;146:9;147:9;148:8;149:8;150:8;151:8;152:8;153:8;154:8;155:8;156:8;157:8;158:15;159:15;160:15;161:15;162:13;163:13;164:12;165:12;166:10;167:10;168:9;169:9;170:9;171:9;172:9;173:9;174:9;175:9;176:8;177:8;178:8;179:8;180:8;181:8;182:8;183:8;END;創(chuàng)建符號:(如圖8)圖圖8Music4:yijianmei_rom(歌曲名:一剪梅)WIDTH=4;DEPTH=256;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENTBEGIN00:6;01:6;02:6;03:6;04:10;05:10;06:10;07:10;08:10;09:10;10:9;11:8;12:7;13:7;14:8;15:8;16:7;17:7;18:5;19:5;20:6;21:6;22:6;23:6;24:6;25:6;26:6;27:6;28:6;29:6;30:6;31:6;32:6;33:9;34:6;35:6;36:6;37:7;38:7;39:7;40:7;41:7;42:7;43:6;44:8;45:9;46:9;47:9;48:9;49:10;50:12;51:10;52:9;53:10;54:10;55:10;56:10;57:10;58:10;59:10;60:10;61:10;62:10;63:10;64:10;65:10;66:10;67:10;68:12;69:13;70:13;71:13;72:13;73:13;74:13;75:12;76:10;77:9;78:9;79:9;80:9;81:9;82:9;83:8;84:9;85:10;86:10;87:10;88:10;89:10;90:10;91:9;92:10;93:6;94:6;95:6;96:6;97:6;98:6;99:6;100:6;101:7;102:7;103:7;104:6;105:5;106:5;107:7;108:7;109:0;110:0;111:5;112:3;113:7;114:7;115:8;116:7;117:6;118:6;119:6;120:6;121:6;122:6;123:6;124:6;125:6;126:6;127:6;128:6;129:0;130:0;131:0;END;創(chuàng)建符號:(如圖9)圖圖9五、編譯及仿真仿真軟件使用的是MAXPLUSII,Max+p

溫馨提示

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

評論

0/150

提交評論