硬件电子琴电路模块方案设计ppt课件_第1页
硬件电子琴电路模块方案设计ppt课件_第2页
硬件电子琴电路模块方案设计ppt课件_第3页
硬件电子琴电路模块方案设计ppt课件_第4页
硬件电子琴电路模块方案设计ppt课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、实验四实验四 硬件电子琴电路模块设计硬件电子琴电路模块设计基础知识一、节拍 1、在音乐中,时间被分成均等的基本单位,每个单位叫做一个“拍子或 称一拍。 2、拍子的时值是以音符的时值来表示的,一拍的时值可以是四分音符即以四分音符为一拍),也可以是二分音符以二分音符为一拍或八分音符以八分音符为一拍)。例2/4,3/4等 3、拍子的时值是一个相对的时间概念 比如当乐 曲的规定速度为每分钟 60 拍时,每拍占用的时间是一秒,半拍是二分之一 秒;当规定速度为每分钟 120 拍时,每拍的时间是半秒,半拍就是四分之一 秒。 在本次实验中,最小的节拍是1/4拍,规定速度是每拍1秒。可以得到,在我们把音符按照以

2、1/4拍为单位存放到ROM里,而后以4HZ频率读取,则可以实现乐曲的节拍。基础知识二、音符与频率乐曲中不同的音符实质上表示的是不同频率的声音。 只要产生不同频率的脉冲,再通过喇叭等播放出来即可。又由于方波容易用定时器产生,故使用方波脉冲。基础知识 要产生音频脉冲: 1、算出某一音频的脉冲的周期1/频率) 2、然后将此周期除以2,即为半周期的时间。 3、利用定时器,计时这个半周期的时间,每当计时到后,就将输出脉冲的I/O反相。 4、重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。 例如,频率为523Hz, 其周期为1/523 S=1912uS, 因此只要令计数器计时95

3、6,在每计数956次时就将I/O反接,就可得到中音DO532Hz)。 其计数值N可以根据以下公式得到: 2N=Tr/Ti=Fi/Fr (Fi为内部时钟频率,Fr为对应音符频率) (Ti为内部时钟周期,Tr为对应音符周期)音符与频率对应表 可以得到:如果以1MHZ为内部时钟频率,要发出低7SI音494HZ),我们需要计数2024个1MHZ时钟周期,其中,当计数到2024/2=1012个时钟时,将脉冲翻转一次。 结合前述的节拍,如果要发出低7SI音1拍,则只要持续494HZ方波1秒钟即可,如果按1/4拍单位存放到ROM里,ROM的读出时钟是4HZ,那低7SI音应该装载几个存储单元?本实验用FPGA

4、实现乐曲的播放原理 分四步 1、将待播放的音乐音符存入ROM 2、以4HZ频率读取ROM 3、根据1MHZ的内部时钟要求,将读出的音符换算成应计数的数值 4、以1MHZ为内部时钟,实现符合要求的方波信号。硬件电子琴电路设计方案硬件电子琴电路设计方案模块模块Speaker 模块模块Speakera中的主要电路是一个数控分中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器频器,它由一个初值可预置的加法计数器构成,当模块构成,当模块Speakera由端口由端口Tone获得一获得一个个2进制数后,将以此值为计数器的预置数进制数后,将以此值为计数器的预置数,对端口,对端口Clk12MHZ输入的

5、频率进行分频,输入的频率进行分频,之后由之后由Spkout向扬声器输出发声。向扬声器输出发声。模块模块TONE 模块模块Tone是音阶发生器,当是音阶发生器,当8位发声控制输位发声控制输入入Index中某一位为高电平时,则对应某一中某一位为高电平时,则对应某一音阶的数值将从端口音阶的数值将从端口Tone输出,作为获得输出,作为获得该音阶的分频预置值;同时由该音阶的分频预置值;同时由Code输出对输出对应该音阶简谱的显示数码,如应该音阶简谱的显示数码,如5,并由,并由High输出指示音阶高输出指示音阶高8度显示。度显示。增加乐曲自动演奏电路增加乐曲自动演奏电路 在原设计的基础上,增加一个在原设计

6、的基础上,增加一个Notetabs模块用于模块用于产生节拍控制产生节拍控制Index数据存留时间和音阶选数据存留时间和音阶选择信号,即在择信号,即在Notetabs模块放置一个乐曲曲谱真模块放置一个乐曲曲谱真值表,乐曲曲谱真值表放置于名为值表,乐曲曲谱真值表放置于名为Music的的ROM模块中。模块中。 由一个计数器来生成读取由一个计数器来生成读取ROM所需的地址数据,所需的地址数据,对对ROM以以4HZ的频率进行读取,实现控制此真值的频率进行读取,实现控制此真值表的输出,而由此计数器的计数时钟信号作为乐表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的曲节拍

