EDA樂(lè)曲硬件演奏電路設(shè)計(jì)(共22頁(yè))_第1頁(yè)
EDA樂(lè)曲硬件演奏電路設(shè)計(jì)(共22頁(yè))_第2頁(yè)
EDA樂(lè)曲硬件演奏電路設(shè)計(jì)(共22頁(yè))_第3頁(yè)
EDA樂(lè)曲硬件演奏電路設(shè)計(jì)(共22頁(yè))_第4頁(yè)
EDA樂(lè)曲硬件演奏電路設(shè)計(jì)(共22頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電子系統(tǒng)設(shè)計(jì)課程課程設(shè)計(jì)報(bào)告題目:姓 名: 吳清清 院 系: 電力學(xué)院 專業(yè): 電子科學(xué)與技術(shù) 學(xué) 號(hào): 201312309 指導(dǎo)教師: 譚聯(lián) 完成時(shí)間: 2016 年 12 月 21 日目錄1 課程設(shè)計(jì)題目、內(nèi)容與要求11.1 設(shè)計(jì)內(nèi)容11.2 具體要求12 系統(tǒng)設(shè)計(jì)12.1 設(shè)計(jì)思路12.2 系統(tǒng)原理32.2.1總體框圖32.2.2工作過(guò)程32.2.3樂(lè)曲演奏的原理圖43 系統(tǒng)實(shí)現(xiàn)43.1.分頻器(FDIV)43.2.計(jì)數(shù)器CNT138T63.2.1計(jì)數(shù)器CNT138T的設(shè)計(jì)63.3.分頻預(yù)置數(shù)譯碼器F_CODE模塊73.3.1 F_CODE模塊的設(shè)計(jì)83.4 數(shù)字分頻器SPKER模塊10

2、3.4.1數(shù)字分頻器SPKS模塊設(shè)計(jì)103.5選擇器choice123.6.樂(lè)譜文件ROM143.6.1樂(lè)譜文件143.6.2 LMP-ROM模塊154 系統(tǒng)仿真154.1計(jì)數(shù)器CNT138T的仿真154.2.分頻器FDIV164.3分頻預(yù)置數(shù)F_CODE164.4分頻器SPKER164.5樂(lè)曲ROM的數(shù)據(jù)讀取175硬件驗(yàn)證175.1引腳鎖定185.2硬件連接185.2實(shí)驗(yàn)現(xiàn)象186總結(jié)197參考書(shū)目191 課程設(shè)計(jì)題目、內(nèi)容與要求1.1 設(shè)計(jì)內(nèi)容 設(shè)計(jì)一個(gè)樂(lè)曲演奏電路,能夠自動(dòng)播放編寫好的音樂(lè)。要求將音樂(lè)通過(guò)實(shí)驗(yàn)箱上的喇叭播放出來(lái),用發(fā)光二級(jí)管顯示出樂(lè)曲的節(jié)拍。(1)完成程序的編程工作。(2

3、)將音樂(lè)數(shù)據(jù)制成LMP_ROM文件。(3)將程序在Quartus ii軟件中進(jìn)行編譯和仿真。(4)進(jìn)行引腳鎖定,然后下載到實(shí)驗(yàn)箱上觀察實(shí)驗(yàn)結(jié)果。1.2 具體要求(1)定制音符數(shù)據(jù)ROM MUSIC,檢測(cè)音符數(shù)據(jù)已經(jīng)進(jìn)入ROM中;(2)所有模塊,分別仿真測(cè)試;(3)完成系統(tǒng)仿真調(diào)試和硬件驗(yàn)證;(4)能夠?qū)墒滓魳?lè)隨時(shí)切換。2 系統(tǒng)設(shè)計(jì)2.1 設(shè)計(jì)思路樂(lè)曲中的每一音符對(duì)應(yīng)著一個(gè)確定的頻率,要想FPGA發(fā)出不同音符的音調(diào),實(shí)際上只要控制它輸出相應(yīng)音符的頻率即可。樂(lè)曲都是由一連串的音符組成,因此按照樂(lè)曲的樂(lè)譜依次輸出這些音符所對(duì)應(yīng)的頻,就可以在揚(yáng)聲器上連續(xù)地發(fā)出各個(gè)音符的音調(diào)。而要準(zhǔn)確地演奏出一首樂(lè)曲

