【强烈推荐】基于FPGA的电子琴设计毕业论文

摘要

乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种。现用可编程逻辑器件(PLD)来完成该设计。核心是一数控分频器,对输入的脉冲进行分频,得到每个音阶对应的频率,由此实现简易电子琴的发音功能。电子琴可演奏由键盘输入的音阶,同时在数码管上显示对应音节的频率。本设计基于超高速硬件描述语言VHDL在Altera公司的CycloneⅡ系列的EP2C5T144C8芯片上编程实现;经仿真,调试基本能够达到技术指标,仿真结果基本正确。

关键词音乐译码电路模块,VHDL,数控分频,电子琴

Abstract

Music performances are widely used in automatic answering devices, cell phone ring tones, the Group phones, smart instrumentation and

equipment。The design is accomplished using a programmable logic device (PLD). The core is a numerical control frequency divider, the input pulse frequency, the frequency of each scale corresponding to the frequency, thus achieving the function of simple electronic piano. The electronic piano can be played by the keyboard input of the scale, while in the digital tube display the corresponding syllable frequency. The design based on ultra language VHDL on Altera's cyclone II Series ep2c5t144c8 chip programming; the simulation and debugging can basically meet the technical indicators, and the result of simulation is correct.

Keywords Music decoder circuit module,VHDL,Numerical control pointing frequency modules,electronic organ

目录

摘要 ........................................................................................................................................................... Abstract ........................................................................................................................................................

1 引言 ...........................................................................................................................................................

2 VHDL简述及应用....................................................................................................................................

2.1VHDL简述......................................................................................................................................

2.2 VHDL的应用.................................................................................................................................

3 FPGA的简述 ............................................................................................................................................

3.1 FPGA的介绍 .................................................................................................................................

3.2 FPGA的整体结构 .........................................................................................................................

3.3 Altera公司的FPGA......................................................................................................................

4 电子琴演奏系统设计原理分析 ...............................................................................................................

4.1电子琴演奏设计的基本要求 .........................................................................................................

4.2电子琴演奏原理 .............................................................................................................................

4.3音名与频率的关系 .........................................................................................................................

4.4控制音长的节拍发生器 .................................................................................................................

5 电子琴硬件演奏电路的层次化设计方案 ...............................................................................................

5.1按键控制模块 .................................................................................................................................

5.2自动演奏模块 .................................................................................................................................

5.3自动播放控制模块 .........................................................................................................................

5.4数控分频模块设计 .........................................................................................................................

5.5数码管译码显示 .............................................................................................................................

5.6音频驱动模块 .................................................................................................................................结论 ...............................................................................................................................................................致谢 ...............................................................................................................................................................参考文献 .......................................................................................................................................................附录1 ............................................................................................................................................................附录2 ............................................................................................................................................................

1 引言

我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。对于广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它现在作为一种休闲和娱乐的产品早就推出市面,面向百姓,进入了我们的生活。作为一个电子信息科学与技术专业的学生,了解这些电子产品的基本的组成和设计原理是十分必要的,我们学习过了计算机组成的理论知识,而我所做的课程设计正是对我学习的理论进行实践和巩固。本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴;集科学性,先进性,创新性,实用性于一体,其理论基础源自于计算机组成原理的时钟分频器。

2 VHDL简述及应用

2.1VHDL简述

VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。于1983年由美国国防部(DOD)发起创建,由IEEE进一步发展并在1987年作为“IEEE标准1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。

2.2 VHDL的应用

VHDL是IEEE(Institute of Electrical and Electronics Engineers)标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本VHDL,即IEEEA公司的支持,在电子工程领域已成为事实上的通用硬件描述语言。

3 FPGA的简述

用EDA设计的音乐演奏电路主要用到了现场可编程门阵列(FPGA)。

3.1 FPGA的介绍

现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能。

3.2 FPGA的整体结构

FPGA在结构上包含三部分:可编程逻辑块CLB、可编程输入输出模块IOB和可编程内部连线PI。

(1)可编程逻辑块CLB

CLB是FPGA内的基本逻辑单元。

3.3 Altera公司的FPGA

Altera公司的FPGA器件采用钢铝布线的先进CMOS技术,具有非常低的功耗和相当高的速度,而且采用连续式互连结构,提供快速的、连续的信号延迟。

FPGA器件有两类配置下载方式:主动配置方式和被动配置方式。主动配置方式由FPGA期间引导配置操作过程,它控制着外部存储器和初始化过程,而被动配置方式则由外部计算机或控制器控制配置过程。

4 电子琴演奏系统设计原理分析

4.1电子琴演奏设计的基本要求

