马佳佳 乐曲演奏_第1页
马佳佳 乐曲演奏_第2页
马佳佳 乐曲演奏_第3页
马佳佳 乐曲演奏_第4页
马佳佳 乐曲演奏_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要随着微电子技术、集成技术和计算机技术的迅速开展,电子线路数字化已经成为一个开展趋势,数字化电子系统的设计方法和手段发生了很大的变化。EDA 技术主要包括三个局部:大规模的可编程逻辑器件,软件开发工具和输入方式。可编程逻辑器件是一种由用户编程来实现各种逻辑功能的新型逻辑器件,主要包括 FPGA 和 CPLD 两大类。软件开发工具有 Altera 的 MAX+plus 、Lattice 的 ispLEVER、Xilinx 的 Foundation Series 等。常用的硬件描述语言有 VHDL 语言、Verilog 语言和 ABEL 语言。由于科学技术的开展,基于 EDA 技术的设计方法也成

2、为现代电子系统设计的主流。特别是可编程逻辑器件的功能和容量的不断扩大,如FPGA(Field Programmable Gate Array,现场可编程门阵列)使集成电路的设计进入片上系统(System on a Chip,SOC)或可编程片上系统(System on a Programmable Chip,SOPC)的设计时代。同时采用超高速集成电路硬件描述语言VHDL (Very High Speed Integrated Circuit Hardware Description Language),其具有多层次描述系统硬件功能的能力,既支持模块化设计,也支持层次化设计,使各种数字化电子系

3、统的设计通过描述芯片功能实现系统功能,从而有效地缩短了产品开发周期,减少了设计芯片的数量,缩小了系统体积,降低了系统能耗,提高了系统的灵活性和可靠性。关键词关键词 FPGA, 音乐节拍发生器模块,音乐译码电路模块,数控分频模块 AbstractWith microelectronics technology, integrated technology and the computer technology rapid development, electronic circuit of digital has become a development trend, and the metho

4、d and means of digital electronic system design have great changes, too . EDA technology mainly includes three parts: large-scale programmable logic devices, software development tools and input methods. Programmable logic devices is a new logic devices by coming true all kinds of logic function, in

5、cluding the FPGA and CPLD . A software development tool includes Altera MAX + plus , Lattice of ispLEVER, Xilinx of Foundation Series, and so on. Common hardware description language have VHDL language, Verilog language and ABEL language.Due to the development of science and technology, the design m

6、ethod which is based on EDA has become the mainstream of the modern electronic system design. Especially the function and capacity of Programmable logic devices continues to expand, such as FPGA (Field Programmable Gate Array) make integrated circuit design into the Chip System (System on a Chip, SO

7、C) or Programmable Chip System (System on a Programmable Chip, SOPC) design era. At the same time the ultra-high Speed Integrated Circuit Hardware Description Language VHDL (Very High Speed Integrated Circuit Hard-ware Description Language), it has the ability that multi-level describe system hardwa

8、re, supports both modular design, also support the hierarchical design, make all kinds of digital electronic system design through describing chip functions to come true the system function, so cut short product development cycle, reduce the number of chip design, the system volume and the energy co

9、nsumption of system, and improve the flexibility and reliability of the system.Keywords FPGA, the music rhythm generator module, music decoder circuit module ,numerical control points frequency modules目 录摘要.IABSTRACT .II1 引言.11.1 可编程专用集成电路 ASIC.11.1.1 概述.11.1.2 主要特点.11.1.3 开展前景.11.2 EDA 技术 .11.2.1 概

10、述.11.2.2 EDA 技术的开展趋势.22 乐曲演奏系统设计原理分析.32.1 乐曲演奏根本要求.32.2 乐曲演奏原理.32.3 音符频率的获得.42.4 音符编码的设计分析.52.5 控制音长的节拍发生器.63 系统硬件设计.73.1 FPGA 的介绍 .73.2 FLEX 系列的结构特点.73.2.1 概述.73.2.2 FLEX 的特点.74 乐曲硬件演奏电路的层次化设计方案.94.1 音乐节拍发生器 NOTETABS.94.2 音符译码电路 TONETABA模块.114.3 数控分频模块 SPEAKERA设计.134.4 乐曲硬件演奏电路的顶层设计和仿真.15总结.18致谢.19

