基于FPGA的简易电子琴实现

合集下载

FPGA设计简易电子琴

FPGA设计简易电子琴

简易电子琴电路设计一、设计要求:(1) 设计一个简易电子琴。

(2) 利用实验箱的脉冲源产生1,2,3,……共7 个或14 个音阶信号。

(3) 用指示灯显示节拍。

(4) 能产生颤音效果。

二、原理说明:简易电子琴实现自动播放和手动弹奏两种模式,由一个开头选择。

自动播放功能可以预置多首乐曲,可以通过手动选择,本设计预置了两首乐曲《梁祝》和《两只老虎》。

手动弹奏设置了7个按键做琴键,分别对应7个音阶。

系统由8个模块组成,图1是顶层设计文件,其内部有7个功能模块:Speakera.v(例2) 和ToneTaba.v (例3),NoteTabs.v (例4),div_27.v,div-50.v,Keyboard.v,Dir.v。

模块ToneTaba音阶发生器,当4位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的LED显示,音阶越高,LED亮的数目越多。

模块Speakera中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speakera由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout 向扬声器输出发声。

模块NoteTabs用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在NoteTabs模块放置两个乐曲曲谱真值表,通过song来选择播放的音乐,00代表复位,01选乐曲《梁祝》,10选《两只老虎》,由一个计数器的计数值来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。

模块div-27和div_50是分频模块,通过计数的方式进行分频。

div_27是由板上27M时钟分频产生4Hz的频率用于节拍控制,div_50是板上50M时钟产生12.5MHz用于Sperkera模块。

基于FPGA的简易电子琴实现

基于FPGA的简易电子琴实现

基于FPGA的简易电子琴实现李全摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。

该电子琴的设计大体可以由三个模块构成,分别是电子琴音调发生器模块、数控分频模块和自动演奏模块。

用超高速硬件描述语言VHDL编程可以实现各个模块的功能。

能够实现弹琴和自动演奏的功能。

系统实现是用硬件描述语言VHDL按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。

本系统的功能比较齐全,有一定的现实使用的价值。

本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。

关键字电子琴;EDA;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;音调发生;数控分频;1引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

对于广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它现在作为一种休闲和娱乐的产品早就推出市面,面向百姓,进入了我们的生活。

作为一个电子信息科学与技术专业的学生,了解这些电子产品的基本的组成和设计原理是十分必要的,我们学习过了计算机组成的理论知识,而我所做的课程设计正是对我学习的理论进行实践和巩固。

本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴;集科学性,先进性,创新性,实用性于一体,其理论基础源自于计算机组成原理的时钟分频器。

1.1 设计的目的本次设计的目的就是在掌握计算机组成原理理论相关的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机相关的实际问题的能力。

基于FPGA的简易电子琴设计

基于FPGA的简易电子琴设计

简易电子琴的设计学生姓名:王春指导老师:郑大腾摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。

该电子琴的设计大体可以由三个模块构成,分别是电子琴发声模块、存储器模块和选择控制模块。

用超高速硬件描述语言VHDL编程可以实现各个模块的功能。

不仅能实现弹琴和演奏的功能,它还能实现“复读”的功能,就是可以存储任意一段音乐,并且可以即时的播放出来。

系统实现是用硬件描述语言VHDL 按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。

本系统的功能比较齐全,有一定的现实使用的价值。

本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。