4、,僅僅讓揚(yáng)聲器能夠發(fā)生是不夠的,還必須準(zhǔn)確地控制樂(lè)曲的節(jié)奏,即樂(lè)曲中每個(gè)音符的發(fā)生頻率及其持續(xù)時(shí)間是樂(lè)曲能夠連續(xù)演奏的兩個(gè)關(guān)鍵因素。本次設(shè)計(jì)主要包括三個(gè)部分:(1) 音符頻率的獲得;音符頻率的獲得多個(gè)不同頻率的信號(hào)可通過(guò)對(duì)某個(gè)基準(zhǔn)頻率進(jìn)行分頻器獲得。由于各個(gè)音符的頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將計(jì)算機(jī)得到的分頻系數(shù)四舍五入取整。若基準(zhǔn)頻率過(guò)低,則分頻系數(shù)過(guò)小,四舍五入取整后的誤差較大。若基準(zhǔn)頻率過(guò)高,雖然可以減少頻率的相對(duì)誤差,但分頻結(jié)構(gòu)將變大。實(shí)際上應(yīng)該綜合考慮這兩個(gè)方面的因素,在盡量減少誤差的前提下,選取合適的基準(zhǔn)頻率。本設(shè)計(jì)中選取1MHz的基準(zhǔn)頻率,數(shù)控分頻器采用11位二

5、進(jìn)制計(jì)數(shù)器。(3) 樂(lè)曲節(jié)奏的控制 一般樂(lè)曲最小的節(jié)拍為1/4拍,若將1拍的時(shí)間定為1秒,則只需要輸出4Hz的1/4拍的時(shí)長(zhǎng)(0.25秒),對(duì)于其它占用時(shí)間較長(zhǎng)的節(jié)拍(必為1/4拍的整數(shù)倍)則只需要將該音符連續(xù)輸出相應(yīng)的次數(shù)即可。計(jì)數(shù)時(shí)鐘信號(hào)作為輸出音符快慢的控制信號(hào),時(shí)鐘快時(shí)輸出節(jié)拍速度就快,演奏的速度也就快,時(shí)鐘慢時(shí)輸出節(jié)拍的速度就慢,演奏的速度自然降低,因此計(jì)數(shù)器的時(shí)鐘信號(hào)應(yīng)為4Hz。(3) 樂(lè)譜的發(fā)生本設(shè)計(jì)將樂(lè)譜中的音符數(shù)據(jù)存儲(chǔ)在LPM-ROM中,若某音在邏輯中停留了4個(gè)時(shí)鐘節(jié)拍,即1秒的時(shí)間,相應(yīng)地,該音符就要在LPM-ROM中連續(xù)的四個(gè)地址上都存儲(chǔ)。當(dāng)一個(gè)4Hz的時(shí)鐘來(lái)時(shí),相應(yīng)地就

6、從LPM-ROM中輸出一個(gè)音符數(shù)據(jù)。2.2 系統(tǒng)原理2.2.1總體框圖數(shù)控分頻器SPKER分頻器FDIV分頻驅(qū)動(dòng)蜂鳴器 時(shí)鐘鎖相環(huán)PLL簡(jiǎn)譜碼顯示DECL7S譯碼器F_CODE樂(lè)譜ROM計(jì)數(shù)器CNT138T 該工程由是由上圖所示的幾個(gè)模塊構(gòu)成輸入的時(shí)鐘20MHZ通過(guò)鎖相環(huán)后輸出2KHZ和1KHZ的時(shí)鐘分別輸送給分頻器FDIV和計(jì)數(shù)器CNT138;FDIV將1MHZ的時(shí)鐘分頻成4HZ的時(shí)鐘。計(jì)數(shù)器CNT138T完成計(jì)數(shù)功能,138進(jìn)制,每來(lái)個(gè)時(shí)鐘沿加一。樂(lè)譜ROM記錄了1首歌的樂(lè)譜。根據(jù)上一模塊計(jì)數(shù)器所計(jì)的數(shù)讀取相應(yīng)地址里的數(shù)據(jù)傳遞給下一模塊。譯碼器F_CODE將選擇器所選擇的歌曲rom里的地址

