EDA實(shí)驗(yàn)報(bào)告樂曲硬件演奏電路設(shè)計(jì)_第1頁
EDA實(shí)驗(yàn)報(bào)告樂曲硬件演奏電路設(shè)計(jì)_第2頁
EDA實(shí)驗(yàn)報(bào)告樂曲硬件演奏電路設(shè)計(jì)_第3頁
EDA實(shí)驗(yàn)報(bào)告樂曲硬件演奏電路設(shè)計(jì)_第4頁
EDA實(shí)驗(yàn)報(bào)告樂曲硬件演奏電路設(shè)計(jì)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、EDA技術(shù)與應(yīng)用實(shí)驗(yàn)報(bào)告姓名學(xué)號(hào)專業(yè)年級(jí)電子信息工程實(shí)驗(yàn)題目樂曲硬件演奏電路設(shè)計(jì)實(shí)驗(yàn)?zāi)康?. 學(xué)習(xí)利用數(shù)控分頻器設(shè)計(jì)硬件樂曲演奏電路2. 掌握模塊化和層次化的設(shè)計(jì)方法以及音符編碼的設(shè)計(jì)思想實(shí)驗(yàn)原理1. 一定頻率的矩形波通過揚(yáng)聲器可以發(fā)出相應(yīng)頻率的聲音,樂曲是由一系列的音符組成的。所以,如果我們通過控制每個(gè)音符的發(fā)音頻率值及其持續(xù)的時(shí)間,就可以以純硬件的手段,利用這些數(shù)值來實(shí)現(xiàn)所希望演奏的樂曲。2. 該硬件演奏電路由三個(gè)模塊構(gòu)成<1>音符數(shù)據(jù)ROM的地址發(fā)生器模塊NoteTabs.vhdl 內(nèi)置8位二進(jìn)制計(jì)數(shù)器,作為ROM的地址發(fā)生器,計(jì)數(shù)頻率4Hz,即每一計(jì)數(shù)值的停留時(shí)間為0.25

2、s,恰為全音符設(shè)為1s時(shí),四四拍的4音符持續(xù)時(shí)間。隨著NoteTabs中的計(jì)數(shù)器按4Hz的時(shí)鐘速率作加法計(jì)數(shù)即地址值遞增時(shí),ROM中的音符數(shù)據(jù)將通過ToneIndex3.0輸向ToneTaba模塊,樂曲即開始演奏起來。<2>樂曲簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路模塊ToneTaba.vhdl ToneTaba為Speakera提供決定所發(fā)音符的分頻預(yù)置數(shù),此數(shù)在Speakera輸入口停留的時(shí)間即為此音符的節(jié)拍值。輸入Index3.0可確定樂曲全部音符所對(duì)應(yīng)的分頻預(yù)置數(shù)(13個(gè))每一音符的停留時(shí)間由NoteTabs模塊的clk決定(4Hz)。<3>決定每一個(gè)音符音調(diào)的數(shù)控分頻

3、器模塊Speakera.vhdl 輸入端clk輸入一較高頻率(12MHz)的信號(hào),經(jīng)Speakera分頻,再經(jīng)2分頻以展寬脈沖后,由SpkOut輸出。11位預(yù)置數(shù)Tone10.0決定由clk輸入信號(hào)的分頻比,SpkOut輸出的頻率決定每一音符的音調(diào)。實(shí)驗(yàn)內(nèi)容1. 定制存放LPM-ROM模塊Music,在連續(xù)地址上存放樂曲的音符數(shù)據(jù),2. 用vhdl文本輸入法和元件例化語句完成NoteTabs.vhdl的設(shè)計(jì),該模塊包含音符數(shù)據(jù)ROM模塊Music.vhdl3. 完成ToneTaba.vhdl的設(shè)計(jì),此模塊給數(shù)控分頻模塊提供每個(gè)音符所對(duì)應(yīng)的分頻預(yù)置數(shù),即計(jì)數(shù)初值4. 完成Speakera.vhd

4、l的設(shè)計(jì),該模塊是一個(gè)初值可變的加法計(jì)數(shù)器。該計(jì)數(shù)器的模為2047,當(dāng)計(jì)數(shù)器記滿時(shí),計(jì)數(shù)器產(chǎn)生一個(gè)溢出信號(hào)FULL,此溢出信號(hào)就是用作發(fā)音的頻率信號(hào)5. 用vhdl文本輸入法和元件例化語句完成硬件演奏電路頂層文件 play_song.vhdl的設(shè)計(jì),編譯、仿真,選用杭州康芯電子有限公司生產(chǎn)的 GW48系列 EDA實(shí)驗(yàn)箱和Altera公司生產(chǎn)的 FPGA芯片 Cyclone的EP1C6Q240C8,引腳鎖定,下載到FPGA上進(jìn)行硬件測(cè)試實(shí)驗(yàn)步驟1. 定制ROM模塊,生成Music.vhdl地址文件,以存儲(chǔ)樂曲演奏數(shù)據(jù)2. 輸入NoteTabs.vhdl,編譯、仿真,給出時(shí)序波形3. 輸入Tone