11、参考文献.20附录 1 程序清单.21附录 2 梁祝简谱.291 引言1.1 可编程专用集成电路 ASIC1.1.1 概述可编程 ASIC 包括简单可编程 ASIC 和复杂可编程 ASIC 。现场可编程 ASIC 主要是指现场可编程门阵列 FPGA,它是与传统 PLD 不同的一类可编程 ASIC。它类似于半定制门阵列的通用结构,即由逻辑功能排列成的阵列组成,并由可编程的互连资源连接这些逻辑功能块来实现所需的设计。从某种意义上说,FPGA 是一种将门阵列的通用结构与PLD 的现场可编程性融于一体的新型器件,具有集成度高、通用性好、设计灵活、编程方便、产品上市快等多方面的优点。.2 主要特点.3

12、开展前景1.为迎接系统级芯片时代,向密度更高、速度更快、频带更宽的百万门方向开展5.为了方便用户设计和特殊功能应用,向嵌入通用或标准功能模块方向开展6.为了适应全球环保潮流,向低电压低功耗的绿色元件方向开展1.2 EDA 技术.1 概述EDA(Electronic Design Automation)即电子设计自动化,EDA 技术指的是以计算机硬件和系统软件为根本工作平台,继承和借鉴前人在电路和系统、数据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最新科学技术成果而研制成的商品化通用支撑软件和应用程序包。EDA 旨在帮助电子工程师在计算机上完成电路的功能设计、逻辑设计、性能分析、时

13、序测试直至 PCB印刷电路板的自动设计。EDA 技术根本特征:1.“自顶向下的设计方法 2.硬件描述语言 3.逻辑综合优化 4.开放性和标准化 5.库Library的引入1.2.2 EDA 技术的开展趋势1. 软件开发工具的开展趋势(1)具有混合信号处理能力的 EDA 工具(2).有效的仿真工具的开展(3).理想的设计综合工具的开发(1).输入方式简便化趋势(2).输入方式高效化和统一化趋势 2 乐曲演奏系统设计原理分析 乐曲演奏根本要求利用 FPGA,设计一个乐曲硬件演奏电路。演奏时可选择键盘输入乐曲或者已存入的乐曲,并配以一个小扬声器。乐曲的 12 平均率规定:每 2 个八度音(如简谱中的

14、中音 1与高音 1)之间的频率相差 1 倍。在 2 个八度音之间,又可分为 12 个半音,每 2 个半音的频率比为(1.059463)。另外,音符 A(简谱中的低音 6)的频率为 440Hz,音符 B 到 C122之间、E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 l 至高音 1 之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。任意选择歌曲进行设计,并加前奏 5353111。 乐曲演奏原理声音的频谱范围一般在几十到几千赫兹,利用程序来控制 FPGA 芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一个音

15、符对应着一个确定的频率,因此,要想发出不同音符的音调,只要能控制输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以往扬声器上连续地发出各个音符的音调 。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间,也就是节拍。设计的关键是要准确地产生乐曲中每个音符的发音频率,并根据乐曲要求按音符需要的节拍输出,这是乐曲能够演奏的两个关键因素,但是以纯硬件完成演奏电路比利用微处理器来实现乐曲演奏要复杂的多,如果不凭借 EDA 工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实

16、现。乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。数控分频器对 FPGA 的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。乐曲演奏电路的结构框图如下所示:基准时钟模式选择手动输入时钟电路音乐节拍产生电路数控分频器电路查符查表电路图 2.1 乐曲演奏电路结构方框图 音符频率的获得音乐的 12 平均率规定:每 2 个八度音(如简谱中的中音 1 与高音 1)之间的频率相差1 倍。在 2 个八度音之间,又可分为 12 个半音,每 2

