1、VHDL音乐播放器洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 EDA技术与VHDL 设计题目 音乐播放器的设计与仿真 专 业 通信工程 班 级 B1105 学 号 B1105 姓 名 完成日期 2014年12月22日 前言随着科学技术的进步,电子器件和电子系统设计方法日新月异,电子设计自动化(ElectronicsDesignAutomation,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设计提供软、硬件协同设计工具。(6)建立并设计工具框架结构的集成化设计
4、环境,以适应当今ASIC规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。总而言之,EDA技术的出现,给电子信息产业带来了革命性的变革。一. 设计任务及要求本次课程设计要求使用EDA工具,设计实现简易音乐播放器,理解音名与频率的关系及数控分频原理,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。用VHDL语言设计乐音的节拍与音符产生电路;用VHDL语言设计分频系数、音符显示数据产生电路;用VHDL语言设计可控分频器电路;理解简易音乐播放器总体设计方案。掌握基本的VHDL语言;理解音乐播放电路设计方案。掌握用VHDL语言设计节拍与音符
5、产生电路;掌握用VHDL语言设计分频系数、音符显示数据产生电路;掌握用VHDL语言设计可控分频器电路。设计结果:原理图与原程序、电路仿真图、能在实训系统上播放悦耳动听的音乐。二. 设计实现2.1 准备知识在本次设计中采用了梁祝 茉莉花 虫儿飞作为要播放的乐曲,根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为1拍。将1拍的时长定为0.25秒,则只需要再提供一个4Hz的时钟频率即可产生1拍的时长,演奏的时
6、间控制通过ROM查表的方式来完成。对于占用时间较长的节拍,如全音符为4拍(重复4),2/4音符为2拍(重复2),1/4音符为1拍(重复1)。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本设计中选取4MHz的基准频率。表2-1为简谱中音名与频率的对应关系。表2.1 乐谱编码和乐音频率音符编码频率f分频数106/f计数值(106/2f)-1低音11262106/26219
7、0722294106/294169933330106/330151444349106/349143155392106/392127466440106/440113577494106/4941011中音18523106/52395529587106/587850310659106/659757411698106/698715512784106/784636613880106/880567714988106/988505高音1151047106/10474762.2乐曲演奏电路的结构示意2.3乐曲演奏电路的子结构顶层结构所包含的模块分别有地址计数器模块(ADDR)、乐音分频器模块(SPEAKER)
8、、数据存储器(YP)以下便是对各个子模块的分析。2.3.1 地址计数器模块1. 地址计数器功能在此模块中设置了一个9位二进制计数器(计数最大值为512),这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25s,恰好为当全音符设为1s时。例如,梁祝乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即为1s时间,相应地所对应“1”音符分频预置数为1409在ADDR的输入端停留了1s。随着ADDR中的计数器按4Hz的时钟频率做加法计数时,乐谱逐次被选取,梁祝乐曲就开始自然连续的演奏起来了。2. 程序代码LIBRARY ieee;USE IEEE.STD_LOGIC_1164.AL
9、L;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDR IS PORT (clk : IN STD_LOGIC; A : BUFFER STD_LOGIC_VECTOR(8 DOWNTO 0);END;ARCHITECTURE ONE OF ADDR ISBEGIN PROCESS (clk) BEGIN IF (clkevent AND clk = 1) THEN A temp temp temp temp temp temp temp temp temp temp temp temp temp temp temp=2048; end case; end
10、process; process(clk) begin if(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
11、 数据仿真1. 符号图图2.8 存储器和地址计数器符号图2. 波形图图2.9 存储器存入的数据存储器存入了梁祝 茉莉花 虫儿飞 三首音乐,最小编程单元是八分音符即每个数字占0.37秒。每首歌结束之后空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);- 输出1MHZe
12、nd;architecture one of fenpin20 is signal T1 : integer range 0 to 10-1;signal F1M : std_logic;begin process(clk) begin if(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。波形图中c
13、lk周期设置为1ns,则cout1的周期是20ns实现20分频。2. 1M分频4hz程序代码:library ieee;use ieee.std_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;begin process(clk) begin if(clkev
14、ent and clk=1) then T1=T1+1; if(T1=124999) then F1M= not F1M;T1=0;end if; end if; end process;F = F1M;end;符号图:图2.12 分频器符号图波形图:图2.13 分频器波形图三. 整体仿真3.1 符号图图3.1 整体符号图心得体会通过这几天的课程设计,使我对VHDL语言有了更加深刻的了解,在书本上学的理论知识能够运用到了实践中,而课程设计做的成功,增加了我学习EDA的兴趣,不论在以后的学习中还是工作中,EDA肯定是我们必不可少的设计工具。通过此次课程设计我已经可以按计划将要求把简易音乐演奏器设
15、计出来,并能实现所要的功能。在设计过程中,我遇到了许多问题,通过自己上网、查阅资料、问同学老师,解决了各个问题,并设计出所需要的要求的程序代码。在设计过程中,我了解到设计程序代码的基本过程,首先建立子模块,并对各个模块进行仿真,调试,直到实现所要的功能为止。再用元件例化对顶层文件进行仿真,调试,到仿真图正确止。最后将程序代码下载到FPGA实验箱上。总的来说,通过实验,我激发了EDA学习的兴趣,也对这门课程有了更深的理解,对EDA设计软件Quarter的使用也更加熟练。更重要的是在此次实验过程中,更好的培养了我们的具体实验的能力。又因为在在实验过程中有许多实验现象,需要我们仔细的观察,并且分析现
16、象的原因。特别有时当实验现象与我们预计的结果不相符时,就更加的需要我们仔细的思考和分析了,并且进行适当的调节。参考文献1 张顺兴.数字电路与系统设计.第1版.南京:东南大学出版社,20042 王玉秀.电工电子基础实验.第1版.南京:东南大学出版社,20063 孙肖子.模拟电子技术基础.第1版.西安:西安电子科技大学出版社,2001.14 谢自美.电子线路设计实验测试.第2版.武昌:华中科技大学出版社,2000.75 张豫滇.电子电路课程设计.第1版.南京:河海大学出版社,2005.86 沈明山.EDA技术及可编程器件应用实训,科学出版社,2004.6(4):318-3267 刘婷婷,李军.电子
17、设计自动化(EDA).北京师范大学出版社,2007,9(2):250-2578 赵明富,李立军.EDA技术基础,北京大学出版社,2007.5(5):221-224附录:Addr+0+1+2+3+4+5+6+7梁祝03333555688889685516121212151312101224999999993277665556409991077664855568899563388656864555555557210101012779980685555008835535679966666665610488891212121011299109886512033338888128686535681365
18、555550014400000000空6秒152000000001601010101213151513茉莉花1681212121312121212176101010121315151318412121213121212121921212121212121012200121313131212121220810109101212109+2168889888822410981099910232121213151212121224099101291086248555566882569991088862645555550027200000000空6秒280000000002881010101011111212虫儿飞296101010109999304888899101031210101077777320661010999932866101099993366610109998344888888883521091212121211103609999121110936812121210999937666101099993846610109999392111011109999400111011101515984088888888841600000000空3秒
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1