关键字电子琴;EDA;VHDL;音调发生;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;电子琴系统;AbstractThis system is designed using EDA technology a simple eight-note keyboard, the system clock divider based on the principle of the computer, using top-down design methodology to implement, it can be controlled through the key input audio. Multi-function keyboard is designed to be an ordinary keyboard in the original expansion on the basis of a design. The design of the keyboard in general consists of three modules, namely the keyboard soundmodules, memory modules and select the control module. Ultra high-speed hardware description language VHDL programming function of each module. Not only can realize the function of playing and playing, it can achieve "repeat" function, which can store any piece of music, and real-time play out. System implementation is to use hardware description language VHDL modular way by design, then programming, timing simulation, integration. The system features a relatively complete, there is a certain value. This paper introduces the overall design of the keyboard system, and based on high speed hardware description language VHDL in Xilinx's Spartan Ⅱ series 2sc200PQ208-5 chip programming.KeywordKeyboard; EDA; VHDL; tone occurred;field programmable logic device FPGA;ultra high-speed hardware description language VHDL; organ systems;皖西学院毕业论文设计第3页共36页目录1 引言..................................................................1.1设计的目的...........................................................1.2设计的基本内容.......................................................2 FPGA、EDA、VHDL简介....................................................2.1FPGA工作原理 ........................................................2.1.2 FPGA的基本特点....................................................2.2EDA技术...............................................................2.3硬件描述语言——VHDL ...................................................2.3.1 VHDL的简介.......................................................2.3.2 VHDL语言的特点...................................................2.3.3VHDL语言上机操作条件.............................................2.3.4 VHDL的设计流程...................................................3 音乐知识介绍............................................................4 简易电子琴设计..........................................................4.1系统设计的总思路.....................................................4.2程序设计的流程图.....................................................4.3简易电子琴的工作流程图...............................................4.4简易电子琴中各模块的设计.............................................4.4.1 乐曲自动演奏模块...................................................4.4.2 音调发生模块.......................................................4.4.3 数控分频模块.......................................................4.4.4 顶层设计...........................................................5 系统仿真.................................................................6 结束语..................................................................第3页致谢..................................................................... 参考文献................................................................. 附录.....................................................................1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

基于FPGA的简易电子琴设计

基于FPGA的简易电子琴设计
K eywords FPGA ;electronic piano;Be ̄equency divider;nixie tube
数 字 音 乐 电 子 琴 是 是 现 代 电 子 科 技 与 音 乐 结 合 的产 物 ,相 比体 积 庞 大 、价 格 昂 贵 的钢 琴 ,数 字 音 乐 电子 琴 以其操 作 简单 、价 格 低 廉 的 优 势 受 到 喜 爱 … 。 本 文 介 绍 的 简易 电 子 琴 的 设 计 ,采 用 Alter公 司 的 现 场 可 编 程 门 阵 列 (Field—Programmable Gate Array, FPGA)EP3C40Q240C8芯 片 作 为核 心 控 制 器 件 ,以 该 公 司提 供 的 Quartus II 9.0为 软 件 平 台 ,可 实 现 电 子 琴 以下 几 个 功 能 :(1)21个 琴 键 手 动 弹奏 ,高 、中 、低 音 各 7个 ;(2)5首 预存 简 谱 乐 曲 自动 循 环 演 奏 ,曲 目 可通过 数 字按 钮 任 意选 择 ,可快 进 、后 退 、暂停 、复 位 ;(3)数码 管动态显 示 当前 音名 的简谱码 ,中音 直 接 显 示 ,低音 在 数 码 管 下 方 加 发 光 管 点 亮 表 示 ,高 音 在数 码 管 上 方 加 发 光 管 点 亮 表 示 ,发 声 通 过 扬 声 器 或接 耳 机 实 现 。 由 于 该 设 计 的 主 体 部 分 在 FPGA 中
实现 ,且 采用 自顶 向下 的设 计 方 法 ,提 高 了 开 发 和 研 制 的 效 率 ,使 整 个 设 计 和 修 改 过 程 变 得 方 便 、 高效 。
1 总体 设计方案
系统结构 图如 图 1所示 ,其 中虚线 框 内部 分 在 FPGA 中实 现 。

基于FPGA的简易触摸电子琴设计

基于FPGA的简易触摸电子琴设计
时基于 FPGA 的电子琴设计还具有体积小、系统可靠性
高 、开 发 周 期 短 和 研 制 成 本 低 的 优 点 [5 ⁃ 7]。 所 以 本 文 在
FPGA 器件上设计一个简易触摸屏电子琴电路,来实现
触摸控制弹奏和自动播放乐曲的功能。
收稿日期:2014⁃06⁃15
基金项目:安康学院 2013 年国家级大学生创新创业训练
710129)
要:简易触摸电子琴是以 FPGA 芯片作为系统控制核心,通过数控分频的原理实现音乐自动播放、琴键演奏的功
能,有限状态机实现触摸控制和 LCD 显示驱动,再采用友晶科技的 4.3 寸液晶触摸显示屏(LTM)完成简易触摸电子琴模式选
择控制和琴键显示控制。在 DE0⁃Nano FPGA(Altera Cyclone Ⅳ)开发板上的测试表明,所设计的低成本简易触摸电子琴可
inch LCD touch panel Module(LTM)of Terasic to complete a simple touch electronic piano mode selection control and key dis⁃
play control. The test on DE0⁃NanoFPGA(Altera Cyclone IV)development board show that the design of low⁃cost simple touch
计划项目(201311397005);安康学院 2013 年校
级大学生创新创业训练计划项目(2013aku015)
图1
简易触摸电子琴的结构图
Copyright©博看网 . All Rights Reserved.
崔智军,等:基于 FPGA 的简易触摸电子琴设计

