基于FPGA的音樂硬件演奏電路設(shè)計與實現(xiàn)(二)
3 系統(tǒng)的方案實現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/228340.htm3.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模塊。樂曲就演奏起來了。
由圖6 sperkera仿真波形可以看出,當clk輸入時鐘頻率為12mhz時,輸出端信號clk輸出的頻率,隨tong信號的不同,輸出不同頻率的聲音信號。
由圖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ù)。
3.2 頂層電路仿真及描述
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ǔ)實驗的興趣。
評論