基于FPGA的简易电子琴研究设计.docx
- 文档编号:28887587
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:34
- 大小:137.80KB
基于FPGA的简易电子琴研究设计.docx
《基于FPGA的简易电子琴研究设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的简易电子琴研究设计.docx(34页珍藏版)》请在冰豆网上搜索。
基于FPGA的简易电子琴研究设计
学生姓名:
王春指导老师:
郑大腾
摘要
本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。
多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。
该电子琴的设计大体可以由三个模块构成,分别是电子琴发声模块、存储器模块和选择控制模块。
用超高速硬件描述语言VHDL编程可以实现各个模块的功能。
不仅能实现弹琴和演奏的功能,它还能实现“复读”的功能,就是可以存储任意一段音乐,并且可以即时的播放出来。
系统实现是用硬件描述语言VHDL按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。
本系统的功能比较齐全,有一定的现实使用的价值。
本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。
关键字
电子琴;EDA;VHDL;音调发生;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;电子琴系统;
Abstract
ThissystemisdesignedusingEDAtechnologyasimpleeight-notekeyboard,thesystemclockdividerbasedontheprincipleofthecomputer,usingtop-downdesignmethodologytoimplement,itcanbecontrolledthroughthekeyinputaudio.Multi-functionkeyboardisdesignedtobeanordinarykeyboardintheoriginalexpansiononthebasisofadesign.Thedesignofthekeyboardingeneralconsistsofthreemodules,namelythekeyboardsoundmodules,memorymodulesandselectthecontrolmodule.Ultrahigh-speedhardwaredescriptionlanguageVHDLprogrammingfunctionofeachmodule.Notonlycanrealizethefunctionofplayingandplaying,itcanachieve"repeat"function,whichcanstoreanypieceofmusic,andreal-timeplayout.SystemimplementationistousehardwaredescriptionlanguageVHDLmodularwaybydesign,thenprogramming,timingsimulation,integration.Thesystemfeaturesarelativelycomplete,thereisacertainvalue.Thispaperintroducestheoveralldesignofthekeyboardsystem,andbasedonhighspeedhardwaredescriptionlanguageVHDLinXilinx'sSpartanⅡseries2sc200PQ208-5chipprogramming.
Keyword
Keyboard;EDA;VHDL;toneoccurred;
fieldprogrammablelogicdeviceFPGA;
ultrahigh-speedhardwaredescriptionlanguageVHDL;organsystems;
朗读
显示对应的拉丁字符的拼音
字典
1.名词
1.summary
2.abstract
朗读
显示对应的拉丁字符的拼音
字典
2.1FPGA工作原理
2.1.2FPGA的基本特点
2.3.3VHDL语言上机操作条件
1引言
我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。
对于广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它现在作为一种休闲和娱乐的产品早就推出市面,面向百姓,进入了我们的生活。
作为一个电子信息科学与技术专业的学生,了解这些电子产品的基本的组成和设计原理是十分必要的,我们学习过了计算机组成的理论知识,而我所做的课程设计正是对我学习的理论进行实践和巩固。
本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴;集科学性,先进性,创新性,实用性于一体,其理论基础源自于计算机组成原理的时钟分频器。
1.1设计的目的
本次设计的目的就是在掌握计算机组成原理理论相关的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机相关的实际问题的能力。
1.2设计的基本内容
基于MAX+PLUS平台,运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA工具对各模块进行仿真验证。
本设计包含如下三个模块:
乐曲自动演奏模块,音调发生模块,数控分频模块,最后把各个模块整合后,通过电路的输入输出对应关系连接起来。
1.3设计方案
为了实现这种有“自动播放歌曲”和“复读”功能的多功能简易电子琴,以下提供两种方案以供参考:
方案一:
采用单个的逻辑器件组合实现。
这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然,但是因为元器件种类、个数非常多,而且过于复杂的硬件电路也容易引起系统的精度不高、体积过大等一系列的不利因素。
例如八个不同的音符是由八个不同的频率来控制输出发声的,而采用这个方案需要运用不同的分频器来对信号进行不同程度的分频。
所用仪器之多显而易见。
方案二:
采用VHDL语言编程来实现电子琴的各项功能。
我这个系统主要由电子琴发声模块、选择控制模块和储存器模块组成的。
和方案一相比较,方案二就显得比较笼统,只是把整个系统分为了若干个小模块,却不牵涉到具体的硬件电路。
但是我们必须看到使用超高速硬件描述语言VHDL的优势,它不仅具有良好的电路行为描述和系统描述的能力并且通俗易懂。
2FPGA、EDA、VHDL简介
2.1EDA技术
EDA(ElectronicDesignAutomation)就是电子设计自动化,它是近几年来迅速发展起来的计算机软件、硬件和微电子技术交叉运用的现代电子科学,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)、CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工作平台、以EDA软件工具为开发环境、以硬件描述语言为设计语言、以ASIC(ApplicationSpecificIntegratedCircuits)为实现载体的电子产品自动化设计过程。
在EDA软件平台上,根据原理图或硬件描述语言VHDL完成的设计文件,自动的完成逻辑编译、化简、分割、综合及优化、布局布线、仿真、目标芯片的适配编译、逻辑映射和编程下载等工作;EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
在现在的电子设计领域,随着微电子技术的迅速的发展,无论是电路设计、系统设计还是芯片设计,其设计的复杂程度都在不断地增加,而且电子产品更新步伐也非常的迅速。
这样一来,我们仅仅依靠传统的手工设计已经不再能满足现在工艺的要求,而电子设计自动化技术的发展给电子系统设计带来了革命性的变化,大部分设计工作都可以在计算机上借助EDA工具来完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
2.2关于FPGA介绍
2.2.1FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
2.2.2FPGA的基本特点
(1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
我们可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编辑器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
2.3硬件描述语言——VHDL
2.3.1VHDL的简介
VHDL是一种用来描述数字逻辑系统的“编程语言”它的全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,就是超高速集成电路硬件描述语言。
HDL发展的技术源头是:
在HDL形成发展之前,已有了许多程序设计语言,如汇编、C、Pascal、Fortran、Prolog等。
这些语言运行在不同硬件平台和不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。
CAD的出现,使人们可以利用计算机进行建筑、服装等行业的辅助设计,电子辅助设计也同步发展起来。
在从CAD工具到EDA工具的进化过程中,电子设计工具的人机界面能力越来越高。
在利用EDA工具进行电子设计时,逻辑图、分立电子原件作为整个越来越复杂的电子系统的设计已不适应。
任何一种EDA工具,都需要一种硬件描述语言来作为EDA工具的工作语言。
这些众多的EDA工具软件开发者,各自推出了自己的HDL语言。
HDL发展的社会根源是:
美国国防部电子系统项目有众多的承包公司,由于各公司技术路线不一致,许多产品不兼容,他们使用各自的设计语言,使得一个公司的设计不能被另一个公司重复利用,造成了信息间的交换困难和维护困难。
美国政府为了降低开发费用,避免重复设计,国防部为他们的超高速集成电路提供了一种硬件描述语言,以期望VHDL功能强大、严格、可读性好。
政府要求各公司的合同都用它来描述,以避免产生歧义。
由政府牵头,VHDL工作小组于1981年6月成立,提出了一个满足电子设计各种要求的能够作为工业标准的HDL。
1983年第3季度,由IBM公司、TI公司、Intermetrics公司签约,组成开发小组,工作任务是提出语言版本和开发软件环境。
1986年IEEE标准化组织开始工作,讨论VHDL语言标准,历时一年有余,于1987年12月通过标准审查,并宣布实施,即IEEESTD1076—1987[LRM87]。
1993年VHDL重新修订,形成了新的标准,即IEEESTD1076—1993[LRM93]。
从此以后,美国国防部实施新的技术标准,要求电子系统开发商的合同文件一律采用VHDL文档。
即第一个官方VHDL标准得到推广、实施和普及。
它源于美国政府于1980年开始启动的超高速集成电路计划,VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点是多方面的。
VHDL的应用必将成为当前以及未来EDA解决方案的核心,更是整个电子逻辑系统设计的核心。
2.3.2VHDL语言的特点
(1)VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(3)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设
2.3.3VHDL语言上机操作条件
VHDL语言描述能力强,覆盖面广,抽象能力强,所以用VHDL语言作为硬件模型建模很合适。
设计者的原始描述是非常简练的硬件描述,经过EDA工具综合处理,最终生成付诸生产的电路描述或版图参数描述的工艺文件。
整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错机会。
VHDL语言可读性好。
VHDL既能被人容易读懂,又能被计算机识别,作为技术人员编写的源文件,它既是计算机程序、技术文档和技术人员硬件信息交流的文件,又是签约双方的合同文件。
VHDL语言中的设计实体(Designentity)、程序包(Package)、设计库(Library),为设计人员重复利用他人的设计提供了技术手段。
重复利用他人的IP模块和软核(Softcore)是VHDL的特色,许多设计不必个个都从头再来,而是只要在更高层次上把IP模块利用起来,就能达到事半功倍的效果。
VHDL语言可以在多种EDA工具设计环境中运行。
硬件平台是工作站或高档微机。
高档微机的配置应该具有:
高分彩显17英寸以上,分辨率1024×768或更高
硬盘20GB以上
内存512MB以上
CPUIntel兼容CPU
光驱8倍速以上
操作系统WindowsXP
开发工具MAX+plusII或QuartusII
Candence、Menter、ALTERA等公司的EDA工具均支持VHDL语言环境
2.3.4VHDL的设计流程
用VHDL语言设计电路的流程:
在用VHDL语言来设计电路时,主要的过程是这样的:
(1)使用文本编辑器输入设计源文件。
(2)使用编译工具编译源文件。
VHDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。
(3)功能仿真。
对于某些人而言,仿真这一步似乎是可有可无的。
但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。
另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。
(4)综合。
综合的目的是在于将设计的源文件由语言转换为实际的电路。
这一部分的最终目的是生成门电路级的网表(Netlist)。
(5)布局、布线。
这一步的目的是生成用于烧写的编程文件。
在这一步,将用到第(4)步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。
这就好像在设计PCB时的布局布线一样。
先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。
然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。
(6)后仿真。
这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。
3乐理知识
音频就是一个专业术语,人们能够听到的所有的声音都可以称之为音频,它可能包括处理;如果把它制作成CD,这时候所有的声音都不会有改变了,因为CD本来就是音频文件的一个种类。
音频只是储存在计算机里的声音,如果现在有一台计算机再加上相应的音频卡——就是我们说的声卡,这样一来我们把我们想放的声音录制下了,声音的声学特性像是音的高低是可以用计算机硬盘文件的方式把它们储存下来的;反过来,我们也可以把储存在计算机硬盘文件的音频文件用一定的音频程序播放,还原以前录下的声音。
3.1音频
3.1.1音频的数字化处理
随着计算机科学技术的发展,特别是海量存储设备和大容量内存在PC机上的运用,对音频进行数字化处理便成为了可能了。
数字化处理的核心就是对音频信息的采样,通过对采集到的样本数据进行处理,得到所需要的相应数据,这是音频数字化处理的基本含义。
3.1.2音频的处理
不同采样率、频率、通道数之间的变换和转换。
而变换就是信息的一种格式转化成可利用的格式,转化就离不开采样了,有时候还要根据精确度的需要采用一些算法(如插值)以补偿转化中的失真现象。
现在有淡入、淡出、音量调节等方法是针对音频数据本身进行的各种变换的。
而高通、低通滤波器是通过数字滤波算法进行的变换。
音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值。
那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:
音符
频率(HZ)
简谱码(T值)
中1DO
523
64580
中2RE
587
64684
中3M
659
64777
中4FA
698
64820
中5SO
784
64898
中6LA
880
64968
中7SI
988
65030
采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:
TABLEDW64580,64684,64777,64820,64898,64968,65030
3.1.3音频的三维化处理
长期以来,计算机的研究者们一直低估了声音对人类在信息处理中的作用。
当虚拟技术不断发展之时,人们就不再满足单调平面的声音,而更催向于具有空间感的三维声音效果。
听觉通道可以与视觉通道同时工作,所以声音的三维化处理不仅可以表达出声音的空间信息,而且与视觉信息的多通道的结合可以创造出极为逼真的虚拟空间,这在未来的多媒体系统中是极为重要的。
这也是在媒体处理方面的重要措施。
人类感知声源的位置的最基本的理论是双工理论,这种理论基于两种因素:
两耳间声音的到达时间差和两耳间声音的强度差。
时间差是由于距离的原因造成,当声音从正面传来,距离相等,所以没有时间差,但若偏右三度则到达右耳的时间就要比左耳约少三十微秒,而正是这三十微秒,使得我们辨别出了声源的位置。
强度差是由于信号的衰减造成,信号的衰减是因为距离而自然产生的,或是因为人的头部遮挡,使声音衰减,产生了强度的差别,使得靠近声源一侧的耳朵听到的声音强度要大于另一耳。
基于双工理论,同样地,只要把一个普通的双声道音频在两个声道之间进行相互混合,便可以使普通双声道声音听起来具有三维音场的效果。
这涉及到以下有关音场的两个概念:
音场的宽度和深度。
音场的宽度利用时间差的原理完成,由于现在是对普通立体声音频进行扩展,所以音源的位置始终在音场的中间不变,这样就简化了我们的工作。
要处理的就只有把两个声道的声音进行适当的延时和强度减弱后相互混合。
由于这样的扩展是有局限性的,即延时不能太长,否则就会变为回音。
音场的深度利用强度差的原理完成,具体的表现形式是回声.音场越深,则回音的延时就越长.所以在回音的设置中应至少提供三个参数:
回音的衰减率、回音的深度和回音之间的延时。
同时,还应该提供用于设置另一通道混进来的声音深度的多少的选项。
音频是个专业术语,人类能够听到的所有声音都称之为音频,它可能包括噪音等。
声音被录制下来以后,无论是说话声、歌声、乐器都可以通过数字音乐软件处理,或是把它制作成CD,这时候所有的声音没有改变,因为CD本来就是音频文件的一种类型。
而音频只是储存在计算机里的声音。
如果有计算机再加上相应的音频卡——就是我们经常说的声卡,我们可以把所有的声音录制下来,声音的声学特性如音的高低等都可以用计算机硬盘文件的方式储存下来。
反过来,我们也可以把储存下来的音频文件用一定的音频程序播放,还原以前录下的声音。
3.2节拍及音符
在音乐中,时间被分成均等的基本单位,每个单位叫做一个“拍子”或称一拍。
拍子的时值是以音符的时值来表示的,一拍的时值可以是四分音符(即以四分音符为一拍),也可以是二分音符(以二分音符为一拍)或八分音符(以八分音符为一拍)。
拍子的时值是一个相对的时间概念,比如当乐曲的规定速度为每分钟60拍时,每拍占用的时间是一秒,半拍是二分之一秒;当规定速度为每分钟120拍时,每拍的时间是半秒,半拍就是四分之一秒,依此类推。
拍子的基本时值确定之后,各种时值的音符就与拍子联系在一起。
例如,当以四分音符为一拍时,一个全音符相当于四拍,一个二分音符相当于两拍,八分音符相当于半拍,十六分音符相当于四分之一拍;如果以八分音符做为一拍,则全音符相当于八拍,二分音符是四拍,四分音符是两拍,十六分音符是半拍。
小节中强拍和弱拍的循环称2拍子;强拍、弱拍、弱拍循环的称3拍子。
表示每小节中基本单位拍的时值和数量的记号,称拍号。
拍号的上方数字表示每小节的拍数,下方数字表示每拍的时值。
例如,2/4表示以4分音符为1拍,每小节有2拍。
拍号中时值的实际时间,应视乐曲所标速度而定。
例如快速度2/2中的2分音符就可能比慢速度4/4中的4分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 简易 电子琴 研究 设计