1、洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 EDA 技术与 VHDL 设计题目 音乐播放器的设计与仿真 专 业 通信工程 班 级 B1105 学 号 B1105 姓 名 完成日期 2014 年 12 月 22 日 前言随着科学技术的进步,电子器件和电子系统设计方法日新月异,电子设计自动化(Electronics Design Automation,EDA)技术正是适应了现代电子产品设计的要求,吸收了多学科最新成果而形成的一门新技术。现如今掌握 EDA技术是电子信息类专业的学生、工程技术人员所必备的基本能力和技能。传统电子电路的设计,首先要对系统进行分析,然后按功能对系统进行划分,接
2、下来就要选择特定芯片,焊接成 PCB 电路板,最后对成品 PCB 电路板进行调试。这样的设计没有灵活性可言,搭成的系统需要的芯片种类多且数目大,而且对于电路图的设计和电路板的设计都需要很大的工作量,工作难度也很高。随着可编程器件和 EDA 技术的发展,传统设计的劣势被克服,采用可编程逻辑器件基于芯片的设计方法,期间的内部逻辑和引脚可以由设计者自行决定,提高了设计的灵活性和工作效率;同时,将系统集成在一个芯片上的设计,使系统具有体积小、功耗低、可靠性高等特点。EDA 技术即电子设计自动化技术,它是以可编程逻辑器件(PLD)为载体,以硬件描述语言(HDL)为主要的描述方式,以 EDA 软件为主要的
3、开发软件的电子设计过程。它主要采用“自顶向下”的设计方法,设计流程主要包括:设计输入、综合、仿真、适配、下载。EDA 技术主要有以下特征:(1)高层综合的理论和方法取得进展,从而将 EDA 设计层次由 RT 级提高到了系统级,并推出了系统级综合优化工具,缩短了复杂 ASIC 的设计周期。(2)采用硬件描述语言来描述 10 万门以上的设计,并形成了 VHDL 和Verilog-HDL 两种标准硬件描述语言。(3)采用平面规划技术对逻辑综合和物理版图设计联合管理,做到在逻辑设计综合早期阶段就考虑到物理设计信息的影响。(4)可测性综合设计。(5)为带有嵌入式 IP 核的 ASIC 设计提供软、硬件协
4、同设计工具。 (6)建立并设计工具框架结构的集成化设计环境,以适应当今 ASIC 规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。总而言之,EDA 技术的出现,给电子信息产业带来了革命性的变革。一. 设计任务及要求本次课程设计要求使用 EDA 工具,设计实现简易音乐播放器,理解音名与频率的关系及数控分频原理,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。用 VHDL 语言设计乐音的节拍与音符产生电路;用 VHDL 语言设计分频系数、音符显示数据产生电路;用 VHDL 语言设计可控分频器电路;理解简易音乐播放器总体设计方案。掌握基
5、本的 VHDL 语言;理解音乐播放电路设计方案。掌握用 VHDL 语言设计节拍与音符产生电路;掌握用 VHDL 语言设计分频系数、音符显示数据产生电路;掌握用 VHDL 语言设计可控分频器电路。设计结果:原理图与原程序、电路仿真图、能在实训系统上播放悦耳动听的音乐。二. 设计实现2.1 准备知识在本次设计中采用了梁祝 茉莉花 虫儿飞作为要播放的乐曲,根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为 1
6、 拍。将 1 拍的时长定为 0.25 秒,则只需要再提供一个 4Hz 的时钟频率即可产生 1 拍的时长,演奏的时间控制通过 ROM 查表的方式来完成。对于占用时间较长的节拍,如全音符为 4 拍(重复 4) ,2/4 音符为 2 拍(重复 2) ,1/4 音符为 1 拍(重复 1) 。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本设计中选取 4MHz 的基准频率。表 2
7、-1 为简谱中音名与频率的对应关系。表 2.1 乐谱编码和乐音频率音符 编码 频率 f 分频数 106/f 计数值(106/2f)-11 1 262 106/262 19072 2 294 106/294 16993 3 330 106/330 15144 4 349 106/349 14315 5 392 106/392 12746 6 440 106/440 1135低音7 7 494 106/494 10111 8 523 106/523 9552 9 587 106/587 8503 10 659 106/659 7574 11 698 106/698 7155 12 784 106/
8、784 6366 13 880 106/880 567中音7 14 988 106/988 505高音 1 15 1047 106/1047 4762.2 乐曲演奏电路的结构示意2.3 乐曲演奏电路的子结构顶层结构所包含的模块分别有地址计数器模块(ADDR) 、乐音分频器模块(SPEAKER) 、数据存储器(YP)以下便是对各个子模块的分析。乐 乐 乐乐 乐乐 乐 乐 乐 乐 乐乐 乐乐 乐乐 乐2.3.1 地址计数器模块1. 地址计数器功能在此模块中设置了一个 9 位二进制计数器(计数最大值为 512) ,这个计数器的计数频率选为 4Hz,即每一计数值的停留时间为 0.25s,恰好为当全音符
9、设为 1s 时。例如, 梁祝乐曲的第一个音符为“3” ,此音在逻辑中停留了 4 个时钟节拍,即为 1s 时间,相应地所对应“1”音符分频预置数为 1409 在 ADDR的输入端停留了 1s。随着 ADDR 中的计数器按 4Hz 的时钟频率做加法计数时,乐谱逐次被选取, 梁祝乐曲就开始自然连续的演奏起来了。2. 程序代码LIBRARY ieee;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDR ISPORT (clk : IN STD_LOGIC;A : BUFFER STD_LOGIC_VECTOR(
10、8 DOWNTO 0);END;ARCHITECTURE ONE OF ADDR ISBEGIN PROCESS (clk)BEGINIF (clkevent AND clk = 1)THENA temp temp temp temp temp temp temp temp temp temp temp temp temp temp temp=2048;end case;end process;process(clk)beginif(clkevent and clk=1) then count=count+1;if(count=temp) then FM=not FM;count=0;end if;end if;end process;spks=FM;end;3. 乐音分频器符号图图 2.4 乐音分频器符号图4. 乐音分频器波形图图 2.5 乐音 2 的波形图图 2.6 乐音 3 的波形图2.3.3 数据存储器从菜单里的 Tools 选择 MegaWizard Plug-In Manager,按照向导完成ROM 的定制,ROM 初始化文件见附录。图 2.7 数据存储器设计图2.3.3 数据仿真1. 符号图