fpga课设——蜂鸣器音乐演奏_第1页
fpga课设——蜂鸣器音乐演奏_第2页
fpga课设——蜂鸣器音乐演奏_第3页
fpga课设——蜂鸣器音乐演奏_第4页
fpga课设——蜂鸣器音乐演奏_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

FPGAFPGA 实实 验验 报报 告告 实验名称 蜂鸣器音乐演奏 实验日期 姓 名 学 号 2012 年数字信号处理实验报告 第 1 页 共 14 页 一 实验目的一 实验目的 1 熟悉 QuartusII 软件的使用 2 熟悉 EDA 实验开发系统的基本使用 3 学习 VHDL 基本单元电路的设计应用 进一步掌握 EDA 的多层次设计方法 4 学习音乐发生器的设计 除了报警 蜂鸣器还可以用来奏乐 让它发出悦耳动听的声 音 加深理解蜂鸣器的控制电路原理 二 设计要求设计要求 1 自动循环播放歌曲 义勇军进行曲 2 由数码管分别显示高 中 低音的音符 三 实验原理三 实验原理 1 乐曲硬件电路产生音乐是和音乐频率和音乐的持续时间有关 音符的持 续时间需根据乐曲的速度和每个音符的节拍数来确定 其简谱中音符和频率 的关系如下 2 该演奏电路演奏的乐曲是 友义勇军进行曲 其最小的节拍为 1 拍 将 1 拍的时长定位 0 2S 则只需要再提供一个 5hz 的时钟频率即可产生 1 拍的 时长 演奏的时间控制通过 ROM 查表的方式来完成 对于占用时间较长的 节拍 一定是节拍的整数倍 如全音符为 4 拍 2 4 音符为 2 拍 1 4 音符 为 1 拍 3 乐曲硬件演奏电路系统主要有音调分频器和乐曲存储模块两个部分组成 其 余还有音乐节拍发生器等等 音调分频器对 1mhz 由基准频率产生 的频 率进行分频 得到与各个音节对应的频率输出 乐曲存储模块产生节拍控制 和音阶选择信号 即在此模块中存放一个乐曲曲谱真值表 实验中用的 ROM 存储 由一个计数器来控制此真值表的输出 而由计数器的技术时钟 2012 年数字信号处理实验报告 第 2 页 共 14 页 信号作为乐曲节拍控制信号 4 其中 5hz 和 1mhz 的频率由基准频率分频产生 分别作用给每个模块 四 方案设计四 方案设计 a 设计分析 实验中采用层次化设计思路 音乐发生器的设计包括四个模块 时钟分频 模块 fdiv 自动演奏模块 autoplay 查表及显示模块 table 音调分频模块 fenpin 分好层次之后 编写每个模块的程序 时钟分频模块 fdiv 通过基准时钟频率 clk 50mhz 产生两个时钟信号 clk1 1mhz clk2 5hz 自动演奏模块 autoplay 接收 clk1 的时钟信号 输出 index auto 查表及显示模块 table 利用 index auto 查找并输出分频系数 tone 同时将 音调对应的给三个数码管 分别显示高中低音符 音调分频模块 fenpin 接收 tabled 输出的分频系数 tone 并据此分频 将对 应频率的信号 buzz 输出给扬声器供其发声 b 流程图 数码管显示 clk 输出 buzz 五 实验过程五 实验过程 1 时钟分频模块 fdiv 通过基准时钟频率 clk 50mhz 产生两个时钟信号 clk1 1mhz clk2 5hz 程序见附录 1 其仿真结果如下 AutoplayfenpintableFdiv 2012 年数字信号处理实验报告 第 3 页 共 14 页 2 自动演奏 autoplays 模块 这个模块用 FPGA 的片内 ROM 存放乐曲的简谱真值表 由一个二进制计数 器为乐曲数据存储 ROM 的地址发生器随着 autoplay 中计数器按 clk2 时钟频率 做加法计数时 乐曲数据存储器 ROM 中的音符数据 将从 ROM 中的输出口输 向音符查表模块 table 所存储的乐曲就开始连续自然地演奏起来 ROM 的定制过程 利用 MegawizardPlug In Manager 定制音符数据存储器 music 其中 music rom 的程序见附录二 在定制 ROM 的过程中 由于需要存入 296 个音符数据 选择 ROM 的数据 位宽为 8 地址为 64 共计 512 个字 ROM 的类型选择为 Auto 根据义勇军进行曲的音乐简谱 以及简谱中的低 中 高和额节拍与发生频率 的关系等等 化成个音符数字有 296 个 存入 ROM 中 在数据文件编辑窗中 在 mif 格式表格中填入义勇军进行曲的 296 个音符数据 并以十进制填入 最后保存数据文件名为 music mif 存入原路径中 其中 1 7 表示低音 8 14 表示中音 15 21 表示高音 2012 年数字信号处理实验报告 第 4 页 共 14 页 Autoplay 的程序见目录三 在源程序中 index auto 是音乐节拍发生器输出地音符数据 clk2 是计数时 钟输入端 该信号作为音符的快慢信号 频率越高 时钟的输出节拍速度就越 快 演奏的速度也越快 该模块仿真结果如下 3 查表及显示 table 模块 利用 index auto 查找并输出分频系数 tone 同时将音调对应的给三个数码 管 分别显示高中低音符 其程序见目录四 在源程序中 tone 是音调分频模块提供音符频率的分频系数 此处有一个 位选信号 come 和段选信号 seg 可以通过数码管来显示乐曲演奏时对应的高中低 音符 在此模块中假设 index auto 音符为 15 其仿真结果如下 2012 年数字信号处理实验报告 第 5 页 共 14 页 4 音调分频模块 speakera 设计 分频器对 FPGA 的 clk1 进行分频 得到与各个音阶对应的频率输出 里面 包含一个计数器 当计数器满时 产生一个进位信号 该信号就是用作发音的 频率信号 在计数器端的预置值端给定不同的初值时 产生不同频率的信号 其程序见附录五 假设 tone 为 252 其仿真结果如下 5 根据层次化设计要求把各个部分根据实验设计流程 设计成顶层文件 其程 序见附录六 6 经编译无错后 绑定引脚 下载测试 其管脚分配如下 2012 年数字信号处理实验报告 第 6 页 共 14 页 六 实验结果及分析六 实验结果及分析 下载测试 下载完毕 听到完整的一段 义勇军进行曲 音乐 并且音调 很好 数码管显示没有错误 频率折算中 由于频率计数不能是小数 采用了四舍五 入的方法 所以得到的频率并不是十分精确的 但是不会影响结果 附录附录 附录一 library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee std logic unsigned all entity fdiv is port clk in std logic clk1 out std logic clk2 out std logic 50MHz end fdiv architecture behave of fdiv is signaltemp std logic f 1 2 cnt 1 f0 signaltemp1 std logic f 1 2 cnt 1 f0 signal cnt1 integer range 0 to 25 1mhz signal cnt2 integer range 0 to 5000000 5hz begin process clk 1mhz begin if clk event and clk 1 then 2012 年数字信号处理实验报告 第 7 页 共 14 页 if cnt1 24 then cnt1 0 temp not temp else cnt1 cnt1 1 end if end if end process clk1 temp process clk 5hz begin if clk event and clk 1 then if cnt2 4999999 then cnt2 0 temp1 not temp1 else cnt2 cnt2 1 end if end if end process clk2 temp1 end 附录二 LIBRARY ieee USE ieee std logic 1164 all LIBRARY altera mf USE altera mf altera mf components all ENTITY music rom is PORT 2012 年数字信号处理实验报告 第 8 页 共 14 页 address IN STD LOGIC VECTOR 8 DOWNTO 0 inclock IN STD LOGIC q OUT STD LOGIC VECTOR 4 DOWNTO 0 END music rom ARCHITECTURE SYN OF music rom IS SIGNAL sub wire0 STD LOGIC VECTOR 4 DOWNTO 0 COMPONENT altsyncram GENERIC intended device family STRING width a NATURAL widthad a NATURAL numwords a NATURAL operation mode STRING outdata reg a STRING address aclr a STRING outdata aclr a STRING width byteena a NATURAL init file STRING lpm hint STRING lpm type STRING PORT clock0 IN STD LOGIC address a IN STD LOGIC VECTOR 8 DOWNTO 0 q a OUT STD LOGIC VECTOR 4 DOWNTO 0 END COMPONENT BEGIN q Cyclone width a 8 widthad a 9 numwords a 512 operation mode ROM outdata reg a UNREGISTERED address aclr a NONE outdata aclr a NONE width byteena a 1 init file music mif lpm hint ENABLE RUNTIME MOD YES INSTANCE NAME ROM lpm type altsyncram PORT MAP clock0 inclock address a address q a sub wire0 END 附录三附录三 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY autoplay IS PORT clk2 IN STD LOGIC index auto OUT STD LOGIC VECTOR 4 DOWNTO 0 END autoplay ARCHITECTURE behav OF autoplay IS component music rom PORT address IN STD LOGIC VECTOR 8 DOWNTO 0 inclock IN STD LOGIC q OUT STD LOGIC VECTOR 4 DOWNTO 0 END component SIGNAL CQI STD LOGIC VECTOR 8 DOWNTO 0 BEGIN PROCESS clk2 BEGIN IF clk2 EVENT AND clk2 1 THEN CQICQI q index auto inclock clk2 END 附录四 library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee std logic unsigned all entity table is port index auto in STD LOGIC VECTOR 4 DOWNTO 0 come out std logic vector 7 downto 0 seg out std logic vector 7 downto 0 tone out integer range 0 to 1910 end architecture search of table is begin process index auto begin case index auto is when 00001 tone 1910 come 11111110 seg tone 1701 come 11111110 seg tone 1516 come 11111110 seg tone 1431 come 11111110 seg tone 1275 come 11111110 seg tone 1135 come 11111110 seg tone 1011 come 11111110 seg tone 954 come 11111101 seg tone 850 come 11111101 seg tone 757 come 11111101 seg tone 715 come 11111101 seg tone 637 come 11111101 seg tone 567 come 11111101 seg tone 505 come 11111101 seg tone 477 come 11111011 seg tone 425 come 11111011 seg tone 378 come 11111011 seg tone 357 come 11111011 seg tone 318 come 11111011 seg tone 283 come 11111011 seg tone 252 come 11111011 seg tone 0 come 00000000 seg 00000000 end case end process end 附录五 library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee st

温馨提示

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

评论

0/150

提交评论