0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-04 10:37 ? 次閱讀

1 系統(tǒng)的設(shè)計(jì)要求

應(yīng)用VHDL硬件描述語(yǔ)言,設(shè)計(jì)一個(gè)樂(lè)曲硬件演奏電路,它能將一首預(yù)先設(shè)置存儲(chǔ)好的樂(lè)曲自動(dòng)播放出來(lái),除此之外,也能夠通過(guò)按鍵的方式輸入音符,使其具備簡(jiǎn)易電子琴的功能。通過(guò)此項(xiàng)研究,能夠深切的體會(huì)利用EDA工具開(kāi)發(fā)的優(yōu)越性,在此基礎(chǔ)上,對(duì)樂(lè)曲硬件演奏電路功能進(jìn)行豐富,具有一定的社會(huì)實(shí)用性。

根據(jù)硬件演奏電路的功能進(jìn)行全局分析,采用自上至下的設(shè)計(jì)方法,從系統(tǒng)總體要求出發(fā),逐步將設(shè)計(jì)內(nèi)容細(xì)化,最后完成系統(tǒng)結(jié)構(gòu)的整體設(shè)計(jì)。將功能分為以下幾個(gè)部分,1)實(shí)現(xiàn)預(yù)先設(shè)置樂(lè)曲的播放功能;2)實(shí)現(xiàn)預(yù)置樂(lè)曲的暫停和繼續(xù)播放實(shí)時(shí)控制功能;3)實(shí)現(xiàn)預(yù)置多首樂(lè)曲間的切換功能。

預(yù)置樂(lè)曲,本文選取了《梁祝》的一段作預(yù)置,作預(yù)置時(shí),需要將樂(lè)曲音符轉(zhuǎn)換成相應(yīng)的代碼,通過(guò)計(jì)算逐一將音符轉(zhuǎn)換成代碼,通過(guò)EDA開(kāi)發(fā)平臺(tái)quartusii6.0進(jìn)行樂(lè)曲定制。

為了提供樂(lè)曲發(fā)音所需要的發(fā)音頻率,編寫(xiě)數(shù)控分頻器程序,對(duì)單一輸入高頻,進(jìn)行預(yù)置數(shù)分頻,生成每個(gè)音符發(fā)音的相應(yīng)頻率。

為了給分頻提供預(yù)置數(shù),需要計(jì)算分頻預(yù)置數(shù)。

對(duì)每部分結(jié)構(gòu)單元逐一進(jìn)行編譯,生成相應(yīng)的元器件符號(hào),并對(duì)獨(dú)立結(jié)構(gòu)單元功能進(jìn)行仿真。

2 系統(tǒng)的詳細(xì)設(shè)計(jì)方案

2.1 頂層實(shí)體描述

按照EDA開(kāi)發(fā)流程,采用VHDL硬件描述語(yǔ)言開(kāi)發(fā),將樂(lè)曲硬件演奏電路設(shè)計(jì)進(jìn)行模塊化分解,層次化設(shè)計(jì),分成幾個(gè)單獨(dú)的結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體實(shí)現(xiàn)部分功能,最后,經(jīng)頂層文件將各單獨(dú)結(jié)構(gòu)體進(jìn)行綜合,實(shí)現(xiàn)樂(lè)曲硬件演奏。

有四個(gè)輸入,三個(gè)輸出端口。

四輸入端口分別是:clk8hz端口,作為節(jié)拍脈沖信號(hào)輸入端口;clk12mhzZ端口,作為發(fā)音頻率初始信號(hào)輸入端口;P輸入端口,作為控制歌曲暫停和繼續(xù)播放的輸入端口。ch輸入端口,作為控制歌曲之間切換播放的輸入端口。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

三輸出端口分別是:code1輸出端口,作為音符簡(jiǎn)碼輸出LED顯示端口;high1輸出端口,作為音符高8度指示端口;spkout輸出端口,作為樂(lè)曲的聲音輸出端口。

2.2 模塊劃分