(1)设计一种以FPGA为控制核心的电子琴的设计方案,该方案通过编写有关程序和各种用户参数的设置,实现采用自顶向下的模块化设计方法,基于FPGA使用VHDL语言设计制作一个电子琴控制系统,自动演奏模块、音阶发生器模块、数控分频模块。通过本设计,正确掌握数字系统的模块划分、并能自如应用硬件描述语言描述各模块功能,以实现系统设计。以VHDL语言和MAX+PLUSII为工具,在EDA实验系统主板上,实现了地铁自动售票系统。系统划分为几个功能模块,分模块进行分析和设计,系统给出相应的设计原理图和VHDL源程序,通过仿真实现预定的功能。

(2)该控制电路设计部分主要包括自动演奏模块、音阶发生器模块、数控分频模块、显示功能模块,通过自主研发程序实现各电路模块功能,

在实际运用中可以及时对钱币处理延时时间及数量进行监控与调整从而提高质量和速度,实用性强。

4.2电子琴演奏原理

声音的频谱范围一般在几十到几千赫兹,利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲演奏电路的结构框图如图4.1所示:

图4.1 电子琴演奏电路结构方框图

4.3音名与频率的关系

根据乐曲的12平均率规定计算出简谱中从低音l至高音1之间每个音符的频率。如表4.1所示:

表4.1简谱中的音名与频率的关系

音名频率Hz 音名频率Hz 音名频率Hz 低音1 261.63 中音1 523.25 高音1 1046.50 低音2 293.67 中音2 587.33 高音2 1174.66

低音3

329.63 中音3 659.25 高音3 1318.51 低音4

349.23 中音4 698.46 高音4 1396.92 低音5

391.99 中音5 783.99 高音5 1567.98 低音6

440 中音6 880 高音6 1760 低音7 493.88 中音7 987.76 高音7 1975.52

由乐理知识可知,对电子琴声音的操作即对音乐频率以及音乐持续时间的操作。整体采用一个基准频率,基准频率经各个分频器产生的频率不应与简谱中各个音调的频率差别太大,基频太低则误差太大,基频太高则分频器过于复杂,因此因综合各方面考虑。由于简谱中最高音不超过2k,取所有音的最小公倍数便可。但人耳的精度,故只要保证各音名的相对频率不变即可。由

各音名对应的频率

分频系数fosc = 可得各个音色的分频系数。

采用N 位的分频器的话,则初始化时计数器的值应为:

分频系数计数器初始值-=N ^2

本实验采用12M 时钟频率,预先进过16分频,为减少偶次谐波,展宽脉冲,在扬声器之前要进过一个2分频电路,故可得下表:

表4.2谱中的音名与计数初值的关系

音名

初始值 音名 初始值 音名 初始值 低音1

612 中音1 1342 高音1 1689 低音2

770 中音2 1409 高音2 1728 低音3

909 中音3 1478 高音3 1763

低音4 973中音4 1510高音4 1779低音5 1090中音5 1569高音5 1808低音6 1195中音6 1621高音6 1834低音7 1288中音7 1667高音7 1857注:对于音乐中的休止符,其分频系数设为0,初始值设为2^N-1即可(此

处为2047)。

4.4控制音长的节拍发生器

该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为1拍。在音乐中,时间被分成均等的基本单位,每个单位叫做一个“拍子”或称一拍。拍子的时值是以音符的时值来表示的,一拍的时值可以是四分音符(即以四分音符为一拍),也可以是二分音符(以二分音符为一拍)或八分音符(以八分音符为一拍)。

故设置一个4Hz的时钟,每一次计数停留的时间为0.25s,即最小节拍。并经一个二进制计数器进行计数,将计数器的值作为ROM的地址进行寻址,这样便可以读出储存在ROM中的乐谱了。

表4.1“梁祝“音阶

图4.2 Rom模块

5 电子琴硬件演奏电路的层次化设计方案

根据层次化的设计思路,可把乐曲硬件演奏电路分为3块,自动演奏模块,手动播放控制模块,数控分频模块。

5.1按键控制模块

此模块实际为一个查表模块,对于不同的按键输入,从表中读取相应的分频值及计数器初始化值,由节拍发生器决定其停留时间,改变节拍可改变演奏音符延时长短,将其输出给数控分频器,即可得到相应的声音。

其VHDL程序见附录2

仿真波形:

图5.1 按键波形

图5.2 AUTO键按下波形

5.2自动演奏模块

此模块有4个控制输入信号。Auto键,手动自动模式切换按键。Back,

倒退播放按键。Song,歌曲选择按键。Pause,暂停按键,与控制播放速度的d1,d0连接,通过一与门接入此模块,当d1,d0为11时,pause输入为1,此时此模块无输入脉冲(DVF模块阻止了脉冲),若不加处理,此时将一直输出暂停之前的一个音符,所以利用pause信号,当暂停时,输出休止符。

此模块的程序分为三部分:

第一部分为内部rom的连接,利用MigaWizard Plug-in Manager生成ROM的软核嵌入到此模块中,counter与rom的地址线相连接,rom 的输入端与器件的tone管脚相连接,便可在tone上获取rom的信息。

