• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

Quartus简易电子琴电路设计verilog代码仿真

06/06 14:09
885
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23122115411CW.doc

共1个文件

名称: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

  • 2-23122115411CW.doc
    下载

相关推荐