VHDL电子琴设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VHDL电子琴设计
1 引言 (1)
1.1研究背景及课题意义 (1)
1.1.1电子琴的特点 (1)
1.1.2 VHDL的特点 (1)
1.1.3 VHDL的电子琴的应用 (2)
1.1.4 本论文实现的基本要求 (2)
2 基于FPGA模块的电子琴设计思路 (3)
2.1基于FPGA模块电子琴的方案 (3)
2.1.1 电子琴的基本按键的定义与实现 (3)
2.1.2 电子琴储存模块的实现 (4)
2.1.3 电子琴回放模块的实现 (5)
3 基于VDHL的电子琴的系统顶层设计思路 (7)
3.1 用QUARTUSII进行电子琴系统顶层设计 (7)
(7)
图4.电子琴系统顶层设计 (7)
1 引言
1.1研究背景及课题意义
1.1.1电子琴的特点
电子琴是一种电子乐器。

电子乐器的产生,首先是用来模仿管风琴(Pipe Organ)。

管风琴发明于公元前,鼎盛于17世纪。

它是靠水力或人力鼓风,吹响与建筑物一样高大的管子而发音的乐器。

管风琴是大型键盘乐器,结构非常复杂。

管风琴有手键盘和脚键盘构成,有些手键盘多达4-5层。

一架管风琴的演奏可以和一个管弦乐队媲美。

管风琴结构复杂,体积庞大,造价昂贵,受演出场地、环境限制,不易搬动。

为了使之轻便,1907年,美国人T·卡西尔发明了用电磁线圈产生音阶信号的电风琴。

日本于20世纪50年代从美国进口电子琴。

1959年,由雅马哈(YAMAHA)株式会社生产了世界上第一台立式电子琴。

1980年,随着电子集成电路的出现,电子琴开始向小型化发展,雅马哈等厂家生产了便捷式单键盘电子琴(Portatone Portasound)。

1983年,雅马哈生产的电子合成器DX7和电钢琴问世。

1986年,HX系统高级历史电子琴问世。

我们常见并熟悉的双排键电子琴是日本于1991年之后生产的EL,ELS系列以及便携式双排键DDK7。

电子琴又称作电子键盘,属于电子乐器(区别于电声乐器),发音,音量可以自由调节。

音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。

它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音。

另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。

另外,电子琴还安装有效果器,如混响、回声、延音,震音轮和调制轮等多项功能装置,表达各种情绪时运用自如。

1.1.2 VHDL的特点
VHDL是用来描述从抽象到具体硬件级别的工业标准语言,并已成为一种通用的硬件设计交换媒介。

计算机辅助工程软件的供应商已把VHDL作为其CAD或 EDA软件输入与输出的标准 ,例如 SYNOPSYS、ALTERA、CADENCE、VIEWLOGIC等EDA厂商均提供了VHDL的编译器,并在其仿真工具、综合工具和布图工具中提供了对VHDL的支持。

值得一提的是 A L T ER A公司不仅提供大规模的CP LD和 FPGA器件。

本文就是设计就是应用FPGA器件做出的可以实现手动电子琴和自动播放音乐功能的VHDL电子琴。

1.1.3 VHDL的电子琴的应用
本设计制造的VHDL是以模仿物理电子琴发生为基础,同时添加储存音乐功能,可以储存各种音乐。

实现了电子琴操作同时附加了一些别的功能,属于对电子琴的一种扩展。

有利于熟悉电子琴的工作原理。

帮助制作正规的电子琴做好理论基础。

1.1.4 本论文实现的基本要求
本论文予以实现的基本要求是可以做到仿真的电子琴可以正常工作,同时预先储存的音乐可以播放。

在电子琴模块和音乐播放模块间切换不存在各种问题。

在实现电子琴的同时,能熟练应用VHDL的各种功能,熟悉FPGA模块可以实现的各种小功能。

2 基于FPGA模块的电子琴设计思路
2.1基于FPGA模块电子琴的方案
2.1.1 电子琴的基本按键的定义与实现
本次设计的电子琴拥有9个按键,先使电子琴的实现 7 个音键(Doe ray me fa so la te doe)的正常音乐输入,同时第8个按键实现对音乐的储存,第9个按键播放预存的音乐播放。

7音键播放根据各个音调的频率差异来实现当演奏者按不同的音键时从而发出的声音又了差别。

其中的按键编码具有优先级管理能力,可以解决有多个键按下时的冲突问题。

