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