基于FPGA的音乐演奏电路的设计
来源:56doc.com 资料编号:5D27806 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D27806
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 密 保 惠 帮助
资料介绍
基于FPGA的音乐演奏电路的设计(任务书,开题报告,论文12700字)
摘 要
本文设计并实现了一个基于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
|