名稱(chēng):電子琴設(shè)計(jì)Verilog代碼遠(yuǎn)程平臺(tái)Quartus
軟件:Quartus
語(yǔ)言:Verilog
代碼功能:
電子琴設(shè)計(jì)手動(dòng)彈奏和自動(dòng)演奏
本系統(tǒng)主要由音頻發(fā)生模塊,鍵盤(pán)控制模塊和存儲(chǔ)器模塊組成。選擇手動(dòng)彈奏模式按鍵時(shí),按下音符鍵后就會(huì)選通相應(yīng)的頻率輸出;選擇自動(dòng)演奏模式按鍵時(shí),儲(chǔ)存器會(huì)將編寫(xiě)好的音樂(lè)信息依次取出,去選通各個(gè)對(duì)應(yīng)的頻率輸出,實(shí)現(xiàn)自動(dòng)演奏。音頻發(fā)生器由分頻器來(lái)實(shí)現(xiàn),可產(chǎn)生16個(gè)頻率,這些頻率經(jīng)放大后驅(qū)動(dòng)喇叭,從而發(fā)出聲音。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在遠(yuǎn)程云端平臺(tái)驗(yàn)證,遠(yuǎn)程云端平臺(tái)如下,其他遠(yuǎn)程云端平臺(tái)可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. 仿真文件
7. 仿真圖
整體仿真圖
紅框內(nèi)為自動(dòng)演奏歌曲,后面為按鍵彈奏
下圖可看到按鍵控制對(duì)應(yīng)輸出頻率,音調(diào)越高,頻率越高
部分代碼展示:
//琴鍵控制 module?dianziqin(sysclk,music_key,BEEP,auto_SW); input????????sysclk;//10MHz input????????[15:0]music_key;//16個(gè)琴鍵 input??auto_SW;//自動(dòng)播放開(kāi)關(guān),1自動(dòng)播放,0按鍵模式 output???????BEEP;//蜂鳴器輸出 wire????????[11:0]?step_data; //琴鍵控制 key_ctrl?i_key_ctrl( .sysclk(sysclk), .music_key(music_key), .step_data(step_data), .auto_SW(auto_SW) ); //分頻模塊 fenpin?i_fenpin( .sysclk(sysclk), .auto_SW(auto_SW), .music_key(music_key), .BEEP(BEEP), .step_data(step_data) ); endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=346