资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,硬件电子琴电路模块方案设计,*,硬件电子琴电路模块方案设计,2024/11/19,硬件电子琴电路模块方案设计,基础知识,一、节拍,1、在音乐中,时间被分成均等的基本单位,每个单位叫做一个“拍子”或 称一拍。,2、拍子的时值是以音符的时值来表示的,一拍的时值可以是四分音符(即以四分音符为一拍),也可以是二分音符(以二分音符为一拍)或八分音符(以八分音符为一拍)。例2/4,3/4等,硬件电子琴电路模块方案设计,3、拍子的时值是一个相对的时间概念,比如当乐 曲的规定速度为每分钟 60 拍时,每拍占用的时间是一秒,半拍是二分之一 秒;当规定速度为每分钟 120 拍时,每拍的时间是半秒,半拍就是四分之一 秒。,在本次实验中,最小的节拍是1/4拍,规定速度是每拍1秒。可以得到,在我们把音符按照以1/4拍为单位存放到ROM里,而后以4HZ频率读取,则可以实现乐曲的节拍。,硬件电子琴电路模块方案设计,基础知识,二、音符与频率,乐曲中不同的音符实质上表示的是不同频率的声音。,只要产生不同频率的脉冲,再通过喇叭等播放出来即可。又由于方波容易用定时器产生,故使用方波脉冲。,硬件电子琴电路模块方案设计,基础知识,要产生音频脉冲:,1、算出某一音频的脉冲的周期(1/频率),2、然后将此周期除以2,即为半周期的时间。,3、利用定时器,计时这个半周期的时间,每当计时到后,就将输出脉冲的I/O反相。,4、重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。,硬件电子琴电路模块方案设计,例如,频率为523Hz,,其周期为1/523S=1912uS,,因此只要令计数器计时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音应该装载几个存储单元?,硬件电子琴电路模块方案设计,本实验用FPGA实现乐曲的播放原理,分四步,1、将待播放的音乐音符存入ROM,2、以4HZ频率读取ROM,3、根据1MHZ的内部时钟要求,将读出的音符换算成应计数的数值,4、以1MHZ为内部时钟,实现符合要求的方波信号。,硬件电子琴电路模块方案设计,硬件电子琴电路设计方案,硬件电子琴电路模块方案设计,模块Speaker,模块Speakera中的主要电路是,一个数控分频器,,它由一个初值可预置的加法计数器构成,当模块Speakera由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。,硬件电子琴电路模块方案设计,模块TONE,模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如5,并由High输出指示音阶高8度显示。,硬件电子琴电路模块方案设计,增加乐曲自动演奏电路,在原设计的基础上,增加一个Notetabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在Notetabs模块放置一个乐曲曲谱真值表,乐曲曲谱真值表放置于名为Music的ROM模块中。,由一个计数器来生成读取ROM所需的地址数据,对ROM以4HZ的频率进行读取,实现控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。,硬件电子琴电路模块方案设计,需要说明:,由于实验板上,只有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名称。,注意,,1)不能将文件,夹放置在软件安,装目录下,应放,在E盘或DATA盘上,2)要求以自己,的学号作为文件,夹名,硬件电子琴电路模块方案设计,正确选择FPGA目标器件和EDA工具,这次设计的仿真工具采用Modelsim。,硬件电子琴电路模块方案设计,分别输入ToneTaba.v和Speakera.v的Verilog HDL文本,进行综合和功能仿真,理解、验证模块功能。,硬件电子琴电路模块方案设计,仿真激励文件生成,在New Source Wizard界面选择Verilog Test Fixture,然后输入测试文件名,硬件电子琴电路模块方案设计,选择要测试的模块,硬件电子琴电路模块方案设计,测试文件相关设置完成后,按Finish,ISE即给出测试模块的框架,根据框架,考虑测试的完备性,完善测试模块,硬件电子琴电路模块方案设计,分别编写,Notetabs,.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】命令。,本次设计采用第一种方法。,硬件电子琴电路模块方案设计,首先打开电脑上的记事本,按照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,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&Architecture Wizard),输入IPcore 名:Music,硬件电子琴电路模块方案设计,弹出的界面,选择Memory Element,single Port Block Memory,硬件电子琴电路模块方案设计,选择Read Only,存储器位宽:Width 为4,深度:Depth为256,按Next继续设定,硬件电子琴电路模块方案设计,钩选Load Init File,点击Load File按键,装载初始文件Music.coe,点击Generate按键生成ROM的IP CORE,硬件电子琴电路模块方案设计,通过在NoteTabs.v文件中例化ROM文件,实现按照4HZ频率,循环,读取ROM的音乐节拍、频率信号。,硬件电子琴电路模块方案设计,编写顶层文件,songer.v,,将NoteTabs.v,ToneTaba.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度,Spkout接J4的D7端口)。,当程序下载到Spantan3E板上去后,通过外接扬声器可以听到乐曲。,硬件电子琴电路模块方案设计,思考题,1、电路上应该满足哪些条件,才能用数字器件直接输出的方波驱动扬声器发声?,2、如果演奏其他乐曲,程序应做哪些方面的改动?,硬件电子琴电路模块方案设计,演讲完毕,谢谢听讲,!,再见,see you again,3rew,2024/11/19,硬件电子琴电路模块方案设计,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6