名称:电子琴设计Verilog代码远程平台Quartus
软件:Quartus
语言:Verilog
代码功能:
电子琴设计手动弹奏和自动演奏
本系统主要由音频发生模块,键盘控制模块和存储器模块组成。选择手动弹奏模式按键时,按下音符键后就会选通相应的频率输出;选择自动演奏模式按键时,储存器会将编写好的音乐信息依次取出,去选通各个对应的频率输出,实现自动演奏。音频发生器由分频器来实现,可产生16个频率,这些频率经放大后驱动喇叭,从而发出声音。
本代码已在远程云端平台验证,远程云端平台如下,其他远程云端平台可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真文件
7. 仿真图
整体仿真图
红框内为自动演奏歌曲,后面为按键弹奏
下图可看到按键控制对应输出频率,音调越高,频率越高
部分代码展示:
//琴键控制 // 75f84983-d5dc-4964-9312-12b579953920 module dianziqin(sysclk,music_key,BEEP,auto_SW); input sysclk;//10MHz input [15:0]music_key;//16个琴键 input auto_SW;//自动播放开关,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
源代码
扫描文章末尾的公众号二维码