17、个半音的频率比为(1.059463)。122另外,音符 A(简谱中的低音 6)的频率为 440Hz,音符 B 到 C 之间、E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 l 至高音 1 之间每个音符的频率。如表所示:表 简谱中的音名与频率的关系音名频率/Hz音名频率/Hz音名频率/Hz低音 1中音 1高音 1低音 2中音 2高音 2低音 3中音 3高音 3低音 4中音 4高音 4低音 5中音 5高音 5低音 6440中音 6880高音 61760低音 7中音 7高音 7 由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整。假设基准频率过低,那么

18、由于分频系数过小,四舍五入取整后的误差较大,假设基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍适宜的基准频率。本例中选取 4MHz 的基准频率,再对 4MHz 通过数控分频器将根据高、中、低音音符编码分频成各音符所需要的声音频率的 2 倍,由于数控分频器输出的波形是脉宽极窄的脉冲波,为减小输出偶次谐波分量和更好的驱动扬声器发声,最后在到达扬声器之前再进行一次二分频,从而生成各音符对应频率的方波输出,以成功完成乐曲演奏的功能。各音阶频率计相应的分频系数如表 2.2 所示。表 2.2 中的分频系数就是从 4MHz 频率2 分频得到的

19、 2MHz 频率根底上计算得出的。分频系数与频率关系如下:音阶频率分频系数z2MH 表 2.2 各音阶频率对应的分频值音名分频系数初始值音名分频系数初始值音名分频系数初始值C 低音 17644547中音 137584433高音 119116280D 低音 268101381中音 234054786高音 217036488E 低音 360672124中音 330345157高音 315176674F 低音 457272464中音 428635328高音 414326759G 低音 551023089中音 525515640高音 512766915A 低音 645453646中音 62273591

20、8高音 611367055B 低音 740504141中音 720256166高音 710127179由于最大分频系数为 7644,故采用 13 位二进制计数器已能满足分频要求。由此我们计算出各音阶的初值,初值计算方法如下所示:计数器采用 13 位分频系数初值132在表 2.2 中,除了给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为 0,即初始值为 8191 即可,此时扬声器将不会发声。对于不同的分频系数,加载不同的初始值即可。用加载初始值而不是将分频输出译码反应,可以有效地减少本钱设计占用可编程逻辑器件的资源,也是同步计数器地一个常用设计

21、技巧。 音符编码的设计分析 在动态显示乐曲演奏器的设计中,采用音符编码输出的方式,即乐曲中每一个高、中、低音音符对应着不同的编码,由编码确定对应音符的输出频率,同时控制编码输出的速度,决定音符的持续时间,也就是控制每个音符在乐曲中的节拍,从而到达乐曲演奏的目的,与此同时可以根据动态输出的编码来确定显示演奏乐曲的高、中、低音调及音符。各音符对应的 13 位编码如下表所示。表 各音阶频率对应的 13 位编码音名预置数音名预置数音名预置数C 低音 10001000100011中音 1高音 1D 低音 2中音 2高音 2E 低音 3中音 3高音 3F 低音 4中音 4高音 41101001100111

22、G 低音 5中音 5高音 5A 低音 6中音 6高音 6B 低音 7中音 7高音 72.5 控制音长的节拍发生器该演奏电路演奏的乐曲是“梁祝片段,其最小的节拍为 1 拍。将 1 拍的时长定为0.25s,那么只需要再提供一个 4Hz 的时钟频率即可产生 1 拍的时长,演奏的时间控制通过 ROM 查表的方式来完成。对于占用时间较长的节拍一定是拍的整数倍 ,如全音符为 4 拍(重复 4),2/4 音符为 2 拍重复 2 ,1/4 音符为 1 拍重复 1 。要求演奏时能循环进行,因此需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。该计数器控制真值表按顺序输出简谱。3 系统硬件设计

