硬件电子琴电路模块方案设计

上传人:xzh****18 文档编号:51708349 上传时间:2018-08-16 格式:PPT 页数:37 大小:364.50KB
返回 下载 相关 举报
硬件电子琴电路模块方案设计_第1页
第1页 / 共37页
硬件电子琴电路模块方案设计_第2页
第2页 / 共37页
硬件电子琴电路模块方案设计_第3页
第3页 / 共37页
硬件电子琴电路模块方案设计_第4页
第4页 / 共37页
硬件电子琴电路模块方案设计_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《硬件电子琴电路模块方案设计》由会员分享,可在线阅读,更多相关《硬件电子琴电路模块方案设计(37页珍藏版)》请在金锄头文库上搜索。

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

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

3、时956,在每计数956次时 就将I/O反接,就可得到中音DO(532Hz)。 其计数值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音应该装载几个存储

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

5、某一位为高电平时,则对应某一 音阶的数值将从端口Tone输出,作为获得 该音阶的分频预置值;同时由Code输出对 应该音阶简谱的显示数码,如5,并由High 输出指示音阶高8度显示。增加乐曲自动演奏电路 在原设计的基础上,增加一个Notetabs模块用于 产生节拍控制(Index数据存留时间)和音阶选择 信号,即在Notetabs模块放置一个乐曲曲谱真值 表,乐曲曲谱真值表放置于名为Music的ROM模 块中。 由一个计数器来生成读取ROM所需的地址数据, 对ROM以4HZ的频率进行读取,实现控制此真值 表的输出,而由此计数器的计数时钟信号作为乐 曲节拍控制信号,从而可以设计出一个纯硬件的 乐

6、曲自动演奏电路。 需要说明: 由于实验板上,只有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,弹出对话框,设置文件 夹目录,Project名称。注

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

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

9、 首先打开电脑上的记事本,按照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 , 9 , 9, 9, 10, 7, 7, 6, 6,5 , 5 , 5 , 6, 8, 8, 9, 9, 3, 3,8 , 8 , 6 , 5,

10、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 , 5, 3, 5, 6,8, 5,5, 5 ,5 , 5 ,5, 5,5,0, 0, 0; 选择IP(CORE Generate NET “Code1“

11、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度,Spkout接J4的D7端口)。 当程序下载到Spantan3E板上去后,通过外接扬声器可以 听到乐曲。 思考题 1、电路上应该满足哪些条件,才能用数字 器件直接输出的方波驱动扬声器发声? 2、如果演奏其他乐曲,程序应做哪些方面 的改动?实验报告用仿真波形和电路原理图,详细叙述硬件电 子琴的工作原理及其3个Verilog HDL文件中 相关语句的功能,叙述硬件实验情况,说明 硬件乐曲演奏电路的设计和实验方案。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 公司方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号