乐曲硬件演奏电路EDA设计_第1页
乐曲硬件演奏电路EDA设计_第2页
乐曲硬件演奏电路EDA设计_第3页
乐曲硬件演奏电路EDA设计_第4页
乐曲硬件演奏电路EDA设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、24/27摘 要随着科学技术的飞速发展,微电子技术、集成技术和计算机技术也有了迅速的发展,电子系统的设计方法也随之发生变革,基于EDA技术的设计方法也成为现代电子系统设计的主流。大规模可编程逻辑器件FPGA/CPLD是当今应用最广泛的两类可编程专用集成电路(ASIC)。由于结构和工艺的改进,可编程ASIC芯片上包含的资源越来越丰富,可实现的功能越来越强,它已成为实现电子系统集成化的重要手段。特别是可编程逻辑器件的功能和容量的不断扩大,如FPGA(Field Programmable Gate Array,现场可编程门阵列)使集成电路的设计进入片上系统(System on a Chip,SOC)

2、或可编程片上系统(System on a Programmable Chip,SOPC)的设计时代。同时采用超高速集成电路硬件描述语言VHDL (Very High Speed Integrated Circuit Hardware Description Language),其具有多层次描述系统硬件功能的能力,既支持模块化设计,也支持层次化设计,使各种数字化电子系统的设计通过描述芯片功能实现系统功能,从而有效地缩短了产品开发周期,减少了设计芯片的数量,缩小了系统体积,降低了系统能耗,提高了系统的灵活性和可靠性。 关键词 FPGA, 音乐节拍发生器模块,音乐译码电路模块,数控分频模块 Abst

3、ractTechnically fly to soon develop along with science, micro-electronics technique, integration technique and calculator technique also had a quick development and the design method of electronics system also immediately took place a change and also become modern main current of design of the elect

4、ronics system according to the EDA technical design method.Large-scale and programmable FPGA/CPLD of the logic spare part is nowadays to apply two types of most extensive programmable appropriation integrated circuits(ASIC).Because of the improvement of structure and craft, include on the programmab

5、le ASIC chip of the resources be more and more abundant, can carry out of the function be more and more strong, it has become to carry out electronics system the integration turn of important means.Function and capacity of especially programmable logic spare part continuously extend and make the des

6、ign of integrated circuit get into a slice of top system(the System on a Chip, SOC) or programmable slice the top system(a Programmable of the System on Chip, SOPC) such as the FPGA(the Gate Array of the Field Programmable, the spot programmable door array) of design ages.Adopt in the meantime extre

7、mely high soon the integrated circuit hardware describe language VHDL(the Circuit Description Language of the Hard-ware of the Speed Integrated of the Very High), it has the system hardware of the multilayers description the ability of the function, since support the mold piece turn a design, also s

8、upport layers turn a design and make various numeral turn the design of electronics system to pass description chip function to carry out system function, thus and availably shortenned a product a development a period, reduced to design chip of amount, contracted a system physical volume, lowering s

9、ystem can consume and raised the vivid and credibility of the system. Keywords FPGA, the music rhythm occurrence machine mold piece, music translates the code electric circuit mold piece and the number controls the Pin mold of cent a piece目 录 TOC o 1-3 h z u HYPERLINK l _Toc234382029 摘 要 PAGEREF _To

10、c234382029 h I HYPERLINK l _Toc234382030 Abstract PAGEREF _Toc234382030 h II HYPERLINK l _Toc234382031 1引 言 PAGEREF _Toc234382031 h 1 HYPERLINK l _Toc234382032 1.1ASIC技术 PAGEREF _Toc234382032 h 1 HYPERLINK l _Toc234382033 1.2可编程专用集成电路ASIC PAGEREF _Toc234382033 h 1 HYPERLINK l _Toc234382034 1.2.1 概述

