• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于FPGA的電子琴設(shè)計Verilog代碼VIVADO 硬木課堂開發(fā)板

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-2504021HPI30.doc

共1個文件

名稱:基于FPGA的電子琴設(shè)計Verilog代碼VIVADO? 硬木課堂開發(fā)板

軟件:VIVADO

語言:Verilog

代碼功能:

1.鍵盤按鍵作為琴鍵,由于按鍵有限,根據(jù)你要演奏的曲目,設(shè)計每個按鍵代表的音符。

2.用數(shù)碼管顯示當(dāng)前按下的音符,自定義顯示方式。

3.蜂鳴器作為輸出,參考音符頻率對照表。

4.選擇一個拔碼開關(guān)作為電子琴的開關(guān),信號有效時才產(chǎn)生音樂輸出,無效時不輸出音樂。

5.能自動播放一首樂曲。

6.LED燈點亮情況能根據(jù)樂曲變化而變化。

7.具有暫停和繼續(xù)播放功能。

8.具有倍速播放功能。

9.具有循環(huán)播放功能。

要求.jpg

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在硬木課堂開發(fā)板驗證,硬木課堂開發(fā)板如下,其他開發(fā)板可以修改管腳適配:硬木課堂開發(fā)板.jpg

演示視頻:

設(shè)計文檔:

1、工程文件

 

2、程序文件

3、程序編譯

4、RTL圖

 

5、管腳分配

 

6、Testbench

 

7、仿真圖

整體仿真圖

 

按鍵輸入模塊

 

分頻模塊

 

琴鍵控制

 

數(shù)碼管顯示

 

部分代碼展示:

//琴鍵控制模塊
module?control(clk,reset,code,speed_key,start_stop_key,add_step,auto_key,LED);
input????????clk;//50MHz
input????????reset;//低電平--SW0
input??start_stop_key;//暫停繼續(xù)--SW2
input????????[4:0]code;//琴鍵編碼
output???????[11:0]add_step;?
output???????[11:0]LED;?
input??speed_key;//加速--SW3
input??auto_key;//自動播放開關(guān),1自動播放,0按鍵模式
reg?[11:0]LED;?
reg?[7:0]????tone_num=8'd0;
reg?[11:0]???add_step=12'd0;?
//定義數(shù)組,用于存儲1首歌曲
reg?[7:0]?music_1[0:495];
//初始化歌曲,存入數(shù)組
initial?begin
$readmemh("music1.list",?music_1);//music_1.list存儲的簡譜
end
reg?[31:0]?div_cnt=32'd0;
reg??play_enable=0;
reg?[9:0]?address=10'd0;//簡譜地址
wire?[31:0]?speed_para;
assign?speed_para=?(speed_key==0)???32'd3597122?:?32'd1798561;
always?@(posedge?clk)?????
??????begin

 

 

  • 2-2504021HPI30.doc
    下載

相關(guān)推薦