本系統(tǒng)主要由三個(gè)功能模塊組成:notetabsvhd,tonetaba.vhd和speakera.vhd.第一部分notetabs,地址發(fā)生器,實(shí)現(xiàn)按節(jié)拍讀樂(lè)譜的功能;第二部分tonetaba,查表電路,為speakera提供分頻預(yù)置數(shù),實(shí)現(xiàn)樂(lè)曲譯碼輸出CODE[3:0];第三部分speakera,產(chǎn)生發(fā)音頻率,實(shí)現(xiàn)樂(lè)曲播放。系統(tǒng)結(jié)構(gòu)圖如圖2.

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

為了實(shí)現(xiàn)樂(lè)曲的播放,首先需要將曲譜定制到音符數(shù)據(jù)ROM里面,然后才能按照一定的節(jié)拍從ROM中讀出曲譜。由于所選曲子中不含低音,轉(zhuǎn)換關(guān)系如表1所示。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

2.3 模塊描述

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

sperkera是一個(gè)數(shù)控分頻器,由其clk端輸入一個(gè)12mhz信號(hào),通過(guò)speakera分頻后,由spkout,通過(guò)一d觸發(fā)器,pinlv變?yōu)樵瓉?lái)的二分之一,sperakera對(duì)clk的輸入信號(hào)的分頻比由11位tone[100]決定,spkout的輸出頻率為音符的音調(diào)。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

tonebata的功能首先是為speakera提供分頻預(yù)置數(shù),此數(shù)的停留時(shí)間即為音符的節(jié)拍值,此模塊為歌曲簡(jiǎn)譜碼提供對(duì)應(yīng)的分頻預(yù)置查表電路,音符停留時(shí)間由clk的輸入頻率決定,再次為4hz.

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

3 系統(tǒng)的方案實(shí)現(xiàn)

3.1 各模塊仿真及描述

notetabs作為音符rom的地址發(fā)生器,此模塊中設(shè)置了一個(gè)8位2進(jìn)制計(jì)數(shù)器,頻率為4hz,即為4個(gè)音符一秒時(shí)間四四拍的4分音符。notetabs計(jì)數(shù)器計(jì)數(shù)器按4hz時(shí)鐘頻率做加法計(jì)數(shù),當(dāng)stop為高電平時(shí)停止加法運(yùn)算,而當(dāng)change可設(shè)置rom中數(shù)據(jù)的跳轉(zhuǎn),rom通過(guò)toneindex[30]端口輸向tonetaba模塊。樂(lè)曲就演奏起來(lái)了。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

由圖6 sperkera仿真波形可以看出,當(dāng)clk輸入時(shí)鐘頻率為12mhz時(shí),輸出端信號(hào)clk輸出的頻率,隨tong信號(hào)的不同,輸出不同頻率的聲音信號(hào)。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

由圖7tonetaba信號(hào)的仿真波形,可以看出,當(dāng)輸入信號(hào)index[30]輸入不同信號(hào)值,code輸出端輸出音符的顯示,high為音符高位信號(hào),tone大于7時(shí)high為高電平。

圖8為notetabs仿真波形,當(dāng)clk輸入時(shí)鐘信號(hào),toneindex[30]端從rom中讀入音符數(shù)據(jù),當(dāng)輸入端口stop為“1”時(shí),暫停從rom中讀入數(shù)據(jù),stop為“0”繼續(xù)讀取音符信號(hào),change為高低電平時(shí),模塊分別讀取rom不同位置的數(shù)據(jù)。

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

3.2 頂層電路仿真及描述

在QuartusII開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn)基于FPGA的音樂(lè)演奏電路的設(shè)計(jì)

clk8hz端輸入8hz時(shí)鐘信號(hào),另一個(gè)clk12mhz輸入12mhz時(shí)鐘信號(hào),系統(tǒng)將自動(dòng)從music.mif中讀取音符信號(hào),以頻率不同輸出到spkout,同時(shí)輸出到顯示端口,和高音端口,code1[30],high1.p端口可以是音符暫停輸出(高電平時(shí)),ch端口控制歌曲間的切換。

4 硬件測(cè)試及說(shuō)明