11、PAGEREF _Toc234382034 h 1 HYPERLINK l _Toc234382035 1.2.2主要特点 PAGEREF _Toc234382035 h 1 HYPERLINK l _Toc234382036 1.2.3发展前景 PAGEREF _Toc234382036 h 2 HYPERLINK l _Toc234382037 1.3 EDA技术 PAGEREF _Toc234382037 h 2 HYPERLINK l _Toc234382038 1.3.1概述 PAGEREF _Toc234382038 h 2 HYPERLINK l _Toc234382039 1.

12、3.2 EDA技术的发展趋势 PAGEREF _Toc234382039 h 2 HYPERLINK l _Toc234382040 2乐曲演奏系统设计原理分析 PAGEREF _Toc234382040 h 3 HYPERLINK l _Toc234382041 2.1乐曲演奏基本要求 PAGEREF _Toc234382041 h 3 HYPERLINK l _Toc234382042 2.2乐曲演奏原理 PAGEREF _Toc234382042 h 3 HYPERLINK l _Toc234382043 3系统硬件设计 PAGEREF _Toc234382043 h 6 HYPERLI

13、NK l _Toc234382044 3.1 FPGA的介绍 PAGEREF _Toc234382044 h 6 HYPERLINK l _Toc234382045 3.1.1 FPGA的基本结构 PAGEREF _Toc234382045 h 6 HYPERLINK l _Toc234382046 3.1.2 Altera公司的FPGA PAGEREF _Toc234382046 h 6 HYPERLINK l _Toc234382047 3.2 FLEX系列的结构特点 PAGEREF _Toc234382047 h 7 HYPERLINK l _Toc234382048 3.2.1 概述

14、PAGEREF _Toc234382048 h 7 HYPERLINK l _Toc234382049 3.2.2 FLEX的特点 PAGEREF _Toc234382049 h 7 HYPERLINK l _Toc234382050 4乐曲硬件演奏电路的层次化设计方案 PAGEREF _Toc234382050 h 8 HYPERLINK l _Toc234382051 4.1 音乐节拍发生器NoteTabs PAGEREF _Toc234382051 h 8 HYPERLINK l _Toc234382052 4.2 音符译码电路ToneTaba模块 PAGEREF _Toc2343820

15、52 h 13 HYPERLINK l _Toc234382053 4.3 数控分频模块Speakera设计 PAGEREF _Toc234382053 h 15 HYPERLINK l _Toc234382054 4.4 乐曲硬件演奏电路的顶层设计和仿真 PAGEREF _Toc234382054 h 17 HYPERLINK l _Toc234382055 总 结 PAGEREF _Toc234382055 h 20 HYPERLINK l _Toc234382056 致 谢 PAGEREF _Toc234382056 h 21 HYPERLINK l _Toc234382057 参考文献

16、 PAGEREF _Toc234382057 h 22 HYPERLINK l _Toc234382058 附 录 PAGEREF _Toc234382058 h 231引 言ASIC技术ASIC(Application Specific Integrated Circuits)专用集成电路,与通用集成电路相比,它是面向专门用途的电路,以此区别于标准逻辑(Standard Logic)、通用寄存器、通用微处理器等电路。ASIC是相对于通用集成电路而言的,两者并无明显界限。ASIC的提出和发展说明集成电路进入了一个新的阶段,通用的、标准的集成电路已不能完全适应电子系统的急剧变化和更新换代。目前,

17、ASIC在总的IC市场中的占有率已大大提高。与通用集成电路相比,ASIC在构成电子系统时具有以下几个方面的优越性:(1) 提高了产品的可靠性。用了ASIC芯片进行系统合成后,外部连线减少,为调试和维修带来了极大地方便,系统可靠性明显提高。(2) 易于获得高性能。ASIC针对专门的用途而特别设计,它是系统设计、电路设计和工艺设计的紧密结合,这是一体化的设计有利于得到前所未有的高性能系统。(3) 可增强产品的保密性和竞争力。电子产品中的ASIC芯片对用户来说相当于一个“黑盒子”。(4) 在大批量应用时,可显著降低产品的综合成本。用ASIC来设计和生产产品大幅度减少了印刷电路板面积及其他元器件数量,