基于FPGA的乐曲演奏电路设计_毕业设计论文

基于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的简易触摸电子琴设计

基于FPGA的简易触摸电子琴设计作者:崔智军刘昭元张瑜来源:《现代电子技术》2014年第22期摘要:简易触摸电子琴是以FPGA芯片作为系统控制核心,通过数控分频的原理实现音乐自动播放、琴键演奏的功能,有限状态机实现触摸控制和LCD显示驱动,再采用友晶科技的4.3寸液晶触摸显示屏(LTM)完成简易触摸电子琴模式选择控制和琴键显示控制。

在DE0⁃Nano FPGA(Altera Cyclone Ⅳ)开发板上的测试表明,所设计的低成本简易触摸电子琴可以实现触摸控制弹奏和自动播放乐曲的功能,同时具有较高的实用价值。

关键词: FPGA;电子琴;液晶显示屏;有限状态机中图分类号: TN710⁃34; TP332 文献标识码: A 文章编号: 1004⁃373X(2014)22⁃0114⁃03Design of simple touch electronic piano based on FPGACUI Zhi⁃jun1, LIU Zhao⁃yuan2, ZHANG Yu1(1. Department of Electronics and Information Engineering, Ankang University, Ankang 725000, China;2. Xi’an ZTE New Software Co., Ltd,Xi’an 710129, China)Abstract: The simple touch electronic piano, which takes FPGA chip as system control core, employs the principle of NC divider to achieve automatic music playing, finite state machine to realize the touch control and LCD display drive, and 4.3 inch LCD touch panel Module (LTM)of Terasic to complete a simple touch electronic piano mode selection control and key display control. The test on DE0⁃NanoFPGA (Altera Cyclone IV) development board show that the design of low⁃cost simple touch electronic piano can achieve the functions of touch control and automatic music playing, and also has high practical value.Keywords: field programmable gate array; electronic piano; liquid crystal display; finite state machine0 引言电子琴因其操作简单,且能模拟各种传统乐器的音色,而深受消费者喜欢。

FPGA简易电子琴设计

FPGA简易电子琴设计

西安邮电大学FPGA课程设计报告题目:简易电子琴设计及FPGA功能验证院系:电子工程学院专业班级:学生姓名:导师姓名:黄海生起止时间: 2012-6-18 至 2012-6-292012年 6 月29 日目录1.任务 (2)2.目的 (2)3.使用环境 (2)4.FPGA课程设计详细内容 (2)4.1 技术规范 (2)4.1.1 总体描述 (2)4.1.2 结构框图................................................................ 错误!未定义书签。

4.1.3 引脚描述................................................................ 错误!未定义书签。

4.1.3 应用范围 (5)4.2 设计方案 (5)4.2.1 顶层方案设计 (5)4.2.2 顶层模块程序 (7)4.3 功能验证方案及源程序 (7)4.3.1按键输入控制模块方案设计及源程序 (7)4.3.2控制模块方案设计及源程序 (8)4.3.3LCD驱动模块方案设计及源程序 (11)4.4 电路设计及功能仿真报告 (30)4.5 综合及布局布线报告和引脚分布报告 (21)4.6 硬件测试结果报告 (21)5.课程设计的心得体会 (22)6.参考资料 (22)1.任务:a、设计一个简单电子琴。

(内置2~4首简单音调曲)b、用FPGA开发板的按键可选择演奏内置曲调,用数码管显示当前演奏的哪个演奏曲目或停止。

c、要求电子琴具有自主选择,自动播放所选曲目或停止曲目。

2.目的:a、在掌握计算机组成原理理论相关的基础上,了解 EDA技术,掌握Verilog HDL 硬件描述语言的设计方法和思想,通过学习的 Verilog HDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识;b、深入学习Verilog H DL、FPGA,了解其编程环境;c、学会运用Modelsim和Quartus II等编程仿真软件;d、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL、FPGA的学习;3.使用环境(软件/硬件环境,设备等)软硬件环境:软件:Quartus II 7.2, Modelsim6.1;硬件环境:DEII开发板;设备:PC一台,USB下载线,FPGA开发板及电源。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的简易电子琴实现李全摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。

