FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器

上傳人:jun****875 文檔編號:17804715 上傳時間:2020-12-06 格式:DOC 頁數(shù):5 大?。?05.41KB
收藏 版權(quán)申訴 舉報 下載
FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器_第1頁
第1頁 / 共5頁
FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器_第2頁
第2頁 / 共5頁
FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器_第3頁
第3頁 / 共5頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器》由會員分享,可在線閱讀,更多相關(guān)《FPGA設(shè)計-quartus《萬水千山總是情》歌曲播放器(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、樂曲演奏系統(tǒng)設(shè)計 1.1 系統(tǒng)原理 傳統(tǒng)數(shù)字邏輯設(shè)計方法相比,本設(shè)計借助于功能強大的EDA工具和硬件描述語言來完成,如果只以純硬件的方法完成樂曲演奏電路的設(shè)計,將是難以實現(xiàn)的。本設(shè)計采用了《萬水千山總是情》(圖3-1)的一部分來曲子來完成。 為了便于理解,首先介紹一下硬件電路的發(fā)聲原理。我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制FPGA某個引腳輸出一定頻率的矩形波,接上揚聲器就能發(fā)出相應(yīng)頻率的聲音。而樂曲中的每一音符對應(yīng)著一個確定的頻率,因此,要想FPGA發(fā)出不用音符的音調(diào),實際上只要控制它輸出相應(yīng)音符的頻率即可(音符和頻率的關(guān)系見表3-1)。樂曲都是由一連串的音符組

2、成,因此按照樂曲的樂譜依次輸出這些音符所對應(yīng)的頻率,就可以在揚聲器上連續(xù)地發(fā)出各個音符的音調(diào)。而要準(zhǔn)確地演奏出一首樂曲,僅僅讓揚聲器能夠發(fā)聲是不夠的,還必須準(zhǔn)確地控制樂曲的節(jié)奏,即每個音符的持續(xù)時間。由此可見,樂曲中每個音符的發(fā)音頻率及其持續(xù)的時間是樂曲能夠連續(xù)演奏的兩個關(guān)鍵因素。 而簡易電子琴,工作原理與樂曲演奏一樣,只是將固定預(yù)置樂曲變成了手動按鍵輸入,節(jié)拍時間取決于按鍵的停留時間,如果合適,同樣能播放出完整的歌曲來。 圖3-1《萬水千山總是情》曲譜 1.1.1 音調(diào)的控制 頻率的高低決定了音調(diào)的高低。音樂的十二平均率規(guī)定:每兩個八度音(如簡譜中的中音1和高音1)之間的頻率相差

3、一倍。在兩個八度音之間又分為十二個半音。另外,音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音。由此可以計算出簡譜中從低音1到高音1之間每個音名對應(yīng)的頻率,所有不同頻率的信號都是從同一個基準(zhǔn)頻率分頻得到的。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),因此必須將計算得到的分頻數(shù)四舍五入取整。若基準(zhǔn)頻率過低,則由于分頻比太小,四舍五入取整后的誤差較大;若基準(zhǔn)頻率過高,雖然誤差較小,但分頻數(shù)將變大。實際的設(shè)計應(yīng)綜合考慮這兩方面的因素,在盡量減小頻率誤差的前提下取合適的基準(zhǔn)頻率。因此,要想FPGA發(fā)出不同音符的音調(diào),實際上只要控制它輸出相應(yīng)音符的頻率即可。綜

4、合考慮各因素,本文中選取12MHZ作為CLK的分頻計數(shù)器的輸入分頻信號。樂曲都是由一連串的音符組成,因此按照樂曲的樂譜依次輸出這些音符所對應(yīng)的頻率,就可以在揚聲器上連續(xù)地發(fā)出各個音符的音調(diào)。 表3-1 簡譜中的音名與頻率的關(guān)系 音名 頻率/Hz 音名 頻率/Hz 音名 頻率/Hz 低音1 261.6 中音1 523.3 高音1 1045.5 低音2 293.7 中音2 587.3 高音2 1174.7 低音3 329.6 中音3 659.3 高音3 1318.5 低音4 349.2 中音4 698.5 高音4 1396.9 低音5