23、FPGA 的介绍现场可编程门阵列FPGA在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻辑功能。FPGA 的功能由逻辑结构的配置数据决定,在工作时,这些配置数存放在片内的 SRAM 或者熔丝图上。使用 SRAM 的 FPGA,在工作前需要从芯片外部加载配置数据,这些配置可以存放在片外的 EPROM 或其他存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能。FPGA 可以替代其他 PLD 器件或者各种中小规模数字逻辑芯片在数字系统中广泛应用。FPGA 也是实现各种不同逻辑功能ASIC 的有效方法。FPGA 是进行原型设计最理想的载体,原型机的最初框架和是实

24、现通过 FPGA 验证,可以降低本钱、缩短开发周期。利用 FPGA 的可重配置功能,可以在使用过程中,在不改变设计的设备的硬件电路情况下,改变设备功能。APEX系列器件的结构特征是查找表LUT和嵌入式存放器;Mercury 系列器件基于查找表结构,其特征是具有时钟数据恢复和一个性能优化的核;Excalibur 的结果特征是基于 ARM 和基于 MIPS 的硬核微处理器。每种器件系列针对具体的应用都具有各自的特点。3.2 FLEX 系列的结构特点 概述FLEX 系列是 Altera 公司推出的主流产品,具有高密度、在线配置、高速度与连续式布线结构等特点。它的集成度到达了 10 万门级,而且,它还

25、是业界首次集成了嵌入式阵列模块 EAB 的芯片。5392 个存放器;采用 0.5umCMOS SRAM 工艺制造;具有在系统可配置特性;在所有 I/O 端口中有 I/O 存放器;3.3V 或 5.0V 工作模式。所谓 EAB,实际上是一种大规模的 SRAM 资源,它可以方便地被设置为 RAM、ROM、FIFO 以及双口RAM 等存储器。EAB 的出现极大地拓展了 PLD 芯片的应用领域。 FLEX 的特点1高密度,典型门数达 10000250000,逻辑单元数为 57612160.2功能更强大的 I/O 口引脚,每一个引脚都是独立的三态门结构,具有可编程的速率控制。3嵌入式阵列块EAB ,每个

26、 EAB 提供 2K 比特位,可用来作存储器使用或用来实现逻辑功能。4逻辑单元采用查找表LUT结构。5采用连续式的快速通道互连,可精确预测信号在器件内部的延时。6实现快速加法器和计数器的专用进位链。7实现高速、多输入逻辑函数的专用级联链。FLEX10K 系列器件提供六个专用输入引脚,驱动触发器的控制输入,以保证高速、低摆率控制信号的有效分配。这些信号使用专用布线通道。4 个全局信号可由 4 个专用的输入引脚驱动,也可由内部逻辑驱动,后者可提供分频信号或内部异步清零信号。4 乐曲硬件演奏电路的层次化设计方案根据层次化的设计思路,可把乐曲硬件演奏电路分为 3 个模块,音乐节拍发生器NoteTabs

27、 模块,音符译码电路 ToneTaba 模块,数控分频模块Speakera 。4.1 音乐节拍发生器 NoteTabs 该模块将利用 FPGA 的片内 ROM 存放乐曲简谱真值表,有一个二进制计数器为乐曲数据存储器 ROM 的地址发生器。该计数器的计数频率为 4HZ,即每一个数值的停留时间为,随着 NoteTabs 中计数器按 4HZ 的时钟频率做加法计数时,即随地址增加时,乐曲数据存储器 ROM 中的音符数据,将从 ROM 中的输出口输向音符译码电路 ToneTabas,所以所存的乐曲就自然的演奏起来。其 VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_

28、1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; -音乐节拍时钟 4Hz ToneIndex : OUT INTEGER RANGE 0 TO 15 );END;ARCHITECTURE one OF NoteTabs IS SIGNAL Counter : INTEGER RANGE 0 TO 146;BEGIN CNT8 : PROCESS(clk) -音符共有 147 个,因此定义 8 位计数器 BEGIN IF Counter = 146 THEN Counter