该电子琴的设计大体可以由三个模块构成,分别是电子琴音调发生器模块、数控分频模块和自动演奏模块。

用超高速硬件描述语言VHDL编程可以实现各个模块的功能。

能够实现弹琴和自动演奏的功能。

系统实现是用硬件描述语言VHDL按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。

本系统的功能比较齐全,有一定的现实使用的价值。

本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。

关键字电子琴;EDA;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;音调发生;数控分频;1引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

对于广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它现在作为一种休闲和娱乐的产品早就推出市面,面向百姓,进入了我们的生活。

作为一个电子信息科学与技术专业的学生,了解这些电子产品的基本的组成和设计原理是十分必要的,我们学习过了计算机组成的理论知识,而我所做的课程设计正是对我学习的理论进行实践和巩固。

本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴;集科学性,先进性,创新性,实用性于一体,其理论基础源自于计算机组成原理的时钟分频器。

1.1 设计的目的本次设计的目的就是在掌握计算机组成原理理论相关的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机相关的实际问题的能力。

1.2 设计的基本内容基于Quartus Ⅱ平台,运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工具对各模块进行仿真验证。

本设计包含如下三个模块:音调发生模块、数控分频模块、乐曲自动演奏模块,最后把各个模块整合后,通过电路的输入输出对应关系连接起来。

1.3 设计方案为了实现这种有“弹奏”和“自动播放歌曲”功能的多功能简易电子琴,以下提供两种方案以供参考:方案一:采用单个的逻辑器件组合实现。

这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然,但是因为元器件种类、个数非常多,而且过于复杂的硬件电路也容易引起系统的精度不高、体积过大等一系列的不利因素。

例如八个不同的音符是由八个不同的频率来控制输出发声的,而采用这个方案需要运用不同的分频器来对信号进行不同程度的分频。

所用仪器之多显而易见。

方案二:采用VHDL语言编程来实现电子琴的各项功能。

我这个系统主要由音调发生器模块、数控分频模块、乐曲自动演奏模块组成的。

和方案一相比较,方案二就显得比较笼统,只是把整个系统分为了若干个小模块,却不牵涉到具体的硬件电路。

但是我们必须看到使用超高速硬件描述语言VHDL的优势,它不仅具有良好的电路行为描述和系统描述的能力并且通俗易懂。

2 简易电子琴设计2.1 系统设计的总体思路实现这个多功能电子琴,我们要考虑的主要是以下三个方面的内容:一、每个音符都有自己的固有频率,由频率的不同就决定了发出什么音调。

二、一首乐曲的组成不仅仅是音调,还包括每个音调持续时间的长短,也就是我们通常所说的音长。

本设计就是以这两个部分为核心内容展开。

经过对引言两种方案的分析、比较和总结,我们选用方案二来进行电子琴的设计。

采用现场可编程逻辑器件(FPGA)制作,利用EDA软件中的VHDL硬件描述语言编程进行控制,下载至试验箱中的FPGA模块中,再利用其上资源连接电路从而实现预定功能。

采用FPGA来设计的原理图如图2.1所示.它由控制输入电路、FPGA、显示电路和扬声器电路组成。

控制输入电路FPGA显示电路扬声电路图2.1 采用FPGA设计的电子琴原理方框图控制输入电路主要是为用户设计的,起到一个输入控制的作用通过8个按钮对应8个音符,外加一个键盘输入/自动演奏切换按钮。

FPGA是现场可编程逻辑器件,也是本设计方案的核心内容,它是实现电子琴运作的主要控制模块。

编好的VHDL程序下载到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同的频率驱动扬声器,发出不同的乐谱,同时也把发出的乐谱符号通过七段数码管输出。

2.2 程序设计的流程图程序设计的流程图如图2.2所示。

图2.2 程序设计流程图根据系统的两大功能:手动弹奏与自动演奏,可将其分成音调发生器模块、数控分频模块和自动演奏模块三部分。

音调发生器模块由分频模块获得其产生的8个频率(还可扩展),对应8个音符(中央C,D,E,F,G,A,B和高音C分别在七段数码管上显示数字1-8),为了实现自动播放的《友谊地久天长》,我们还编辑了低音G和A两个音。

