已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宁波理工学院 EDA课程设计报告题 目 音乐播放设计 姓 名 吴佳伟 学 号 3090401029 专业班级 09通信工程3班 分 院 信息工程与工程分院 91. 实验目的:学习利用数控分频器设计硬件电子琴实验。2. 实验仪器:PC机,操作系统为Windows2000/xp,Mux+Plus II 设计平台,GW48系列SOPE/EDA实验开发系统。3. 实验原理:本设计乐曲选取蝶恋,其简谱如图1所示。 图1 蝶恋部分简谱组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率的关系。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如表1所示。表1 简谱中音符与频率的关系4. 主系统由4个模块组成;顶层设计文件内部有三个功能模块(图2):Tone.VHD和Speaker.VHD及Notetabs.VHD.模块TONE是音阶发生器,当4位发声控制输入INDEX中某一位为高电平时,则对应某一音阶的数值将从端口TONE输出,作为获得该音阶的分频预置值;同时由CODE输出对应该音阶简谱的显示数码,如5,并由HIGH输出指示音阶高8度显示。由例6-28可见,其语句结构只是类似与真值表的纯组合电路描述,其中的音阶分频预置值,如Tone Indx, Tone=Tone2,CODE=CODE1,HIGH=HIGH1);u2 : Speaker PORT MAP (clk=CLK12MHZ,Tone1=Tone2, SpkS=SPKOUT );u3 : Notetabs PORT MAP(clk=CLK8HZ,Index0=Indx);END;Tone.VHD部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Tone IS PORT ( Index : IN INTEGER RANGE 0 TO 15; CODE : OUT INTEGER RANGE 0 TO 15; HIGH : OUT STD_LOGIC; Tone : OUT INTEGER RANGE 0 TO 16#7FF# );END;ARCHITECTURE one OF Tone ISBEGIN Search : PROCESS(Index) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数 WHEN 0=Tone = 2047; CODE = 0; HIGH Tone = 773; CODE = 1; HIGH Tone = 912; CODE = 2; HIGH Tone = 1036; CODE = 3; HIGH Tone = 1197; CODE = 5; HIGH Tone = 1290; CODE = 6; HIGH Tone = 1372; CODE = 7; HIGH Tone = 1410; CODE = 1; HIGH Tone = 1480; CODE = 2; HIGH Tone = 1542; CODE = 3; HIGH Tone = 1622; CODE = 5; HIGH Tone =1668; CODE = 6; HIGH Tone = 1728; CODE = 1; HIGH NULL; END CASE; END PROCESS;END;Speaker.VHD部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Speaker IS PORT ( clk : IN STD_LOGIC; Tone1 : IN INTEGER RANGE 0 TO 16#7FF#; SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speaker ISSIGNAL PreCLK , FullSpkS : STD_LOGIC;BEGIN DivideCLK : PROCESS(clk) - 将CLK进 11分频,PreCLK为C L 11K 6分频 VARIABLE Count4 : INTEGER RANGE 0 TO 15; BEGIN PreCLK 11 THEN PreCLK = 1; Count4 := 0; ELSIF clkEVENT AND clk=1 THEN Count4 := Count4 + 1; END IF;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone1) VARIABLE Count11 : INTEGER RANGE 0 TO 16#7FF#; BEGIN - 11位可预置计数器 IF PreCLKEVENT AND PreCLK = 1 THEN IF Count11=16#7FF# THEN Count11 := Tone1; FullSpkS = 1; ELSE Count11:=Count11 + 1; FullSpkS = 0; END IF; END IF;END PROCESS;DelaySpkS : PROCESS(FullSpkS) VARIABLE Count2 : STD_LOGIC; BEGIN IF FullSpkSEVENT AND FullSpkS = 1 THEN Count2 := NOT Count2; IF Count2 = 1 THEN SpkS = 1; ELSE SpkS = 0; END IF; END IF; END PROCESS;END;Notetabs.VHD部分library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity Notetabs isPort ( clk: in std_logic;-系统时钟;键盘输入/自动演奏 index0 : out INTEGER RANGE 0 TO 15); -音符信号输出end NOTETABS;architecture Behavioral of Notetabs issignal count0:integer range 0 to 373;-changebeginmusic:process(clk) -此进程完成自动演奏部分曲的地址累加beginif clkevent and clk=1 thenif count0=373 then count0=0;else count0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0index0ind
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省福州市2024-2025学年上学期八年级数学期末试卷【含答案】
- 绿色能源发展趋势与投资机会分析
- 社团活动策划与执行全流程指南
- 网络安全工程师助理工作职责与安全防护技巧
- 社区药师药学服务团队组建方案
- 生产主管安全生产方案
- 2025四川广安华蓥市人民医院四季度招聘医务人员3人考试笔试模拟试题及答案解析
- 2025云南红河州屏边苗岭投资建设(集团)有限公司下级子公司及代管公司招聘10人笔试考试参考题库及答案解析
- 新能源汽车市场发展趋势报告
- 2025新疆和田墨玉县国有资产投资经营管理有限责任公司招聘1人笔试考试备考题库及答案解析
- 招标代理公司企业管理制度
- 交通运输布局及其对区域发展的影响课时教案
- 自然元素设计分析
- 2025年中医院护理核心制度理论知识考核试题及答案
- 【MOOC】中国智慧-华东师范大学 中国大学慕课MOOC答案
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 九九乘法表课件
- 风电项目前期工作指导手册
- 2022年智能制造关键技术及实施最佳方案(42 P)
- 10000中国普通人名大全
- 液氯汽化器使用说明书模板
评论
0/150
提交评论