基于FPGA的硬件电子琴电路模块方案设计.doc_第1页
基于FPGA的硬件电子琴电路模块方案设计.doc_第2页
基于FPGA的硬件电子琴电路模块方案设计.doc_第3页
基于FPGA的硬件电子琴电路模块方案设计.doc_第4页
基于FPGA的硬件电子琴电路模块方案设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

Southwest university of science and technologyFPGA现代数字系统设计实验报告实验名称硬件电子琴电路模块设计专业班级电子1002班学生姓名学号指导教师 1、 实验要求用FPGA实现乐曲的播放2、 实验原理实现乐曲的播放原理:1、将待播放的梁祝音乐音符存入ROM;2、以4HZ频率读取ROM; 3、根据1MHZ的内部时钟要求,将读出的音符换算成应计数的数值;4、以1MHZ为内部时钟,实现符合要求的方波信号。图2.1 原理框图本设计包括5个模块:一个是Speakera模块,一个是TONE模块,一个Notetabs模块,两个分频模块50M12.5M、50M4HZ。1、 Speaker模块主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speakera由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。2、 TONE模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如5,并由High输出指示音阶高8度显示。3、 Notetabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在Notetabs模块放置一个乐曲曲谱真值表,乐曲曲谱真值表放置于名为Music的ROM模块中。由一个计数器来生成读取ROM所需的地址数据,对ROM以4HZ的频率进行读取,实现控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。4、50MHZ到12.5MHZ的分频模块由于实验板上,只有50MHZ有源晶振,故将用50MHZ进行分频实现12.5MHZ的时钟。5、50MHZ到12.5MHZ的分频模块系统需要4HZ频率读ROM,于是用50MHZ,分频得到4HZ频率。3、 实验步骤1、 ToneTaba模块和Speakera模块的设计(1) 建立工程:file-New Project,并注意器件、EDA工具的正确选择。图3.1 工程建立及工具选择(2) 建立新Verilog HDL模块编辑窗口,选择资源类型为Verilog Module,并输入合法文件名,在文本编辑窗口输入代码。图3.2 文本编辑(3) 执行综合得到综合后的电路。图3.3 综合逻辑结构(4) 进行功能仿真。图3.4 ToneTaba模块的仿真图3.5 Speakera模块的仿真2、 NoteTabs模块的设计(1) 、IP CORE模块在工程中新建资源,选择IP (CORE Generate & Architecture Wizard)弹出的界面,选择Memory Element single Port Block Memory选择Read Only,存储器位宽:Width 为4,深度:Depth为256,按Next继续设定;钩选Load Init File,点击Load File按键,装载初始文件Music.coe,点击Generate按键生成ROM的IP CORE。(2) 、按照ToneTaba模块的步骤建立NoteTabs模块,并进行综合仿真。图3.7 NoteTabs模块的综合逻辑图3.7 NoteTabs模块的仿真3、 div_50_12M模块和iv_50_4HZ模块的设计(1)、与以上步骤相同,设计代码如下:module div_50_12M(clk_50M,clk_12M,reset);input clk_50M,reset; output clk_12M;reg clk_12M,counter;initial begin counter=0; clk_12M=0; endalways(posedge clk_50M or posedge reset)begin if(reset=1b1) clk_12M=1b1) begin counter=0;clk_12M=clk_12M;endelse counter=counter+1b1;endendmodulemodule div_50_4HZ(clk_50M,clk_4HZ,reset);input clk_50M,reset;output clk_4HZ;reg clk_4HZ; reg 23:0count;initial begin count=0; clk_4HZ=0; endalways (posedge clk_50M or posedge reset )begin if(reset=1b1) clk_4HZ=6249999)begincount=0; clk_4HZ=clk_4HZ; endelse begin count11,则使PreClk、Count4赋值为1,否则使PreClk为0,Count4加1,用第一个always模块产生的PreClk上升沿做触发条件,如果Count11=11h7FF,则使Count11为Tone,FullSpkS为1,否则Count11加1,FullSpkS为0;第二个always模块产生的FullSpkS上升沿触发条件,每遇到一个上升沿让Count2翻转一次,如果Count2为1,扬声器发出声音,否则不发。4、在ToneTaba模块中,当4位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如5,并由High输出指示音阶高8度显示。5、原理:用coe文件将梁祝乐曲的曲谱、节拍和音调存储在内存中,再结合程序将乐谱的每一个值按一定频率、音调、节拍读出来,在电路板

温馨提示

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

评论

0/150

提交评论