新聞中心

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

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

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

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

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

        3.1 各模塊仿真及描述

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

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

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

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

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

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

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

        3.2 頂層電路仿真及描述

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

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

        4 硬件測試及說明

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

        5 結(jié)論

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

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



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 确山县| 斗六市| 广元市| 怀远县| 漳平市| 紫阳县| 岳阳县| 石楼县| 武夷山市| 阿坝| 海兴县| 蛟河市| 平阴县| 周至县| 嘉义县| 宜兰市| 西吉县| 温宿县| 龙里县| 河池市| 怀宁县| 黑龙江省| 萝北县| 安泽县| 伽师县| 泗水县| 大化| 兴业县| 武清区| 遵义市| 泰和县| 藁城市| 淄博市| 庄河市| 东乌| 辽中县| 武宁县| 武威市| 故城县| 清流县| 平度市|