新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于FPGA的音樂硬件演奏電路設計與實現(一)

        基于FPGA的音樂硬件演奏電路設計與實現(一)

        作者: 時間:2013-05-09 來源:網絡 收藏

        1 系統的設計要求

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

        應用VHDL硬件描述語言,設計一個樂曲硬件演奏,它能將一首預先設置存儲好的樂曲自動播放出來,除此之外,也能夠通過按鍵的方式輸入音符,使其具備簡易電子琴的功能。通過此項研究,能夠深切的體會利用EDA工具開發的優越性,在此基礎上,對樂曲硬件演奏功能進行豐富,具有一定的社會實用性。

        根據硬件演奏的功能進行全局分析,采用自上至下的設計方法,從系統總體要求出發,逐步將設計內容細化,最后完成系統結構的整體設計。將功能分為以下幾個部分,1)實現預先設置樂曲的播放功能;2)實現預置樂曲的暫停和繼續播放實時控制功能;3)實現預置多首樂曲間的切換功能。

        預置樂曲,本文選取了《梁祝》的一段作預置,作預置時,需要將樂曲音符轉換成相應的代碼,通過計算逐一將音符轉換成代碼,通過EDA開發平臺quartusii6.0進行樂曲定制。

        為了提供樂曲發音所需要的發音頻率,編寫數控分頻器程序,對單一輸入高頻,進行預置數分頻,生成每個音符發音的相應頻率。

        為了給分頻提供預置數,需要計算分頻預置數。

        對每部分結構單元逐一進行編譯,生成相應的元器件符號,并對獨立結構單元功能進行仿真。

        2 系統的詳細設計方案

        2.1 頂層實體描述

        按照EDA開發流程,采用VHDL硬件描述語言開發,將樂曲硬件演奏電路設計進行模塊化分解,層次化設計,分成幾個單獨的結構體,每個結構體實現部分功能,最后,經頂層文件將各單獨結構體進行綜合,實現樂曲硬件演奏。

        有四個輸入,三個輸出端口。

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

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

        2.2 模塊劃分

        本系統主要由三個功能模塊組成:notetabsvhd,tonetaba.vhd和speakera.vhd.第一部分notetabs,地址發生器,實現按節拍讀樂譜的功能;第二部分tonetaba,查表電路,為speakera提供分頻預置數,實現樂曲譯碼輸出CODE[3:0];第三部分speakera,產生發音頻率,實現樂曲播放。系統結構圖如圖2.

        為了實現樂曲的播放,首先需要將曲譜定制到音符數據ROM里面,然后才能按照一定的節拍從ROM中讀出曲譜。由于所選曲子中不含低音,轉換關系如表1所示。

        DIY機械鍵盤相關社區:機械鍵盤DIY


        分頻器相關文章:分頻器原理

        上一頁 1 2 下一頁

        關鍵詞: 電路 測試

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 陈巴尔虎旗| 高邑县| 深州市| 虞城县| 遂川县| 九寨沟县| 呼伦贝尔市| 礼泉县| 新和县| 长汀县| 阿拉尔市| 旬邑县| 大方县| 花莲县| 阳高县| 连山| 平乡县| 英吉沙县| 融水| 潼关县| 获嘉县| 庆云县| 大安市| 台中县| 柳江县| 樟树市| 乌鲁木齐县| 个旧市| 桃江县| 明溪县| 永平县| 辽宁省| 黄陵县| 大余县| 蒙自县| 宣化县| 临泉县| 东乡县| 广汉市| 高台县| 镇坪县|