EDA设计报告.doc
上传人:yy****24 上传时间:2024-09-09 格式:DOC 页数:17 大小:3.9MB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

EDA设计报告.doc

EDA设计报告.doc

预览

免费试读已结束,剩余 7 页请下载文档后查看

18 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

乐曲演奏电路设计一、题目分析1、原理分析产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器来实现乐曲演奏要复杂的多,如果不凭借EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。乐曲演奏电路的结构框图如下:总体方框图时钟电路查符查表电路音乐节拍产生电路数控分频器基准时钟模式选择图1.1乐曲演奏电路结构框图乐曲硬件演奏电路的设计主要就是由四个部分组成的,首先为了实现音乐的演奏必须得得到音阶的频率和节拍,这主要就是由音乐节拍发生器和数控分频模块完成的,完了就是译码查表电路是由音符译码电路模块产生的,乐曲硬件演奏电路可分为四个模块,音乐节拍发生器模块,音符译码电路模块,数控分频模块。该系统由四个模块组成:分别是NoteTabs模块,ToneTaba模块,Speakera模块和SEG7模块(七段译码器)。3、性能指标及功能(1)能够播放“梁祝”乐曲。(2)能够通过LED显示音阶。选择方案1、可利用的方案方案一:VHDL语言设计方法由上面的分析可知,本系统由NoteTabs模块、TonTaba模块、Speakera模块和SEG7模块组成。所以采用自顶向下的设计方法,可以利用VHDL语言设计设计方法。将各个模块统一用VHDL语言设计。方案二:VHDL语言和原理图设计方法相结合的设计方法由上面的分析可知,本系统由NoteTabs模块、TonTaba模块、Speakera模块、SEG7模块和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。2、最优方案这里选择第二个方案。理由是:方案一思路明确,但是VHDL语言比较复杂,而且需要设置的输入键较多,不利于现场操作,实验室提供的条件下较难实现。方案二VHDL语言设计和原理图设计的衔接是一个难点,但是方案二简单明了,容易理解,实验调试时容易排除错误。最主要的是设置的输入输出键较少,容易在实验的条件下实现。三、各个模块分析说明根据顶层原理图,共分为NoteTabs模块、TonTaba模块、Speakera模块和SEG7模块。NoteTabs模块的功能首先是为Speakera模块提供决定所发音符的分频预置数,此数在Speakera模块输入口停留的时间即为此音符的节拍值。每一个音符的停留时间由音乐节拍和音调发生器NoteTabs模块的clk的输入频率决定。TonTaba模块用于存放乐曲的长度。Speakera模块用于获得音符的频率,它是一个数控分频器,输入一具有较高频率的信号,可以获得脉宽极窄的脉冲信号。SEG7模块是一个七段译码器,作用是在硬件上显示音频的高低,用0到7分别对应空节拍、do、ri、mi、fa、suo、la、xi,高音时,LED亮,数码管显示对应数字。1、音乐节拍和音调发生器模块(NoteTabs)图1NoteTabs模块1.1音乐节拍和音调发生器模块VHDL的源程序(见附录)1.2波形仿真将所编写的音乐节拍和音调模块NoteTabs的程序设为工程,选用Altera公司的Cyclone系列中的EPIC3T144C8为目标芯片进行仿真。仿真结果如图2所示。从图中可以看到,当CLK第一个时钟脉冲到达时,输出相应地址上的音符3,地址值递增1,接下来的三个时钟脉冲到来时,输出也是音符3,地址连续递增3次,第4个脉冲来到时,输出为5,这些都符合模块音符数据文件中的地址/数据表。图2音乐节拍和音调发生器仿真波形2、音乐谱对应分频预置数查表电路模块(ToneTaba)2.1音乐谱分频预置数模块图3ToneTaba模块2.2音乐谱对应分频预置数查表电路VHDL程序设计(见附录)音乐谱分频预置数模块是乐曲简码对应分频预置数查表电路。它提供了每个音符所对应的分频预置数,即给数控分频模块提供计数初值,这里以“梁祝”乐曲为例,列出了在这个乐曲中所用到的13个音符的分频预置数。(见附录)2.3波形仿真将所编写的分频预置数查表模块ToneTaba的程序设为工程,选用Altera公司的Cyclone系列中的EPIC3T144C8为目标芯片进行仿真。仿真结果如图4所示。从图中可以看到,当Index是“0000”,Tone输出为2047,即休止符的分频预置数,当Index是“0010”时,Tone输