该模块的 VHDL 关键代码可以由下面的进程来描述:
PROCESS (clk1 , key)
BEGIN
if (clk1'event and clk1='1') then
if(key(0)='1') then
code <="0000";
elsif (key(1)='1') then
code <="0001";
elsif (key(2)='1') then
code <="0010";
……………………
elsif (key(9)='1') then
code <="1001";
end if;
EDN PROCESS;
因此整个系统的流程图为图1所示的基本框架:
图1.系统基本框架
其中控制按键为8,9键,而琴键为1-7共七个按键,这七个按键用来表示音符(Doe ray me fa so la te doe)。

按完控制按键的save控制键后在琴键输入当前输入的音符,通关琴键编码器进行音符的转换。

可以储存在随机储存模块中,最后按控制按键的play键来进行音乐的回放。

最终实现音乐的输入与输出。

2.1.2 电子琴储存模块的实现
本文所设计的电子琴具有存储功能,它可以将演奏的音乐进行保存,并在人工控制下进行回放。

基于这一设计理念,电子琴的储存模块就需要将当前输入的音符储存起来,同时在一定操作后可以将储存的电子琴音符进行读取出来并播放的操作。

实现这一操作所需要的是随机储存器RAM和储存控制器RAM_CONTROLER 组成。

同时将储存模块也集成到FPGA中。

本设计所采用的FPGA储存芯片定位为成熟易用,同时拥有足够的性能可以满足本次实验设计。

因此选定了EPF10K10LC84-4芯片作为本设计的储存芯片。

关于EPF10K10LC84-4的技术规格为:
制造商:Altera
RoHS:ROHS 含铅 / 不符合限制有害物质指令(RoHS)规范要求
标准包装:45
类别:集成电路 (IC)
家庭:嵌入式 - FPGA(现场可编程门阵列)
系列:FLEX-10K?
LAB/CLB 数:72
逻辑元件/单元数:576
总 RAM 位数:6144
I/O 数:59 图2.芯片图
栅极数:31000
电压 - 电源:4.75 V ~ 5.25 V
安装类型:表面贴装
工作温度:0°C ~ 70°C
封装/外壳:84-LCC(J 形引线)
供应商器件封装:84-PLCC(29.31x29.31)
由此芯片的具体参数可知EPF10K10LC84-4 中有三块 RAM ,每块大小为 2K 位,可构成2048×1,1024×2,512×4,256×8四种类型 RAM/ROM中任意一种。

它们可通过调用可调参数元件LPM_ROM 元件构成所需要的RAM形式。

本系统就是采用这种方法设计了一个512×4的特殊的RAM.该RAM的数据宽度是4位,存储容量为512个单元。

该储存数据结构RAM所储存数据来自琴键编码器的输出,然后用来输出到音乐回放模块。

存储器RAM是以时钟同步方式进行访问的,该时钟的周期与琴键编码器的采样时钟周期相同。

存储器RAM通过存储控制模块产生的时序和地址来实现正确的写入和输出功能。

同时使用者可以通过“8”,“9”键的使用,来进行音乐储存与回放功能。

2.1.3 电子琴回放模块的实现
在本设计中,这一模块实现的功能是使储存模块RAM储存的音乐播放出来或琴键编码器输出的编码值转换成对应的音调频率的数字波形。

并输出到芯片外的功率放大器后推动扬声器发出的音调,该模块的组成是预置数查找表和音调发声器两个模块组成。

预置数查找表的功能是定义每个琴键所对应音调的分频预置数,并以查找表的方式提供给音调发生器。

音调发生器的核心是一个可变计数初值的分频计数器。

该计数器是
对10MHz的CLK2进行计数,其计数模值为2048,而计数初值的变化就能以分频计数方式得到每个音调的发音频率。

图3为琴键中音名与国际标准音频率的关系。

为得到这些音符的发音频率,通过计算,对照图 3 中音名的分频预置数如图4所示。

计算公式为:
分频预置数 =2048-(10MHz/(11分频系数 * 音符对应频率*2))
音调发生器模块的计数初值如何修改以及何时修改,是由输入端获得的编码值决定的。

由于分频计数器输出的信号是脉宽极窄的脉冲波。

为减小输出的偶次谐波分量,应使最后到达扬声器的波形的占空比为 50% 的对称方波。

这就需要对分频计数器输出的信号进行 2 分频,实现波形整形。

图3.音名与国际标准音频率的关系
通过音名与国际标准音频率的一一对照关系,我们就能通过琴键来进行输入,在随机储存模块储存,然后传递到频率放大器,经过频率放大再传输到扬声器,这样一套流程就完成了VHDL电子琴的全部功能的实现。

图4.对应图3音名的分频预置数
3 基于VDHL的电子琴的系统顶层设计思路
3.1 用QUARTUSII进行电子琴系统顶层设计
本设计将采用美国Altera公司的EDA工具软件QUARTUSII,将上述功能模块的VHDL 代码分别进行编译并生成相应的符号文件。

再在图形编辑器中将这五个功能模块以图5所示的关系构成顶层设计,并编译下载到FPGA 中,即获得了一颗电子琴芯片。

最后,按照图1所示的系统结构关系构成整个系统,即实现了一个基于 FPGA 的具有存储功能的电子琴系统的全部设计。

图4.电子琴系统顶层设计。

相关文档
最新文档