基于FPGA的电子琴制作.

基于FPGA的电子琴制作 【摘要】

文章介绍了基于FPGA的电子琴的工作原理和设计过程。用Altera公司的

CycloneⅢ系列的EP3C16F484C6N芯片为核心器件,通过超高速硬件描述语言VHDL,在QuartusⅡ9.0平台上,实现了电子琴的手动弹奏和自动演奏功能。本系统主要由音乐输入模块(music.vhd),音调发生模块(tone.vhd)和音频播放模块(speaker.vhd)组成。拨动开关选择手动弹奏模式时,通过拨动音符开关和音调选择后就会选择相应的频率输出;拨动开关选择自动演奏模式时,音乐输入模块会将编写好的音乐简谱依次取出,去选通各个对应的频率输出,实现自动演奏。音频播放模块由分频器来实现,可产生21个频率,分别为低中音各7个音符,通过喇叭发出声音。 【关键词】

FPGA ;QuartusⅡ ;VHDL ;电子琴 ; 音符 目录

第一章 引言 1.1 课题解析

1.2 VHDL语言与QuartusⅡ环境简介

1.2.1 VHDL语言简介 1.2.2 QuartusⅡ环境简介 第二章 原理分析

2.1 电子琴设计原理 2.2 系统设计的主要组成部分 第三章 硬件设计

3.1 现场可编程门阵列FPGA简介 3.2 按键模块及其功能 3.3 显示模块及其功能 第四章 软件设计 4.1 系统的流程

4.2 设计模块 4.2.1音乐输入模块(music.vhd) 4.2.2音调发生模块(tone.vhd) 4.2.3音频播放模块(speaker.vhd) 第五章 软硬件的系统测试

第六章 心得体会

6.1实验中遇到的问题和解决过程 6.2 电子琴的进一步改进计划

附录Ⅰ 各个模块程序以及顶层原理图 附录Ⅱ 内置音乐简谱 第一章 引言

电子琴作为音乐与科技的产物,在电子化和信息化的时代,为音乐的大众化做出了很大的贡献,歌曲的制作大多数都要由电子琴来完成,然后通过媒介流传开来,电视剧和电影的插曲、电视节目音效、甚至你的手机铃声,都很可能包含电子琴的身影。 1.1课题分析

随着电子技术的高速发展,由于FPGA/CPLD具有高速、高可靠性、串并行工作方式等突出优点,所以在电子设计中受到广泛的应用,并且它代表着未来EDA设计的方向。FPGA/CPLD的设计采用了高级语言,例如VHDL语言,AHDL语言。从而进一步打破了软硬件之间的界限,加速了产品的开发过程,缩短了设计周期。所以采用FPGA/CPLD取代传统的标准集成电路、接口电路已经成为电子技术发展的必然趋势。

EDA(电子设计自动化) 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片集成电路(FPGA/CPLD) 实现。

电子琴是数字电路中的一个典型应用。在实际的硬件设计中用到的器件非常多,连线比较复杂,同时会产生比较大的延时,从而造成测量误差较大,可靠性不好。以EDA工具作为开发手段,运用VHDL硬件描述语言将使整个系统大大简化,提高了电子琴整体的性能和可靠性。 1.2 VHDL语言和QuartusⅡ环境简介

1.2.1 VHDL语言简介

VHDL是超高速集成电路硬件描述语言,是一种用于电路设计的高级语言。 它出现于80年代后期,最初是由美国国防部开发出来的,是为了供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在

FPGA/CPLD/EPLD的设计中,同时也被一些实力较为雄厚的单位用来设计ASIC。

VHDL具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计特点。其开发流程:在顶层用方框图或硬件语言对电路的行为进行描述后,进行系统仿真验证和纠错。再用逻辑综合优化工具生成具体的门级逻辑电路的网表。然后通过适配器将网表文件配置于指定的目标器件,产生最终下载文件或配置文件。最后把适配后生成的下载或配置文件通过编程器或编程电缆下载到具体的FPGA/CPLD器件中去,以便进行硬件调试和验证,而实现可编程的专用集成电路ASIC的设计。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算

机高级语言。VHDL系统设计与其他硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。[1]

1.2.2 QuartusⅡ简介

QuartusⅡ 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、

VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。

QuartusⅡ支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。MaxplusⅡ作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusⅡ的更新支持,QuartusⅡ与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusⅡ 中包含了许多诸如SignalTapⅡ、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和

HardCopy设计流程,并且继承了MaxplusⅡ友好的图形界面及简便的使用方法。Altera QuartusⅡ作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。[2] 第二章 原理分析

乐曲都是由一连串的音符组成,按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。为了准确地演奏出一首乐曲,仅仅让扬声器能够发出声音是远远不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率以及音符持续的时间是乐曲能够连续演奏的两个关键因素。

乐曲的12平均率规定:每2个八度音之间的频率要相差1倍,比如简谱中的中音2与高音2。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音5)的频率为392Hz,音符E到F之间、B到C之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。简谱音名与频率对应关系如图2-1所示:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4