7、的數(shù)據(jù)翻譯成可預(yù)置計(jì)數(shù)器SPKER和簡(jiǎn)譜碼顯示DECL7S所需的數(shù)據(jù)。分頻驅(qū)動(dòng)器也就是一個(gè)數(shù)控分頻器,完成分頻的功能,并驅(qū)動(dòng)蜂鳴器。2.2.2工作過(guò)程當(dāng)一個(gè)4Hz的時(shí)鐘脈沖來(lái)到時(shí),樂(lè)譜發(fā)生器模塊輸出一個(gè)音符數(shù)據(jù)給分頻系數(shù)模塊,分頻系數(shù)模塊輸出此音符相應(yīng)的分頻系數(shù)所需的初始值,將初始值送給數(shù)控分頻器模塊,當(dāng)1MHz的時(shí)鐘脈沖來(lái)到時(shí),數(shù)控分頻器就根據(jù)分頻系數(shù)輸出相應(yīng)的頻率(即此音符所對(duì)應(yīng)的發(fā)生頻率)給揚(yáng)聲器,揚(yáng)聲器就可發(fā)出對(duì)應(yīng)音符的聲音來(lái).連續(xù)的4Hz的時(shí)鐘脈沖就將樂(lè)譜發(fā)生器里所存儲(chǔ)的音符數(shù)據(jù)一個(gè)接一個(gè)的送給了分頻系數(shù)模塊,再經(jīng)過(guò)數(shù)控分頻模塊,最后揚(yáng)聲器一個(gè)接一個(gè)的發(fā)出音符數(shù)據(jù)所對(duì)應(yīng)的聲音來(lái)。曲子

8、也就流暢的播放出來(lái)了。同時(shí)led數(shù)碼管會(huì)隨著音樂(lè)顯示相應(yīng)的樂(lè)譜。當(dāng)樂(lè)曲一遍演奏完成后,樂(lè)曲發(fā)生器能自動(dòng)從頭開(kāi)始循環(huán)演奏。2.2.3樂(lè)曲演奏的原理圖3 系統(tǒng)實(shí)現(xiàn)3.1.分頻器(FDIV)將鎖相環(huán)的2KHZ的時(shí)鐘分頻4Hz的時(shí)鐘,供計(jì)數(shù)器使用。(1)模塊程序module FDIV(CLK,PM);input CLK;output PM;reg8:0 Q1;reg FULL;wire RST;always(posedge CLK or posedge RST)beginif(RST)beginQ1=0;FULL=1;endelse beginQ1=Q1+1;FULL=0;endendassign R

9、ST=(Q1=449);assign PM=FULL;assign DOUT=Q1;endmodule(2)模塊圖形3.2.計(jì)數(shù)器CNT138T它是一個(gè)8位二進(jìn)制計(jì)數(shù)器,內(nèi)部設(shè)置計(jì)數(shù)最大值為139,作為音符數(shù)據(jù)ROM的地址發(fā)生器。每來(lái)一個(gè)時(shí)鐘信號(hào),計(jì)數(shù)器就計(jì)數(shù)一次,ROM文件中的地址也隨著增加,音符數(shù)據(jù)ROM中的音符也就一個(gè)一個(gè)的取出來(lái)。3.2.1計(jì)數(shù)器CNT138T的設(shè)計(jì)這個(gè)計(jì)數(shù)器的計(jì)數(shù)頻率即為4Hz。即每一計(jì)數(shù)值的停留時(shí)間為0.25秒,恰為當(dāng)全音符設(shè)為1秒時(shí),四四拍的4分音符持續(xù)時(shí)間。例如,“梁?!睒?lè)曲的第一個(gè)音符為“3”,此音在邏輯中停留了4個(gè)時(shí)鐘節(jié)拍,即1秒時(shí)間,相應(yīng)地,所對(duì)應(yīng)的“3”