第二部分为地址控制部分,但接收到脉冲上升沿时,根据外部输入(auto和back),决定rom的首地址(counter的初值)和counter的变化方式(递增或递减或暂停)以及切

换歌曲时的地址切换。

第三部分为decoder译码部分,从rom中取得数据后需要经过译码成为分频器的初始

值后作为下一级的输入信号。

该模块将利用FPGA的片内ROM存放乐曲简谱真值表,有一个二进制计数器为乐曲数据存储器ROM的地址发生器。

其VHDL程序见附录2

仿真波形:

图5.3 存储调用

5.3自动播放控制模块

音符译码电路即音调发生器实际上是一个查表电路,放置21个音乐简谱对应的频率表。手动播放控制是由一个2位预置数的分频模块和一个D触发器的组合,起到控制播放速度的作用,当d=”11”时,无分频信号输出,起到暂停的作用。由于正常播放音乐时频率为4hz,所以此模块的输入时钟为32hz。

其VHDL源程序见附录2。

仿真波形:

图5.4 播放控制

5.4数控分频模块设计

这是一个可预置数的分频器,其预置数决定了其发音的音调。其分频进过三个步骤,第一步根据预置数进行分频,产生PreClk信号,第二步,根据PreCLK信号,进行16分频,产生FULLSPKS信号。第三步,对FULLSPKS信号2分频拓展脉

宽,形成最终的音频信号(262Hz~1976Hz共21个音符)。

其顶层设计的VHDL程序见附录2。

仿真波形:

图5.5 分频波形

5.5数码管译码显示

此模块由VHDL设计和芯片CD4511组合驱动数码管显示音阶、音名。为实现动态显示,就必须给予一个足够高的时钟节拍,轮流选通数码管,让不同的数码管在不同的时间片段内分别亮起,在选通某一个数码管时,要输出相应的码字。

其顶层设计的VHDL程序见附录2。

仿真波形:

图5.6 数码管译码

图5.7 数码管选通

5.6音频驱动模块

本模块主要是提高数控分频出的音调频率的功率,然后驱动后面的喇叭发出音乐。

其顶层设计的VHDL程序见附录2

仿真波形:

图5.8功放仿真

结论

这一周的课程设计,加强了我独立编程和解决问题的能力,让我自己对所学的知识更加的巩固了,运用自己EDA所学到的知识和同学们一起探讨在quarters中VHDL编程功能过程,在此期间与同学讨论设计方法和方案,和同学们相互探讨,相互学习。同时培养了自己的思考问题能力,遇到个别的难点去咨询老师。

经过自己的努力终于把乐曲硬件演奏电路参透清楚,让我感到通过自己努力所到的知识是如此宝贵。通过这次的设计,综合运用本专业所学课程的VHDL语言和仿真软件设计出各种模块电路,巩固与扩充了EDA课程所学的内容,掌握了电子琴的组成模块,各模块的作用,及编程中错误处理工作过程。经过查阅各种资料,对上课所学的知识,有了一个更好的形象的理解。

通过课程设计,我才真正领略到quaters仿真软件功能强大,通过仿真节省了大量硬件软件资源。我想说,设计确实有些辛苦,但苦中有乐。孟老师和包老师循循善诱的教导和不拘一格的思路给予我无尽的启迪,老师认真工作态度带动了同学们的积极性,帮助我能够很顺利完成了这

次课程设计。

致谢

课程设计的过程中,老师多次帮助我分析思路,开阔视角,在我们困惑不解时,及时的帮我们处理问题,使我们能坚持不懈努力到最后。在此,谨向孟祥斌、包妍老师致以真挚的谢意和崇高的敬意。EDA课程设计中,我遇到了一群热心的好同学,我们互相帮助,共同进步,相互探讨。

在学习和进步的过程中,难免会遇到各种突如其来的问题,我会向老师咨询探讨,老师也毫不保留的全数教予给我们,真正做到了老师的“传道,授业,解惑”。真的很感谢孟祥斌、包妍老师为我们的付出与奉献,才能使我的设计能顺利进行。在老师的指导下,我在各方面的能力都有所提高,老师以严谨求实,一丝不苟的教学态度和勤勉的工作态度,深深的感染到我,给了我巨大的启迪,鼓舞,成为我人生路上学习的榜样,使我的知识层次又有所提高。

通过本次课程设计,不仅提高了我独立思考解决问题的能力,而且培养了认真严谨,一丝不苟的学习态度,由于缺乏经验,设计中难免有不足的地方,希望老师多加指教。

参考文献

[1] 谭会生. EDA技术综合应用实例与分析. 西安电子科技大学出版社.2004

[2] 潘松. 王国栋.VHDL实用教程[M].四川:电子科学大学出版社. 2001

相关文档
最新文档