5、 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 493.9 中音7 987.8 高音7 1975.5 1.1.2 音長的控制 音符的持續(xù)時間須根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定。因此,在想控制音符的音長,就必須知道樂曲的速度和每個音符所對應(yīng)的節(jié)拍數(shù),在這個設(shè)計中所演奏的樂曲的最短的音符為四分音符,如果將全音符的持續(xù)時間設(shè)為1s的話,那么一拍所應(yīng)該持續(xù)的時間為0.25秒,則只需要再提供一個4HZ的時鐘頻率即可產(chǎn)生四分音符的時長。要想讓系統(tǒng)知道現(xiàn)在應(yīng)該演奏哪個音符,而這個音符持續(xù)的時間應(yīng)該是多少,就必須

6、編寫樂曲文件,在樂曲文件中音符是按地址存放的,當(dāng)系統(tǒng)工作時就按4Hz的頻率依次讀取簡譜,當(dāng)系統(tǒng)讀到某個音符的簡譜時就對應(yīng)發(fā)這個音符的音調(diào),持續(xù)時間為0.25秒,而如果在曲譜文件中這個音符為三拍音長,那又該如何控制呢?其實只要將該音符連續(xù)書寫三遍,這時系統(tǒng)讀樂曲文件的時候就會連續(xù)讀到三次,也就會發(fā)三個0.25秒的音長,這時我們聽上去就會持續(xù)了三拍的時間,通過這樣一個簡單的操作就可以控制音樂的音長了。 1.2  系統(tǒng)結(jié)構(gòu) 本系統(tǒng)主要由四個功能模塊組成:NOTETABS.VHD,TONETABA.VHD和 SPEAKER.VHD。第一部分NOTETABS,地址發(fā)生器,實現(xiàn)按節(jié)拍讀樂譜的功能;第二

7、部分TONETABA,查表電路,為SPEAKER提供分頻預(yù)置數(shù),實現(xiàn)樂曲譯碼輸出CODE[3:0];第三部分SPEAKERA,產(chǎn)生發(fā)音頻率,實現(xiàn)樂曲播放;第四部分ELECLOCK實現(xiàn)簡易電子琴功能。系統(tǒng)結(jié)構(gòu)圖如(圖3-2),該系統(tǒng)有三個輸入,五個輸出端口。三輸入端口分別是: CLK 4HZ端口,作為節(jié)拍脈沖信號輸入端口; CLK 12MHZ端口,作為發(fā)音頻率初始信號輸入端口; KEYIN輸入端口,作為簡易電子琴音符輸入端口。 五輸出端口分別是: CODE輸出端口,作為音符簡碼輸出LED顯示端口; HIGH輸出端口,作為音符高8度指示端口; SPKS輸出端口,作為《萬水千山總是情》

8、樂曲的聲音輸出端口; BUZZOUT輸出端口,作為簡易電子琴聲音輸出端口; LEDOUT輸出端口,作為簡易電子琴輸入音符顯示端口。 圖3-2 系統(tǒng)功能模塊組成圖 1.3  各模塊分析與設(shè)計 1.3.1  定制《萬水千山總是情》音符數(shù)據(jù)ROM 為了實現(xiàn)樂曲的播放,首先需要將曲譜定制到音符數(shù)據(jù)ROM里面,然后才能按照一定的節(jié)拍從ROM中讀出曲譜。由于所選曲子中不含高音,我們轉(zhuǎn)換關(guān)系如(表3-2): 表3-2音符與ROM中數(shù)據(jù)轉(zhuǎn)換關(guān)系 低音 ROM中十進制表示 ROM中十六進制表示 中音 ROM中十進制表示 ROM中十六進制表示 1 1 01 1 8 08

9、 2 2 02 2 9 09 3 3 03 3 10 0A 4 4 04 4 11 0B 5 5 05 5 12 0C 6 6 06 6 13 0D 7 7 07 7 14 0E 1.3.2  音符數(shù)據(jù)地址發(fā)生器模塊 NOTETABS NOTETABS中設(shè)置了一個8位二進制計數(shù)器(計數(shù)最大值138),作為音符數(shù)據(jù)的地址發(fā)生器。隨著NOTETABS中的計數(shù)器按照4HZ的時鐘速率作加法計數(shù)時,每讀一個數(shù)據(jù),音符持續(xù)時間為0.25秒,如音符數(shù)據(jù)中的中音3,為一拍,持續(xù)時間1秒,所以,音符數(shù)據(jù)ROM中需要重復(fù)寫四次地址0A,隨著

