基于 FPGA的音乐播放器的设计
- 格式:doc
- 大小:171.00 KB
- 文档页数:19
基于FPGA的音乐播发器设计【摘要】本文分析了简谱记录的音频特征信号,提取了《化蝶》简谱特征信号转换为基于FPGA实现的数字信号,设计了总体方案,阐述了播发器控制器模块、可控分频器预置数产生模块、可控分频器模块设计思路,仿真实现各个模块功能,经过实际电路测试验证,达到播放《化蝶》简谱的设计要求。
【关键词】音乐播发器;节拍;音符;计数器音乐播发器是模仿人歌唱的电路,故可用人歌唱作为原型来分析设计音乐电路的总体方案。
人通过声带振动发出声音,声带振动频率不同发出不同声音,故在用数字电路来模仿时,可用一个可控分频电路来产生不同频率时钟信号来驱动外接喇叭或蜂鸣器演奏音乐。
人在歌唱时,是根据歌谱用大脑控制声带按照一定节拍在不同时间发出不同的乐音。
故在用数字电路模仿时,还应该有一个控制电路模块,用来根据歌谱控制可控分频电路模块按照一定节拍在不同时间发出不同的乐音。
控制电路模块分为两个模块,一个用于产生节拍,称节拍产生模块;另一个用于根据歌谱控制可控分频电路模块在不同时间发出不同的乐音,称音符产生模块。
节拍产生模块应是一个计数器,每个状态持续的时间是需演奏的所有的音的音长的最小公因数,比如是一个十六分音符时值,具体时间长度应根据需演奏的歌曲而定。
控制电路的计数器的模即状态数,可由需演奏歌曲的各个音所占据状态个数累加而得。
例如,一首用于演奏“梁祝”乐曲的音乐电路的控制电路的计数器的模是139。
节拍产生电路的计数器是用来产生节拍定时的,音符产生模块则将节拍产生电路的计数器的状态翻译成对应的音符频率信号。
如需演奏的歌曲中所用到的音符为9~16个,则音符产生模块的输出信号应有四位,其他情况依此类推。
《化蝶》简谱音符共有15个,用index表示音符符号,从低音到高音依次编号1~15。
音乐电路设计总体参考方案如图1所示。
图1 总体设计方案本设计以用于演奏“梁祝”乐曲的音乐电路为例,对音乐电路各模块的实施进行分析。
一、控制电路模块控制电路模块包含节拍产生模块和音符产生模块两个子模块,可合写成一个文件。
目录引言 (1)1 VHDL及QUARTUSII软件简介 (2)1.1EDA简介 (2)1.2硬件描述语言VHDL (2)1.3软件介绍 (3)2 简易音乐演奏器设计 (5)2.1硬件电路设计 (5)2.2软件代码设计 (6)2.2.1音符储存单元 (6)2.2.2选择播放模式及手动模块单元 (6)2.2.3分频模块单元 (8)2.2.4预置数模块单元 (9)2.2.5音频发声模块单元 (10)3引脚锁定及下载 (10)3.1引脚锁定 (10)3.2结果分析 (11)4设计总结 (11)参考文献 (116)附录 (16)引言VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。
利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。
突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。
本文基于FPGA开发系统,在QuartusII 7.2软件平台上,完成了简易乐曲演奏器设计和与仿真,并下载到试验箱进行硬件实现。
首先,本文介绍了QuartusII 7.2软件的基本使用方法和VHDL硬件描述语言的特点,采用VHDL 硬件描述语言描述简易信号发生器,完成对电路的功能仿真。
在设计过程中,重点探讨了简易乐曲演奏设计思路和功能模块划分。
然后,初步探讨了电路逻辑综合的原理,该软件对简易乐曲演奏器进行了逻辑综合。
最后,使用EDA实验开发系统进行电路的下载和验证。
验证结果表明设计的简易乐曲演奏器完成了预期的功能。
本设计是采用VHDL来实现的简易乐曲演奏器。
它能实现自动播放和手动播放。
1 VHDL及QuartusII软件简介1.1 EDA简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
fpga音乐播放器课程设计一、课程目标知识目标:1. 让学生掌握FPGA基础知识,理解FPGA的内部结构和编程原理;2. 帮助学生了解音乐播放器的原理,掌握数字信号处理基础知识;3. 使学生能够运用Verilog或VHDL等硬件描述语言设计简单的FPGA音乐播放器。
技能目标:1. 培养学生动手实践能力,能够独立完成FPGA音乐播放器的设计、编程、调试与验证;2. 提高学生团队协作能力,能够在小组合作中发挥个人优势,共同完成项目任务;3. 培养学生解决问题和分析问题的能力,能够针对实际问题提出合理的解决方案。
情感态度价值观目标:1. 激发学生对电子设计和硬件编程的兴趣,培养良好的学习习惯;2. 培养学生勇于尝试、敢于创新的精神,增强自信心;3. 培养学生具备良好的沟通能力和团队协作精神,提高综合素质。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 掌握FPGA基本原理,能够描述FPGA内部结构和编程方法;2. 学会使用硬件描述语言Verilog或VHDL编写简单的FPGA程序;3. 理解音乐播放器的基本原理,能够运用数字信号处理知识设计音乐播放器;4. 完成一个简易的FPGA音乐播放器设计项目,具备实际操作和调试能力;5. 在项目实践中,提高团队协作、沟通表达和问题解决能力。
二、教学内容1. FPGA基本原理及编程方法:包括FPGA内部结构、工作原理、硬件描述语言(Verilog/VHDL)基础、编程流程等;2. 数字信号处理基础知识:涉及采样定理、量化、编码、数字信号表示等基本概念;3. 音乐播放器原理:介绍音乐播放器的基本工作流程,包括音频信号的采集、处理、存储和播放;4. FPGA音乐播放器设计:结合教材章节内容,设计以下教学大纲:a. FPGA硬件设计:选用合适的FPGA开发板,了解硬件资源分配,设计FPGA硬件电路;b. 音频信号处理:学习音频信号的采样、量化、编码等处理方法,编写相应程序;c. 音乐播放器程序设计:运用Verilog或VHDL编写音乐播放器程序,实现音频信号播放功能;d. 系统调试与验证:对设计好的音乐播放器进行功能测试、性能优化和调试;5. 项目实践:根据教学进度,安排以下教学内容:a. 分组讨论:学生分组讨论设计方案,明确项目任务分工;b. 设计与编程:各组学生根据分工,完成FPGA音乐播放器的设计和编程;c. 调试与展示:学生调试音乐播放器,展示项目成果,分享设计经验;d. 评价与反馈:教师对各组项目成果进行评价,给予反馈和建议。
音乐播放器控制电路课程设计报告班级:学号:姓名:指导老师:一、设计目的将《断桥残雪》简谱按照要求进行编码并将其写入只读存储器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的音频脉冲信号控制蜂鸣器,可以使其根据控制信号的频率发出不同的音调。
摘要一、设计的任务与要求 (2)1、任务与要求 (2)2、系统原理 (2)3、创新部分 (3)二、系统顶层原理图 (3)三、各功能模块叙述 (3)1、时钟生成模块 (3)2、时钟生成子模块 (4)3、时钟生成子模块各内部模块 (4)4、模式选择模块 (8)5、模式选择子模块 (9)6、模式选择子模块各内部模块 (9)7、显示模块 (15)8、显示子模块 (16)9、显示子模块各内部模块 (16)10、数据选择使能模块 (21)11、数据选择使能子模块 (22)12、数据选择使能子模块各内部模块 (22)13、数据选择模块 (26)14、音乐输出模块 (27)15、音乐输出子模块 (28)16、音乐输出模块子模块各内部模块 (28)四、硬件验证结果说明 (33)1、硬件资源使用情况 (33)2、引脚锁定 (33)3、基本功能验证 (34)五、心得体会 (36)六、参考文献 (36)摘要本文是以altera公司的FPGA芯片(EP2C5T144C8)为核心控制器,在QuartusII7.2软件平台上,完成了简易MP3的设计和与仿真,并下载到GW48-CK实验开发箱上进行了硬件验证。
通过定制LPM-ROM存储音乐数据,达到了以纯硬件的手段来实现乐曲的演奏效果。
只要修改LPM-ROM中所存储的音乐数据,就可以实现其它乐曲的演奏。
该音乐播放器设计具有电路简单、程序易改和调试方便等特点。
整个系统工作稳定,程序精简,界面友好。
关键词:altera、FPGA、EP2C5T144C8、音乐播放器一、设计的任务与要求:1、任务与要求:基于嵌入式技术利用VHDL硬件语言描述完成音乐播放器(1)基本要求:a、预存2首乐曲;b、用数码管显示当前播放乐曲的序列号;c、设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;(2)提高部分:a、播放模式选择(顺序播放和随机播放);b、用户可自行设置播放顺序;c、播放乐曲的时间显示;d、自拟其他功能。
基于FPGA的音乐播放器的设计作者:陈嘉来源:《中国新通信》 2018年第19期【摘要】本文主要从FPGA 概述角度出发,阐述了基于FPGA 音乐播放器电路设计原理,论述了基于FPGA 音乐播放器算法模块设计,最后对音乐播放器系统实现进行叙述,并从不同角度进行详细分析,从而为基于FPGA 的音乐音乐播放器设计研究提供参考。
【关键词】电路原理电子产品系统设计引言随着科学技术不断创新与发展,电子产品生命周期逐渐被缩短,大部分电子产品在半年内便会被新产品所替代,因此要进一步对电子产品开发周期实施缩短,由此便应用到可编程逻辑器件,不仅能够有效缩短产品开发周期,同时随着集成电路制作技术水平不断提升,可编程逻辑器件整体设计技术水平得到有效提升,从而应用到各类电子产品开发当中。
一、FPGA 概述分析FPGA 主要指一种现场可编程门阵列,其主要以CPLD、GAL、PLA 等编程器为基础,通过不断发展和创新产生,属于半定制电路之一,属于专用集成电路领域中的一种,其优势在于填补定制电路存在的缺陷,并且可以解决可编程器件门电路数有限问题。
在实际应用过程中,其主要利用逻辑单元陈列,其中包括内部连线、输入输出模块以及可配置逻辑模块CLB,通过小型查找表来实施组合逻辑,每一个D 触发器输入端都连接着查找表,然后利用触发器来实现I/O 和逻辑电路驱动,同时利用向内部静态储存单元在实现编程数据加载,从而最终实现整个FPGA 功能。
二、基于FPGA 音乐播放器电路设计原理作为一种基本逻辑器件,计数器应用比较广泛,尤其是在数字系统当中应用比较频繁,其主要应用功能是通过计算操作来发挥自身效果,其在应用过程中可以和定时、分频产生脉冲序列和节拍脉冲,分频器能够将频段不同的声音信号进行划分,同时单独将不同声音信号方法,然后将其输送到一定频段扬声器当中,并通过重放方式来实现播放目的,由此可见,播放电路基本原理主要是将声音信号进行单独方法,并通过放大方式来达到一定播放效果。
摘要根据国家发改委与专业教学委员会对教育机构的要求,为培养适应我国21世纪国民经济发展的电子设计人才;同时基于国家教委面向21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果。
要求高等本科在校学生能够自己动手完成简单的数字器件设计。
本次设计在自己手动焊接简易的PFGA板子上实现,并且在QusrtusII 9.0上利用VHDL设计数控分频器电路,利用数控分频原理设计音乐硬件演奏电路,并制定LPM-ROM 存储音乐数据,以“梁祝”乐曲为例,将音乐数据存储到LPM-ROM,就达到了已纯硬件的手段来实现乐曲演奏的效果,只要修改LPM-ROM所存储的音乐数据,将其转换为其他的音乐数据,再重新制定LPM-ROM,在连接到程序中就可以实现其他与取得演奏。
本次设计采用的FPGA主芯片位ALTERA公司的FLEX系列的EPF10K10LC84-4。
由于板子是自己手动在万用板上焊接的所以只焊接了必要的外设如蜂鸣器和LED。
关键词FPGA;音乐播放器;QuartusII;VHDL;目录摘要 (I)第一章前言 (2)1.1关于EDA技术 (2)1.2 关于VHDL (2)1.3 关于EDA工具 (3)1.4 有关本次课程设计 (3)第二章设计实现 (4)2.1音乐演奏电路原理 (4)2.1.1音符频率的获得 (4)2.1.2乐曲节奏的控制 ............................................................... 错误!未定义书签。
2.1.3乐谱发生器 ....................................................................... 错误!未定义书签。
2.1.4乐曲演奏电路原理框图 ................................................... 错误!未定义书签。
2.2音乐硬件演奏电路的设计实现 (5)2.2.1各个模块的功能简介 ....................................................... 错误!未定义书签。
2.2.2 music模块 (6)2.3地址发生器模块 (8)2.3.1地址发生器的VHDL设计 (8)2.3.2波形仿真 (9)2.4分频预置数模块 (9)2.4.1分频预置数模块的VHDL设计 (9)2.4.2波形仿真 (10)2.5十六进制模块 ............................................................................ 错误!未定义书签。
12.5.1十六进制模块的VHDL设计 ........................................... 错误!未定义书签。
12.5.2波形仿真 ......................................................................... 错误!未定义书签。
12.6数控分频模块 ............................................................................ 错误!未定义书签。
22.6.1数控分频模块的VHDL设计 ............................................. 错误!未定义书签。
2.6.2 波形仿真 .......................................................................... 错误!未定义书签。
2.7 分频模块 (13)2.8顶层模块 (15)结论 (17)参考文献 (18)第一章前言1.1关于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和Verilog-HDL 两种标准硬件描述语言。
(3)采用平面规划技术对逻辑综合和物理版图设计联合管理,做到在逻辑设计综合早期阶段就考虑到物理设计信息的影响。
(4)可测性综合设计。
(5)为带有嵌入式IP核的ASIC设计提供软、硬件协同设计工具。
(6)建立并行设计工具框架结构的集成化设计环境,以适应当今ASIC规模大而复杂、数字与模拟电路并存、硬件与软件设计并存、产品上市速度快等特点。
总而言之,EDA技术的出现,给电子信息产业带来了革命性的变革。
1.2关于VHDLVHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。
使用VHDL语言描述的电路,可以进行综合和仿真。
然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。
VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。
VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。
关于VHDL最后要说明的是:与常规的顺序执行的计算机程序不同,VHDL从根本上讲是并发执行的。
在VHDL中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。
1.3EDA工具目前有多种EDA工具支持采用VHDL进行电路综合、仿真以及实现。
比较常见的是Altera公司的QuartusⅡ开发平台和Xilinx公司的ISE开发平台。
这些平台中使用的综合工具和仿真工具通常由专业的EDA厂商提供。
本次设计中所使用的平台正是QuartusⅡ7.2,它是Altera公司提供的一套集成了编译、布局布线和仿真工具在内的综合开发环境。
它能完成从代码输入到编译到仿真再到物理实现的全部设计流程。
1.4有关于本次课程设计本次课程设计要求使用EDA工具,设计实现简易音乐演奏器,理解音名与频率的关系及数控分频原理,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。
我们知道,与利用单片机来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具与硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
在后面的章节中会详细介绍利用EDA技术实现简易音乐演奏器的过程。
第二章设计实现2.1音乐演奏电路原理先介绍一下硬件电路的发声原理。
声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。
乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。
乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。
而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。
2.1.1音符频率的获得多个不同频率的信号可通过对某个基准频率进行分频器获得。
由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。
若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。
若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。
实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。
本文中选取750KHz的基准频率。
由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。
对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。
为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。
表1中各音符的分频系数就是从750KHz的基准频率二分频得到的375KHz频率基础上计算得到的。
由于最大分频系数是1274,故分频器采用11位二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为0,即初始值=211-1=2047,此时扬声器不会发声。
表2-1 各个音符的频率及其对应的分频系数(基准频率375KHz)2.1.2乐曲节奏的控制本文中的梁祝乐曲,最小的节拍为1/4拍,若将1拍的时间定为1秒,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。
计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。