18、降低了装配调试费用。(5)提高了产品的工作速度。(6)缩小了体积,减轻了重量,降低了功耗。1.2可编程专用集成电路ASIC1.2.1 概述可编程ASIC 包括简单可编程ASIC和复杂可编程ASIC 。现场可编程ASIC主要是指现场可编程门阵列FPGA,它是与传统PLD不同的一类可编程ASIC。它类似于半定制门阵列的通用结构,即由逻辑功能排列成的阵列组成,并由可编程的互连资源连接这些逻辑功能块来实现所需的设计。从某种意义上说,FPGA是一种将门阵列的通用结构与PLD的现场可编程性融于一体的新型器件,具有集成度高、通用性好、设计灵活、编程方便、产品上市快等多方面的优点。1.2.2主要特点1.缩短了

19、研发周期2.降低了设计成本3.提高了设计灵活性1.2.3发展前景1.为了迎接系统级芯片时代,向密度更高、速度更快、频带更宽的百万门方向发展2.向系统内可重构的方向发展3.向高速可预测延时器件的方向发展4.向混合可编程技术方向发展5.为了方便用户设计和特殊功能应用,向嵌入通用或标准功能模块方向发展6.为了适应全球环保潮流,向低电压低功耗的绿色元件方向发展1.3 EDA技术1.3.1概述EDA(Electronic Design Automation)即电子设计自动化,EDA技术指的是以计算机硬件和系统软件为基本工作平台,继承和借鉴前人在电路和系统、数据库、图形学、图论和拓扑逻辑、计算数学、优化理

20、论等多学科的最新科学技术成果而研制成的商品化通用支撑软件和应用程序包。EDA旨在帮助电子工程师在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至PCB(印刷电路板)的自动设计。EDA技术基本特征:1.“自顶向下”的设计方法2.硬件描述语言3.逻辑综合优化4.开放性和标准化5.库(Library)的引入1.3.2 EDA技术的发展趋势1. 软件开发工具的发展趋势(1)具有混合信号处理能力的EDA工具(2).有效的仿真工具的发展(3).理想的设计综合工具的开发2.可编程器件的发展趋势3.输入方式发展趋势(1).输入方式简便化趋势(2).输入方式高效化和统一化趋势 2乐曲演奏系统设计原理

21、分析2.1乐曲演奏基本要求利用FPGA,设计一个乐曲硬件演奏电路。演奏时可选择键盘输入乐曲或者已存入的乐曲,并配以一个小扬声器。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12/2。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。任意选择歌曲进行设计,并加前奏5353111。 2.2乐曲演奏原理声音的频谱范围一般在几十到几千赫

22、兹,利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一个音符对应着一个确定的频率,因此,要想发出不同音符的音调,只要能控制输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以往扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间,也就是节拍。设计的关键是要准确地产生乐曲中每个音符的发音频率,并根据乐曲要求按音符需要的节拍输出,这是乐曲能够演奏的两个关键因素,但是以纯硬件完成演奏电路比利用微处理器来实现乐曲