这些频率经放大后驱动蜂鸣器,即可发出声音。

键盘选择手动弹奏模式时,按下音符键后就选通相应的频率输出,驱动蜂鸣器产生相应的乐音;选择自动演奏模式时,存储器里事先编写好的音符信息被依次取出,去选通各个频率输出,实现自动奏乐。

2.3简易电子琴的顶层设计图50mhz系统时钟player tonemaker图2.3 简易电子琴的顶层设计图2.4简易电子琴中各模块的设计FPGA的设计是整个系统的中心环节,具有举足轻重的作用.它的实现主要是由小组成员利用VHDL硬件描述语言编程实现电子琴的功能,仿真调试成功之后,再下载到试验箱上的FPGA器件中去,外部连接完成后的成品在带电情况下即可运行实现预定功能。

而FPGA模块的设计又重在VHDL 语言的编程实现,用VHDL语言编写的程序总的顶层模块映射原理图如图2.3所示,它是由音调发生器模块(tonemaker)、数控分频模块(Speaker)、自动演奏模块(player)组成。

系统pin_28输入50MHz时钟频率经6分频得到一个近似8HZ的基准频率,经过二次分频后得到对应音符的频率。

从自动演奏模块输出的是乐谱信号,该乐谱信号作为音调发生器模块的敏感信号输入并对其进行控制。

音调发生模块有两个输出,分别是code和high,两个都接外部的显示部分,code接七段数码管显示乐谱,high显示的是该乐谱是高音还是低音。

由于本系统结构较为简单,程序编译无错后我们小组直接在试验箱上连接好各类外部资源后利用实物验证,经过调试,我们实现了预定功能。

在本系统中我负责的是主要是数控分频模块的元件例华以及顶层设计部分的修改,以下对模块进行说明。

2.4.1数控分频模块在对计算机组成原理的学习中,我们知道数控分频器的功能是在输入端输入不同数据时,对输入时钟产生不同的分频比,输出不同频率的时钟,以改变输出信号的频率。

本设计中数控分频模块是利用并行预置数的减法计数器对时基脉冲进行分频,得到与1、2、3、4、5、6、7七个音符相对应的频率。

该模块的VHDL程序中包含了三个进程。

首先对FPGA的50MHz的时基脉冲进行6分频得到近似8MHz的脉冲,然后按照tone1输入的分频系数对8MHz的脉冲再次分频,得到所需要的音符频率。

第三个进程的作用是在音调输出时再进行二分频,将脉冲展宽,使扬声器有足够发声功率。

数控分频模块元件图:CLK1 SPKSTONE1[10..0]数控分频模块原理图数控分频模块程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity speaker isPort ( clk1 : in std_logic; --系统时钟tone1 : in integer range 0 to 2047; --音符分频系数spks : out std_logic); --驱动扬声器的音频信号end speaker;architecture Behavioral of speaker issignal preclk,fullspks:std_logic;beginpulse1:process(clk1) --此进程对系统时钟进行4分频variable count:integer range 0 to 12;beginif clk1'event and clk1='1' then count:=count+1;if count=3 then preclk<='1';elsif count=6 then preclk<='0';count:=0;end if;end if;end process pulse1;genspks:process(preclk,tone1)--此进程按照tone1输入的分频系数对8MHz的脉冲再次分频,得到所需要的音符频率variable count11:integer range 0 to 2047;beginif preclk'event and preclk='1' thenif count11<tone1 then count11:=count11+1;fullspks<='1';else count11:=0;fullspks<='0';end if;end if;end process;delaysps:process(fullspks)--此进程对fullspks进行2分频将脉冲展宽,使扬声器有足够发声功率variable count2 :std_logic:='0';beginif fullspks'event and fullspks='1' then count2:=not count2;if count2='1' then spks<='1';else spks<='0';end if;end if;end process;end Behavioral;3 结束语通过对测试结果的分析,我们发现采用FPGA所设计的电子琴系统设计趋于简单、开发时间短;外围器件少,体积小;系统维护起来更方便、快捷。

尤其对于设计者来说,不需要考虑太多的硬件设计,只需要有自己的设计思路,编程实现再下载到FPGA器件中进行测试就可以了。

相关文档
最新文档