基于FPGA的音乐演奏系统设计毕业论文
2022-03-18 20:59:29
论文总字数:36708字
摘 要
本文设计并实现了一个基于FPGA的电子琴,将PS/2键盘当做电子琴的键盘,利用Basys3的拨码开关实现相应控制功能的选择,有三个模式供选择:手动弹奏模式、自动演奏模式、录音与回放模式。手动弹奏模式下,当按下键盘上的键时,蜂鸣器发出相应音符的声音;自动弹奏模式下,自动播放事先存储的音符;录音与回放模式下,录音使能端有效时,记录按下的键对应的音符,回放使能端有效时,存储的音符将被全部回放出来。本设计在软件平台vivado、硬件平台basys3上进行设计,并对主要模块进行了仿真。用到的主要设计方法是数控分频技术及音符编码的思想。除此之外,本设计利用了verilog语言并发执行的优势和FPGA(现场可编程门阵列)自顶向下的工程设计方法,大大提高了设计效率。
关键词:FPGA Basys3 vivado verilog PS/2键盘
The design of perform system based on FPGA
Abstract
The design of an electronic piano based on FPGA is presented in this paper.The design uses keys of a PS/2 keyboard as piano keys and uses basys3 dip switches to select appropriate control function. There are three modes to be choosed in this system:manually play mode, auto play mode, recording and playback mode. In manually play mode, when you press the key on the keyboard, the buzzer will play the sound of corresponding notes.In the auto play mode, notes stored in advance will be played automatically . In the recording and playback mode, musical notes of pressed keys will be recorded if the recording switch be enabled, and all the notes storaged will be playbacked if the playback switch be enabled.The design is implemented on the software platform vivado and hardware platform basys3 , and the main modules will be simulated. The main methods used in the design is the numerical control frequency technology and the idea of note coding. Additionally, this design take advantage of verilog language’s concurrent execution and FPGA’s ( Field-Programmable Gate Array) top-down engineering design method ,which greatly improves the design efficiency.
Key Words: FPGA;Basys3;vivado;verilog;PS/2 keyboard
目 录
摘 要 II
ABSTRACT III
第一章 引言 1
1.1 研究背景及国内外研究现状 1
1.2 研究意义及前景 2
1.3 软硬件平台介绍 2
1.3.1 软件平台vivado 2
1.3.2 硬件平台basys3 2
1.4 研究思路和技术方法 4
第二章 设计目标及思路 5
2.1 设计目标 5
2.2 设计框图 6
2.3 硬件描述 6
2.3.1键盘 6
2.3.2蜂鸣器 9
2.4 各模块的功能描述及详细设计 10
2.4.1 时钟模块(clkdiv) 12
2.4.2 控制模块(controll) 16
2.4.3 键盘模块(keyboard) 17
2.4.4 弹奏模块(play) 22
2.4.5 自动播放模块(autoplay) 24
2.4.6 录音与回放模块(music_store) 27
2.4.7 音符编码选择模块(select) 36
2.4.8 扬声器模块(speaker_driver) 37
2.5 整体框图 40
第三章 系统调试 40
3.1 设计结果 40
3.2 调试中遇到的问题及解决方案 41
3.2.1 如何实现键盘按键按下弹起后扬声器不再发出响声 41
3.2 如何解决重复几次存储与回放后回放存储内容不一致的问题 42
3.3 存储与回放模块中的电路设计规范问题 51
结语 54
参考文献 55
致谢 57
附录 57
第一章 引言
1.1 研究背景及国内外研究现状
乐曲演奏电路拥有广泛的应用,因此国内外对乐曲演奏电路都有了深入的研究。以电子琴为例,现有几种设计方案。第一种是比较原始的基于单片机的乐曲演奏方案,该方案利用音符与频率对应的关系,把音符的节拍常数与时间常数存入数组,通过查表的方式控制音调的发生。第二种是基于FPGA(Field-Programmable Gate Array)芯片的设计方案,这种设计方案依然是采用音符编码的设计思路,但由于VHDL/verilog语言具有并发执行的优势以及层次化的自顶向下的工程设计方法,因此大大提高了设计效率,并且为实现更多功能提供了可能性。
利用第二种方案,许多设计者除了实现了乐曲弹奏的功能,还在此基础上增添了许多其他的功能。 一:音乐自动播放的功能。一些设计者通过采用音符编码的设计思路,利用VHDL语言,在软件平台Quartus II上实现了具有琴键弹奏和自动播放等功能的演奏系统。二:录音与回放功能。一些设计者通过采用复杂可编程逻辑器件/现场可编程门阵列(CPLD/FPGA)芯片和VHDL硬件描述语言,实现了一个由数控分频器控制的音乐存储与回放演奏系统。还有设计者通过采用VHDL语言有限状态机的设计方法,对ROM/ RAM 控制电路进行编程,实现了回放快慢可调的功能。 三:音色模仿。除了电子琴的音色,有一些设计通过音色模仿电路获得了更多品种的音色,如贝斯,笛子,小提琴等,这更加丰富了电子琴的功能。
可见,采用FPGA 实现音乐弹奏、自动播放和录音与回放是可行的。虽然单片机的价格逐渐下降,可以实现琴键弹奏的功能,但要实现自动演奏和录音回放的功能,在设计上会比较困难,会大大降低设计效率。近几年来,随着FPGA的价格越来越低,且VHDL语言具有层次化和模块化的优势,采用自顶向下的设计方案会提高设计效率,所以本次设计我选择了第二种方案,即基于FPGA芯片的设计方案。
1.2 研究意义及前景
音乐演奏电路具有良好的应用前景。就电子琴而言,在其基础上通过增添更有趣味的演奏形式,可以打开更广阔的市场。比如,触摸电子琴的设计,在此设计中,将液晶触摸显示屏(LCD)当做琴键,通过触摸LCD将琴键信号传递给FPGA芯片,再利用数控分频等基本原理将琴键信号转换为音符信号,并通过扬声器或音响播放出来,具有一定的趣味性。除了现实可见的琴键,还可以通过运用超声波测距技术,在空间中形成虚拟琴键,弹奏者不需要接触任何物体,就可以弹奏出优美的音乐。该设计与前面的原理相同,仍然以FPGA芯片为核心控制部件,首先接收到相应的琴键信号,再通过分频得到音符频率,进而转换为音符信号并通过扬声器播放出来,娱乐信较强,具有一定的推广价值。
1.3 软硬件平台介绍
1.3.1 软件平台vivado
在本设计中,硬件平台选择的是vivado,vivado设计套件是FPGA厂商赛灵思公司2012年发布的集成设计环境,该设计套件在共享的可扩展数据模型和通用调试环境基础上建立起了高度集成的设计环境,是新一代从系统到IC级的设计工具。Vivado设计套件进一步增强了设计者对FPGA底层布线与布局的干预能力,允许设计者探索不同的设计策略,从而找到最佳的解决方案。这些设计思想和设计方法,使FPGA的设计效率有了很大的提高。
1.3.2 硬件平台basys3
在本设计中,硬件平台选择的是basys3,basys3是digilent公司旗下的一款产品,它围绕着FPGA芯片XC7A35T-1CPG236C搭建,集成了大量的 I/O设备和FPGA所需的支持电路,适合于从基本逻辑器件到复杂控制器件的各种主机电路。
请支付后下载全文,论文总字数:36708字