已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I摘要凌阳,拇指凌阳根据国家发改委与专业教学委员会对教育机构的要求,拇指为培养适应我国21世纪国民经济发展的电子设计人才;同时基于国家教委面向21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果。食指要求高等本科在校学生能够自己动手完成简单的数字器件设计。食指凌阳,拇指凌阳本次设计在自己手动焊接简易的PFGA板子上实现,拇指并且在QUSRTUSII凌阳,拇指凌阳90上利用VHDL设计数控分频器电路,拇指利用数控分频原理设计音乐硬件演奏电路,拇指并制定LPMROM存储音乐数据,拇指以“梁祝”乐曲为例,拇指将音乐数据存储到LPMROM,拇指就达到了已纯硬件的手段来实现乐曲演奏的效果,拇指只要修改LPMROM所存储的音乐数据,拇指将其转换为其他的音乐数据,拇指再重新制定LPMROM,拇指在连接到程序中就可以实现其他与取得演奏。食指凌阳,拇指凌阳本次设计采用的FPGA主芯片位ALTERA公司的FLEX系列的EPF10K10LC844。食指由于板子是自己手动在万用板上焊接的所以只焊接了必要的外设如蜂鸣器和LED。食指凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳关键词凌阳,拇指凌阳FPGA;音乐播放器;QUARTUSII;VHDL;凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳目录凌阳,拇指凌阳凌阳,拇指凌阳摘要I凌阳,拇指凌阳凌阳,拇指凌阳第一章凌阳,拇指凌阳前言2凌阳,拇指凌阳11关于EDA技术2凌阳,拇指凌阳12凌阳,拇指凌阳关于VHDL2凌阳,拇指凌阳13凌阳,拇指凌阳关于EDA工具3凌阳,拇指凌阳14凌阳,拇指凌阳有关本次课程设计3凌阳,拇指凌阳第二章凌阳,拇指凌阳设计实现4凌阳,拇指凌阳21音乐演奏电路原理4凌阳,拇指凌阳211音符频率的获得4凌阳,拇指凌阳212乐曲节奏的控制5凌阳,拇指凌阳213乐谱发生器5凌阳,拇指凌阳214乐曲演奏电路原理框图5凌阳,拇指凌阳22音乐硬件演奏电路的设计实现5凌阳,拇指凌阳221各个模块的功能简介5凌阳,拇指凌阳222凌阳,拇指凌阳MUSIC模块6凌阳,拇指凌阳23地址发生器模块8凌阳,拇指凌阳231地址发生器的VHDL设计8凌阳,拇指凌阳232波形仿真9凌阳,拇指凌阳24分频预置数模块9凌阳,拇指凌阳241分频预置数模块的VHDL设计9凌阳,拇指凌阳242波形仿真10凌阳,拇指凌阳25十六进制模块11凌阳,拇指凌阳251十六进制模块的VHDL设计11凌阳,拇指凌阳252波形仿真11凌阳,拇指凌阳26数控分频模块12凌阳,拇指凌阳261数控分频模块的VHDL设计12凌阳,拇指凌阳262凌阳,拇指凌阳波形仿真13凌阳,拇指凌阳27凌阳,拇指凌阳分频模块13凌阳,拇指凌阳28顶层模块15凌阳,拇指凌阳结论17凌阳,拇指凌阳参考文献18凌阳,拇指凌阳凌阳,拇指凌阳基于FPGA的音乐播放器的设计2第一章凌阳,拇指凌阳前言凌阳,拇指凌阳11关于EDA技术凌阳,拇指凌阳随着科学技术的进步,拇指电子器件和电子系统设计方法日新月异,拇指电子设计自动化(ELECTRONICS凌阳,拇指凌阳DESIGN凌阳,拇指凌阳AUTOMATION,拇指EDA)技术正是适应了现代电子产品设计的要求,拇指吸收了多学科最新成果而形成的一门新技术。食指现如今掌握EDA技术是电子信息类专业的学生、工程技术人员所必备的基本能力和技能。食指凌阳,拇指凌阳传统电子电路的设计,拇指首先要对系统进行分析,拇指然后按功能对系统进行划分,拇指接下来就要选择特定芯片,拇指焊接成PCB电路板,拇指最后对成品PCB电路板进行调试。食指这样的设计没有灵活性可言,拇指搭成的系统需要的芯片种类多且数目大,拇指而且对于电路图的设计和电路板的设计都需要很大的工作量,拇指工作难度也很高。食指然而,拇指随着可编程器件和EDA技术的发展,拇指传统设计的劣势被克服,拇指采用可编程逻辑器件基于芯片的设计方法,拇指期间的内部逻辑和引脚可以由设计者自行决定,拇指大大提高了设计的灵活性,拇指提高了工作效率;同时,拇指将系统集成在一个芯片上的设计,拇指使系统具有体积小、功耗低、可靠性高等特点。食指凌阳,拇指凌阳EDA技术的发展大致经历了三个阶段20世纪70年代的CAD(计算机辅助设计)阶段、20世纪80年代的CAE(计算机辅助工程)阶段、20世纪90年代后的EDA(电子设计自动化)阶段。食指以下主要介绍第三个阶段。食指凌阳,拇指凌阳EDA技术即电子设计自动化技术,拇指它是以可编程逻辑器件PLD为载体,拇指以硬件描述语言HDL为主要的描述方式,拇指以EDA软件为主要的开发软件的电子设计过程。食指它主要采用“自顶向下”的设计方法,拇指设计流程主要包括设计输入、综合、仿真、适配、下载。食指EDA技术主要有以下特征凌阳,拇指凌阳1高层综合的理论和方法取得进展,拇指从而将EDA设计层次由RT级提高到了系统级,拇指并推出了相应的系统级综合优化工具,拇指大大缩短了复杂ASIC的设计周期。食指凌阳,拇指凌阳2采用硬件描述语言来描述10万门以上的设计,拇指并形成了VHDL和VERILOGHDL两种标准硬件描述语言。食指凌阳,拇指凌阳3采用平面规划技术对逻辑综合和物理版图设计联合管理,拇指做到在逻辑设计综合早期阶段就考虑到物理设计信息的影响。食指凌阳,拇指凌阳4可测性综合设计。食指凌阳,拇指凌阳5为带有嵌入式IP核的ASIC设计提供软、硬件协同设计工具。食指凌阳,拇指凌阳6建立并行设计工具框架结构的集成化设计环境,拇指以适应当今ASIC规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。食指凌阳,拇指凌阳总而言之,拇指EDA技术的出现,拇指给电子信息产业带来了革命性的变革。食指凌阳,拇指凌阳12关于VHDL凌阳,拇指凌阳VHDL是一种硬件描述语言,拇指它可以对电子电路和系统的行为进行描述,拇指基于这种描述,拇指结合相关的软件工具,拇指可以得到所期望的实际电路与系统。食指凌阳,拇指凌阳使用VHDL语言描述的电路,拇指可以进行综合和仿真。食指然而,拇指值得注意的是,拇指尽管所有VHDL代码都是可仿真的,拇指但并不是所有代码都能综合。食指凌阳,拇指凌阳VHDL被广泛使用的基本原因在于它是一种标准语言,拇指是与工具和工艺无关的,拇指从而可以方便地进行移植和重用。食指VHDL两个最直接的应用领域是可编程逻辑器件PLD和专用集成电路ASIC,拇指其中可编程逻辑器件包括复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA。食指凌阳,拇指凌阳关于VHDL最后要说明的是与常规的顺序执行的计算机程序不同,拇指VHDL从根本上基于FPGA的音乐播放器的设计3讲是并发执行的。食指在VHDL中,拇指只有在进程PROCESS、函数FUNCTION和过程PROCEDURE内部的语句才是顺序执行的。食指凌阳,拇指凌阳13EDA工具凌阳,拇指凌阳目前有多种EDA工具支持采用VHDL进行电路综合、仿真以及实现。食指比较常见的是ALTERA公司的QUARTUS开发平台和XILINX公司的ISE开发平台。食指这些平台中使用的综合工具和仿真工具通常由专业的EDA厂商提供。食指本次设计中所使用的平台正是QUARTUS72,拇指它是ALTERA公司提供的一套集成了编译、布局布线和仿真工具在内的综合开发环境。食指它能完成从代码输入到编译到仿真再到物理实现的全部设计流程。食指凌阳,拇指凌阳14有关于本次课程设计凌阳,拇指凌阳本次课程设计要求使用EDA工具,拇指设计实现简易音乐演奏器,拇指理解音名与频率的关系及数控分频原理,拇指经过对整体进行模块化分析、编程、综合、仿真及最终下载,拇指完整实现简易音乐器的播放功能。食指凌阳,拇指凌阳我们知道,拇指与利用单片机来实现乐曲演奏相比,拇指以纯硬件完成乐曲演奏电路的逻辑要复杂得多,拇指如果不借助于功能强大的EDA工具与硬件描述语言,拇指仅凭传统的数字逻辑技术,拇指即使最简单的演奏电路也难以实现。食指凌阳,拇指凌阳在后面的章节中会详细介绍利用EDA技术实现简易音乐演奏器的过程。食指凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳基于FPGA的音乐播放器的设计4第二章凌阳,拇指凌阳设计实现凌阳,拇指凌阳21音乐演奏电路原理凌阳,拇指凌阳先介绍一下硬件电路的发声原理。食指声音的频谱范围约在几十到几千赫兹,拇指若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,拇指接上扬声器就能发出相应频率的声音。食指乐曲中的每一音符对应着一个确定的频率,拇指要想FPGA发出不同音符的音调,拇指实际上只要控制它输出相应音符的频率即可。食指乐曲都是由一连串的音符组成,拇指因此按照乐曲的乐谱依次输出这些音符所对应的频,拇指就可以在扬声器上连续地发出各个音符的音调。食指而要准确地演奏出一首乐曲,拇指仅仅让扬声器能够发生是不够的,拇指还必须准确地控制乐曲的节奏,拇指即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。食指凌阳,拇指凌阳211音符频率的获得凌阳,拇指凌阳多个不同频率的信号可通过对某个基准频率进行分频器获得。食指由于各个音符的频率多为非整数,拇指而分频系数又不能为小数,拇指故必须将计算机得到的分频系数四舍五入取整。食指若基准频率过低,拇指则分频系数过小,拇指四舍五入取整后的误差较大。食指若基准频率过高,拇指虽然可以减少频率的相对误差,拇指但分频结构将变大。食指实际上应该综合考虑这两个方面的因素,拇指在尽量减少误差的前提下,拇指选取合适的基准频率。食指本文中选取750KHZ的基准频率。食指由于现有的高频时钟脉冲信号的频率为12MHZ,拇指故需先对其进行16分频,拇指才能获得750KHZ的基准频率。食指对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比1/分频系数)。食指为提高输出信号的驱动能力,拇指以使扬声器有足够的功率发音,拇指需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比1/2),拇指但这时的频率将是原来的1/2。食指表1中各音符的分频系数就是从750KHZ的基准频率二分频得到的375KHZ频率基础上计算得到的。食指凌阳,拇指凌阳由于最大分频系数是1274,拇指故分频器采用11位二进制计数器能满足要求,拇指乐曲中的休止符,拇指只要将分频系数设为0,拇指即初始值21112047,拇指此时扬声器不会发声。食指凌阳,拇指凌阳表21凌阳,拇指凌阳凌阳,拇指凌阳各个音符的频率及其对应的分频系数(基准频率375KHZ)音符名频凌阳,拇指凌阳率凌阳,拇指凌阳HZ分频凌阳,拇指凌阳系数计数凌阳,拇指凌阳初值音符名频凌阳,拇指凌阳率凌阳,拇指凌阳HZ分频凌阳,拇指凌阳系数计数凌阳,拇指凌阳初值休止符37500002047中音47961784681579低音12943491274773中音58823534251622低音23303961135912中音69894463791668低音33709210111036中音711363633301717低音43865989701077高音111755493191728低音53947379501197高音213537902771770低音64953767571290高音315120972481799低音7555566751372高音416094422331814中音15886976371410高音518028842081839中音2638845871480高音620270271851862中音37425745051542高音722727271651882212乐曲节奏的控制凌阳,拇指凌阳本文中的梁祝乐曲,拇指最小的节拍为1/4拍,拇指若将1拍的时间定为1秒,拇指则只需要提供一个4HZ的时钟频率即可产生1/4拍的时长(025秒),拇指对于其它占用时间较长的节基于FPGA的音乐播放器的设计5拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。食指凌阳,拇指凌阳计数时钟信号作为输出音符快慢的控制信号,拇指时钟快时输出节拍速度就快,拇指演奏的速度也就快,拇指时钟慢时输出节拍的速度就慢,拇指演奏的速度自然降低。食指凌阳,拇指凌阳213乐谱发生器凌阳,拇指凌阳本文将乐谱中的音符数据存储在LPMROM中,拇指如“梁祝”乐曲中的第一个音符为“3”,拇指此音在逻辑中停留了4个时钟节拍,拇指即1秒的时间,拇指相应地,拇指音符“3”就要在LPMROM中连续的四个地址上都存储。食指当一个4HZ的时钟来时,拇指相应地就从LPMROM中输出一个音符数据。食指凌阳,拇指凌阳214乐曲演奏电路原理框图凌阳,拇指凌阳当一个4HZ的时钟脉冲来到时,拇指乐谱发生器模块输出一个音符数据给分频系数模块,拇指分频系数模块输出此音符相应的分频系数,拇指将分频系数送给数控分频器模块,拇指当12MHZ的时钟脉冲来到时,拇指数控分频器就根据分频系数输出相应的频率即此音符所对应的发生频率给扬声器,拇指扬声器就可发出对应音符的声音来连续的4HZ的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,拇指再经过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音来。食指曲子也就流畅的播放出来了。食指凌阳,拇指凌阳22音乐硬件演奏电路的设计实现凌阳,拇指凌阳音乐硬件演奏电路主要是用VHDL语言来设计,拇指并利用QUARTUSII软件工具来编译、测试和仿真。食指凌阳,拇指凌阳221各个模块的功能简介凌阳,拇指凌阳根据顶层原理图,拇指共分为MUSIC模块、地址发生器模块、分频预置数模块、十六进制模块、数控分频模块这五个模块。食指MUSIC模块存放乐曲中的音符数据,拇指地址发生器模块作为MUSIC模块中所定制的音符数据ROM的地址发生器,拇指分频预置数模块提供分频预置数即给数控分频模块提供计数初值,拇指十六进制模块对12MHZ的时钟脉冲进行16分频,拇指得到750KHZ的频率,拇指给数控分频模块提供时钟脉冲。食指数控分频模块根据分频预置数输出各个音符所对应的频率。食指凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳222凌阳,拇指凌阳MUSIC模块凌阳,拇指凌阳MUSIC模块存放乐曲中的音符数据,拇指它是利用LPMROM来实现的,拇指将乐谱中相应的音符放在一个连续的地址上。食指它首先是编写音符数据文件,拇指将乐谱中相应的音符存放在一个连续的地址上。食指因为1拍的时间定为1秒,拇指提供的是4HZ的时钟频率(即1/4拍的整数倍),拇指则需将这个音符存储在相应次数的连续几个地址上。食指然后对音符数据进行ROM定制,拇指最后对定制好的ROM文件进行测试和仿真。食指凌阳,拇指凌阳基于FPGA的音乐播放器的设计6凌阳,拇指凌阳图21凌阳,拇指凌阳凌阳,拇指凌阳音符数据文件凌阳,拇指凌阳形成ROM中的配置数据(初始化数据)文件的方法如下在QUARTUSII中编辑MIF文件。食指首先在FILE菜单下的NEW菜单上选择MEMORY凌阳,拇指凌阳INITIALIZATION凌阳,拇指凌阳FILE命令,拇指进入编辑器,拇指然后在空格处输入以上格式的数据文件。食指如46位置处为9,拇指表示46为地址,拇指9为该地址中的数据。食指这样每读到一个地址,拇指即可输出其相应的数据。食指文件编辑好后,拇指保存时取文件名为“CMIF”,拇指存盘的路径为“工程文件夹下”。食指凌阳,拇指凌阳LIBRARY凌阳,拇指凌阳IEEE凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_1164ALL凌阳,拇指凌阳LIBRARY凌阳,拇指凌阳ALTERA_MF凌阳,拇指凌阳USE凌阳,拇指凌阳ALTERA_MFALL凌阳,拇指凌阳ENTITY凌阳,拇指凌阳C凌阳,拇指凌阳IS凌阳,拇指凌阳PORT凌阳,拇指凌阳凌阳,拇指凌阳ADDRESS凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC_VECTOR凌阳,拇指凌阳7凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳CLOCK凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳1凌阳,拇指凌阳Q凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR凌阳,拇指凌阳3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳C凌阳,拇指凌阳ARCHITECTURE凌阳,拇指凌阳SYN凌阳,拇指凌阳OF凌阳,拇指凌阳C凌阳,拇指凌阳IS凌阳,拇指凌阳SIGNAL凌阳,拇指凌阳SUB_WIRE0凌阳,拇指凌阳STD_LOGIC_VECTOR凌阳,拇指凌阳3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳COMPONENT凌阳,拇指凌阳ALTSYNCRAM凌阳,拇指凌阳GENERIC凌阳,拇指凌阳凌阳,拇指凌阳CLOCK_ENABLE_INPUT_A凌阳,拇指凌阳STRING凌阳,拇指凌阳CLOCK_ENABLE_OUTPUT_A凌阳,拇指凌阳STRING凌阳,拇指凌阳基于FPGA的音乐播放器的设计7INIT_FILE凌阳,拇指凌阳STRING凌阳,拇指凌阳INTENDED_DEVICE_FAMILY凌阳,拇指凌阳STRING凌阳,拇指凌阳LPM_HINT凌阳,拇指凌阳STRING凌阳,拇指凌阳LPM_TYPE凌阳,拇指凌阳STRING凌阳,拇指凌阳NUMWORDS_A凌阳,拇指凌阳NATURAL凌阳,拇指凌阳OPERATION_MODE凌阳,拇指凌阳STRING凌阳,拇指凌阳OUTDATA_ACLR_A凌阳,拇指凌阳STRING凌阳,拇指凌阳OUTDATA_REG_A凌阳,拇指凌阳STRING凌阳,拇指凌阳WIDTHAD_A凌阳,拇指凌阳NATURAL凌阳,拇指凌阳WIDTH_A凌阳,拇指凌阳NATURAL凌阳,拇指凌阳WIDTH_BYTEENA_A凌阳,拇指凌阳NATURAL凌阳,拇指凌阳凌阳,拇指凌阳PORT凌阳,拇指凌阳凌阳,拇指凌阳CLOCK0凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳凌阳,拇指凌阳ADDRESS_A凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC_VECTOR凌阳,拇指凌阳7凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳Q_A凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR凌阳,拇指凌阳3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳COMPONENT凌阳,拇指凌阳BEGIN凌阳,拇指凌阳Q凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳“BYPASS“,凌阳,拇指凌阳CLOCK_ENABLE_OUTPUT_A凌阳,拇指凌阳凌阳,拇指凌阳“BYPASS“,凌阳,拇指凌阳INIT_FILE凌阳,拇指凌阳凌阳,拇指凌阳“CMIF“,凌阳,拇指凌阳INTENDED_DEVICE_FAMILY凌阳,拇指凌阳凌阳,拇指凌阳“FLEX“,凌阳,拇指凌阳LPM_HINT凌阳,拇指凌阳凌阳,拇指凌阳“ENABLE_RUNTIME_MODNO“,凌阳,拇指凌阳LPM_TYPE凌阳,拇指凌阳凌阳,拇指凌阳“ALTSYNCRAM“,凌阳,拇指凌阳NUMWORDS_A凌阳,拇指凌阳凌阳,拇指凌阳256,凌阳,拇指凌阳OPERATION_MODE凌阳,拇指凌阳凌阳,拇指凌阳“ROM“,凌阳,拇指凌阳OUTDATA_ACLR_A凌阳,拇指凌阳凌阳,拇指凌阳“NONE“,凌阳,拇指凌阳OUTDATA_REG_A凌阳,拇指凌阳凌阳,拇指凌阳“CLOCK0“,凌阳,拇指凌阳WIDTHAD_A凌阳,拇指凌阳凌阳,拇指凌阳8,凌阳,拇指凌阳WIDTH_A凌阳,拇指凌阳凌阳,拇指凌阳4,凌阳,拇指凌阳WIDTH_BYTEENA_A凌阳,拇指凌阳凌阳,拇指凌阳1凌阳,拇指凌阳凌阳,拇指凌阳PORT凌阳,拇指凌阳MAP凌阳,拇指凌阳凌阳,拇指凌阳CLOCK0凌阳,拇指凌阳凌阳,拇指凌阳CLOCK,凌阳,拇指凌阳ADDRESS_A凌阳,拇指凌阳凌阳,拇指凌阳ADDRESS,凌阳,拇指凌阳Q_A凌阳,拇指凌阳凌阳,拇指凌阳SUB_WIRE0凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳SYN凌阳,拇指凌阳定制的基本步骤如下凌阳,拇指凌阳1进入QUARTUSII,拇指选菜单凌阳,拇指凌阳TOOLSMEGAWIZARD凌阳,拇指凌阳PLUGIN凌阳,拇指凌阳MANAGER,拇指选择“CREAT凌阳,拇指凌阳A凌阳,拇指凌阳基于FPGA的音乐播放器的设计8NEW”,拇指然后按“NEXT”键,拇指进入图3所示界面。食指选择LPMROM;最后在BROWSE下的栏中键入路径与输出文件名“FFPGA_MUSICCVHD”,拇指注意后缀VHD小写。食指凌阳,拇指凌阳2单击“NEXT”键,拇指将出现图4所示的界面,拇指选择ROM数据位宽度为4,拇指地址线宽为8,拇指即设置此ROM能存储8位二进制数据共64个,拇指然后进入图5所示的窗口。食指凌阳,拇指凌阳3通过在图5所示窗口的“BROWSE”钮,拇指找到ROM中的加载文件路径和文件名“FFPGA_MUSICCMIF”,拇指注意ROM元件的INCLOCK是地址锁存时钟。食指凌阳,拇指凌阳4在QUARTUSII中打开已定制的ROM文件。食指将它设置为工程,拇指并确定目标器件,拇指进行测试。食指凌阳,拇指凌阳凌阳,拇指凌阳23地址发生器模块凌阳,拇指凌阳地址发生器模块设置了一个8位二进制计数器计数最大值为138,拇指作为音符数据ROM的地址发生器。食指每来一个时钟脉冲信号CLK,拇指8位二进制计数器就计数一次,拇指ROM文件中的地址也就随着递增,拇指音符数据ROM中的音符也就一个接一个连续的取出来了。食指凌阳,拇指凌阳231地址发生器的VHDL设计凌阳,拇指凌阳这个计数器的计数频率选为4HZ,拇指即每一计数值的停留时间为025秒,拇指恰为当全音符设为1秒,拇指四四拍的4分音符持续时间。食指例如,拇指地址发生器在以下的VHDL逻辑描述中,拇指“梁祝”乐曲的第一个音符为“3”,拇指此音在逻辑中停留了4个时钟节拍,拇指即1秒时间。食指那么相应随着程序4中的计数器按4HZ的时钟频率作加法计数时,拇指即随地址递增时,拇指将从音符数据ROM中将连续取出4个音符“3”通过TONEINDEX30端口输向分频预置数模块。食指这样梁祝乐曲中的音符就一个接一个的通过TONEINDEX30端口输向分频预置数模块。食指程序如下凌阳,拇指凌阳凌阳,拇指凌阳LIBRARY凌阳,拇指凌阳IEEE凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_1164ALL凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_UNSIGNEDALL凌阳,拇指凌阳ENTITY凌阳,拇指凌阳NOTETABS凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳PORT凌阳,拇指凌阳CLK凌阳,拇指凌阳凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳TONEINDEX凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳ARCHITECTURE凌阳,拇指凌阳ONE凌阳,拇指凌阳OF凌阳,拇指凌阳NOTETABS凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳COMPONENT凌阳,拇指凌阳凌阳,拇指凌阳C凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳PORTADDRESS凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC_VECTOR7凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳CLOCK凌阳,拇指凌阳凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳Q凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳COMPONENT凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳SIGNAL凌阳,拇指凌阳COUNTER凌阳,拇指凌阳凌阳,拇指凌阳STD_LOGIC_VECTOR7凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳BEGIN凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳CNT8凌阳,拇指凌阳凌阳,拇指凌阳PROCESSCLK凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳BEGIN凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳IF凌阳,拇指凌阳COUNTER“11111111“THEN凌阳,拇指凌阳COUNTERCOUNTER,QTONEINDEX,CLOCKCLK凌阳,拇指凌阳END凌阳,拇指凌阳232波形仿真凌阳,拇指凌阳将所编写的地址发生器模块的程序设为工程,拇指选用FLEX10K中的EPF10K10LC844为目标芯片进行仿真。食指仿真结果如下图凌阳,拇指凌阳凌阳,拇指凌阳图22凌阳,拇指凌阳地址发生器模块的仿真波形图凌阳,拇指凌阳程序的功能是每来一个时钟,拇指地址值递增1,拇指并将这个地址上所存储的音符数据输出。食指从图中可以看到,拇指当CLK来了一个时钟脉冲,拇指输出相应地址上的音符3,拇指凌阳,拇指凌阳地址值递增1;接下来的三个时钟脉冲来时,拇指输出也是音符3,拇指地址连续递增3次;再下一个脉冲来时,拇指输出为音符5等等都符合模块中的音符数据文件中的地址/数据表。食指这个仿真波形图证明了程序实现了地址发生器模块的功能。食指凌阳,拇指凌阳凌阳,拇指凌阳24分频预置数模块凌阳,拇指凌阳分频预置数模块是乐曲简谱码对应的分频预置数查表电路。食指它提供了每个音符所对应的分频预置数,拇指即给数控分频模块提供计数初值,拇指这里以“梁祝”乐曲为例,拇指列出了在这个乐曲中所用到的13个音符的分频预置数。食指凌阳,拇指凌阳241分频预置数模块的VHDL设计凌阳,拇指凌阳在这个模块的VHDL逻辑描述中设置了“梁祝”乐曲中全部音符所对应的分频预置数,拇指共13个,拇指每一音符的停留时间由音乐节拍和地址发生器模块的时钟(CLK)的输入频率决定,拇指在此为4HZ。食指这13个值的输出由程序3的4位输入值INDEX30确定。食指输向程序中INDEX30的值又由地址发生器模块的输出TONEINDEX30的输出值和持续时间决定。食指程序如下凌阳,拇指凌阳LIBRARY凌阳,拇指凌阳IEEE凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_1164ALL凌阳,拇指凌阳ENTITY凌阳,拇指凌阳TONETABA凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳PORT凌阳,拇指凌阳INDEX凌阳,拇指凌阳凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC_VECTOR3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳CODE凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳HIGH凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳TONE凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC_VECTOR10凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳END凌阳,拇指凌阳ARCHITECTURE凌阳,拇指凌阳ONE凌阳,拇指凌阳OF凌阳,拇指凌阳TONETABA凌阳,拇指凌阳IS凌阳,拇指凌阳BEGIN凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳SEARCH凌阳,拇指凌阳凌阳,拇指凌阳PROCESSINDEX凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳BEGIN凌阳,拇指凌阳基于FPGA的音乐播放器的设计10凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳CASE凌阳,拇指凌阳INDEX凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳WHEN凌阳,拇指凌阳“0000“TONETONETONETONETONETONETONETONETONETONETONETONETONE凌阳,拇指凌阳NULL凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳CASE凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳END凌阳,拇指凌阳PROCESS凌阳,拇指凌阳ENDEND凌阳,拇指凌阳凌阳,拇指凌阳242凌阳,拇指凌阳波形仿真凌阳,拇指凌阳将所编写的分频预置数模块的程序设为工程,拇指仿真选用的目标芯片是EPF10K10LC844。食指仿真结果如下图凌阳,拇指凌阳凌阳,拇指凌阳图23凌阳,拇指凌阳分频预置数模块的仿真波形图凌阳,拇指凌阳模块的功能是输出各个音符所对应的分频预置数,拇指由上面的仿真波形图可看到当INDEX是“0000”,拇指TONE输出为2047,拇指即休止符的分频预置数;当INDEX是“0101”时,拇指凌阳,拇指凌阳TONE输出为1197即低音5的分频预置数;当INDEX是“1111”时,拇指凌阳,拇指凌阳TONE输出为1728即高音1的分频预置数等等其它状态时,拇指TONE分别输出相应音符的分频预置数。食指这个仿真波形图证明了程序实现了模块的功能。食指凌阳,拇指凌阳凌阳,拇指凌阳25十六进制模块凌阳,拇指凌阳由其CLK端输入一具有较高频率的信号(这里是12MHZ)的信号,拇指通过分频后由COUT输出。食指这里是对12MHZ的信号进行16分频得到750KHZ的信号。食指750KHZ的时钟脉冲信号是给数控分频模块提供时钟信号。食指凌阳,拇指凌阳251十六进制模块的VHDL设计凌阳,拇指凌阳基于FPGA的音乐播放器的设计11用以下的VHDL逻辑描述来实现十六进制模块的功能。食指凌阳,拇指凌阳LIBRARY凌阳,拇指凌阳IEEE凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_1164ALL凌阳,拇指凌阳USE凌阳,拇指凌阳IEEESTD_LOGIC_UNSIGNEDALL凌阳,拇指凌阳ENTITY凌阳,拇指凌阳CNT16凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳PORT凌阳,拇指凌阳凌阳,拇指凌阳CLK凌阳,拇指凌阳凌阳,拇指凌阳IN凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳COUT凌阳,拇指凌阳凌阳,拇指凌阳OUT凌阳,拇指凌阳STD_LOGIC凌阳,拇指凌阳END凌阳,拇指凌阳CNT16凌阳,拇指凌阳ARCHITECTURE凌阳,拇指凌阳SHILIU凌阳,拇指凌阳OF凌阳,拇指凌阳CNT16凌阳,拇指凌阳IS凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳BEGIN凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳PROCESSCLK凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳VARIABLE凌阳,拇指凌阳CQI凌阳,拇指凌阳凌阳,拇指凌阳STD_LOGIC_VECTOR3凌阳,拇指凌阳DOWNTO凌阳,拇指凌阳0凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳BEGIN凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳IF凌阳,拇指凌阳CQI“1111“凌阳,拇指凌阳THEN凌阳,拇指凌阳CQI“0000“凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳ELSIF凌阳,拇指凌阳CLKEVENT凌阳,拇指凌阳AND凌阳,拇指凌阳CLK1凌阳,拇指凌阳THEN凌阳,拇指凌阳CQICQI1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购部进料及时性制度
- 采购部采买制度范本
- 采购配件登记管理制度
- 采购隆价率管理制度
- 采购验收内控流程制度
- 金融公司采购评审制度
- 钢管绿色采购标准制度
- 2025年前台沟通技巧专项试卷
- 高压脉冲工况下低失调轨对轨比较器设计与应用
- 第19章 二次根式 单元测试(原卷版A4)-人教版(2024)八下
- GB/T 4925-2008渔网合成纤维网片强力与断裂伸长率试验方法
- GB/T 39363-2020金银花空气源热泵干燥通用技术要求
- 复工复产安全检查表
- 第三章表面活性剂的功能与应用
- 烹饪化学教程课件
- 心理学主要理论流派课件讲义
- 延1024井马五层酸化压裂设计
- 采矿学I第四章-矿石的损失和贫化课件
- 部编版六年级下册道德与法治全册优秀课件
- 中国经典广告案例评析之公益广告课件
- EPC合同条件(银皮书)-1999
评论
0/150
提交评论