版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、硬件電子琴電路模塊設計一、實驗目的:學習利用數控分頻器設計硬件電子琴實驗。二、實驗原理:實驗用FPGA實現樂曲的播放原理: 分四步1、將待播放的梁祝音樂音符存入ROM2、以4HZ頻率讀取ROM3、根據1MHZ的內部時鐘要求,將讀出的音符換算成應計數的數值4、以1MHZ為內部時鐘,實現符合要求的方波信號。圖1 硬件電子琴電路結構主系統(tǒng)由五個模塊組成,songer.v是頂層設計文件,其內部有五個功能模塊(如圖1所示):Speakera.v 和ToneTaba.v,NoteTabs.v,div_50_12M.v,div_50_4HZ.v。模塊ToneTaba是音階發(fā)生器,當8位發(fā)聲控制輸入Index
2、中某一位為高電平時,則對應某一音階的數值將從端口Tone輸出,作為獲得該音階的分頻預置值;同時由Code輸出對應該音階簡譜的顯示數碼,如5,并由High輸出指示音階高8度顯示。模塊Speakera中的主要電路是一個數控分頻器,它由一個初值可預置的加法計數器構成,當模塊Speakera由端口Tone獲得一個2進制數后,將以此值為計數器的預置數,對端口Clk12MHZ輸入的頻率進行分頻,之后由Spkout向揚聲器輸出發(fā)聲。增加一個NoteTabs模塊用于產生節(jié)拍控制(Index數據存留時間)和音階選擇信號,即在NoteTabs模塊放置一個樂曲曲譜真值表,由一個計數器的計數值來控制此真值表的輸出,而
3、由此計數器的計數時鐘信號作為樂曲節(jié)拍控制信號,從而可以設計出一個純硬件的樂曲自動演奏電路。div_50_12M.v是由于實驗板上,只有50MHZ有源晶振,故將用50MHZ進行分頻實現12.5MHZ的時鐘,在后續(xù)模塊Speakera.v中再分頻得到近似1MHZ時鐘。div_50_4HZ.v是用系統(tǒng)需要4HZ頻率讀ROM,于是用50MHZ,分頻得到4HZ頻率。三、實驗內容:1自己編寫12.5 MHZ和4HZ的分頻程序div_50_12M和div_50_4HZ。用CLOCK=50MHZ(PIN_N2)的輸入頻率接入并進行分頻得12.5MHz,此信號作為Speakera模塊的輸入頻率;用CLOCK=5
4、0MHZ的輸入頻率接入并進行分頻得4Hz,此信號作為NoteTabs模塊的輸入頻率。2Music模塊用ROM的IP CORE存放“梁?!睒非葑鄶祿?,編寫并加載.COE文件放置梁?!睒非葑鄶祿?編譯適配以上文件,給出仿真波形,最后進行下載和硬件測試實驗。4選擇LD5LD2發(fā)光管顯示Code3Code0表示琴音簡譜碼,發(fā)光管LD7顯示高8度,SPEAKOUT接蜂鳴器端口。工程分布:頂層模塊:songer.vmodule songer(clk_50M,reset,Code1,High1,Spkout);input clk_50M;/CLK=50MHZinput reset;output3:0
5、Code1;output High1,Spkout;wire10:0 Tone;wire3:0 ToneIndex;wire clk_4HZ,clk_12M;NoteTabs u0( .Clk(clk_4HZ),.ToneIndex(ToneIndex) );ToneTaba u1( .Index(ToneIndex),.Code(Code1),.High(High1),.Tone(Tone) );Speakera u2( .Clk(clk_12M),.Tone(Tone),.SpkS(Spkout) );div_50_12M u3(clk_50M,clk_12M,reset);div_50_
6、4HZ u4(clk_50M,clk_4HZ,reset);endmoduleNoteTabs模塊:module NoteTabs(Clk,ToneIndex);input Clk;output3:0 ToneIndex;reg7:0 Counter;always(posedge Clk ) beginif(Counter>=138) Counter<=8'b00000000;else Counter<=Counter+1'b1;endMusic u5( .address(Counter),.clock(Clk),.q(ToneIndex) );endmodu
7、leToneTaba模塊:module ToneTaba (Index,Code,High,Tone);input3:0 Index;output3:0 Code;output High;output10:0 Tone;reg3:0 Code;reg High;reg10:0 Tone;always (Index)begincase(Index)4'b0000 :begin Tone<=11'b11111111111;Code<=4'b0000;High<=1'b0;end/2047 4'b0001 :begin Tone<=11
8、'b01100000101;Code<=4'b0001;High<=1'b0;end/773 4'b0010 :begin Tone<=11'b01110010000;Code<=4'b0010;High<=1'b0;end/912 4'b0011 :begin Tone<=11'b10000001100;Code<=4'b0011;High<=1'b0;end/10364'b0101 :begin Tone<=11'b100101011
9、01;Code<=4'b0101;High<=1'b0;end/1197 4'b0110 :begin Tone<=11'b10100001010;Code<=4'b0110;High<=1'b0;end/1290 4'b0111 :begin Tone<=11'b10101011100;Code<=4'b0111;High<=1'b0;end/1372; 4'b1000 :begin Tone<=11'b10110000010;Code<
10、=4'b0001;High<=1'b1;end/1410; 4'b1001 :begin Tone<=11'b10111001000;Code<=4'b0010;High<=1'b1;end/1480; 4'b1010 :begin Tone<=11'b11000000110;Code<=4'b0011;High<=1'b1;end/1542; 4'b1100 :begin Tone<=11'b11001010110;Code<=4'b0
11、101;High<=1'b1;end/1622; 4'b1101 :begin Tone<=11'b11010000100;Code<=4'b0110;High<=1'b1;end/1668; 4'b1111 :begin Tone<=11'b11011000000;Code<=4'b0001;High<=1'b1;end/1728; default :begin Tone<=11'b11111111111;Code<=4'b0000;High<=
12、1'b0;end/2047 endcaseendendmoduleSpeskera模塊:module Speakera(Clk,Tone,SpkS);input Clk;input10:0 Tone;output SpkS;reg PreClk;reg FullSpkS;reg3:0 Count4;reg10:0Count11;reg Count2;reg SpkS;always(posedge Clk)beginif(Count4>11)beginPreClk<=1'b1;Count4<=1;endelse beginPreClk<=1'b0;
13、Count4<=Count4+1'b1;endendalways(posedge PreClk)beginif(Count11>=11'h7FF) beginCount11<=Tone;FullSpkS<=1'b1;endelse beginCount11<=Count11+1'b1; FullSpkS<=0;endendalways(posedge FullSpkS)begin Count2<=Count2;if(Count2=1'b1) SpkS<=1'b1; else SpkS<=1
14、39;b0;endendmodule兩個分頻模塊:IP核模塊:MEMORY_INITIALIZATION_RADIX = 10; MEMORY_INITIALIZATION_VECTOR= 3 , 3 , 3 , 3, 5, 5, 5,6, 8, 8,8 , 9 , 6 , 8, 5, 5, 12,12,12, 15,13 , 12 , 10 , 12, 9, 9, 9, 9, 9, 9, 9 , 0 , 9 , 9, 9, 10, 7, 7, 6, 6, 5 , 5 , 5 , 6, 8, 8, 9, 9, 3, 3,8 , 8 , 6 , 5, 6, 8, 5, 5, 5, 5, 5 ,
15、5 , 5 , 5, 10, 10, 10, 12, 7, 7, 9 , 9 , 6 , 8, 5, 5, 5, 5, 5, 5, 3 , 5 , 3 , 3, 5, 6, 7, 9, 6, 6, 6 , 6 , 6 , 6, 5, 6, 8, 8, 8, 9, 12 ,12 ,12 ,10, 9, 9,10, 9,8, 8,6 , 5 , 3 , 3, 3, 3, 8,8, 8,8,6 , 8 ,6 , 5, 3, 5, 6,8, 5,5,5 ,5 , 5 ,5, 5,5,0, 0, 0;執(zhí)行綜合后的電路:引腳鎖定:四、思考題:1、電路上應該滿足哪些條件,才能用數字器件直接輸出的方波驅動揚聲器發(fā)聲? 答:當電路輸出的頻率在揚聲器的工作范圍之內時,驅動電流能夠驅動揚聲器,才能用數字器件直接輸出的方波驅動揚聲器發(fā)聲。2、如果演奏其他樂曲,程序應做哪些方面的改動?程序應將coe文件改掉以及ToneTbaba和NoteTabs做相應改變,要將頻譜對應的中高低音對應的二進制改變。五、實驗過程代碼分析:1、在分頻模塊中用50M分頻產生50%的4HZ時鐘,先將count、clk_4HZ賦值為0一次,在50M始終上升沿觸發(fā),如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)景點評級標準
- 手術中的電生理監(jiān)測
- 自制禮物課件教學課件
- 河南省2024九年級語文上冊第二單元8就英法聯軍遠征中國致巴特勒上尉的信課件新人教版
- 慢病調理中心介紹
- 消防演練總結講評
- 農業(yè)物聯網導論
- 感恩課件英文教學課件
- 玉米灰斑病病害循環(huán)
- 氣管切開燒傷病人的護理
- 配電箱設備供貨方案
- 農業(yè)肥料代理銷售合同協議書
- 2024至2030年中國沖調飲料行業(yè)市場深度研究及投資規(guī)劃建議報告
- 小型電站下游河道減脫水防治技術導則
- 鍋爐和壓力容器 第1部分:性能要求 征求意見稿
- 石油化工生產和危險化學品基礎知識考試題庫500題(含答案)
- 金屬礦產資源開發(fā)利用方案編制提綱
- 供水服務滿意度調查協議
- 《工程泥漿技術標準》
- 部編版語文二年級上冊《口語交際 有趣的動物》(教案)
- 國家開放大學本科《納稅籌劃》在線形考(形考任務一至五)試題及答案
評論
0/150
提交評論