29、 = 0; ELSIF (clkEVENT AND clk = 1) THEN Counter ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex NULL; END CASE; END PROCESS;END;图 音乐节拍发生器元件符号图由于时序仿真时,受 13 位预置数及普通计算机性能的限制,仿真时间较长,因将预置数模块修改为 4 位,其他局部对应修改。仿真图如下:图 音乐节拍发生器仿真输出波形4.2 音符译码电路 Tone

30、Taba 模块音符译码电路即音调发生器实际上是一个查表电路,放置 21 个音乐简谱对应的频率表,根据该表为数控分频模块提供所发音符频率的初始值,而此数控分频模块入口的停留时间即为此音符的节拍数,以 VHDL 程序中仅设置了“梁祝乐曲全部音符所对应的音符频率的初始值,共 12 个,每个音符停留时间由音乐节拍发生器的时钟频率决定,在此为 4Hz 信号,这 12 个值的输出由对应于音符译码电路的 4 位输入值 Index3.0确定,该值中音符的停留时间由音乐节拍发生器中的音符数据决定,该数据重复的次数为该音符的节拍数,如为 2 那么为四二拍,如为 4 那么为四四拍即全音符。 其 VHDL 源程序如下

31、:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -4 位预置数查表 CODE : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HIGH : OUT STD_LOGIC; -音乐高 8 度指示 Tone : OUT STD_LOGIC_VECTOR(12 DOWNTO 0); -音乐符对应分频13 位END;ARCHITECTURE one

32、OF ToneTaba ISBEGIN Search : PROCESS(Index) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数 WHEN 0000=ToneTone=; CODE = 0011; HIGH Tone=0; CODE = 0101; HIGH Tone=; CODE = 0110; HIGH Tone=; CODE = 0111; HIGH = 0;-4141 WHEN 10001000; HIGH = 1;-4433 WHEN 10011001; HIGH = 1;-4786 WHEN 10101010; HIGH = 1;-5157

33、WHEN 11001100; HIGH = 1;-5640 WHEN 11101110; HIGH = 1;-6166 WHEN 11111111; HIGH NULL; END CASE;END PROCESS;END;在源程序中 Index3.0是音乐节拍发生器输出的音符数据;TONE12.0是为数控分频模块提供的音符频率的初始值,为方便测试,特设置了一个音名代码显示输出 CODE3.0和音高指示信号 HIGH,可以通过一个数码管或 LED 来显示乐曲演奏时对应的音符和高音名。CODE 输出对应该音阶简谱的显示数码,HIGH 输出为高电平,指示音阶为高音或者中音,HIGH 输出为低电平时那

34、么指示音阶为低音。图 4.3 音符译码器元件符号图仿真图如下:图 音符译码器仿真输出波形4.3 数控分频模块 Speakera 设计数控分频器对 FPGA 的基准频率进行分频,得到与各个音阶对应的频率输出。数控分频模块由 13 位的加法计数器构成。当计数器计满是,产生一个进位信号 FullSpkS,该信号就是用作发音的频率信号。在计数器的预置端给定不同的初始值,其输出将产生不同的频率信号,频率信号初值 Tone 就是前级音符译码电路的输出。由分析所知低音时,Tone 值小,分频比大,进位信号 SPKS 的周期长,扬声器发出的声音低,Tone 随音乐的乐谱而变化,自动控制分频比,从而实现数控分频

35、,发生信号的频率与 Tone 成正比,这就是利用数控分频器演奏音乐的原理。通过分频后其进位信号 FullSpkS 是一周期脉冲信号,为有利于驱动扬声器,在音调输出时再进行 2 分频,将脉冲展宽,使之占空比为 50%,扬声器这样就有足够的发声功率。其 VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; -音调频率信号 12MHz Tone : IN STD_LOGIC_VECTOR(12 D

36、OWNTO 0); -音乐符对应分频 13 位 SpkS : OUT STD_LOGIC ); -声音输出END;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK : STD_LOGIC; SIGNAL FullSpkS : STD_LOGIC;BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PreCLK 13 THEN PreCLK = 1; Count4 := 0000; ELSIF clkEVENT AND clk = 1 TH