23、演奏要复杂的多,如果不凭借EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。乐曲演奏电路的结构框图如下所示:基准时钟基准时钟模式选择手动输入时钟电路音乐节拍产生电路数控分频器电路查符查表电路图2.1 乐曲演奏电路结构方框图音名与频率的关系音乐的12平均率规定:每2个八度音(如简谱中的

24、中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12/2。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。如表2.1所示:表2.1简谱中的音名与频率的关系音名频率/Hz音名频率/Hz音名频率/Hz低音1261.3中音1532.25高音11046.50低音2293.67中音2587.33高音27046.50低音3329.63中音3659.25高音31318.51低音4349.23中音4698.46高音41396.92低音5391.99中音5783.

25、99高音51567.98低音6440中音6880高音61760低音7493.88中音7987.76高音71975.52 由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本例中选取4MHz的基准频率,若无4MHz的时钟频率,实际上,只要各个音名间的相对频率关系不变,C作1与D作1演奏出的音乐听起来都不会“走调”。各音阶频率计相应的分频系数如表2.2所示。为了减少输出的偶次

26、谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,又一个2分频的分频器。表2.2中的分频系数就是从4MHz频率2分频得到的2MHz频率基础上计算得出的。表2.2 各音阶频率对应的分频值音名分频系数初始值音名分频系数初始值音名分频系数初始值低音17644547中音138224369高音119116280低音268101381中音234054786高音212706921低音360672124中音330345157高音315176674低音457272464中音428645327高音414326759低音551023089中音525515640高音512566935低音645453

27、646中音622735918高音611377054低音740504141中音720256166高音710137178由于最大分频系数为7644,故采用13 位二进制计数器已能满足分频要求。在表2-2中,除了给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为0,即初始值为8191即可,此时扬声器将不会发声。对于不同的分频系数,加载不同的初始值即可。用加载初始值而不是将分频输出译码反馈,可以有效地减少成本设计占用可编程逻辑器件的资源,也是同步计数器地一个常用设计技巧。(2)控制音长的节拍发生器该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为1拍。

28、将1拍的时长定为0.25s,则只需要再提供一个4Hz的时钟频率即可产生1拍的时长,演奏的时间控制通过ROM查表的方式来完成。对于占用时间较长的节拍(一定是拍的整数倍),如全音符为4拍(重复4),2/4音符为2拍(重复2),1/4音符为1拍(重复1)。要求演奏时能循环进行,因此需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。该计数器控制真值表按顺序输出简谱。3系统硬件设计用EDA设计的音乐演奏电路主要用到了现场可编程门阵列(FPGA)。3.1 FPGA的介绍现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能。F

29、PGA的功能由逻辑结构的配置数据决定,在工作时,这些配置数存放在片内的SRAM或者熔丝图上。使用SRAM的FPGA,在工作前需要从芯片外部加载配置数据,这些配置可以存放在片外的EPROM或其他存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能。FPGA可以替代其他PLD器件或者各种中小规模数字逻辑芯片在数字系统中广泛应用。FPGA也是实现各种不同逻辑功能ASIC的有效方法。FPGA是进行原型设计最理想的载体,原型机的最初框架和是实现通过FPGA验证,可以降低成本、缩短开发周期。利用FPGA的可重配置功能,可以在使用过程中,在不改变设计的设备的硬件电路情况下,改变设备功能。3.1.1 FP

30、GA的基本结构FPGA在结构上包含3类结构可编程资源:可编程逻辑功能模块(Configurable Logic Block, CLB),可编程I/O块(I/O Block, IOB)和可编程互连(Interconnect Resource, IR)。可编程逻辑功能模块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装的接口,常阵列于芯片四周,可编程内部互联包括各种长度的线段和编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。不同厂家生产的FPGA在可编程逻辑功能块的规模、内部互连线的结构和采用的可编程元件上存在较大

31、的差异。较常用的是Xilinx和Altera公司的FPGA器件。常见的FPGA结构主要有:查找表结构、多路开关结构、多级与非门结构。3.1.2 Altera公司的FPGAAltera公司的FPGA器件采用钢铝布线的先进CMOS技术,具有非常低的功耗和相当高的速度,而且采用连续式互连结构,提供快速的、连续的信号延迟。Altera器件密度从3004000000门,能很容易的集成现有的各种逻辑器件,高集成度的FPGA提供更高的系统性能,更高的可靠性,更高的性能价格比。Altera公司的FPGA产品有:FLEX6000/8000/10K、APEX20K、ACEX1K、Mercury、Excalibur

32、和Stratix等系列。不同型号的Altera公司的FPGA具有不同的内部结构,灵活逻辑单元矩阵、ACEX1K系列器件采用查找表结构来实现逻辑功能;先进可编程逻辑阵列(APEX)系列器件的结构特征是查找表(LUT)和嵌入式寄存器;Mercury系列器件基于查找表结构,其特征是具有时钟数据恢复和一个性能优化的核;Excalibur的结果特征是基于ARM和基于MIPS的硬核微处理器。每种器件系列针对具体的应用都具有各自的特点。3.2 FLEX系列的结构特点3.2.1 概述FLEX系列是Altera公司推出的主流产品,具有高密度、在线配置、高速度与连续式布线结构等特点。它的集成度达到了10万门级,而

33、且,它还是业界首次集成了嵌入式阵列模块EAB的芯片。5392个寄存器;采用0.5umCMOS SRAM工艺制造;具有在系统可配置特性;在所有I/O端口中有I/O寄存器;3.3V或5.0V工作模式。所谓EAB,实际上是一种大规模的SRAM资源,它可以方便地被设置为RAM、ROM、FIFO以及双口RAM等存储器。EAB的出现极大地拓展了PLD芯片的应用领域。3.2.2 FLEX的特点(1)高密度,典型门数达10000250000,逻辑单元数为57612160.(2)功能更强大的I/O口引脚,每一个引脚都是独立的三态门结构,具有可编程的速率控制。(3)嵌入式阵列块(EAB),每个EAB提供2K比特位

34、,可用来作存储器使用或用来实现逻辑功能。(4)逻辑单元采用查找表(LUT)结构。(5)采用连续式的快速通道互连,可精确预测信号在器件内部的延时。(6)实现快速加法器和计数器的专用进位链。(7)实现高速、多输入逻辑函数的专用级联链。FLEX10K系列器件提供六个专用输入引脚,驱动触发器的控制输入,以保证高速、低摆率控制信号的有效分配。这些信号使用专用布线通道。4个全局信号可由4个专用的输入引脚驱动,也可由内部逻辑驱动,后者可提供分频信号或内部异步清零信号。4乐曲硬件演奏电路的层次化设计方案根据层次化的设计思路,可把乐曲硬件演奏电路分为3个模块,音乐节拍发生器NoteTabs模块,音符译码电路To

35、neTaba模块,数控分频模块(Speakera)。4.1 音乐节拍发生器NoteTabs 该模块将利用FPGA的片内ROM存放乐曲简谱真值表,有一个二进制计数器为乐曲数据存储器ROM的地址发生器。该计数器的计数频率为4HZ,即每一个数值的停留时间为0.25S,随着NoteTabs 中计数器按4HZ的时钟频率做加法计数时,即随地址增加时,乐曲数据存储器ROM中的音符数据,将从ROM中的输出口输向音符译码电路ToneTabas,所以所存的乐曲就自然的演奏起来。其VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGI

36、C_UNSIGNED.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; ToneIndex : OUT END;ARCHITECTURE one OF NoteTabs IS SIGNAL Counter : INTEGER RANGE 0 TO 14BEGIN CNT8 : PROCESS(clk) BEGIN IF Counter = 146 THEN Counter = 0; ELSIF (clkEVENT AND clk = 1) THEN Counter ToneIndex ToneIndex ToneIndex ToneIndex

37、ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex

38、ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex

39、ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex

40、ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex

41、ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex NULL; END CASE; END PROCESS;END;图4.1音乐节拍发生器元件符号图仿真图如下:图4.2音乐节拍发生器仿真输出波

42、形4.2 音符译码电路ToneTaba模块音符译码电路即音调发生器实际上是一个查表电路,放置21个音乐简谱对应的频率表,根据该表为数控分频模块提供所发音符频率的初始值,而此数控分频模块入口的停留时间即为此音符的节拍数,以VHDL程序中仅设置了“梁祝”乐曲全部音符所对应的音符频率的初始值,共16个,每个音符停留时间由音乐节拍发生器的时钟频率决定,在此为4Hz信号,这16个值的输出由对应于音符译码电路的4位输入值Index3.0确定,该值中音符的停留时间由音乐节拍发生器中的音符数据决定,该数据重复的次数为该音符的节拍数,如为2则为四二拍,如为4则为四四拍即全音符。 其VHDL源程序如下:LIBRA

43、RY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR(3 DOWNTO 0); CODE : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR(12 DOWNTO 0);END;ARCHITECTURE one OF ToneTaba ISBEGIN Search : PROCESS(Ind

44、ex) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数WHEN 0000=Tone=1111111111111; CODE = 0000; HIGH Tone=1000100010001; CODE = 0001; HIGH Tone=1001010110010; CODE = 0010; HIGH Tone=1010000011111; CODE = 0011; HIGH Tone=1011000001000; CODE = 0101; HIGH Tone=1011100011110; CODE = 0110; HIGH Tone=1100000010110

45、; CODE = 0111; HIGH Tone=1100010001000; CODE = 0001; HIGH Tone=1101100001001; CODE = 0010; HIGH Tone=1101000010010; CODE = 0011; HIGH Tone=1101001100111; CODE = 0101; HIGH Tone=1101110001110; CODE = 0110; HIGH Tone=1110001000010;CODE=0111;HIGH NULL; END CASE;END PROCESS;END;在源程序中Index3.0是音乐节拍发生器输出的音

46、符数据;TONE12.0是为数控分频模块提供的音符频率的初始值,为方便测试,特设置了一个音名代码显示输出CODE3.0和音高指示信号HIGH,可以通过一个数码管或LED来显示乐曲演奏时对应的音符和高音名。CODE输出对应该音阶简谱的显示数码1,HIGH输出为高电平,指示音阶为高,HIGH输出为低电平时则指示音阶为中音。图4.3 音符译码器元件符号图仿真图如下:图4.4 音符译码器仿真输出波形4.3 数控分频模块Speakera设计数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。数控分频模块是13位的加法计数器构成。当计数器计满是,产生一个进位信号 FullSpkS,该信号

47、就是用作发音的频率信号。在计数器的预置端给定不同的初始值,其输出将产生不同的频率信号,频率信号初值Tone就是前级音符译码电路的输出。它计满所需要的分频比可由下式决定:Tone12.0+分频比=8192+进位信号FullSpkS有分析所知低音时,Tone值小,分频比大,进位信号SPKS的周期长,扬声器发出的声音低,Tone随音乐的乐谱而变化,自动控制分频比,从而实现数控分频,发生信号的频率与Tone成正比,这就是利用数控分频器演奏音乐的原理。通过分频后其进位信号 FullSpkS是一周期脉冲信号,为有利于驱动扬声器,在音调输出时再进行2分频,将脉冲展宽,使之占空比为50%,扬声器这样就有足够的

48、发声功率。其VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR(12 DOWNTO 0); SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK : STD_LOGIC; SIGNAL FullSpkS : STD_LOGIC;BEGIN Divi

49、deCLK : PROCESS(clk) VARIABLE Count4 :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PreCLK 11 THEN PreCLK = 1; Count4 := “0000 ELSIF clkEVENT AND clk = 1 THEN Count4 := Count4 + 1; END IF; END PROCESS; GenSpkS : PROCESS(PreCLK, Tone) VARIABLE Count13 :STD_LOGIC_VECTOR(12 DOWNTO 0);BEGIN IF PreCLKEVENT AND Pre

50、CLK = 1 THEN IF Count13 = 16#1FFF# THEN Count13 := Tone; FullSpkS = 1; ELSE Count13 := Count13 + 1; FullSpkS = 0; END IF; END IF; END PROCESS; DelaySpkS : PROCESS(FullSpkS) VARIABLE Count2 : STD_LOGIC;BEGIN IF FullSpkSEVENT AND FullSpkS = 1 THEN Count2 := NOT Count2; IF Count2 = 1 THEN SpkS = 1;Else SpkSCLK8HZ, ToneIndex=ToneIndex);u2:ToneTabaPORTMAP(Index=ToneIndex,Tone=Tone,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论