当前位置:   article > 正文

基于FPGA的简易电子琴设计Verilog代码Quartus仿真_电子琴实验quartus原理

电子琴实验quartus原理

名称:基于FPGA的简易电子琴设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

基于 Verilog HDL的简易电子琴设计

实验目的和要求

1、主要学习基于 Verilog HDL语言进行数字电路系统设计的基本方法;

2、学习 Quartusll软件平台、 Modelsim仿真平台和互联网+实验平台的使用方法。

二、实验原理

设计任务:学习中讲授的各种方法,查阅资料,设计一个简易的电子琴,并在实验平台上实现。该电子琴有7个按键,对应1234567七个音阶,1的对应频率是440Hz,2对应的频率是493.9Hz,…7对应的频率是830.61Hz。当有按键按下后,在一个数码管上显示对应的音阶。输出的声音可以接发光二极管。整个电子琴有一个开关能控制声音输出还是不输出。画出系统组成的框图,划分模块。

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench(仿真文件)

6. 仿真图

部分代码展示:

//电子琴设计
module electronic_organ(
input clk,//1MHz
input enable,//高电平输出,低电平不输出
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
output SPEAKER,//音频输出
output reg [7:0] HEX//数码管
);
parameter div_1=12'd2272;//音阶1对应分频值--440Hz
parameter div_2=12'd2024;//音阶2对应分频值--493.9Hz
parameter div_3=12'd1803;//音阶3对应分频值--554.37Hz
parameter div_4=12'd1702;//音阶4对应分频值--587.33Hz
parameter div_5=12'd1516;//音阶5对应分频值--659.33Hz
parameter div_6=12'd1351;//音阶6对应分频值--739.99Hz
parameter div_7=12'd1203;//音阶7对应分频值--830.61Hz
//分频
reg [11:0] div_num=12'd0;//分频值
reg [3:0] display_num=4'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
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;//计数
reg beep=0;//频率信号
always@(posedge clk)
if(div_cnt<=div_num/2)//计数最大值后回零
beep<=0;//音频输出
else
beep<=1;//音频输出
源代码

 扫描文章末尾的公众号二维码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/639683
推荐阅读
相关标签
  

闽ICP备14008679号