10、音符分頻預(yù)置值為11H40C,在SPKER的輸入端停留了1秒。隨著計(jì)數(shù)器CNT138T按4Hz的時(shí)鐘速率作加法計(jì)數(shù)時(shí),即隨地址值遞增時(shí),音符數(shù)據(jù)ROM模塊MUSIC中的音符數(shù)據(jù)將從 ROM中通過(guò)q3.0端口輸向F_CODE模塊,“梁?!睒?lè)曲就開(kāi)始連續(xù)自然地演奏起來(lái)了。CNT138T的節(jié)拍是139,正好等于ROM中的簡(jiǎn)譜碼數(shù),所以可以確保循環(huán)演奏。對(duì)于其他樂(lè)曲,此計(jì)數(shù)最大值要根據(jù)情況更改。(1)模塊程序module CNT138T(CLK,CNT8);input CLK;output 7:0 CNT8;reg7:0 CNT;wire LD;always(posedge CLK or posedg

11、e LD)beginif (LD)CNT=8b00000000;elseCNT=CNT+1;endassign CNT8=CNT;assign LD=(CNT=138);endmodule (2)模塊圖形3.3.分頻預(yù)置數(shù)譯碼器F_CODE模塊模塊F_CODE的功能首先是為模塊SPKER(11位分頻器)提供決定所發(fā)音符的分頻預(yù)置數(shù),而此數(shù)在SPKER輸入口停留的時(shí)間即為此音符的節(jié)拍周期,模塊F_CODE是樂(lè)曲簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路。3.3.1 F_CODE模塊的設(shè)計(jì)程序中設(shè)置了“梁?!睒?lè)曲全部音符所對(duì)應(yīng)的分頻預(yù)置數(shù),共14個(gè),每一音符的停留時(shí)間則由音樂(lè)節(jié)拍和音調(diào)發(fā)生查表模塊MUSIC中

12、簡(jiǎn)譜碼和工作時(shí)鐘inclock的頻率決定,在此為4Hz。模塊F_CODE的14個(gè)值的輸出由對(duì)應(yīng)于MUSIC模塊輸出的q3.0及4位輸入值INX3.0確定,而INX3.0最多有16種可選值。輸向模塊F_CODE中INX3.0的值在SPKER中對(duì)應(yīng)的輸出頻率值與持續(xù)的時(shí)間由模塊MUSIC決定。(1)模塊程序module F_CODE(INX,CODE,H,TO);input3:0 INX;output 3:0 CODE;output H;output 10:0 TO;reg10:0 TO;reg3:0 CODE;reg H;always(INX)begin case(INX) 0:begin TO

13、=11H7FF;CODE=0;H=0;end 1:begin TO=11H305;CODE=1;H=0;end 2:begin TO=11H390;CODE=2;H=0;end 3:begin TO=11H40C;CODE=3;H=0;end 4:begin TO=11H45C;CODE=4;H=0;end 5:begin TO=11H4AD;CODE=5;H=0;end 6:begin TO=11H50A;CODE=6;H=0;end 7:begin TO=11H55C;CODE=7;H=0;end 8:begin TO=11H582;CODE=1;H=1;end 9:begin TO=11

14、H5C8;CODE=2;H=1;end10:begin TO=11H606;CODE=3;H=1;end11:begin TO=11H640;CODE=4;H=1;end12:begin TO=11H656;CODE=5;H=1;end 13:begin TO=11H684;CODE=6;H=1;end14:begin TO=11H69A;CODE=7;H=1;end15:begin TO=11H6C0;CODE=1;H=1;end default:begin TO=11H6c0;CODE=1;H=1;endendcaseendendmodule(2)模塊圖形3.4 數(shù)字分頻器SPKER模塊音

15、符的頻率由SPKER獲得,這是一個(gè)數(shù)控分頻器。3.4.1數(shù)字分頻器SPKS模塊設(shè)計(jì)它的CLK端輸入一具有較高頻率(1MHz)的時(shí)鐘,由于直接從分頻器中出來(lái)的輸出信號(hào)是脈寬極窄的信號(hào),為了有利于驅(qū)動(dòng)揚(yáng)聲器,需另加一個(gè)D觸發(fā)器分頻以均衡其占空比,但這時(shí)的頻率將是原來(lái)的1/2。SPKER對(duì)CLK輸入信號(hào)的分頻比由輸入的11位預(yù)置數(shù)TN10.0決定。揚(yáng)聲器的輸出頻率將決定每一音符的音調(diào);這樣,分頻計(jì)數(shù)器的預(yù)置值TN10.0 與輸出頻率就有了對(duì)應(yīng)關(guān)系,而輸出的頻率又與音樂(lè)音符的發(fā)聲有對(duì)應(yīng)關(guān)系,例如在F_CODE模塊中若TN10.0=11H40C,將由揚(yáng)聲器發(fā)出音符為“3”音的信號(hào)頻率。(1)程序模塊1m