37、EN Count4 := Count4 + 1; END IF; END PROCESS; GenSpkS : PROCESS(PreCLK, Tone) -13 位预置数据控分频器 VARIABLE Count13 :STD_LOGIC_VECTOR(12 DOWNTO 0);BEGIN IF PreCLKEVENT AND PreCLK = 1 THEN IF Count13 = 16#1FFF# THEN Count13 := Tone; FullSpkS = 1; ELSE Count13 := Count13 + 1; FullSpkS = 0; END IF; END IF; EN

38、D PROCESS; DelaySpkS : PROCESS(FullSpkS) -2 分频,蜂鸣器推动电路 VARIABLE Count2 : STD_LOGIC;BEGIN IF FullSpkSEVENT AND FullSpkS = 1 THEN Count2 := NOT Count2; IF Count2 = 1 THEN SpkS = 1;Else SpkSCLK4HZ, ToneIndex=ToneIndex);u2:ToneTaba PORT MAP (Index=ToneIndex, Tone=Tone,CODE=CODE,HIGH=HIGH);u3 : Speakera

39、PORT MAP(clk=CLK12MHZ,Tone=Tone, SpkS=SPKOUT );END;图 曲硬件演奏电路元件符号图仿真结果如下:图 乐曲硬件演奏电路输出波形总结转眼之间,为期三周的 EDA 电路课程设计结束了,这段时间里,我受益匪浅。在这三周的时间里,我对?VHDL 与可编程逻辑器件应用?这门课程有了更深的理解,同时将所学知识与实践有机的结合起来,大大增强了我的思考能力与动手能力。本次设计的是乐曲硬件演奏电路,根据设计要求,该设计模块由音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路组成。通过查找书籍及一些资料,我逐渐明白了自己的缺乏。通过与老师同学的沟通,我

40、逐渐理解了该设计的原理。认真思考每段程序,我明白了具体的工作原理。在此次设计中,我们投入了热情与努力。在之前对此一窍不通,到后来明白了低音高音的编码、VHDL 的根本程序以及会掌握Max+plus 的一些根本操作。课程设计不仅培养了我的实际操作能力,也使我们的知识掌握的更加牢固。同时增强了我们的自信,培养了我们的独立思考能力。在设计中,我们也更加理解了团队的合作精神,与同学之间互帮互助,共同进步。这次设计不仅提升了我对学习的乐趣,更让我学会在以后的学习中,应该不断的摸索,不断实践,使我向更高的精神和知识层次迈向一大步。在以后的学习生活中,我会努力学习,培养自己动手能力,更好的理解所学的知识,弥

41、补实践的缺乏,由理论联系到实际,深入了解科学的奥秘,真正的把知识应用到实践当中,以到达学以致用的目的。致谢三周的课程设计即将结束,本次设计的成功,离不开老师及同学的帮助。在此我对老师和同学说一声:谢谢。通过这次 EDA 课程设计,我不仅加深了对 EDA 这门课程的理解,同时将理论很好地应用到实际当中去,学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。在这个设计过程中,虽然我们花费了大量的时间和精力,更重要的是,我们在学会独立思考的根底上,也懂得合作精神的重要性,学会了与他人合作。首先要感谢各位老师的指导,老师们的严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和鼓励