7、控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。乐曲自动演奏电路。 需要说明: 由于实验板上,只有50MHZ有源晶振,故将用50MHZ进行分频实现12.5MHZ的时钟,在后续模块Speakera.v中再分频得到近似1MHZ时钟,要求自行设计50MHZ到12.5MHZ的分频模块:div_50_12M.v 系统需要4HZ频率读ROM,于是用50MHZ,分频得到4HZ频率。要求自行设计50MHZ到4HZ的分频模块:div_50_4HZ.v 由于这两个分频模块仿真时间较长,故这部分不要求进行仿真。 1、构建一个工程名为songer的工程由File-New Project Wizard,弹出对话框

8、,设置文件夹目录,Project名称。注意,1 )不能将文件夹放置在软件安装目录下,应放在E盘或DATA盘上2要求以自己的学号作为文件夹名正确选择FPGA目标器件和EDA工具,这次设计的仿真工具采用Modelsim。 分别输入ToneTaba.v和Speakera.v的Verilog HDL文本,进行综合和功能仿真,理解、验证模块功能。仿真激励文件生成 在New Source Wizard界面选择Verilog Test Fixture,然后输入测试文件名 选择要测试的模块 测试文件相关设置完成后,按Finish,ISE即给出测试模块的框架 根据框架,考虑测试的完备性,完善测试模块 分别编写N

9、otetabs .v 、ToneTaba.v和div_50_12M.v的Verilog HDL测试文件,用Modelsim进行功能仿真、时序仿真。观察波形,理解模块实现的功能。 下面讨论如何调用ROM的IPcore实现对音乐的存储。 IP核生成器的启动方法有两种,一种是在核生成器的启动方法有两种,一种是在【Projcet Navigator】中新建】中新建Coregen IP类型的资源类型的资源(请参考第请参考第2章中工程的建立与章中工程的建立与管理管理);另一种是直接在;另一种是直接在Windows界面下运界面下运行【开场】行【开场】【程序】【程序】【Xilinx ISE Design Su

10、it 10.1】【ISE】【Accessories】【CORE Generator】命】命令。令。 本次设计采用第一种方法。本次设计采用第一种方法。 首先打开电脑上的记事本,按照COE文件的格式要求输入音乐或者自己编辑的音乐数据,并存盘。COE文件内容MEMORY_INITIALIZATION_RADIX = 10;MEMORY_INITIALIZATION_VECTOR= 3 , 3 , 3 , 3, 5, 5, 5,6, 8, 8, 8 , 9 , 6 , 8, 5, 5, 12,12,12, 15, 13 , 12 , 10 , 12, 9, 9, 9, 9, 9, 9, 9 , 0 ,

11、 9 , 9, 9, 10, 7, 7, 6, 6, 5 , 5 , 5 , 6, 8, 8, 9, 9, 3, 3, 8 , 8 , 6 , 5, 6, 8, 5, 5, 5, 5, 5 , 5 , 5 , 5, 10, 10, 10, 12, 7, 7, 9 , 9 , 6 , 8, 5, 5, 5, 5, 5, 5, 3 , 5 , 3 , 3, 5, 6, 7, 9, 6, 6, 6 , 6 , 6 , 6, 5, 6, 8, 8, 8, 9,12 ,12 ,12 ,10, 9, 9,10, 9,8, 8, 6 , 5 , 3 , 3, 3, 3, 8,8, 8,8,6 , 8 ,6

12、, 5, 3, 5, 6,8, 5,5,5 ,5 , 5 ,5, 5,5,0, 0, 0; 选择IP(CORE Generate & Architecture Wizard),输入IPcore 名:Music 弹出的界面,选择Memory Elementsingle Port Block Memory 选择Read Only 存储器位宽:Width 为4,深度:Depth为256 按Next继续设定 钩选Load Init File 点击Load File按键,装载初始文件Music.coe 点击Generate按键生成ROM的IP CORE 通过在NoteTabs.v文件中例化ROM

13、文件,实现按照4HZ频率循环读取ROM的音乐节拍、频率信号。编写顶层文件songer.v ,将NoteTabs.vToneTaba.v、 Speakera.v、 div_50_12M.v和 div_50_4HZ.v组合为一个系统,完成综合。由于Speakera.v、 div_50_4HZ.v模块的仿真时间过长,所以顶层模块不需要仿真。引脚锁定 NET clk_50M LOC = C9 ; NET Code1 LOC = F12 ; NET Code1 LOC = E12 ; NET Code1 LOC = E11 ; NET Code1 LOC = F11 ; NET High1 LOC = E9 ; NET reset LOC = D18|pulldown ; NET Spkout LOC = D7 ; 用发光管LD3LD0显示Code3Code0表示琴音简谱码,发光管LD5显示高8

温馨提示

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

评论

0/150

提交评论