《基于fpga电子琴设计》由会员分享,可在线阅读,更多相关《基于fpga电子琴设计(20页珍藏版)》请在金锄头文库上搜索。
1、南京师范大学物理科学与技术学院科 研 基 金 论 文姓 名:xxxxxx班 级:08级通信工程 设计题目:基于FPGA的PS/2键盘控制电子琴 指导教师: 宁晨 二一一年六月摘要文中介绍了电子琴系统的整体设计,并基于超高速硬件描述语言VHDL在Altera公司的Cyclone系列的EP2C8Q208CN芯片上编程实现.电子琴系统的设计包含四个模块,分别是控制输入电路、FPGA、显示电路和扬声器电路。其中FPGA模块的设计是整个电子琴系统设计的核心内容。四个模块的有机组合完成了电子琴自动演奏的功能。文中还详细介绍了FPGA功能模块的原理及其工作时序仿真图。本产品的特点是成本较低,性能稳定,精度高
2、,有一定的开发价值。Design of Electronics_orgon system based on FPGAAbstract: It will introduce the integrate designelectronics_orgon system based on FPGA. The design will be achieved in the 2sc2005pq208 chipof Xilinx corporation with the VHDL(Very High-speed Description-Language) The design of Electronics_or
3、gon System consist of 4 parts, they are control input circuit、FPGA、display circuit and speaker circuit. The program design of FPGA is the core of the system design. Four parts combined to achieve the automatic play electronics_orgon system. the article illuminates the detail of the basic law of FPGA
4、 module and its working timing characteristics. Since the most specialty of the product is its low cost、high precision, its worth developing.Keyword: FPGA VHDL Electronics_orgon system Automatic play目 录摘要2目录3第一章系统设计 4第一节设计要求 41.1基本部分1.2发挥部分第二节设计思路 4第三节整体设计方案 43.1方案一3.2方案二3.3方案三第四节 比较方案5第二章FPGA简介6第一节
5、FPGA背景 6第二节FPGA的基本原 62.1MHZ_generator模块的原理2.2NoteTabs模块的原理2.3ToneTaba模块的原理2.4Speakera模块的原理第三节 FPGA的基本特点 7第四节 FPGA基本结构 8第三章 单元电路设计 9第一节 顶层模块(top)的设计 9 第二节 自动演奏模块(automusic)的设计 9第三节 音调发生模块(tone)的设计9第四节 数控分频模块(speaker)的设计 9第四章 PS2键盘控制电子琴程序 10第一节 VHDL语言简介 11第二节 软件设计 11第五章 参考文献 12第六章 附录 13第一章 系统设计第一节 设计要
6、求1.1 基本部分 设计一二十一音电子琴,由键盘输入来控制其对应的音响。1.2 发挥部分 设计一乐曲自动演奏器,由用户自己编制乐曲存入电子琴,电子琴可以完成自动演奏的功能。第二节 设计思路 通过可编程逻辑器件(PLD)和VHDL硬件描述引言来实现电子琴的基本部分和发挥部分的设计。对于基本部分,设计的主体是数控分频器,对输入的频率进行分频,得到各个音阶对应的频率最为输出。对于发挥部分,则在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制(index数据存留时间)和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为
7、乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。 通过可编程逻辑器件(PLD)和VHDL硬件描述引言来实现电子琴的基本部分和发挥部分的设计。对于基本部分,设计的主体是数控分频器,对输入的频率进行分频,得到各个音阶对应的频率最为输出。对于发挥部分,则在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制(index数据存留时间)和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。第三节 整体设计方案3.1 方案一:采用数字逻辑电路制作,用IC
8、 拼凑焊接实现,这种电路很直观,简单方便。但应用数字逻辑电路制作的话,使用的器件较多,连接复杂,体积大,功耗大。电路中焊点和线路较多会,使成品的稳定度和精度大大降低。3.2 方案二:采用现场可编程逻辑器件(FPGA)制作,利用EDA软件中的VHDL硬件描述语言编程进行控制,然后烧制实现.采用FPGA来设计的原理图如图1.1所示.它由控制输入电路、FPGA、显示电路和扬声器电路组成。琴键(21个)FPGA芯片音乐控制键MUSIC预存储歌曲扬声器发光二极管音阶显示图1.1 采用FPGA设计的电子琴原理方框图 控制输入电路主要是为用户设计的,起到一个输入控制的作用.FPGA是现场可编程逻辑器件,也是
9、本设计方案的核心内容,它是实现电子琴运作的主要控制模块.由设计者把编好的VHDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同的频率驱动扬声器,发出不同的乐谱.同时也把发出的乐谱符号通过显示器输出.3.3 方案三: 单片机现在已经达到很成熟的阶段了,它的应用也十分广泛. 采用单片机来实现电子琴,它的原理方框图与用FPGA来实现的原理方框图类似,如图1.2所示.控制输入电路显示电路MCU(单片机)扬声器电路图1.2 采用单片机实现电子琴的原理方框图 图1.1和图1.2的基本原理都相同,唯一不同的是一个是用FPGA来制作一个是用单片机来实现.采用单片机来
10、实现电子琴,主要的核心是单片机的设计.第四节 比较方案 对于电子琴的设计,三个方案均可以实现,但是第一个方案中采用的是数字逻辑电路来制作,该电路硬件所需的器材多,体积庞大,比较复杂,而且精度和稳定度都不是很高.第二个方案采用的是现场可编程逻辑器件来实现, 它的优点是所有电路集成在一块芯片上,此方案所需的外围电路简单,这样它的体积就减少了,同时还提高了系统的稳定度。还可以用Modelsim软件进行仿真和调试等。设计人员可以充分利用VHDL硬件描述语言方便的编程,提高开发效率,缩短研发周期,降低研发成本;而且易于进行功能的扩展,实现方法灵活,调试方便,修改容易.方案三也有它的优点,但同时也存在缺点
11、.它对设计者的要求比较高,设计者对软硬件必须十分熟悉.和方案二来比它的实验仿真没有方案二简单直观,调试也有一定的难度.在外界环境相同的条件下,方案三设计出来的产品精度和稳定度要比方案二稍微差一些.因此,电子琴的设计我们选择方案二来实现。第二章 FPGA简介第一节 FPGA背景目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些
12、可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的
13、,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。 第二节 FPGA的基本原理2.1 MHZ_generator模块的原理 分频器钟频率,输出是每秒12MHZ的频率和8HZ的频率。其内部实际是一个计数器,根据所需要的要求的输入是一个标准时进行不同的分频设计。本程序中已知标准频率为32MHZ,要得到12MHZ和8HZ的频率,通过计算我们可以确定它的分频系数. MHZ_generator模块的工作时序仿真图(略),它的程序见附录2.2 NoteTabs模块的原理 NoteTabs模块其实就是一个乐谱预置器,可设置电子琴演奏的乐谱.原理很简单即来一个脉冲输出一个已设置好的乐谱.假定预先设计的乐谱为3 3 3 5 5 5 6 2 1 1 3 3 3 3 3 3它的输出工作时序仿真图如图2.2所示,程序见附录.图2.2 NoteTabs模块的工作原理仿真图2.3 ToneTaba模块的原理ToneTaba模块是一个音阶发生器,实质是译码电路,控制音调的预置数.乐谱信号是该模块的敏感信号, 输入的每一个乐谱都将被译成与之相对映的频率从Tone端口输出去控制Speakera模块,让Speakera模块发出不同的音调.ToneTaba模块在将乐谱译成