42、着我。在设计过程遇到很多困难,每一次找到老师,老师都会认真解答疑惑,耐心讲解,这才使我们能顺利完整的完成课程设计要求的内容,在此对老师表示崇高的敬意和衷心的感谢。其次要感谢那些帮助过我的同学,在这次课程设计期间各位同学互相讲解,大家在一起集思广益,查阅相关资料,才能在很短时间内完成课程设计的要求,尽管我们课设还存在一定的问题,因为我们的知识还是有限的,但能有现在的成果也是非常不容易的,付出了许多的努力。在此还要感谢那些帮助过我的同学。同时,也非常感谢沈阳工程学院图书馆的支持,为我们提供了丰富的图书资料,使我们扩展了知识面,帮助我们将课程设计顺利的完成。参考文献1 曹昕燕.周凤臣.聂春燕. ED

43、A 技术与课程设计. 北京:清华大学出版社.20062 尹常永.孙延鹏. VHDL 与可编程逻辑器件应用. 北京:航空工业出版社.20063 王松武.于 鑫.武思军. 电子创新设计与实践. 北京:国防工业出版社.20054 潘松.王国栋VHDL 实用教程M 四川:电子科学大学出版社.20015 徐志军.徐光芒CPLDFPGA 的开发与应用M.北京:电子工业出版社.20026 ALTERA DigitalLibrary 20027 江国强. EDA 技术与应用M. 北京:电子工业出版社,20058 杨国庆. 基于 FPGA 的乐曲演奏器片系统的分析J.现代电子技术.2006.19 期9 褚振勇.

44、翁木云FPGA 设计及应用M. 西安:西安电子科技大学出版社.200210 Altera Data Book.199911 12 Alera 公司13 Altera 公司.MAX+PLUSII 简易用户使用入门指南.199814 卢毅.VHDL 与数字电路设计. 北京:科学出版社.200115 付家才.EDA 原理与应用. 北京:化学工业出版社.200116EDA 设计与实践 北京:国防工业出版社 2006附录 1 程序清单LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Songer

45、 IS - 顶层设计 PORT ( CLK12MHZ : IN STD_LOGIC; -音调频率信号 CLK4HZ : IN STD_LOGIC; -节拍频率信号 CODE : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -简谱码输出显示 HIGH : OUT STD_LOGIC; -高 8 度指示 SPKOUT : OUT STD_LOGIC ); -声音输出 END;ARCHITECTURE one OF Songer IS COMPONENT NoteTabs -元件 u1 例化 PORT ( clk : IN STD_LOGIC; ToneIndex : OUT

46、 STD_LOGIC_VECTOR(3 DOWNTO 0 ) ); END COMPONENT; COMPONENT ToneTaba -元件 u2 例化 PORT ( Index : IN STD_LOGIC_VECTOR(3 DOWNTO 0); CODE : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR12 DOWNTO 0 ); END COMPONENT; COMPONENT Speakera -元件 u3 例化 PORT ( clk : IN STD_LOGIC

47、; Tone :IN STD_LOGIC_VECTOR(12 DOWNTO 0); SpkS : OUT STD_LOGIC ); END COMPONENT; SIGNAL Tone :STD_LOGIC_VECTOR12 DOWNTO 0; SIGNAL ToneIndex :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN - 安装 U1, U2, U3u1 : NoteTabs PORT MAP (clk=CLK4HZ, ToneIndex=ToneIndex);u2:ToneTaba PORT MAP (Index=ToneIndex, Tone=Tone,COD

48、E=CODE,HIGH=HIGH);u3 : Speakera PORT MAP(clk=CLK12MHZ,Tone=Tone, SpkS=SPKOUT );END;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; -音乐节拍时钟 4Hz ToneIndex : OUT INTEGER RANGE 0 TO 15 );END;ARCHITECTURE one OF NoteTabs IS SIGNAL Cou

49、nter : INTEGER RANGE 0 TO 146;BEGIN CNT8 : PROCESS(clk) -音符共有 147 个,因此定义 8 位计数器 BEGIN IF Counter = 146 THEN Counter = 0; ELSIF (clkEVENT AND clk = 1) THEN Counter ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneInd

50、ex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneInd

51、ex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneInd

52、ex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneInd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论