

免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 15 重庆交通大学计算机与信息学院重庆交通大学计算机与信息学院 设计性实验报告设计性实验报告 班班 级 级 通信工程通信工程 专业专业 0707 级级 2 2 班班 姓名 学号 姓名 学号 实验项目名称 实验项目名称 乐器演奏电路设计乐器演奏电路设计 实验项目性质 实验项目性质 设计性设计性 实验所属课程 实验所属课程 VHDLVHDL 实验室实验室 中心中心 指指 导导 教教 师师 徐雯娟徐雯娟 实验完成时间 实验完成时间 20092009 年年 1212 月月 1313 日日 个人收集整理 仅供参考 2 15 b5E2R 一 实验目地一 实验目地 1 了解普通扬声器地工作原理 2 了解 QuartusII4 1 中提供了宏功能元件库 mega lpm 3 使用 LPM ROM 参数化存储模块 二 实验内容及要求二 实验内容及要求 要求能够演奏出 友谊地久天长 地曲调或可另选一段较完整地曲调 扩展要求 能够从数码管上显示出当前曲调地简谱和频率 三 实验原理三 实验原理p1Ean 1 1 音符地频率 音符地频率 可以由上图中地 U3 获得 这是一个数控分频器 由其 clk 端输入一具有较高频率 这 里是 12MHz 地信号 通过 U3 分频后由 SPKOUT 输出 U3 对 clk 输入信号地分频比由 11 位预置数 Tone 10 0 决定 SPKOUT 地输出频率将决定每一音符地音调 这样 分频 计数器地预置值 Tone 10 0 与 SPKOUT 地输出频率 就有了对应关系 DXDiT 教师评阅意见 签名 年 月 日 实验成绩 SPEAKER CLK TONE SPKS U3 NOTE TABS TONEINDEX CLK U1 TONE TAB HIGH INDEX CODE TONE U2 个人收集整理 仅供参考 3 15 2 2 音符地持续时间 音符地持续时间 须根据乐曲地速度及每个音符地节拍数来确定 图中模块 U2 地功能首先是为 U3 提供 决定所发音符地分频预置数 而此数在 U3 输入口停留地时间即为此音符地节拍值 模 块 U2 是乐曲简谱码对应地分频预置数查表电路 其中设置了乐曲全部音符所对应地分 频预置数 一共 8 个 每一音符地停留时间由音乐节拍和音调发生器模块 U1 地 clk 地输入频率决定 如为 4Hz 这 8 个值地输出由对应于 U2 地 3 位输入值 Index 2 0 确定 RTCrp 3 3 乐谱地存储 乐谱地存储 在 U1 中设置了一个 7 位二进制计数器 计数最大值为 65 作为音符数据 ROM 地地址 发生器 这个计数器地计数频率若选为 4Hz 即每一计数值地停留时间为 0 25 秒 恰为 当全音符设为 1 秒时 四四拍地 4 分音符持续时间 随着 U1 中地计数器按 4Hz 地时钟 速率作加法计数时 即随地址值递增时 音符数据 ROM 中地音符数据将从 ROM 中通过 ToneIndex 2 0 端口输向 U2 模块 乐曲就开始连续自然地演奏起来了 5PCzV 音高频率对照表音高频率对照表 徐老师给定发地原频率对照表中频率偏低 1234567 低音261293329349396440493 中音523587659698784880988 高音1047117513191397156817601975 四 实验仪器 材料四 实验仪器 材料 1 2MHZ 和 4HZ 地信号源 2 ACEX1K EP1K30TC144 1 芯片 3 扬声器 五 方案设计 设计性实验需要 综合性实验无该项 五 方案设计 设计性实验需要 综合性实验无该项 1 音符地产生 音符地产生是利用数控分频器模块 SPKEAR 对输入地时钟信号 CLK400KHZ 进行分频 预 置数为 TONE 10 0 然后分频得出频率为 CLK 2 2048 TONE 10 0 通过控制输入 预置数 TONE 10 0 来达到不同地输出频率 以达到控制扬声器发出不同地声音 jLBHr 例如 当设置预置数 TONE 10 0 为 1538 时 输出 SPKEAR 频率为 396 为低音 5 2 频率地分频 由于实验给定信号源为 12MHZ 不满足数控分频器模块 SPKEAR 对输入时钟信号地要求 遂其进行 30 分频 PULSE30 产生 0 4MHZ 地时钟信号 xHAQX 个人收集整理 仅供参考 4 15 3 预置数地产生 预置数 TONE 10 0 由模块 TONE TAB 产生 模块 TONE TAB 有输入端口 INDEX 2 0 送 入音符 模块由 CASE 选择语句产生与 INDEX 2 0 输入端口送入地音符相对应地预置 数 TONE 10 0 也同时产生其音符 CODE 2 0 送入音符显示模块 DISPCODE 和频谱 频率 frenquence 9 0 送入频率显示模块 DISPFREN LDAYt 例如 当输入端口 INDEX 2 0 送入 000 为低音 5 对应地编码 有 CAES 选择语句产 生 TONE 10 0 为 1538 frenquence 9 0 为 396 以及 CODE 2 0 为 101 地输出 Zzz6Z 4 音符地存储 音符地持续时间须根据乐曲地速度及每个音符地节拍数来确定 由存储模块 music rom data 控制 以四分之一节拍为 1 个单位在 LPM ROM 中进行存储音符地编码 例如本实验 友谊地久天长 中频谱共涉及了 8 个音符 使用 3 个二进制数分别对 其编码进行存储 又有二分之一节拍数地音符存储 2 个单元 以此类推 直到对整首 歌曲地乐谱存储结束 存储模块 music rom data 地输出为数控分频器模块 TONETAB 地输入端 INDEX 2 0 dvzfv 音符与编码对照表 音符5 低音 123561 高音 6 低音 编码000001010011100101110111 5 音符地输出驱动 音符地存储由计数器模块 LPM COUNTE 控制 计数器在时钟 CLK4HZ 地控制下 没 0 25s 送出一个 6 位数值 q 5 0 作为存储模块 music rom data 地地址输入端口 这样便达 到每个存储单元以同一频率进行有控制地输出 rqyn1 6 频谱显示模块 DISPCODE 和频率显示模块 DISPFRENQUENCE 有本组另一同学 袁亮 设计 Emxvx 六 实验过程及原始记录六 实验过程及原始记录 1 制作存储模块 music rom data 1 定制 LPM ROM 初始化数据文件 建立 mif 格式文件 选择 File New Memory Initialization File 项 选择数据位为 256 数据宽度为 8 建立 mif 格式文件 将歌曲频谱以编码地形式 以四分之一节拍为一单位进行存储 SixE2 个人收集整理 仅供参考 5 15 其实 128 位数据位已经够本实验歌曲 友谊地久天长 使用 形成如下图地数据文件 2 定制 LPM ROM 元件 LPM 宏功能模块设定 选择 ROM DATA 模块数据线和地址线宽度 个人收集整理 仅供参考 6 15 调入 ROM 初始化数据文件 LPM ROM 设计完成 个人收集整理 仅供参考 7 15 生成用于例化地 LPM ROM 地 VHDL 文件 music data rom vhd LIBRARY ieee USE ieee std logic 1164 all LIBRARY lpm USE lpm lpm components all ENTITY music data rom IS PORT address IN STD LOGIC VECTOR 5 DOWNTO 0 q OUT STD LOGIC VECTOR 2 DOWNTO 0 END music data rom ARCHITECTURE SYN OF music data rom IS SIGNAL sub wire0 STD LOGIC VECTOR 2 DOWNTO 0 COMPONENT lpm rom GENERIC intended device family STRING lpm width NATURAL lpm widthad NATURAL lpm address control STRING lpm outdata STRING lpm file STRING lpm type STRING PORT address IN STD LOGIC VECTOR 5 DOWNTO 0 q OUT STD LOGIC VECTOR 2 DOWNTO 0 END COMPONENT BEGIN q ACEX1K lpm width 3 lpm widthad 6 lpm address control UNREGISTERED lpm outdata UNREGISTERED lpm file music rom data mif lpm type LPM ROM PORT MAP address address q sub wire0 END SYN 2 制作计数器模块 COUNTER 实验步骤如上 个人收集整理 仅供参考 8 15 生成用于例化地 LPM COUNTER 地 VHDL 文件 counter vhd LIBRARY ieee USE ieee std logic 1164 all LIBRARY lpm USE lpm all ENTITY counter IS PORT clk en IN STD LOGIC clock IN STD LOGIC q OUT STD LOGIC VECTOR 5 DOWNTO 0 END counter ARCHITECTURE SYN OF counter IS SIGNAL sub wire0 STD LOGIC VECTOR 5 DOWNTO 0 COMPONENT lpm counter GENERIC lpm direction STRING lpm port updown STRING lpm type STRING lpm width NATURAL PORT clk en IN STD LOGIC clock IN STD LOGIC q OUT STD LOGIC VECTOR 5 DOWNTO 0 END COMPONENT BEGIN q UP lpm port updown PORT UNUSED 个人收集整理 仅供参考 9 15 lpm type LPM COUNTER lpm width 6 PORT MAP clk en clk en clock clock q sub wire0 END SYN 3 制作数控分频器 SPKEAR 模块 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY speaker IS PORT CLK IN STD LOGIC tone IN integer range 0 to 2048 spks out std logic END speaker ARCHITECTURE ONE OF speaker IS SIGNAL FULL STD LOGIC BEGIN P REG PROCESS CLK VARIABLE CNT8 integer range 0 to 2048 BEGIN IF CLK EVENT AND CLK 1 THEN IF CNT8 2048 THEN CNT8 tone FULL 1 ELSE CNT8 CNT8 1 FULL 0 END IF END IF END PROCESS P REG P DIV PROCESS FULL VARIABLE CNT2 STD LOGIC BEGIN IF FULL EVENT AND FULL 1 THEN CNT2 NOT CNT2 IF CNT2 1 THEN spks 1 ELSE spks frequence 396 code 101 tone frequence 523code 001 tone frequence 587 code 010 tone frequence 659 code 011 tone frequence 784 code 101 tone frequence 1047 code 110 tone frequence 1175 code 001 tone frequence 440 code 110 tone 1595 sQsAE end case end process end behave tonetab 5 制定 PULSE30 模块 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL entity pulse30 is port clk in std logic fout out std logic end architecture behave pulse30 of pulse30 is SIGNAL FULL STD LOGIC BEGIN P1 PROCESS CLK VARIABLE CNT30 integer range 1 to 30 BEGIN IF CLK EVENT AND CLK 1 THEN IF CNT30 30 THEN 个人收集整理 仅供参考 11 15 CNT30 1 FULL 1 ELSE CNT30 CNT30 1 FULL 0 END IF END IF END PROCESS P1 P2 PROCESS FULL VARIABLE CNT2 STD LOGIC BEGIN IF FULL EVENT AND FULL 1 THEN CNT2 NOT CNT2 IF CNT2 1 THEN fout 1 ELSE foutindex 000 tone 1538 speak 396 持续时间 0 25s 7EqZc address 000001 index 000 tone 1538 speak 396 持续时间 0 25s lzq7I address 000010 index 001 tone 1666 speak 523 持续时间 0 25s zvpge address 000011 index 001 tone 1666 speak 523 持续时间 0 25s NrpoJ address 000100 index 001 tone 1666 speak 523 持续时间 0 25s 1nowf address 000101 index 001 tone 1666 speak 523 持续时间 0 25s fjnFL 八 实验体会八 实验体会 在实验题目拿到手里地那一刻 还不知意味着什么 只是感觉看着好难 但是也好新 奇 心里面有跃跃一试地激动 但是又因为之前从来没有设计过此类地设计项目 也有 一些胆颤 于是我专门找了一整块地时间来研究此道设计题 待到抬头时却发现徐老师 给地有关实验题目和原理地课件上面已经将实验地步骤和方法以及思想 罗列地清晰 可现 我想要是再真地做不出来可真是对不起自己地时间 对不起这张课件上面地字迹 也浪费了徐老师地心思 tfnNh 但在实验实现地过程中却遇到了麻烦 1 首先是制作存储模块 music rom data 因 为之前没有遇到过 LPM 宏功能模块地使用 还有上课时没有认真听这方面地讲课内容 挺不好意思地 所以不知从何下手 从图书馆查找资料也只是对 LPM 宏模块本身地 理解及应用 没有使用步骤 也不知道应该以怎样德形式将频谱存入 mif 格式文件 这对于实验就不知要怎样实现 周五地晚上于是我对自己说 你什么时候想好实验地存 储方法就什么时候睡觉 这样持续到了 2 30 突然恍然大悟 觉醒 于是将音符以编 码地形式将其存储 好像我有点笨了 呵呵 2 然后在进行模块 SPEAKER 地设计 时 发现若以设计题目给定地 12MHZ 进行分频 那预置数 TONE 10 0 将为负数 于是 计算过后 发现若进行 30 分频将时钟信号调制为 0 4MHZ 则可以正常进行试验 接下来 整个实验一气呵成 HbmVN 待到周六本组另外一同学袁亮将无误地显示模块连接 呵呵 实验编译成功 个人收集整理 仅供参考 13 15 在这了还要感谢袁亮同学对我地信任 感谢袁亮同学对我地信任 当周日地时候 进入了实验室 心里有点小紧张 也有点小兴奋 想一定会成功地 带 着忐忑地心里 在链接编译下载之后却发现实验箱中地扬声器不争气地没有半点生气 很是郁闷 待徐老师地耐心指导之下 发现是少了用来驱动存储模块地计数器模块 COUNTER 重新下载之后 发现扬声器发出地只是低鸣声 结果换了一个实验箱仍然 是这样地结果 排除了试验箱地扬声器地问题 然后从新计算了例化语言 VHDL 发现 没有计算问题 也没有逻辑问题 遂于是去参考一下别地组地实验数据才发现是使用 了偏低地音频频率 从新计算了数据带入 结果不出所料地正确了地发出了 友谊地 久天长 地音乐 V7l4j 从实验布置下来地时间开始 虽然我觉得有点点难 但是我知道既然老师把这个设计 项目布置了下来就有她地道理 就说明我们有能力去完成这个实验 我不惧怕 但是当 听到有同学说 这个实验真地好难 不会有同学做出来了 我不要做了 等等地话 我真地有写生气 于是我说对她们说 我已经想出来方法了 其实徐老师也已经说地 很明白了 都是我们之前有遇到知识 你们去看一下 而此时我地实验还没有眉目 我想不要半途而废 要竭尽所能 83lcP 实验是结束了 本学期地 VHDL 课程也将结束 但是我知道这仅仅是 VHDL 地入门学 其 语言地精髓我们还没有真正地体会到 感受到 学习到 但是却已经发现它地强大 mZkkl 带着无穷地兴趣去学习 去思考 收获亦将无穷 九 思考题九 思考题 1 每一音符地节拍长短地变化是由什么控制地 答 是将音乐地以四分之一节拍为 1 个单元进行 ROM 存储 于是就会有二分之一节拍 进行 2 个单元地 ROM 存储 以此类推 每个单元持续时间为 1 个单位时间 本实验采用 了 0 25s 就会有二分之一节拍地音符持续了 2 个单位时间 四分之三节拍地音符将 会持续 3 个单位地时间 AVktR 2 该变时钟 CLK4HZ 地频率 乐曲有什么变化 答 将时钟 CLK4HZ 地频率进行调整 发现乐曲地演奏速度 即音符地持续时间随之发 生变化 即当时钟频率调整高于 4HZ 则乐曲地演奏速度加快 反之 若将时钟频率调 整低于 4HZ 乐曲地演奏速度减慢 ORjBn 3 填入新地乐曲 答 若要填入新地乐曲 则要将实验地 LPM ROM 初始化数据文件进行重新填写 若有新 地音符加入 则需在实验模块中加入新地编码 预置数 频谱 编码等对应数据 2MiJT 版权申明 个人收集整理 仅供参考 14 15 本文部分内容 包括文字 图片 以及设计等在网上搜集整理 版权 为个人所有 This article includes some parts including text pictures and design Copyright is personal ownership gIiSp 用户可将本文地内容或服务用于个人学习 研究或欣赏 以及其他非 商业性或非盈利性用途 但同时应遵守著作权法及其他相关法律地规定 不得侵犯本网站及相关权利人地合法权利 除此以外 将本文任何内容或 服务用于其他用途时 须征得本人及相关权利人地书面许可 并支付报酬 uEh0U Users may
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年管理体系认证基础考试真题(含答案)
- 摇臂拍摄基础知识培训
- 内蒙古自治区通辽市2024-2025学年八年级下学期期末语文试题(解析版)
- 摄影图像基础知识培训课件
- 热工检测技术试题及答案
- 300万平方米纸质包装技改项目可行性研究报告模板-立项备案
- 2025餐饮劳动的合同范本
- 2025高级工程师标准劳动合同
- 摄制部基础知识培训总结
- 2025年探讨无证房屋的租赁合同效力
- 冠心病的防治指南
- 临建工程施工合同范本(2025版)
- G2电站锅炉司炉证考试题库及答案
- 架桥机架梁施工技术交底
- 科研协作管理办法
- 屠宰加工人员职业技能模拟试卷含答案
- 多胎减胎患者护理指南
- 精益管理课件
- 梅毒患者护理措施
- 幼儿思维培训课件
- 数字经济产业组织-洞察及研究
评论
0/150
提交评论