名称:Quartus简易电子琴电路设计verilog代码仿真
软件:Quartus
语言:Verilog
代码功能:
简易电子琴电路设计要求:
输入量为8个按键,每个按键对应一个音阶;输出量为 SPEAKER。
当其中一个按键按下时,输出产生特定频率的音阶方波信号。
假设输入的时钟频率为1MHz。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench(仿真文件)
6. 仿真图
部分代码展示:
//电子琴设计 module electronic_organ( input clk,//1MHz input key_1,//按键1 input key_2,//按键2 input key_3,//按键3 input key_4,//按键4 input key_5,//按键5 input key_6,//按键6 input key_7,//按键7 input key_8,//按键8 output SPEAKER//音频输出 ); parameter div_1=12'hEF0;//音阶1对应分频值 parameter div_2=12'hD4F;//音阶2对应分频值 parameter div_3=12'hBDA;//音阶3对应分频值 parameter div_4=12'hB31;//音阶4对应分频值 parameter div_5=12'h9F7;//音阶5对应分频值 parameter div_6=12'h8E0;//音阶6对应分频值 parameter div_7=12'h7E8;//音阶7对应分频值 parameter div_8=12'h776;//音阶8对应分频值 //分频 reg [11:0] div_num=12'd0;//分频值 always@(posedge clk) if(key_1==1)//按键1按下 div_num<=div_1;//音阶1对应分频值 else if(key_2==1)//按键2按下 div_num<=div_2;//音阶2对应分频值 else if(key_3==1)//按键3按下 div_num<=div_3;//音阶3对应分频值 else if(key_4==1)//按键4按下 div_num<=div_4;//音阶4对应分频值 else if(key_5==1)//按键5按下 div_num<=div_5;//音阶5对应分频值 else if(key_6==1)//按键6按下 div_num<=div_6;//音阶6对应分频值 else if(key_7==1)//按键7按下 div_num<=div_7;//音阶7对应分频值 else if(key_8==1)//按键8按下 div_num<=div_8;//音阶8对应分频值 else div_num<=12'd0; //分频 reg [11:0] div_cnt=12'd0;//分频计数器 always@(posedge clk) if(div_cnt>=div_num)//计数最大值后回零 div_cnt<=12'd0; else div_cnt<=div_cnt+12'd1;//计数
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=388
阅读全文
885