10、4HZ時鐘速率讀取地址遞增,音符數(shù)據(jù)ROM中的音符數(shù)據(jù)將通過模塊NOTETABS中ToneIndex[3..0]端口輸向TONETABA模塊。 1.3.3  預(yù)置數(shù)查表電路電路模塊 TONETABA 音符的持續(xù)時間須根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定,(圖3-2)中模塊 TONETABA的功能首先是為SPEAKERA提供決定音符發(fā)音的分頻預(yù)置數(shù),而此數(shù)在SPEAKERA輸入口停留時間即為此音符的節(jié)拍值。模塊TONETABA是樂曲簡譜碼對應(yīng)的分頻預(yù)置數(shù)查表電路,其中設(shè)置了《萬水千山總是情》樂曲全部音符所對應(yīng)的分頻預(yù)置數(shù),共9個,每一個音符的停留時間由音樂節(jié)拍和音調(diào)發(fā)生器模塊TONETAB

11、S的CLK輸入頻率決定,在此時為4HZ。每一個計數(shù)值停留時間為0.25秒,恰為當(dāng)全音符為1秒時,四四拍的4 分音符持續(xù)時間。這9個值的輸出由對應(yīng)于TONETABA的4位輸入值Index[3..0]確定,而Index[3..0]最多有16種選擇。輸向TONETABA中Index[3..0]的值 ToneIndex[3..0]的輸出值與持續(xù)的時間由模塊NOTETABAS決定。 1.3.4  發(fā)聲頻率產(chǎn)生模塊 SPEAKERA 這是樂曲演奏電路最重要的模塊,由它產(chǎn)生樂曲發(fā)音所需要的對應(yīng)頻率。此模塊的核心是一個可預(yù)置數(shù)控分頻器,下面是可預(yù)置數(shù)控分頻器的原理介紹: 它是由一個初值可變的加法計數(shù)器組

12、成。為了得到合適的發(fā)音頻率,在進行預(yù)置計數(shù)分頻之前需要將本文選擇的12MHZ初始頻率信號進行十六分頻,采用四位加法計數(shù)方式分頻,當(dāng)輸入一個脈沖信號,計數(shù)器做一次加法計數(shù),此時輸入信號脈寬展寬一倍(即進行一次二分頻),十六分頻后得到0.75MHZ輸入頻率。由于數(shù)控分頻器輸出的信號是脈寬很窄的信號,為了有利于驅(qū)動揚聲器發(fā)音,需要加一個D觸發(fā)器以均衡占空比,但這樣一來,此時頻率變?yōu)樵瓉淼亩种患?.375MHZ。可預(yù)置計數(shù)分頻器就是將0.375MHZ按照各音符發(fā)音所需要的頻率值進行預(yù)置數(shù)分頻。這里計數(shù)器設(shè)為11位(Tone[10..0]),模為2047(預(yù)置數(shù)可由預(yù)置數(shù)查表電路模塊TONETABA

13、查得)。若取音符3發(fā)音頻率為659HZ,需要將0.375MHZ進行約569次分頻才能得到此頻率。預(yù)置數(shù)即可用公式“模-分頻系數(shù)=預(yù)置數(shù)Tone[10..0]”算出,此時為“2047-569=1478(換成11位二進制計數(shù)為10111000110)”。 表3-3 《萬水千山總是情》各音階對應(yīng)的分頻預(yù)置數(shù)關(guān)系  音符 分頻預(yù)置數(shù) 二進制碼 音符 分頻預(yù)置數(shù) 二進制碼 中音1 1329 10100110001 中音5 1568 11000100000 中音2 1408 10110000000 中音6 1620 11001010100 中音3 1478 10111000110 低音5 1087 10000111111 中音4 1510 10111100110 低音6 1194 10010101010

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!