5、Taba.vhdl,編譯、仿真,給出時(shí)序波形4. 輸入Speakera.vhdl,編譯、仿真,給出時(shí)序波形5. 建立硬件演奏電路頂層文件play_song.vhdl,將以上4個(gè)vhdl文件拷貝進(jìn)頂層文件所在目錄,用元件例化語句和層次化設(shè)計(jì)方法,完成樂曲硬件演奏電路的設(shè)計(jì),編譯、仿真,給出時(shí)序波形,引腳鎖定并下載進(jìn)FPGA進(jìn)行硬件測(cè)試實(shí)驗(yàn)結(jié)果及分析vhdl文本輸入法時(shí)序仿真波形1. 由音符數(shù)據(jù)地址發(fā)生模塊的仿真波形NoteTabs.sim可知,隨NoteTabs中的計(jì)數(shù)器按輸入時(shí)鐘clk作加法計(jì)數(shù),即隨ROM地址值的遞增,ROM中的音符數(shù)據(jù)將從ToneIndex3.0中輸出。2. 由分頻預(yù)置數(shù)查

6、表電路模塊的仿真波形ToneTaba.sim可知,由Index3.0譯碼輸出分頻預(yù)置數(shù),并通過Tone10.0輸出給Speakera模塊。與演奏發(fā)音相對(duì)應(yīng)的簡(jiǎn)譜碼由CODE通過數(shù)碼管輸出顯示,HIGH1顯示高八度音。3. 由數(shù)控分頻器模塊的仿真波形Speakera.sim可知,由Tone10.0輸入的分頻預(yù)置數(shù)將clk輸入的一較高頻率(12MHz)的時(shí)鐘信號(hào)進(jìn)行分頻,得到不同頻率的輸出FullSpkS,由于FullSpkS直接由數(shù)控分頻器輸出,是脈沖極窄的脈沖式信號(hào),經(jīng)內(nèi)部增加一個(gè)D觸發(fā)器后,可以得到展寬脈沖后的SpkS。4. 由樂曲硬件演奏頂層文件的仿真波形play_song.sim可知,S

7、pkOut是經(jīng)SpkS的最終的輸出,決定所發(fā)出的每一音符的音調(diào)。音符不同,SpkOut的脈寬也不同,通過揚(yáng)聲器發(fā)出的聲音也不同,因而可以演奏音樂,得到預(yù)期的效果。5. 樂曲演奏時(shí),簡(jiǎn)譜碼可以在數(shù)碼管上同步顯示出來,同時(shí)HIGH1對(duì)應(yīng)的LED燈隨高低音的不同,亮滅情況也不同,實(shí)驗(yàn)結(jié)果符合預(yù)期。實(shí)驗(yàn)過程中所遇到的問題及相應(yīng)的解決方法1. 剛開始實(shí)驗(yàn)用的是KHF-4型的實(shí)驗(yàn)箱,需要將晶振頻率為22.1184Hz的時(shí)鐘信號(hào)進(jìn)行分頻,以得到NoteTabs模塊和Speakera模塊所需的4Hz和12MHz的輸入時(shí)鐘,并將簡(jiǎn)譜碼通過譯碼輸出到數(shù)碼管上顯示。然而在實(shí)驗(yàn)箱測(cè)試后卻得不到預(yù)期的結(jié)果,HIGH1所

8、對(duì)應(yīng)的LED燈恒亮,蜂鳴器發(fā)出持續(xù)的高音。檢查Speakera的時(shí)序仿真波形,輸出SpkOut是持續(xù)的低電平,而不是脈寬不一的方波。2. 多次嘗試沒有結(jié)果后,決定換杭州康芯電子有限公司生產(chǎn)的 GW48系列 EDA實(shí)驗(yàn)箱,該實(shí)驗(yàn)箱有8個(gè)譯碼輸出顯示的數(shù)碼管,和可選的多個(gè)時(shí)鐘輸入端,這樣可以省去譯碼和分頻電路。引腳鎖定,硬件下載測(cè)試后,蜂鳴器可以正常放出預(yù)置的樂曲。3. 之后對(duì)Speakera模塊的仿真文件反復(fù)揣摩,多次改變輸入的頻率,并設(shè)定不同的分頻預(yù)置數(shù),終于可以看到SpkOut輸出脈寬不一的方波信號(hào),對(duì)于頂層文件用相同的方法,亦可以得到預(yù)期的輸出。4. 個(gè)人認(rèn)為,之前在KHF-4型實(shí)驗(yàn)箱測(cè)試

9、的時(shí)候,應(yīng)該是分頻模塊的問題。經(jīng)22.1184MHz分頻輸出的頻率不滿足該硬件演奏電路所需要的時(shí)鐘輸入。NoteTabs模塊的輸入時(shí)鐘clk_8Hz(實(shí)為4Hz)決定了每一音符在Speakera輸入端停留的時(shí)間,而Speakera的輸入時(shí)鐘clk_12MHz決定了每一音符的音調(diào)。如果時(shí)鐘偏差過大,將會(huì)導(dǎo)致時(shí)許錯(cuò)亂,如音符在Speakera輸入端停留的時(shí)間過長(zhǎng)或過短,數(shù)控分頻輸出的脈沖過寬或者過窄,這都直接影響音樂的正常播放。5. 在梁祝樂曲演奏成功后,換了一首歌you_and_me,但問題也接踵而至。<1>首先在定制LPM_ROM模塊時(shí),得到的.bsf元件輸入端口跟定制梁祝樂曲ROM時(shí)的端口不一致了,在NoteTabs模塊中用了元件例化語句,因此編譯不成功。重新命名端口后,再次編譯,問題解決。<2>其次,在mif文件you_and_me.mif中,depth = 280,而梁祝的為256,即每一字節(jié)的寬度為8bit,結(jié)果編譯報(bào)錯(cuò)。于是我把you_and_me的mif文件的地址音符數(shù)據(jù)去掉后面一部分,使得depth = 256。雖然一首歌不再完整,但在定制LPM_ROM的時(shí)候

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論