




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄一.課程設(shè)計概述11.設(shè)計的題目2 2.設(shè)計要求2 3.設(shè)計構(gòu)思2二.總體框圖4三.具體各功能模塊(模塊圖像,程序,波形圖像,波形分析)21.計數(shù)器模塊2 2.選擇器模塊4 3.數(shù)據(jù)翻譯模塊6 4.數(shù)控分頻模塊7 5.樂曲ROM的三個模塊10 6.頂層文件的設(shè)計12 四.總體電路圖(RLT電路圖)14 五.課程設(shè)計總結(jié)15一.課程設(shè)計概述1.設(shè)計的題目樂曲播放電路2.設(shè)計要求:學(xué)習(xí)利用數(shù)控分頻器設(shè)計硬件樂曲演奏電路,在實驗四的基礎(chǔ)上,改建電路的設(shè)計,增加功能自動選擇曲目,可選的歌曲不少于3首。3.設(shè)計構(gòu)思(1)音樂硬件演奏電路基本原理 硬件電路的發(fā)聲原理,聲音的頻譜范圍約在幾十到幾千赫茲,
2、若能利用程序來控制FPGA芯片某個引腳輸出一定頻率的矩形波,接上揚聲器就能發(fā)出相應(yīng)頻率的聲音。樂曲中的每一音符對應(yīng)著一個確定的頻率,要想FPGA發(fā)出不同音符的音調(diào),實際上只要控制它輸出相應(yīng)音符的頻率即可。樂曲都是由一連串的音符組成,因此按照樂曲的樂譜依次輸出這些音符所對應(yīng)的頻,就可以在揚聲器上連續(xù)地發(fā)出各個音符的音調(diào)。而要準(zhǔn)確地演奏出一首樂曲,僅僅讓揚聲器能夠發(fā)生是不夠的,還必須準(zhǔn)確地控制樂曲的節(jié)奏,即樂曲中每個音符的發(fā)生頻率及其持續(xù)時間是樂曲能夠連續(xù)演奏的兩個關(guān)鍵因素。(2) 音符頻率的獲得多個不同頻率的信號可通過對某個基準(zhǔn)頻率進(jìn)行分頻器獲得。由于各個音符的頻率多為非整數(shù),而分頻系數(shù)又不能為
3、小數(shù),故必須將計算機(jī)得到的分頻系數(shù)四舍五入取整。若基準(zhǔn)頻率過低,則分頻系數(shù)過小,四舍五入取整后的誤差較大。若基準(zhǔn)頻率過高,雖然可以減少頻率的相對誤差,但分頻結(jié)構(gòu)將變大。實際上應(yīng)該綜合考慮這兩個方面的因素,在盡量減少誤差的前提下,選取合適的基準(zhǔn)頻率。本設(shè)計中選取1MHz的基準(zhǔn)頻率。數(shù)控分頻器采用12位二進(jìn)制計數(shù)器,樂曲中的休止符,只要將分頻系數(shù)設(shè)為0,即初始值=4095,此時揚聲器不會發(fā)聲。根據(jù)分頻系數(shù),可計算數(shù)控分頻器得到的初始值。(語言已經(jīng)無法描述其中的原理了,程序可以說明此問題,關(guān)于初始值的解釋,請看下文給出的程序)初始值的計算公式如下:由于所設(shè)計的數(shù)控分頻計采用12MHZ作為時鐘源,并通
4、過一次12分頻給出頻率為1MHZ的脈沖溢出信號,再對該1MHZ的溢出信號進(jìn)行12位2進(jìn)制碼的帶預(yù)置數(shù)進(jìn)行計數(shù),并給出一個頻率隨預(yù)置數(shù)變化的脈沖信號。由于該脈沖信號不具有驅(qū)動蜂鳴器的能力,故對此脈沖信號進(jìn)行2分頻以推動蜂鳴器發(fā)聲(3) 樂曲節(jié)奏的控制 一般樂曲最小的節(jié)拍為1/4拍,若將1拍的時間定為1秒,則只需要輸出4Hz的1/4拍的時長(0.25秒),對于其它占用時間較長的節(jié)拍(必為1/4拍的整數(shù)倍)則只需要將該音符連續(xù)輸出相應(yīng)的次數(shù)即可。計數(shù)時鐘信號作為輸出音符快慢的控制信號,時鐘快時輸出節(jié)拍速度就快,演奏的速度也就快,時鐘慢時輸出節(jié)拍的速度就慢,演奏的速度自然降低,由于最后的蜂鳴器前需加一
5、個二分頻的程序,因此計數(shù)器的時鐘信號應(yīng)為4Hz的2倍,即8Hz。(4) 樂譜的發(fā)生本設(shè)計將樂譜中的音符數(shù)據(jù)存儲在LPM-ROM中,若某音在邏輯中停留了4個時鐘節(jié)拍,即1秒的時間,相應(yīng)地,該音符就要在LPM-ROM中連續(xù)的四個地址上都存儲。當(dāng)一個4Hz的時鐘來時,相應(yīng)地就從LPM-ROM中輸出一個音符數(shù)據(jù)。(5) 選擇模塊 選擇模塊將用一個4位數(shù)的控制信號控制樂譜模塊數(shù)據(jù)的選擇性。梁祝二.總體框圖時鐘計數(shù)器數(shù)控分頻器選擇器生日快樂隱形的翅膀時鐘三.具體各功能模塊1.計數(shù)器模塊在notetabs中設(shè)置了一個8位二進(jìn)制計數(shù)器(計數(shù)最大值為138),作為音符數(shù)據(jù)ROM的地址發(fā)生器。這個計數(shù)器的計數(shù)頻率
6、為4HZ,即每一計數(shù)值的停留時間為0.25秒,恰為當(dāng)全音符設(shè)為1秒時,四四拍的4分音符持續(xù)的時間。例如,notetabs在以下的VHDL邏輯描述中,梁祝樂曲的第一個音符為“3”,此音在邏輯中停留了4個時鐘節(jié)拍,即1秒的時間,相應(yīng)的,所對應(yīng)的“3”音符分頻預(yù)制值為1036,在speakera中的輸入端停留1秒。隨著notetabs中計數(shù)器按4HZ的時鐘頻率作加法計數(shù)時,即隨地址值遞增時,音符數(shù)據(jù)ROM中的音符從ROM中通過tonelndex端口輸向tonetaba模塊,梁祝樂曲開始連續(xù)自然地演奏起來。(1)模塊圖像:(2)模塊程序library ieee;use ieee.std_logic_1
7、164.all;use ieee.std_logic_unsigned.all;entity notetabs is port (clk:in std_logic; counter:inout std_logic_vector(7 downto 0);end;architecture one of notetabs is begin cnt8:process(clk,counter) begin if counter =138 then counter =00000000; elsif (clkevent and clk=1) then counter b=0001; INDEX b=0010
8、; INDEX b=0011; INDEX null; END CASE; END PROCESS; END a;(3)波形圖(4)波形分析由波形分析可知,當(dāng)a輸入為0001時,輸出信號b與Q1信號相同,即播放第一首樂曲,此時b的信號輸出為0001,因此該模塊的功能符合要求。3.數(shù)據(jù)翻譯模塊音符的持續(xù)時間需根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來決定。Tonetaba模塊的功能首先是為speakera提供決定所發(fā)音符的分頻預(yù)置數(shù),而此數(shù)在speakera輸入口停留的時間即為此音符的節(jié)拍值。模塊tonetaba是樂曲簡譜碼對應(yīng)的分頻預(yù)置數(shù)查表電路,其中設(shè)置了三首樂曲全部音符所對應(yīng)的分頻預(yù)置數(shù),每一音符
9、的停留時間有音樂節(jié)拍和音調(diào)發(fā)生器模塊notetabs的CLK的輸入決定,在此為4HZ。(1)模塊圖像(2)程序library ieee;use ieee.std_logic_1164.all;entity tonetaba is port (index:in std_logic_vector(4 downto 0); code: out std_logic_vector (4 downto 0); high: out std_logic; tone:out std_logic_vector(10 downto 0); end; architecture one of tonetaba isbe
10、gin search:process(index) begin case index is When 00001=tone=01100000101;code=00001;hightone=01110010000;code=00010;hightone=10000001100;code=00011;hightone=10000110101;code=00100;hightone=10010101101;code=00101;hightone=10100001010;code=00110;hightone=10101011100;code=00111;hightone=10110000010;co
11、de=01000;hightone=10111001000;code=01001;hightone=11000000110;code=01010;hightone=11000101000;code=01011;hightone=11001010110;code=01100;hightone=11010000100;code=01101;hightone=11010110101;code=01110;hightone=11011000000;code=10001;hightone=11011101010;code=10010;hightone=11100000111;code=10011;hig
12、htone=11100010110;code=10100;hightone=11100101111;code=10101;hightone=11101000110;code=10110;hightone=11101011010;code=10111;highnull;end case;end process;end;(3)波形圖(4)波形分析從波形圖可看出,當(dāng)輸入信號為00010,輸出為中音2,查預(yù)置初值,發(fā)現(xiàn)完全正確,因此該模塊功能正確。4.數(shù)控分頻器模塊音符的頻率由speakera模塊獲得,這是一個數(shù)控分頻器。由其CLK端輸入一具有較高頻率(這里是12HZ)的信號,通過speakera分頻
13、后由spkout輸出,由于直接從數(shù)控分頻器中出來的輸出信號是脈寬極窄的脈沖式信號,為了有利于驅(qū)動揚聲器,需另加一個D觸發(fā)器以均衡其占空比,但這時的頻率將是原來的一半。Speakera對CLK輸入信號的分頻比由11位預(yù)置數(shù)tone決定。Spkout的輸出頻率將決定每一音符的音調(diào),這樣,分頻計數(shù)器的預(yù)制值tone與spkout的輸出頻率,就有了對應(yīng)關(guān)系。例如在tonetaba模塊中若取tone=1036,將發(fā)音符為“3”音的信號頻率。(1)模塊圖像(2)程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.a
14、ll;entity speakera is port ( clk : in std_logic; tone : in std_logic_vector(10 downto 0); spks : out std_logic);end;architecture one of speakera is signal preclk, fullspks : std_logic;begin divideclk : process(clk) variable count4 : std_logic_vector (3 downto 0); begin preclk 11 then preclk = 1; cou
15、nt4 := 0000; elsif clkevent and clk = 1 then count4 :=count4+1; end if; end process; genspks : process(preclk, tone) variable count11 : std_logic_vector(10 downto 0);begin if preclkevent and preclk = 1 then if count11 =16#7ff# then count11 := tone ; fullspks = 1; else count11 := count11+1; fullspks
16、= 0; end if; end if; end process; delayspks : process(fullspks) variable count2 : std_logic;begin if fullspksevent and fullspks = 1 then count2 := not count2; if count2 =1 then spks =1; else spks clk8HZ,counter=A);u2:yinxingdechiban port map (address=A,clock=clk8HZ,q=E);u3:shengrikuaile port map (ad
17、dress=A,clock=clk8HZ,q=F);u4:lianzu port map (address=A,clock=clk8HZ,q=G);u5:choice port map (a=a1,Q1=E,Q2=F,Q3=G,b=b1,INDEX=H);u6:tonetaba port map (index=H,code=code1,high=high1,tone=J);u7:speakera port map(clk=clk12MHZ,tone=J,spks=spkout);end; 四. 總體電路圖(RTL電路圖)五 .課程設(shè)計總結(jié) 經(jīng)過一個星期的努力,終于把EDA的課程設(shè)計完成了。雖然音樂播放電路的設(shè)計,之前實驗有做過,但是對其中的工作原理一竅不通。由于這次的課程設(shè)計選擇了這一題目,所以花了很大的時間去理解演奏電路的發(fā)音原理,音符的頻率,不僅對掌握了電路原理,也學(xué)習(xí)到了相關(guān)的樂理知識。另外
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福州英華職業(yè)學(xué)院《專項理論與實踐II》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省建筑安全員C證考試(專職安全員)題庫附答案
- 蘇州市職業(yè)大學(xué)《渦輪發(fā)動機(jī)飛機(jī)結(jié)構(gòu)與系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧科技學(xué)院《起重機(jī)械結(jié)構(gòu)力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南陽師范學(xué)院《網(wǎng)絡(luò)經(jīng)濟(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江科技學(xué)院《環(huán)境數(shù)據(jù)處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 滄州幼兒師范高等??茖W(xué)?!对\斷學(xué)基礎(chǔ)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 宿州航空職業(yè)學(xué)院《基地社工服務(wù)與田野基地建設(shè)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶城市管理職業(yè)學(xué)院《口腔固定修復(fù)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西冶金職業(yè)技術(shù)學(xué)院《內(nèi)燃機(jī)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 村委會地震演練方案及流程
- 個人下半年工作計劃范文2篇
- 山東職業(yè)學(xué)院單招《英語》考試復(fù)習(xí)題庫(含答案)
- 四年級上冊數(shù)學(xué)計算題練習(xí)300題及答案
- 滬教版二年級下冊計算題100道及答案
- 2023新課標(biāo)魯教版九年級化學(xué)下冊全教案
- 右側(cè)腹股溝疝教學(xué)查房
- 《趣味經(jīng)濟(jì)學(xué)》課件
- 人工智能與自動駕駛技術(shù)
- 醫(yī)院放射診療中的輻射防護(hù)常識學(xué)習(xí)培訓(xùn)
- 法學(xué)涉外法治方向課程設(shè)計
評論
0/150
提交評論