FPGA设计一个乐曲自动演奏控制器
基于FPGA的音乐播放控制电路设计
音乐播放器控制电路课程设计报告班级:学号:姓名:指导老师:一、设计目的将《断桥残雪》简谱按照要求进行编码并将其写入只读存储器ROM之中,然后通过设计的电路读出ROM的内容,进行解码后驱动蜂鸣器播放。
二、开发环境采用Altera Quartus II 9.0软件设计环境。
它提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。
特别是在原理图输入等方面,Altera Quartus II 9.0被公认为是最易使用、人机界面最友好开发软件。
并采用FPGALP-2900开发装置硬件实现,给人们带来极大的方便。
三、设计过程概述1、数字简谱简介数字简谱用不同的点和线段配合8个阿拉伯数字0~7构成音符,记录表示千变万化的音乐曲子及其基本音乐元素。
乐音是由三个要素决定的:频率决定了乐音的音高,频谱决定过了乐音的音色,音形标志着演奏方式。
乐曲的基本元素是:音的高低(音高)、音的长短(时值)、音的力度和音质(音色)。
音的高低和长短不同决定了乐曲的不同,因此构成了音乐的最重要的基础元素。
音乐用1、2、3、4、5、6、7分别表示同一调式7个不同的音高:多、来、米、法、索、拉、西。
这七个数字上、下标注的点表示音调升高8度音程或降低8度音程。
数字0为休止符,表示停止发音。
数字下或数字上的线段表示因的持续时间的长短。
没有线段的数字为4分音符,器时值为音长的基本度量单元,成为一拍。
数字下面标注的线段表示时间减短,没增加一条线段,表示时值减少一半,音符相应的成为8分音、16分音……数字后面的线段称为延长线,表示前一个音符的市场的增加,每条延长线的时值增量为1拍。
音长是一个相对的时间概念,一拍的时间长度没有限制,可以是1s,也可以是2s或是0.5s,。
若将4分音符的时长定为1s,其他音符的时值长度以其为基本参照度量,半拍为0.5s,2拍为2s,以此类推。
2、音高与频率关系20Hz至20KHz的音频脉冲信号控制蜂鸣器,可以使其根据控制信号的频率发出不同的音调。
Verilog_HDL综合设计实例(自动乐曲演奏)
Place & Route
Timing Analysis
基于FPGA的乐曲自动演奏器设计
FPGA
产生音符所对应频率的方波信号
在输入参考频率fc=3MHz时, 计算简谱中所有音符的分频系 数。
实际上,只要各个 音符之间的相对频率关 系不变,演奏出的音乐 听起来就不会“走调”。
1. 一.设计目的与要求
音名显示电路用来显示乐曲演奏时对应的 音符。可以用3个数码管,分别显示高、 中、低音的音名,实现演奏的动态显示, 十分直观。在本例中,high[3:0]、 med[3:0]、low[3:0]等信号分别用于显示高 音、中音、低音音符。为了使演奏能循环 进行,需另外设置一个时长计数器,当乐 曲演奏完成时,保证能自动从头开始演奏。
4)12MHz分频成1mhz波形分频器,源代码和顶层模块如下: //12mhz分成1mhz的分频模块,提供给quma模块 module div_clk1mhz(clk_12mhz,clk_1mhz); input clk_12mhz; output clk_1mhz; reg clk_1mhz; reg [21:0] cnt; always @(posedge clk_12mhz) if(cnt<5) cnt=cnt+1; // (12mhz/1mhz=12,cnt<[12/2-1=5]) else begin cnt=0; clk_1mhz =! clk_1mhz; end Endmodule
用纯硬件完成乐曲演奏电路的设计与利用微处 理器(CPU)实现相比逻辑要复杂得多,如不借助 于功能强大的EDA工具和硬件描述语言,仅凭传 统的数字逻辑技术,即使最简单的演奏电路也难以 实现。
基于FPGA音乐硬件演奏电路设计.
设计报告课程名称任课教师设计题目乐曲硬件演奏电路班级姓名学号日期一. 题目分析1、利用可编程逻辑器件FPGA,设计乐曲硬件演奏电路,其结构框图如下图所示:2、功能要求利用数控分频器设计硬件乐曲电路,由键盘输入控制音响,同时可自动演奏乐曲。
演奏时可选择键盘输入乐曲或者已存入的乐曲,并配以一个扬声器,该设计产生的音乐选自“梁祝” 片段。
二、方案选择与利用微处理器来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助功能强大的EDA 工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
三、细化框图(1)音乐硬件演奏电路基本原理硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。
乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。
而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。
(2)音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。
由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。
若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。
若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。
实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。
本设计中选取750KHz的基准频率。
由于现有的高频时钟脉冲信号的频率为12MH,z 故需先对其进行16 分频,才能获得750KHz的基准频率。
对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。
乐曲自动播放器
课程设计课程设计名称:EDA课程设计专业班级电科0603学生姓名:杨宏乐学号: 20064360323指导教师:梁义涛课程设计时间: 2009-3-9~2009-3-201 设计任务及要求设计任务:乐曲自动播放器。
自行选择一首自己喜爱的经典乐曲,用FPGA设计实现一个该曲目的自动演奏电路。
要求:(1)根据设计题目要求编写相应程序代码(2)对编写的VHDL程序代码进行编译和仿真(3)利用实验箱完成硬件验证(4)总结设计内容,完成课程设计说明书与利用微处理器,以纯硬件完成乐曲演奏电路的逻辑要复杂得多。
本实验设计项目作为“两只老虎”乐曲演奏电路的实现,组成每个乐曲的每个音符的发音频率值及持续的时间是乐曲能连续演奏所需要的两个基本要素。
2设计原理及总体框图(1)音符的发音频率设定及实现音符的频率可由一个数控分频器SPEAKERA获得,由其CLK端输入一个有较高频率的信号,通过SPEAKERA分频后由SPKOUT输出。
由于直接从数控分频器中出来的输出信号是脉宽极窄的,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2.SPEAKERA对clk输入信号的分频比由11位预置数Tone[10..0]决定。
SPKOUT 的输出频率就有了对应关系。
例如,在TONETABA模块中若取Tone[10..0]=1036,将对应法音符为“3”音的信号频率。
(2)音符的持续时间音符的持续时间需根据乐曲的速度及每个一怒的节拍数来确定,图中模块TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKER 输入口停留的时间即为次音符的节拍值。
模块TONETABA是乐曲简谱码对应的分频预置数查表电路,其中设置“两只老虎”乐曲全部音符所对应的分频预置数,共11个,每一音符的停留时间由音乐节拍和音调发生器模块NOTETABS的clk输入频率决定,这11个值的输出由对应于TONETABA中Index[3..0]的值ToneIndex[3..0]的输出值与持续时间由模块NOTETABS决定。
基于FPGA的乐曲演奏电路设计_毕业设计论文
毕业设计基于FPGA的乐曲演奏电路设计摘要设计了一种基于FPGA的电子琴,该电子琴由用VHDL硬件描述语言设计的核心部件和适当的外围电路构成,可从琴键上进行演奏也可自动进行乐曲演奏。
基于FPGA(现场可编程门阵列)芯片,利用VHDL语言,介绍了一种通用乐曲演奏电路的设计,可实现多个八度音阶的乐曲演奏,与简谱的对应关系简单,编程方便,占用资源少,通用性好,可作为IP core模块引用,构成复杂的SOPC系统.关键词:电子琴;现场可编程门阵列(FPGA);智力产权核(IP core);超高速集成电路硬件描述语言(VHDL);乐曲AbstractAn electronic piano is designed based on FPGA,which consists of core paris that designed by using VHDL hardware description languages,as well as some periphery circuits.The musical perform ance can be donenot only by keys but also with automatic type in the electronic piano.Based on FPGA,by VHDL language,this paper introduces a universal music circuit design,it can play high,middle and low multiple tonality,simple corresponding relation with simple musical notation,which programs easily using little resource.It can be used universally for IP core in making complicated SOPC system.Key words:electronic piano;Field Programmable Gate Array(FPGA);Intelligence Property core(IP core) ;Very-High-Speed Integrated Circuit Hardware Description Language(VHDL);music目录1.简易电子琴与音乐发生器设计的介绍 (4)1.1简易电子琴设计介绍 (4)1.2音乐发生器设计介绍 (4)2.F P G A功能与使用简介 (6)2.1F P G A简介 (6)2.1.1F P G A的产生 (6)2.1.2F P G A的基本结构 (7)2.1. 3 MAX+PLUSII (7)2.2硬件描述语言V H D L (10)2.2.1V H D L语言的优点 (10)2.2.2利用V H D L语言设计数字系统的特点 (11)2.2.3V H D L语言的基本结构 (13)2.2.4V H D L的设计流3.简易电子琴设计及程序 (16)3.1简易电子琴设计总体框图 (16)3.2模块设计 (16)3.2.1模块Q I N设计 (16)3.2.2模块F A N A设计 (17)4.音乐发生器设计及程序 (20)4.1使用的乐谱 (20)4.2音乐发生器设计及程序 (20)4.2.1音乐发生器总框图 (20)4.2.2可变分频器设计 (20)4.2.3到计时模块设计 (31)5.仿真 (3)45.1概述 (34)5.2仿真验证与实5.2.1电子琴电路的仿真 (35)5.2.2音乐发生器仿真 (35)6.结论 (3)77.致谢 (3)88.参考文献 (39)1.简易电子琴与音乐发生器设计的介绍1.1简易电子琴设计介绍电子琴因其操作简单,且能模拟各种传统乐器的音色,而深受消费者喜爱。
基于FPGA的脉冲型音乐播放器的设计
基于FPGA/CPLD的脉冲信号型乐曲播放器的设计摘要用纯硬件来完成乐曲演奏电路的逻辑非常复杂,仅凭传统的数字逻辑技术,即使最简单的电路也难以实现。
但是借助于功能强大的EDA工具和硬件描述语言,就可以轻松的实现设计。
本设计利用可编程逻辑器件设计一个控制器让不同频率的脉冲信号有序的输出并驱动扬声器发声,最终完成一首乐曲的演奏。
设计以《世上只有妈妈好》为例,分析了硬件电路发声的基本原理,探讨了可以实现设计的方案,利用VHDL语言在QuartusⅡ上编程设计了节拍发生器、分频器、顺序控制、音高控制等模块的功能。
最后,运用原理图编辑器调出已经设计好的各个模块,根据设计的要求进行连线、加输入输出脚,得到了总体设计的仿真实体。
并对总体设计进行了功能仿真和下载。
本设计完成了乐曲《世上只有妈妈好》的32个音符64个节拍的播放,每个节拍0.5秒,整曲播放时长为32秒。
基于FPGA,利用Quartus Ⅱ和VHDL语言完成的脉冲型乐曲播放器,其特点是设计简单、灵活、设计周期短;缺陷是实现播放的乐曲种类单一,播放时间长度较短,若想要实现较长的乐曲播放,则需要很长的源程序。
关键词:FPGA,EDA,VHDL,QuartusⅡ,乐曲播放器The design of the pulse-type music player based on FPGA / CPLDAbstractIt is very complex to complete the music playing logic circuit using pure hardware. Only depend on the traditional digital logic technology, it is difficult to achieve even the simple circuit. However, it is very ease to achieve by using the EDA tools and hardware description language. The design finished a controller that output a series of orderly pulse signal with different frequencies and driven speaker with, by using the programmable logic device ,and finally complete the concert of a music.The music <shi shang zhi you ma ma hao> was used as an example. The basic principal of the hardware circuit sing was analyzed. How could achieve the player’s faction was also discussed. Following functional module was designed in Quartus II by using VHDL language: pulse generator, frequencies divider, sequence control, pitch control and so on. Finally, simulate entity was build in the Block Editor of the Quartus II , using all of the module which has been designed and according to the design’s requirements to connect, and plus input and output pin. Following these, the player’s entity was simulated and downloaded. The <shi shang zhi you ma ma hao>’s note 32 of the 64 players beat was completed in this design. One beat was sat as 0.5 seconds long, and the whole song was played within 32 seconds。
基于FPGA的乐曲自动演奏器的设计
方 向: 信号与信息处理 。
3 5期
吴定允 : 于 F G 基 P A的乐 曲 自动演奏器 的设计
玛 01 s m
1 1 ' Va 1 l 0
6 4
m5
9 3 ms 08
,
9 6
ms
12 8 s 0 m
而不 同节 拍 的 控 制 可 以通 过 对 某 一 时钟 信 号
进行 不 同的延 时而得到 。
通过上 面 关 于 一 个 音 符 音 调 和 节 拍 的确 定 方 法, 我们 就 可 以用 F G 来 演 奏音 乐 了。具 体 的实 PA 现方 法为 : 乐谱 中的 每个 音 符 的音 调 及 节 拍 变换 将 成相 应 的音 调参数 和节 拍 参 数 , 他 们 做 成 数据 表 将 格 , 放在存 储 器 中 , 过 程 序 取 出 一 个 音 符 的相 存 通 关 参数 , 播放该 音 符 , 音符 唱完 后 , 着取 出下 一 该 接
然后 由计 算机 自动 地 完成 逻 辑 编译 、 简 、 割 、 化 分 综
合、 优化 、 局 、 线 和 仿 真 , 至 对 于 特 定 目标 芯 布 布 直 片的 适 配 编 译 、 辑 映 射 和 编 程 下 载 等 工 作 J 逻 。
E A技术 的 出现 , 大地 提高 了 电路设 计 的效 率 和 D 极
魅 0
c k 1
1
1 3
囡 tn o tB 0 】 o , u 1 0
E s p 』
l 01 1 01 0 0 0i 1
]] ] 厂n厂n几几几n几nnn几几 n几几几几厂n几几厂几几nn广nnn几 n几几几厂门n几n几几nn ] ] ] ] 图 4 音 调 产 生 模 块 仿 真 图
基于FPGA的乐曲自动演奏器的设计
第 10卷 第 35期 2010年 12月 1671) 1815( 2010) 35- 8858- 04
科 学 技 术与 工 程
Sc ience T echno logy and Eng inee ring
V o l110 N o135 D ec12010 Z 2010 Sci1T ech1Engng1
GA 可以灵活、高效地实现乐曲的自动演奏。
关键词 电子设计自 动化 现场可编程门阵列 乐曲自动演奏器
中图法分类号 TP391. 42;
文献标志码 B
图 1 5两只蝴蝶 6部分乐谱
EDA 技术就是以计算机为工具, 设计者在 EDA 软件平台上, 用硬件描述语言 H DL 完成设计文件, 然后由计算机自动地完成逻辑编译、化简、分割、综 合、优化、布局、布线和仿真, 直至对于 特定目标芯 片的适 配编 译、逻 辑 映 射和 编 程 下载 等 工 作 [ 1 ] 。 EDA 技术的出现, 极大地提高了电路设计的效率和 可操作性, 减轻了设计者的劳动强度。
1 设计原理
本文在 A ltera 公司的 FPGA 和 CPLD 开发平台 QuartusII7. 0上, 采用硬件描述语言的系统层次的设计 思想, 利用数控分频器以及 LPM _ROM 定制的设计方 法, 完成了乐曲自动演奏电路的设计, 使之能自动完成 5两只蝴蝶 6的自动播放。图 1是乐谱的前几句。
基于FPGA的乐曲播放器的设计
摘要本文以FPGA为核心控制器件,描述了一种基于FPGA的乐曲发生器的设计方法,该设计在MAX+PLUSⅡ的EDA软件平台上,通过定制LPM-ROM存储音乐数据,达到了以纯硬件的手段来实现乐曲的演奏效果。
只要修改LPM-ROM中所存储的音乐数据,就可以实现其它乐曲的演奏。
因此,该设计具有电路简单、程序易改和调试方便等特点。
整个系统工作稳定,程序精简,界面友好。
关键词: FPGA ;乐曲播放器器;EDAAbstractThis article introduces the design taking FPGA as the core control device, describes a FPGA based music generator design method, the design in the MAX+PLUS II EDA software platform, through custom LPM-ROM stored music data, reached a pure hardware means to achieve the music playing effect. As long as the modified stored in LPM-ROM music data, can realize the other music playing. Therefore, the design has the advantages of simple circuit, easy to program and convenient debugging etc.. The entire system is stable, procedure simplification, friendly interface. Keyword: FPGA; Music generator;EDA目录1 绪论.................................................... 错误!未定义书签。
基于FPGA的乐曲演奏电路设计
基于FPGA的乐曲演奏电路设计自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今,FPGA 已经历了十几年的发展历史。
纵观现场可编程逻辑器件的发展历史,其之所以具有巨大的市场吸引力,根本在于;FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。
目前,FPGA的主要发展动向是:随着大规模现场可编程逻辑器件的发展,系统设计进入“片上可编程系统”(SOPC)的新纪元:芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,优化的资源更好的满足用户的需求,以扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。
本文使用MaxPlusⅡ设计基于FPGA的乐曲演奏电路。
1.硬件发声的原理声音的频谱范围约在几十到几千赫兹,只要利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。
乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,要想让硬件电路准确地演奏出一首乐曲,不仅要控制电路能按照乐曲的乐谱依次输出这些音符所对应的频率,还必须准确地控制乐曲的节奏,即每个音符的持续时间。
因此,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。
2.音符频率的获得在FPGA设计中,多个不同频率的信号,一般是通过对某个基准频率进行分频获得的。
由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频系数四舍五入取整。
若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。
若基准频率过高,虽然可以减少频率的相对误差,但分频电路耗用的资源会增加。
FPGA课程设计 硬件乐曲演奏电路设计
Hefei University of Technology FPGA (1) (2)(II) (9)(III) (10)(IV) (10) (11)FPGA(Field-Programmable Gate Array),即现场可编程门阵列。
它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA和CPLD还有一个区别:CPLD下电之后,原有烧入的逻辑结构不会消失;而FPGA下电之后,再次上电时,需要重新加载FLASH里面的逻辑代码,需要一定的加载时间。
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC设计验证的技术主流。
集成电路设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者的不同设计而改变,所以FPGA可以完成不同的逻辑功能。
FPGA的开发相对于传统PC、单片机的开发有很大不同。
FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机的顺序操作有较大区别。
本组的主要目标是用硬件设计语言设计一个硬件乐曲演奏电路,能在Basys2开发板上实际验证。
发声物体振动频率决定了音调的高低。
经过一定的时间间隔,以某个特定的次序依次产生不同音调的声音,就能得到一段有规律的旋律。
可以用无源蜂鸣器产生不同音调的声音。
无源蜂鸣器上有方波(占空比50%的矩形波)时,就会有声音发出,音调的高低由方波频率决定,因此改变方波频率,就可以演奏乐曲。
蜂鸣器模块已经自带放大电路,因此不需要考虑FPGA输出信号的驱动能力问题。
可以用计时器产生固定的时间间隔(每一次进位相当于打一次节拍);可以将晶振的振动频率经过一定的处理(计数器分频)之后得到某个音调对应的蜂鸣器振动频率。
具有自动乐曲演奏功能的电子琴设计方案
具有自动乐曲演奏功能的电子琴设计方案随着科技的发展,电子琴作为一种数字化、电子化的乐器,也越来越受到欢迎。
而具有自动乐曲演奏功能的电子琴更是一种新的趋势,为乐手们带来了更多的便捷和乐趣。
本文将为大家介绍一个具有自动乐曲演奏功能的电子琴的设计方案。
一、方案介绍本设计的电子琴将采用基于FPGA的设计方法,实现自动乐曲演奏的功能。
利用现代数字技术,将琴键的音高、节拍等信息处理成数字信号,以FPGA实现自动演奏功能,与琴键输入信号结合出现最终的演奏效果。
各个部分的实现如下:(一)键盘控制模块键盘控制模块主要负责对乐器键盘的键位的输入信息进行扫描,将信息传到音源控制模块。
具体实现采用的是键盘矩阵扫描的方法,通过多路复用器依次对各个键盘扫描,将扫描结果输出,供音源控制模块使用。
(二)音源控制模块音源控制模块负责将键盘控制模块输出的键位信息进行解码,以获得干净的音符信息。
该模块还负责产生不同的音色、节拍和音量等特殊音效,便于播放不同风格的音乐。
(三)FPGA控制器FPGA控制器主要负责控制整个电子琴的功能。
它包含了控制不同部分之间的数据交换和通信的逻辑,同时还负责执行自动演奏的算法。
FPGA控制器可以根据内部预先存储的midi乐曲信息,自动播放乐曲,实现自动演奏的功能。
(四)输出模块输出模块主要是通过声音放大器输出音乐。
具体实现方式包括选用AC或DC电源驱动,根据工作条件选择电容或者电阻等元件。
在实际设计中,还需辅助加入一些电容和阻值的计算和测试,保障输出音质的稳定和清晰。
二、核心技术本设计方案的核心技术是数字信号处理和自动演奏的算法。
通过数字信号处理,将琴键输入信息处理成数字信号,再通过FPGA控制器进行逻辑控制,最终输出音频信号,实现自动乐曲演奏的目的。
三、设计优势1、精确可靠本设计采用数字信号处理,减少了人工操作的失误,提高了演奏的准确性和可靠性。
同时,利用FPGA控制器,可以对音符和节拍等信息进行逻辑控制,确保演奏效果良好。
基于FPGA简易乐器演奏器设计
目录1 引言 (1)2 EDA及QUARTUSII软件简介 (2)2.1EDA简介 (2)2.2硬件描述语言VHDL (2)2.3VHDL的设计流程 (2)2.4软件介绍 (3)3总体设计 (4)3.1乐曲演奏电路原理 (4)3.2整体设计思想 (4)3.3乐曲演奏电路模块 (4)3.3.1 乐曲选择模块 (4)3.3.2数码显示模块 (5)3.3.3 模式选择模块 (6)3.3.4 手动输入电路模块 (7)3.3.5 蜂鸣器模块 (7)3.4顶层文件 (8)3.5硬件下载 (9)4总结 (10)参考文献 (11)附录 (12)1 引言VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
本文基于FPGA开发系统,在QuartusII 9.0软件平台上,完成了简易乐曲演奏器电路的设计和与仿真,并下载到试验箱进行硬件实现。
首先,本文介绍了QuartusII 9.0软件的基本使用方法和VHDL硬件描述语言的特点,采用VHDL 硬件描述语言描述简易信号发生器,完成对电路的功能仿真。
在设计过程中,重点探讨了简易信号发生器设计思路和功能模块划分。
然后,初步探讨了电路逻辑综合的原理,该软件对简易多功能信号发生器电路进行了逻辑综合。
FPGA设计一个乐曲自动演奏控制器
FPGA设计一个乐曲自动演奏控制器乐曲自动演奏器一、功能介绍使用FPGA设计一个乐曲自动演奏控制器,将源程序下载至FPGA 器件中,实现乐曲自动演奏。
(本设计的乐曲是《友谊天长地久》的部分音乐)乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。
频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率之间也有固定的对应关系。
所有不同频率的信号都是从同一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算的到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。
如在4MHz时钟下,中音1(对应的频率值为523.3Hz)的分频系数应该为:4000000/(2*523.3)=0xd3821,这样只需对系统时钟进行3821次分频即可得到所要的中音1。
至于其他音符,同样可求出对应的分频系数,这样利用程序可以很轻松地得到对应的乐声。
此外,在程序中设置了一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。
只要让状态机的状态按顺序转换,就可以自动播放音乐了。
《友谊天长地久》乐谱见下表(注:N一拍;N两拍;N﹒四拍;N﹒八拍;N为乐谱。
由于芯片存储容量太小,源程序只加入乐谱的一部分音符)《友谊天长地久》乐谱0 5. | 1. 1 1 3 | 2. 1 2 3 | 1. 1 3 5 | 6. 6 | 5. 3 31 | 2. 123 | 1. 6. 6 5.. | 1. 6 | 5. 3 3 1 | 2. 1 2 6| 5 . 3 3 5 | 6. 1 | 5. 3 3 1 | 2. 1 2 3 | 1. 6. 6 5..| 1. 0 ¶简谱中的音名与频率的关系二、硬件设计(电路图、原器件清单)实物元件清单:印刷电路板一个;电阻(10KΩ的10个,200Ω的8个,1KΩ的14个,50Ω的1个);三极管3个;发光二极管(红黄绿各三个);蜂鸣器1个;8段显示器2个;按键4个;4M晶振1个;电容(104的6个,10μ的1个);电源线1个;芯片底座1个;电路图:功率放大显示部分:核心控制部分:三、软件设计(流程图、源程序)流程图一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。
基于FPGA的乐曲演奏电路设计
目录1、EDA技术发展及介绍..................................... 错误!未定义书签。
1.1 EDA技术的介绍................................ 错误!未定义书签。
1.2 EDA技术的发展................................ 错误!未定义书签。
1.3 EDA技术的发展趋势............................ 错误!未定义书签。
1.4 乐曲演奏电路简介 ............................. 错误!未定义书签。
2、总体方案设计.......................................... 错误!未定义书签。
2.1 设计内容..................................... 错误!未定义书签。
2.1 设计方案比较 (3)2.3 方案论证..................................... 错误!未定义书签。
2.3 方案选择..................................... 错误!未定义书签。
3、单元模块设计 (4)3.1稳压电源电路................................... 错误!未定义书签。
3.2有源晶振电路 (5)3.3蜂鸣器 (6)3.4七段数码管显示电路 (7)4、特殊器件的介绍 (8)4.1 CPLD器件介绍 (8)4.2 FPGA器件介绍 (8)4.3 MAX||EPM240T100C5器件 (9)5、最小系统原理 (10)6、软件实现 (11)6.1音调的控制 (11)6.2音长的控制 (12)6.3软件设计 (12)7、系统仿真及调试 (16)7.1仿真 (16)7.2 调试 (18)8、总结 (19)8.1设计小结 (19)8.2设计收获 (19)8.3设计改进 (19)8.4 致谢 (19)9 、参考文献 (20)1、EDA技术发展及介绍1.1 EDA技术的介绍EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
FPGA入门系列实验教程——乐曲自动演奏
FPGA入门系列实验教程——乐曲自动演奏1.实验任务在开发板上实现《梁祝》乐曲的演奏,通过这个实验,掌握利用蜂鸣器和状态机设计硬件乐曲自动演奏电路的方法。
2.实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208C8增强版开发套件。
软件实验环境为Quartus II8.1开发软件。
3.实验原理乐曲自动演奏电路和上节实验硬件电子琴的的原理相同。
它是在程序中设置了一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个频率值(音调)相对于状态机的每一个状态。
只要让状态机的状态按顺序转换,就可以自动播放音乐了!4.实验程序由于试验程序较长,为了节省篇幅,实验程序在本实验的工程中提供。
5.实验步骤(1)建立新工程项目:打开Quartus II软件,进入集成开发环境,点击File→New project wizard建立一个工程项目song。
(2)建立文本编辑文件:点击File→New..在该项目下新建Verilog HDL源程序文件song.v,输入试验程序中的源程序代码保存后选择工具栏中的(3)选择器件型号及引脚的其他设置:选择所用的FPGA器件----EP2C8Q208C8,以及进行一些配置。
选择配置器件EPCS4,设置不需要使用的IO功能为As inputs,tri-stated。
点击两次ok,回到主界面。
(4)配置FPGA引脚:在Quartus II软件主页面下,选择Assignments→Assignment Editor或选择工具栏上按钮启动编译,直到出现“Full Compilation Report”对话框,点击OK即可。
(6)波形仿真:由于本次试验比较简单,波形仿真将在后面实验详细讲解。
(7)下载设计程序.sof文件到目标FPGA,下载采用JTAG方式(由于配置芯片擦写次数有限,实验均采用JTAG下载方式)。
6.实验现象实验板上的蜂鸣器播放出梁祝乐曲的声音,乐曲声音和梁祝原乐曲还有点相似,大家可以找其他乐谱,试着自己编写程序,实现乐曲自动演奏。
基于FPGA音乐播放器设计毕业设计
基于FPGA音乐播放器设计毕业设计简介本文档旨在介绍基于FPGA音乐播放器的毕业设计。
我们将使用FPGA技术设计一个音乐播放器,使其能够播放音乐文件,提供音频输出,并具备基本的控制功能。
设计目标1. 实现FPGA音乐播放器的硬件设计。
2. 支持音乐文件的播放和控制功能。
3. 实现音频输出功能。
4. 最大限度地减少功耗和硬件资源使用。
设计方案1. 硬件设计:使用FPGA芯片作为核心,构建音乐播放器的硬件电路。
考虑到资源使用的限制,采用简化的设计方案,保持硬件复杂度的最小化。
2. 控制功能:设计一个简单的用户界面,以便用户可以选择音乐文件并进行控制操作,如播放、暂停、停止等。
3. 音频输出:通过FPGA芯片的音频输出接口,将音乐信号转换为模拟音频信号,并通过扬声器或耳机进行播放。
4. 能耗优化:在设计中尽可能减少功耗,采用优化电路设计和功耗管理策略,以延长电池寿命或减少供电需求。
预期成果通过本毕业设计,预计可以实现一个基于FPGA的音乐播放器,具备基本的音乐播放和控制功能,并提供音频输出。
设计方案将遵循简化策略,以便在有限的资源和功耗约束下实现功能。
时间计划以下是预计的时间计划:- 第一周:调研相关的FPGA音乐播放器设计方案和技术。
- 第二周:设计FPGA音乐播放器的硬件电路。
- 第三周:实现音乐文件的播放和控制功能。
- 第四周:设计音频输出接口并测试音频输出功能。
- 第五周:优化设计,测试并调试整个系统。
- 第六周:完成毕业设计报告的撰写和总结。
参考文献1. 张三,李四。
FPGA音乐播放器设计方法。
《电子技术与软件应用》 2020年,第12期。
2. 王五,赵六。
FPGA音频输出接口设计技术研究。
《电子工程与设计》 2019年,第5期。
以上是基于FPGA音乐播放器设计的毕业设计文档。
请根据需要进行进一步的完善和修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA设计一个乐曲自动演奏控
制器
的每个音符的频率值(音调)相对应于状态机的每一个状态。
只要让状态机的状态按顺序转换,就可以自动播放音乐了。
《友谊天长地久》乐谱见下表(注:也一拍;也两拍;N •四拍:N •八拍:N为乐谱。
由于芯片存储容量太小,源程序只加入乐谱的一部分音符)
《友谊天长地久》乐谱
0 5 | 1・]1 3 | 2. ] 2 3 | 1. ] 3 5 I 6・ © | 5. 』3
1 I 2・1
2
3 11 ・ 6 6 5 I 1 ・ 6 I 5. 3 3 1 I 2・ 1 2 6
— -
|5・ 3 3 5 I 6. 1 I 5 ・ 3 3 1 I 2 ・ 1 2 3 I 1 ・ 6 6 5
I 1. 0 11
简谱中的音名与频率的关系
二、硬件设计(电路图、原器件清单)
实物元件清单:
印刷电路板一个;
电阻(10KQ的10个,200Q的8个,1KQ的14个,50Q的1个);三极管3个;
发光二极管(红黄绿各三个);
蜂鸣器1个;
8段显示器2个;
按键4个;
4M晶振1个;
电容(104的6个,的1个);电源线1个;
芯片底座1个;
电路图:
功率放大显示部分:
核心控制部分:
口令L
三、软件设计(流程图、源程序)
流程图
一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。
其大致的设计流程包括:设计输入、综合、适配、时序仿真和功能仿真、编程下载、硬件测试的步骤。
对于目前流行的EDA工具软件,图
1-1的设计流程具有一般性
图1T 应用FPGA/CPLD的EDA开发设计流程框图各部分源程序及说明
module song(clk,beep); 〃模块名称song
//I/O 口说明
input elk; output beep; 〃系统时钟4MHz 〃蜂鸣器输出端
〃内部寄存器
reg beep_r;
reg[3:0] state;
reg[15:0]count,count_end; reg[17:0]countl; 〃寄存器
〃乐谱状态机
〃参数••分频系数
parameter L_5=16'd5102, L_6=16,d4545, M_l=16'd3821, M_2=16'd3405, M_3=16P3033, M_5=16*d2551, M_6=16*d2273, H_l=16 'hl913;
parameter TIME=1000000; assign beep= beep_r;
〃低音5 〃低音6 〃中音1 〃中音2 〃中音3 〃中音5 〃中音6 〃高音6
〃控制每个音的长短(250ms ) 〃输出音乐
〃上升沿脉冲计数
always @(posedge elk) begin
cou nt<=count+11 b 1; if(count==count_end) begin countv=16'h0; beep_r<=! beep_r; end end
〃上升沿脉冲计数 always @ (posedge elk) begin
if(countl<TIME) countl= countl+Lbl;
else begin countl=18f d0; if(state==4*dl5) state= 4*d0; else
〃计数器加1
〃计数器取0
〃输出取反
state= state+Fbl;
case(state)
4'dO,
4*dl: count_end=L_5;
402, 4f d3,4,d4, 4f d5, 4,d6, 4,d7, 4*d8 : count_end=M_l;
4*d9, 4dl0: count_end=M_3;
4,dll, 4*dl2, 4'dl3, 4*dl4: count_end=M_2;
4f dl5:
count_end=M_l;
default:count_end=16'hffff; endcase
end
end
Endmodule
引脚锁定方法
四、设计总结
经过我们一组人的共同努力,我们的课程设计完成。
在此期间,我们收获颇丰。
首先这是既制作收音机后的又一次焊接印刷电路板的机会,利于提高我们的对器件的辨别、理解能力,还有自己的动手能力。
焊好电路板后,我觉得挺麻烦的就是程序的调试。
刚开始的调试是在实验室的试验箱上,一切运行正常,但转到我们需要
用的芯片上就不能出现
我们想要的结果。
后来又查资料,了解到芯片的时钟的频率不同,然后我们就开始转换频率再计算,同时把原来的程序根据要求的频率进行修改,但还是不能显示出流畅的音乐。
最后,当我们想放弃这个设计换其他程序设计的时候,我们想起可能是蜂鸣器本身的问题。
然后,我们找到以前制作收音机的喇叭,接上后效果还是挺明显的,听到音乐的那一刻确实挺有成功感。
其次,也是对EDA这门课的深入理解与应用。
如果说刚开始我还不知道EDA 是干嘛的,但现在我可以说写一下简单的程序,看懂一些复杂的程序,然后就是提高了对Quartusll操作能力。
当然,通过这次课程设计,还是发现自己的很多不足。
由于当初EDA课程学得不是太好,导致刚开始操作时经常会遇到或大或小的问题,而且这次做的设计我觉得是老师要求里的比较简单的一个,还花费了这么长时间,也说明自己的能力不是太好。
事实证明:要想真正掌握这门课还需要再花费一些精力0。