選擇實(shí)驗(yàn)電路模式1,將引腳鎖定時(shí)clk12mhz于clock9連接,短路帽clock接12mhz.clk8hz與clock2連接。發(fā)音輸出spkout接speaker.簡(jiǎn)譜碼輸出code1由數(shù)碼管5顯示,high高8度指示由發(fā)光管d5指示,p與按鍵d16連接,ch與的15連接。最后向目標(biāo)芯片下載適配后的sof邏輯設(shè)計(jì)文件。

5 結(jié)論

本次設(shè)計(jì)在EDA開(kāi)發(fā)工具QuartusII平臺(tái)上,應(yīng)用語(yǔ)言層次化和模塊化的設(shè)計(jì)方法,通過(guò)音符編碼的設(shè)計(jì)思想,預(yù)先定制樂(lè)曲,在此基礎(chǔ)上設(shè)計(jì)了一個(gè)樂(lè)曲硬件演奏電路,經(jīng)過(guò)對(duì)整體進(jìn)行模塊化分析、編程、綜合、仿真及最終下載,完整實(shí)現(xiàn)簡(jiǎn)易音樂(lè)器的播放功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598919
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    816

    瀏覽量

    127951
  • EAD
    EAD
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6706
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    誰(shuí)能用stm32f103ze幫我做個(gè)雙字節(jié)音樂(lè)演奏的程序,感激不盡...

    誰(shuí)能用stm32f103ze幫我做個(gè)雙字節(jié)音樂(lè)演奏的程序,感激不盡...
    發(fā)表于 12-10 14:21

    結(jié)合鬧鐘與電子音樂(lè)演奏的綜合項(xiàng)目適合初學(xué)者的項(xiàng)目。

    小弟最近在寫(xiě)課程設(shè)計(jì)報(bào)告,感覺(jué)這個(gè)項(xiàng)目不錯(cuò),比較綜合,于是分享出來(lái)供大家共同交流學(xué)習(xí)。本文EDA 開(kāi)發(fā)平臺(tái)上,利用VHDL語(yǔ)言設(shè)計(jì)數(shù)控分頻器電路,采用可編程邏輯器件
    發(fā)表于 12-14 21:38

    如何去實(shí)現(xiàn)一種基于51單片機(jī)的音樂(lè)盒設(shè)計(jì)

    一.硬件方案本設(shè)計(jì)以51單片機(jī)原理和控制理論設(shè)計(jì)音樂(lè)演奏控制器的硬件電路,并利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)。通過(guò)控制單片機(jī)內(nèi)部的定時(shí)器來(lái)產(chǎn)生不同頻率的方波,驅(qū)動(dòng)蜂鳴器發(fā)出不同音調(diào)的音樂(lè),再利用延遲來(lái)控制
    發(fā)表于 11-19 06:07

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏呢?其程序代碼該怎樣去實(shí)現(xiàn)呢?
    發(fā)表于 02-14 07:22

    單片機(jī)音樂(lè)程序教程

    單片機(jī)音樂(lè)程序教程:聲音基礎(chǔ),單一程序音樂(lè)演奏,模塊化音樂(lè)程序演奏等內(nèi)容。
    發(fā)表于 06-03 12:17 ?173次下載
    單片機(jī)<b class='flag-5'>音樂(lè)</b>程序教程

    定時(shí)循環(huán)音樂(lè)演奏電路

    定時(shí)循環(huán)音樂(lè)演奏電路
    發(fā)表于 05-08 15:11 ?431次閱讀
    定時(shí)循環(huán)<b class='flag-5'>音樂(lè)演奏</b><b class='flag-5'>電路</b>圖

    SK--111聲控音樂(lè)演奏電路

    SK--111聲控音樂(lè)演奏電路
    發(fā)表于 06-08 15:48 ?669次閱讀
    SK--111聲控<b class='flag-5'>音樂(lè)演奏</b>器<b class='flag-5'>電路</b>圖

    音樂(lè)演奏器設(shè)計(jì)

    音樂(lè)演奏器設(shè)計(jì) 一、任務(wù)設(shè)計(jì)并制作一個(gè)可以演奏樂(lè)曲的遠(yuǎn)程音樂(lè)演奏器,基本電路框圖如圖。
    發(fā)表于 08-02 08:35 ?1715次閱讀
    <b class='flag-5'>音樂(lè)演奏</b>器設(shè)計(jì)

    eda音樂(lè)演奏程序

    EDA音樂(lè)演奏程序例程,可根據(jù)需要改編
    發(fā)表于 12-09 23:19 ?6次下載

    FPGA平臺(tái)上實(shí)現(xiàn)對(duì)DPA攻擊的電路級(jí)防護(hù)技術(shù)

    。進(jìn)行DPA攻擊的根本原因是電路邏輯表示的不對(duì)稱性引起的。本文將應(yīng)用FPGA的自身結(jié)構(gòu)特點(diǎn),結(jié)合目前常用的抗DPA攻擊的電路級(jí)防護(hù)技術(shù),深入研究與分析
    發(fā)表于 11-24 09:12 ?2491次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>平臺(tái)上</b><b class='flag-5'>實(shí)現(xiàn)</b>對(duì)DPA攻擊的<b class='flag-5'>電路</b>級(jí)防護(hù)技術(shù)

    基于Proteus的單片機(jī)演奏音樂(lè)實(shí)現(xiàn)[圖]

    常數(shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。 實(shí)驗(yàn)結(jié)果表明,該方案電路簡(jiǎn)單,切實(shí)可行且效果不錯(cuò)。 當(dāng)前的很多用單片機(jī)實(shí)現(xiàn)
    發(fā)表于 01-18 03:00 ?1547次閱讀

    基于Proteus單片機(jī)的音樂(lè)演奏實(shí)現(xiàn)系統(tǒng)

    本文提出的一種基于 Proteus 的單片機(jī)演奏音樂(lè)的方法,非常簡(jiǎn)單實(shí)用,且該方法基于軟件來(lái)實(shí)現(xiàn)的,所以成本非常低,調(diào)試方便,效果也很不錯(cuò),適合于愛(ài)好音樂(lè)的單片機(jī)學(xué)習(xí)者。 單片機(jī)系統(tǒng)
    發(fā)表于 04-08 09:27 ?5332次閱讀
    基于Proteus單片機(jī)的<b class='flag-5'>音樂(lè)演奏</b><b class='flag-5'>實(shí)現(xiàn)</b>系統(tǒng)

    采用FPGA DIY開(kāi)發(fā)板控制自動(dòng)演奏音樂(lè)

    wang1113的作業(yè)自動(dòng)演奏音樂(lè)視頻。
    的頭像 發(fā)表于 06-20 13:26 ?1768次閱讀

    使用PLD器件和VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字系統(tǒng)的電子密碼鎖設(shè)計(jì)

    密碼鎖電路由鍵盤(pán)控制、密碼設(shè)置和音樂(lè)演奏三大功能模塊組成,原理如圖1所示。Count,Keyvalue,Contrl,Smdisplay構(gòu)成鍵盤(pán)控制模塊,Songer是音樂(lè)演奏模塊,Set是密碼設(shè)置模塊。
    的頭像 發(fā)表于 04-28 08:10 ?3053次閱讀
    使用PLD器件和VHDL語(yǔ)言<b class='flag-5'>實(shí)現(xiàn)</b>數(shù)字系統(tǒng)的電子密碼鎖設(shè)計(jì)

    FPGA多媒體開(kāi)發(fā)平臺(tái)DE2上實(shí)現(xiàn)音樂(lè)流水燈控制系統(tǒng)的設(shè)計(jì)

    , 以方波信號(hào)驅(qū)動(dòng)蜂鳴器發(fā)出音樂(lè), 再根據(jù)不同音階來(lái)控制流水燈的閃爍。與借助微處理器實(shí)現(xiàn)樂(lè)曲演奏相比, 以純硬件方式完成樂(lè)曲演奏電路更直觀。
    的頭像 發(fā)表于 10-07 11:24 ?3423次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>FPGA</b>多媒體<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>平臺(tái)</b>DE2上<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>音樂(lè)</b>流水燈控制系統(tǒng)的設(shè)計(jì)