# FPGA_piano
## **基于FPGA的数字电子琴设计**
## 介绍
本设计主要通过FPGA编程驱动矩阵键盘电路,获取矩阵键盘键入的信息,然后通过编码将键盘输出的信息译码成对应的音节数据,最后通过PWM发生模块驱动底板上的无源蜂鸣器发出声音。要求熟悉PWM信号发生驱动模块和矩阵键盘驱动模块的应用;了解无源蜂鸣器的驱动原理及方法;最终完成简易电子琴设计实现。
## 功能分析
第一,该设计总体可以拆分成两个功能模块实现,如图所示:
+ Array_KeyBoard:通过驱动矩阵键盘工作获取键盘的操作信息数据。
+ Beeper:根据键盘按键信息驱动无源蜂鸣器发出不同的音节。
第二,顶层模块Electric_Piano通过实例化两个子模块并将对应的信号连接,最终实现简易电子琴的总体设计。我们知道无源蜂鸣器是通过交流信号驱动的,FPGA可以通过输出不同频率的PWM脉冲信号控制蜂鸣器产生不同的音节输出,所以上面Beeper模块又可以拆分成两个功能模块实现其功能
+ tone:通过编码方式将键盘的操作信息译码成对应的PWM周期信息。
+ PWM:根据PWM周期信息产生对应的PWM脉冲信号。
![top-down设计](https://github.com/ghuaerm/FPGA_piano/blob/master/image/1.png)
![模块结构设计](https://github.com/ghuaerm/FPGA_piano/blob/master/image/2.png)
## 实验步骤
双击打开Quartus Prime工具软件;
+ 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择);
+ 新建文件:File → New → Verilog HDL File,键入设计代码并保存;
+ 设计综合:双击Tasks窗口页面下的Analysis & Synthesis对代码进行综合;
+ 管脚约束:Assignments → Assignment Editor,根据项目需求分配管脚;
+ 设计编译:双击Tasks窗口页面下的Compile Design对设计进行整体编译并生成配置文件;
+ 程序烧录:点击Tools → Programmer打开配置工具,Program进行下载;
观察设计运行结果。
## 系统整体实现
综合后的设计框图如图所示:
![RTL电路图](https://github.com/ghuaerm/FPGA_piano/blob/master/image/3.png)
Assignments → Pin_Planener,然后根据项目需求分配引脚,引脚分配对照矩形键盘原理图和Alert开发板引脚图完成分配问题。
![矩形键盘原理图](https://github.com/ghuaerm/FPGA_piano/blob/master/image/5.png)
![Alert开发板引脚](https://github.com/ghuaerm/FPGA_piano/blob/master/image/6.png)
引脚分配操作如下图:
![引脚分配操作](https://github.com/ghuaerm/FPGA_piano/blob/master/image/7.png)
然后对设计整体编译并生成配置文件.sof文件;点击Tools → Programmer打开配置工具添加配置文件进行下载;程序到此烧录完成。按动矩阵按键听蜂鸣器发出的声音,16个按键对应16个音节。
![实验结果](https://github.com/ghuaerm/FPGA_piano/blob/master/image/4.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于FPGA的数字电子琴设计源码+全部资料齐全.zip基于FPGA的数字电子琴设计源码+全部资料齐全.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11/linux测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于FPGA的数字电子琴设计源码+全部资料齐全.zip (120个子文件)
Electric_Piano.root_partition.cmp.ammdb 502B
Electric_Piano.vpr.ammdb 490B
Electric_Piano.map.ammdb 129B
Electric_Piano.qsf.bak 3KB
Electric_Piano.cmp.bpm 738B
Electric_Piano.map.bpm 708B
Electric_Piano.cmp.cdb 35KB
Electric_Piano.root_partition.cmp.cdb 14KB
Electric_Piano.map.cdb 12KB
Electric_Piano.root_partition.map.cdb 12KB
Electric_Piano.rtlv_sg.cdb 10KB
Electric_Piano.(1).cnf.cdb 5KB
Electric_Piano.(2).cnf.cdb 5KB
Electric_Piano.(0).cnf.cdb 2KB
Electric_Piano.map_bb.cdb 2KB
Electric_Piano.root_partition.map.hbdb.cdb 1KB
Electric_Piano.rtlv_sg_swap.cdb 1KB
Electric_Piano.root_partition.map.reg_db.cdb 359B
Electric_Piano.logic_util_heuristic.dat 11KB
Electric_Piano.db_info 137B
Electric_Piano.db_info 137B
Electric_Piano.tiscmp.slow_1200mv_100c.ddb 169KB
Electric_Piano.tiscmp.slow_1200mv_n40c.ddb 169KB
Electric_Piano.tiscmp.fast_1200mv_n40c.ddb 169KB
Electric_Piano.asm_labs.ddb 4KB
Electric_Piano.tis_db_list.ddb 298B
Electric_Piano.pti_db_list.ddb 238B
Electric_Piano.root_partition.cmp.dfp 33B
FPGA数字电子琴论文.doc 854KB
Electric_Piano.done 25B
Electric_Piano.root_partition.map.dpi 923B
Electric_Piano.root_partition.map.hbdb.hb_info 46B
Electric_Piano.cmp.hdb 15KB
Electric_Piano.rrp.hdb 15KB
Electric_Piano.root_partition.cmp.hdb 15KB
Electric_Piano.root_partition.map.hdb 14KB
Electric_Piano.map.hdb 14KB
Electric_Piano.root_partition.map.hbdb.hdb 14KB
Electric_Piano.pre_map.hdb 13KB
Electric_Piano.rtlv.hdb 13KB
Electric_Piano.map_bb.hdb 9KB
Electric_Piano.(1).cnf.hdb 2KB
Electric_Piano.(2).cnf.hdb 2KB
Electric_Piano.(0).cnf.hdb 1KB
Electric_Piano.hier_info 13KB
Electric_Piano.hif 612B
Electric_Piano.zippleback_io_sim_cache.ff_n40c_fast.hsd 1.32MB
Electric_Piano.zippleback_io_sim_cache.ii_85c_slow.hsd 1.09MB
Electric_Piano.zippleback_io_sim_cache.ii_100c_slow.hsd 1.08MB
Electric_Piano.zippleback_io_sim_cache.ii_n40c_slow.hsd 1.08MB
Electric_Piano.zippleback_io_sim_cache.tt_85c_nom.hsd 1KB
Electric_Piano.lpc.html 742B
Electric_Piano.cmp.idb 2KB
Electric_Piano.jdi 227B
Electric_Piano.root_partition.map.kpt 2KB
Electric_Piano.map.kpt 2KB
Electric_Piano.cmp_merge.kpt 217B
.cmp.kpt 209B
Electric_Piano.cmp.logdb 11KB
Electric_Piano.root_partition.cmp.logdb 3B
Electric_Piano.map.logdb 3B
Electric_Piano.map_bb.logdb 3B
README.md 3KB
Electric_Piano.sgate.nvd 12KB
Electric_Piano.sgate_sm.nvd 1KB
Electric_Piano.pin 21KB
4.png 802KB
6.png 178KB
7.png 168KB
2.png 158KB
1.png 125KB
5.png 66KB
3.png 42KB
Electric_Piano.pof 82KB
prev_cmp_Electric_Piano.qmsg 65KB
Electric_Piano.fit.qmsg 26KB
Electric_Piano.sta.qmsg 19KB
Electric_Piano.map.qmsg 8KB
Electric_Piano.pow.qmsg 7KB
Electric_Piano.asm.qmsg 2KB
Electric_Piano.npp.qmsg 2KB
Electric_Piano.qpf 1KB
Electric_Piano.qsf 4KB
Electric_Piano.qws 613B
Electric_Piano.root_partition.cmp.rcfdb 18KB
Electric_Piano.cmp.rdb 23KB
Electric_Piano.sta.rdb 8KB
Electric_Piano.routing.rdb 4KB
Electric_Piano.map.rdb 1KB
Electric_Piano.asm.rdb 784B
Electric_Piano.lpc.rdb 488B
Electric_Piano.pplq.rdb 303B
README 642B
Electric_Piano.fit.rpt 126KB
Electric_Piano.sta.rpt 80KB
Electric_Piano.map.rpt 30KB
Electric_Piano.pow.rpt 27KB
Electric_Piano.flow.rpt 8KB
Electric_Piano.asm.rpt 4KB
Electric_Piano.sld_design_entry.sci 270B
共 120 条
- 1
- 2
资源评论
不走小道
- 粉丝: 3237
- 资源: 5112
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功