16、odule SPKER(CLK,TN,SPKS);input CLK;input10:0 TN;output SPKS;reg SPKS;reg10:0 CNT11;always(posedge CLK)begin :CNT11B_LOADif(CNT11=11h7FF)beginCNT11=TN;SPKS=1b1;endelsebeginCNT11=CNT11+1;SPKS=1b0;endendendmodule(2)模塊圖形(2)程序模塊2module SPKER(CLK,TN,SPKS);input CLK;input2:0 TN;output SPKS;reg SPKS;reg2:0

17、CNT3;always(posedge CLK)begin if(CNT3=3h7)beginCNT3=TN;SPKS=1b1;endelsebeginCNT3=CNT3+1;SPKS=1b0;endendendmodule3.5選擇器choice選擇器完成選擇歌曲的功能:當(dāng)a的信號(hào)為1時(shí)將Q1的信號(hào)輸出當(dāng)a的信號(hào)為0時(shí)將Q2的信號(hào)輸出(1)模塊程序module choice (a,b,Q1,Q2,INX);input a;output b;input3:0 Q1;input3:0 Q2;output3:0INX;reg b;reg3:0 INX;always(a)begincase(a)01

18、:begin b=0;INX=Q1;end 10:begin b=1;INX=Q2;end default:begin b=10;INX=Q2;end endcase endendmodule(2)模塊圖形3.6.樂(lè)譜文件ROMLpm rom0模塊里面放置的是“梁?!钡臉?lè)譜,它是利用LPM-ROM來(lái)實(shí)現(xiàn)的,將樂(lè)譜中相應(yīng)的音符放在一個(gè)連續(xù)的地址上。他首先是編寫音符數(shù)據(jù)文件,將樂(lè)譜中相應(yīng)的音符放在一個(gè)連續(xù)的地址上。因?yàn)?拍的時(shí)間定為1s,提供的是4HZ的時(shí)鐘頻率(1/4拍的整數(shù)倍),則需將這個(gè)音符存儲(chǔ)在相應(yīng)次數(shù)的連續(xù)的地址上。然后對(duì)音符數(shù)據(jù)進(jìn)行ROM定制,最后對(duì)定制好的ROM文件進(jìn)行測(cè)試和仿真。3

19、.6.1樂(lè)譜文件(1)“梁?!币魳?lè)WIDTH = 4 ; DEPTH = 256 ;ADDRESS_RADIX = DEC ;DATA_RADIX = DEC ; CONTENT BEGIN 00: 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; 2

20、8: 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;

21、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: 9; 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:

22、 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 ;(2)“隱形的翅膀”樂(lè)譜3.6.2 LMP-ROM模塊4 系統(tǒng)仿真4.1計(jì)數(shù)器CNT138T的仿真 由波形可看出,CLK為輸入時(shí)鐘信號(hào),八位輸出二進(jìn)制信號(hào)在每個(gè)時(shí)鐘上升沿加一,當(dāng)計(jì)數(shù)至137時(shí),從0開(kāi)始重新計(jì)數(shù)。經(jīng)分析,該模塊功能完全正確。4.2.分頻器FDIV 由波形可看出CLK為輸入2KHz的時(shí)鐘信號(hào),PM輸出為8Hz的時(shí)鐘信號(hào),由于紙張有限沒(méi)有打印出其全部波形。經(jīng)分析該模塊功能完全正確。4.3分頻預(yù)置數(shù)F_CODE從波形上可以看到,當(dāng)輸入信號(hào)INX=1000時(shí),code顯示的是1,H為1,預(yù)置值為582,查詢程序,發(fā)現(xiàn)功能正確。4.4分頻器SPKER此波形仿真分析比較復(fù)雜,如果由于輸入信號(hào)為1MHz,其中的分頻系數(shù)比較大,如果直接用該模塊程序進(jìn)行仿真可能導(dǎo)致仿真時(shí)間過(guò)長(zhǎng)而失敗,因

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論