




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除硬件電子琴電路模塊設(shè)計 一、實驗?zāi)康模簩W(xué)習(xí)利用數(shù)控分頻器設(shè)計硬件電子琴實驗。二、實驗原理:實驗用FPGA實現(xiàn)樂曲的播放原理: 分四步1、將待播放的梁祝音樂音符存入ROM2、以4HZ頻率讀取ROM 3、根據(jù)1MHZ的內(nèi)部時鐘要求,將讀出的音符換算成應(yīng)計數(shù)的數(shù)值4、以1MHZ為內(nèi)部時鐘,實現(xiàn)符合要求的方波信號。圖1 硬件電子琴電路結(jié)構(gòu)主系統(tǒng)由五個模塊組成,songer.v是頂層設(shè)計文件,其內(nèi)部有五個功能模塊(如圖1所示):Speakera.v 和ToneTaba.v ,NoteTabs.v,div_50_12M.v,div_50_4HZ.v。模塊ToneTaba是音階發(fā)生器,當(dāng)8位發(fā)聲控制輸入Index中某一位為高電平時,則對應(yīng)某一音階的數(shù)值將從端口Tone輸出,作為獲得該音階的分頻預(yù)置值;同時由Code輸出對應(yīng)該音階簡譜的顯示數(shù)碼,如5,并由High輸出指示音階高8度顯示。模塊Speakera中的主要電路是一個數(shù)控分頻器,它由一個初值可預(yù)置的加法計數(shù)器構(gòu)成,當(dāng)模塊Speakera由端口Tone獲得一個2進(jìn)制數(shù)后,將以此值為計數(shù)器的預(yù)置數(shù),對端口Clk12MHZ輸入的頻率進(jìn)行分頻,之后由Spkout向揚(yáng)聲器輸出發(fā)聲。增加一個NoteTabs模塊用于產(chǎn)生節(jié)拍控制(Index數(shù)據(jù)存留時間)和音階選擇信號,即在NoteTabs模塊放置一個樂曲曲譜真值表,由一個計數(shù)器的計數(shù)值來控制此真值表的輸出,而由此計數(shù)器的計數(shù)時鐘信號作為樂曲節(jié)拍控制信號,從而可以設(shè)計出一個純硬件的樂曲自動演奏電路。div_50_12M.v是由于實驗板上,只有50MHZ有源晶振,故將用50MHZ進(jìn)行分頻實現(xiàn)12.5MHZ的時鐘,在后續(xù)模塊Speakera.v中再分頻得到近似1MHZ時鐘。div_50_4HZ.v是用系統(tǒng)需要4HZ頻率讀ROM,于是用50MHZ,分頻得到4HZ頻率。三、實驗內(nèi)容:1自己編寫12.5 MHZ和4HZ的分頻程序div_50_12M和div_50_4HZ。用CLOCK=50MHZ(PIN_N2)的輸入頻率接入并進(jìn)行分頻得12.5MHz,此信號作為Speakera模塊的輸入頻率;用CLOCK=50MHZ的輸入頻率接入并進(jìn)行分頻得4Hz,此信號作為NoteTabs模塊的輸入頻率。2Music模塊用ROM的IP CORE存放“梁?!睒非葑鄶?shù)據(jù),編寫并加載.COE文件放置梁?!睒非葑鄶?shù)據(jù)。3編譯適配以上文件,給出仿真波形,最后進(jìn)行下載和硬件測試實驗。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 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_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=8b00000000;else Counter=Counter+1b1;endMusic u5( .address(Counter), .clock(Clk), .q(ToneIndex) );endmoduleToneTaba模塊: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) begin case(Index) 4b0000 :begin Tone=11b11111111111;Code=4b0000;High=1b0;end/2047 4b0001 :begin Tone=11b01100000101;Code=4b0001;High=1b0;end/773 4b0010 :begin Tone=11b01110010000;Code=4b0010;High=1b0;end/912 4b0011 :begin Tone=11b10000001100;Code=4b0011;High=1b0;end/1036 4b0101 :begin Tone=11b10010101101;Code=4b0101;High=1b0;end/1197 4b0110 :begin Tone=11b10100001010;Code=4b0110;High=1b0;end/1290 4b0111 :begin Tone=11b10101011100;Code=4b0111;High=1b0;end/1372; 4b1000 :begin Tone=11b10110000010;Code=4b0001;High=1b1;end/1410; 4b1001 :begin Tone=11b10111001000;Code=4b0010;High=1b1;end/1480; 4b1010 :begin Tone=11b11000000110;Code=4b0011;High=1b1;end/1542; 4b1100 :begin Tone=11b11001010110;Code=4b0101;High=1b1;end/1622; 4b1101 :begin Tone=11b11010000100;Code=4b0110;High=1b1;end/1668; 4b1111 :begin Tone=11b11011000000;Code=4b0001;High=1b1;end/1728; default :begin Tone=11b11111111111;Code=4b0000;High11)begin PreClk=1b1; Count4=1; end else begin PreClk=1b0; Count4=11h7FF) begin Count11=Tone; FullSpkS=1b1; end else begin Count11=Count11+1b1; FullSpkS=0; endendalways(posedge FullSpkS)begin Count2=Count2; if(Count2=1b1) SpkS=1b1; else SpkS=1b0; 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 , 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、電路上應(yīng)該滿足哪些條件,才能用數(shù)字器件直接輸出的方波驅(qū)動揚(yáng)聲器發(fā)聲?答:當(dāng)電路輸出的頻率在揚(yáng)聲器的工作范圍之內(nèi)時,驅(qū)動電流能夠驅(qū)動揚(yáng)聲器,才能用數(shù)字器件直接輸出的方波驅(qū)動揚(yáng)聲器發(fā)聲。2、如果演奏其他樂曲,程序應(yīng)做哪些方面的改動?程序應(yīng)將coe文件改掉以及ToneTbaba和NoteTabs做相應(yīng)改變,要將頻譜對應(yīng)的中高低音對應(yīng)的二進(jìn)制改變。五、實驗過程代碼分析:1、在分頻模塊中用50M分頻產(chǎn)生50%的4HZ時鐘,先將count、clk_4HZ賦值為0一次,在50M始終上升沿觸發(fā),如果count計數(shù)到6249999,將count賦值為0,并將clk_4HZ反轉(zhuǎn),否則繼續(xù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備日常保養(yǎng)合同范本
- 身份認(rèn)證技術(shù)基礎(chǔ)知識點歸納
- 畢節(jié)威寧自治縣“特崗計劃”招聘筆試真題2024
- 翠屏公安招聘警務(wù)輔助人員筆試真題2024
- 無人化操作下的安全監(jiān)控策略-洞察闡釋
- 生理學(xué)教育領(lǐng)域面臨的挑戰(zhàn)與AI解決方案
- 家庭托育點的運(yùn)營模式與管理標(biāo)準(zhǔn)化探索
- 云邊協(xié)同下嵌入式AI與物聯(lián)網(wǎng)教學(xué)系統(tǒng)設(shè)計
- 政法隊伍管理與監(jiān)督機(jī)制的創(chuàng)新與完善
- 校企合作中的資源共享與利益共贏機(jī)制
- 水系統(tǒng)中央空調(diào)項目可行性研究報告
- JG/T 504-2016陶粒加氣混凝土砌塊
- 2025年中考數(shù)學(xué)壓軸題專練:圓的各性質(zhì)的綜合題(原卷版+解析)
- 生豬養(yǎng)殖綠色轉(zhuǎn)型與低碳技術(shù)應(yīng)用
- 2025工貿(mào)安全考試題庫及答案
- 2025-2030中國保險中介機(jī)構(gòu)行業(yè)市場發(fā)展現(xiàn)狀及競爭格局與投資前景研究報告
- 內(nèi)在動機(jī):自主掌控人生的力量
- 人教版八年級物理(下冊)期末考試題及答案
- 2025年4月自考00186國際商務(wù)談判試題及答案含評分標(biāo)準(zhǔn)
- 2025年教育管理專業(yè)考研試題及答案
- 山東省濟(jì)南市2025屆高三三模生物試卷(含答案)
評論
0/150
提交評論