新聞中心

        EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于FPGA的音樂硬件演奏電路設(shè)計與實(shí)現(xiàn)

        基于FPGA的音樂硬件演奏電路設(shè)計與實(shí)現(xiàn)

        作者: 時間:2013-05-09 來源:網(wǎng)絡(luò) 收藏

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

        本文引用地址:http://www.104case.com/article/175240.htm

        3.1 各模塊仿真及描述

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

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

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

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

        3.2 頂層仿真及描述

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

        4 硬件測試及說明

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

        5 結(jié)論

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

        通過學(xué)生自己手動完成簡單的數(shù)字器件的設(shè)計,在加強(qiáng)以傳統(tǒng)電子設(shè)計方法為基礎(chǔ)的工程設(shè)計訓(xùn)練的同時,使學(xué)生能夠更快地掌握現(xiàn)代電子電路設(shè)計的新方法和新手段,提高了學(xué)生對基礎(chǔ)實(shí)驗(yàn)的興趣。

        DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


        fpga相關(guān)文章:fpga是什么


        手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)


        塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


        關(guān)鍵詞: 自動化 電路

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 新宾| 凌海市| 离岛区| 磐石市| 永清县| 福州市| 成安县| 旌德县| 都匀市| 凤山市| 根河市| 建德市| 兴宁市| 临颍县| 成武县| 新乡市| 兴化市| 多伦县| 阿瓦提县| 新竹县| 和田市| 靖西县| 湘阴县| 阜阳市| 塘沽区| 丰都县| 郎溪县| 顺义区| 射洪县| 广宗县| 灵宝市| 南郑县| 诸暨市| 武鸣县| 凤山市| 长治市| 瑞安市| 荣成市| 丰都县| 宜宾县| 靖西县|