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 准备知识在本次设计中采用了梁祝 茉莉花 虫儿飞作为要播放的乐曲,根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍
6、为 1 拍。将 1 拍的时长定为 0.25 秒,则只需要再提供一个 4Hz 的时钟频率即可产生 1 拍的时长,演奏的时间控制通过 ROM 查表的方式来完成。对于占用时间较长的节拍,如全音符为 4 拍(重复 4) ,2/4 音符为 2 拍(重复 2) ,1/4 音符为 1 拍(重复 1) 。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频.率。本设计中选取 4MHz 的基准频率
7、。表 2-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
8、106/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_VE
10、CTOR(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
11、;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. 符号图.图 2.8 存储器和地址计数器符号图2. 波形图.图 2.9 存储器存入的数据存储器存入了梁祝 茉莉花 虫儿飞 三首音乐,最小编程单元是八分音符即每个数字占 0.3
12、7 秒。每首歌结束之后空 0.37*8*2 = 6 秒。三首歌共 424 个地址,即 0.37*424 = 155 秒,即两分半左右。2.3.4 时钟分频器1. 二十分频器程序代码:library ieee;use ieee.std_logic_1164.all;entity fenpin20 is port(clk : in std_logic; -输入 20MHZ 信号.out1 : out std_logic);- 输出 1MHZend;architecture one of fenpin20 is signal T1 : integer range 0 to 10-1;signal F
13、1M : std_logic;beginprocess(clk)beginif(clkevent and clk=1) then T1=T1+1;if(T1=9) then F1M= not F1M;T1=0;end if;end if;end process;out1=F1M;end;符号图:图 2.10 分频器符号图波形图:.图 2.11 分频器波形图波形图意义:此分频器是 20 分频,即把频率分成其本身频率的 1/20。波形图中 clk周期设置为 1ns,则 cout1 的周期是 20ns 实现 20 分频。2. 1M 分频 4hz程序代码:library ieee;use ieee.s
14、td_logic_1164.all;entity FENPIN4HZ is port(clk : in std_logic; -输入 1MHZ 信号F : out std_logic);- 输出 4HZend;architecture one of FENPIN4HZ is signal T1 : integer range 0 to 124999;signal F1M : std_logic;beginprocess(clk)beginif(clkevent and clk=1) then T1=T1+1;if(T1=124999) then F1M= not F1M;T1=0;end if
15、;end if;end process;F = F1M;end;符号图:.图 2.12 分频器符号图波形图:图 2.13 分频器波形图三. 整体仿真3.1 符号图.图 3.1 整体符号图心得体会通过这几天的课程设计,使我对 VHDL 语言有了更加深刻的了解,在书本上学的理论知识能够运用到了实践中,而课程设计做的成功,增加了我学习 EDA的兴趣,不论在以后的学习中还是工作中,EDA 肯定是我们必不可少的设计工具。通过此次课程设计我已经可以按计划将要求把简易音乐演奏器设计出来,并能实现所要的功能。在设计过程中,我遇到了许多问题,通过自己上网、查阅资料、问同学老师,解决了各个问题,并设计出所需要的要
16、求的程序代码。在设计过程中,我了解到设计程序代码的基本过程,首先建立子模块,并对各个模块进行仿真,调试,直到实现所要的功能为止。再用元件例化对顶层文件进行仿真,调试,到仿真图正确止。最后将程序代码下载到 FPGA 实验箱上。 总的来说,通过实验,我激发了 EDA 学习的兴趣,也对这门课程有了更深的理解,对 EDA 设计软件 Quarter 的使用也更加熟练。更重要的是在此次实验过程中,更好的培养了我们的具体实验的能力。又因为在在实验过程中有许多实验现象,需要我们仔细的观察,并且分析现象的原因。特别有时当实验现象与我们预计的结果不相符时,就更加的需要我们仔细的思考和分析了,并且.进行适当的调节。
17、参考文献1 张顺兴.数字电路与系统设计.第 1 版.南京:东南大学出版社,20042 王玉秀.电工电子基础实验.第 1 版.南京:东南大学出版社,20063 孙肖子.模拟电子技术基础.第 1 版.西安:西安电子科技大学出版社,2001.14 谢自美.电子线路设计实验测试.第 2 版.武昌:华中科技大学出版社,2000.75 张豫滇.电子电路课程设计.第 1 版.南京:河海大学出版社,2005.86 沈明山.EDA 技术及可编程器件应用实训,科学出版社,2004.6(4):318-3267 刘婷婷,李军.电子设计自动化(EDA).北京师范大学出版社,2007,9(2):250-2578 赵明富,
18、李立军.EDA 技术基础,北京大学出版社,2007.5(5):221-224.附录:Addr +0 +1 +2 +3 +4 +5 +6 +70 3 3 3 3 5 5 5 68 8 8 8 9 6 8 5 516 12 12 12 15 13 12 10 1224 9 9 9 9 9 9 9 932 7 7 6 6 5 5 5 640 9 9 9 10 7 7 6 648 5 5 5 6 8 8 9 956 3 3 8 8 6 5 6 864 5 5 5 5 5 5 5 572 10 10 10 12 7 7 9 980 6 8 5 5 5 5 0 088 3 5 5 3 5 6 7 996
19、6 6 6 6 6 6 5 6梁祝.104 8 8 8 9 12 12 12 10112 9 9 10 9 8 8 6 5120 3 3 3 3 8 8 8 8128 6 8 6 5 3 5 6 8136 5 5 5 5 5 5 0 0144 0 0 0 0 0 0 0 0152 0 0 0 0 0 0 0 0 空 6 秒160 10 10 10 12 13 15 15 13168 12 12 12 13 12 12 12 12176 10 10 10 12 13 15 15 13184 12 12 12 13 12 12 12 12192 12 12 12 12 12 12 10 12200
20、 12 13 13 13 12 12 12 12208 10 10 9 10 12 12 10 9+216 8 8 8 9 8 8 8 8224 10 9 8 10 9 9 9 10232 12 12 13 15 12 12 12 12240 9 9 10 12 9 10 8 6248 5 5 5 5 6 6 8 8256 9 9 9 10 8 8 8 6264 5 5 5 5 5 5 0 0茉莉花272 0 0 0 0 0 0 0 0280 0 0 0 0 0 0 0 0 空 6 秒288 10 10 10 10 11 11 12 12296 10 10 10 10 9 9 9 9304 8
21、 8 8 8 9 9 10 10312 10 10 10 7 7 7 7 7320 6 6 10 10 9 9 9 9328 6 6 10 10 9 9 9 9虫儿飞.336 6 6 10 10 9 9 9 8344 8 8 8 8 8 8 8 8352 10 9 12 12 12 12 11 10360 9 9 9 9 12 11 10 9368 12 12 12 10 9 9 9 9376 6 6 10 10 9 9 9 9384 6 6 10 10 9 9 9 9392 11 10 11 10 9 9 9 9400 11 10 11 10 15 15 9 8408 8 8 8 8 8 8 8 8416 0 0 0 0 0 0 0 0 空 3 秒