简易电子琴的VHDL仿真与实现
简易电子琴电路的设计仿真与实现

目录1 Pspice的简介 (1)1.1 PSPICE的起源与发展 (1)1.2 PSPICE的组成 (1)1.3 PSPICE的模拟功能 (2)2 设计原理及电路选取 (4)2.1 基本乐理知识 (4)2.2 设计原理 (4)3 设计方案 (7)3.1设计电路图 (7)3.2参数推导 (8)3.3仿真参数和仿真电路图 (8)4.仿真曲线 (10)5.仿真结果分析 (13)6.硬件焊接与调试 (14)6.1元器件的选择 (14)6.2焊接过程与调试 (15)7.课程设计心得 (16)8.参考文献 (18)本科生课程设计成绩评定表 (19)1 Pspice的简介1.1 PSPICE的起源与发展用于模拟电路仿真的SPICE软件于1972年由美国加州大学伯克利分校的计算机辅助设计小组利用FORTR AN语言开发而成,主要用于大规模集成电路的计算机辅助设计。
SPICE 的正式版SPICE 2G在1975年正式推出,但是该程序的运行环境至少为小型机。
1985年,加州大学伯克利分校用C语言对SPICE软件进行了改写,并由MICROSIM公司推出。
1988年SPICE被定为美国国家工业标准。
与此同时,各种以SPICE为核心的商用模拟电路仿真软件,在SPICE的基础上做了大量实用化工作,从而使SPICE成为最为流行的电子电路仿真软件。
PSPICE是较早出现的EDA软件之一,在电路仿真方它的功能可以说是最为强大,在国内被普遍使用。
1.2 PSPICE的组成1.2.1 电路原理图编辑程序SchematicsPSPICE的输入有两种形式,一种是网单文件形式,一种是电路原理图形式,相对而言后者比前者较简单直观,它既可以生成新的电路原理图文件,又可以打开已有的原理图文件。
电路元器件符号库中备有各种原器件符号,除了电阻,电容,电感,晶体管,电源等基本器件及符号外,还有运算放大器,比较器等宏观模型级符号,组成电路图,原理图文件后缀为.sch。
VHDL简易电子琴设计

简易电子琴的设计摘要随着基于CPLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。
作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。
本程序设计的是简易电子琴的设计。
采用EDA作为开发工具,VHDL语言为硬件描述语言,MAX + PLUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。
本程序使用的硬件描述语言VHDL,可以大大降低了硬件数字系统设计的入门级别,让人感觉就是C语言的近亲。
通过老师的指导和自己的学习完成了预想的功能。
1 引言1.1 课程设计的目的巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
为了进一步了解计算机组成原理与系统结构,深入学习EDA技术,用VHDL语言去控制将会使我们对本专业知识可以更好地掌握。
1.2 课程设计的内容(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且每首乐曲可重复演奏。
2 开发工具简介2.1 EDA技术EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
简易电子琴的VHDL仿真与实现

简易电子琴的VHDL仿真与实现电子琴是一种应用广泛的乐器,而现在,电子琴的制造已经从纯硬件逐渐过渡到硬件加软件的方式。
VHDL是一种硬件描述语言,它可以方便地描述各种硬件逻辑功能,而且还可以帮助设计者实现FPGA的目标硬件。
本文主要介绍简易电子琴的VHDL仿真与实现。
一、设计思路简易电子琴的设计基本上就是将钢琴的琴键和生产声音的部件(如电子光电元件或电子开关等)结合在一起。
琴键的设计分为两个部分:按下和弹起。
按下部分是由一个简单的开关连接到FPGA引脚的输入端。
当琴键被按下时,开关闭合,产生一个低电平信号,这个信号作为FPGA的输入。
弹起部分用一个气压传感器检测琴键是否已经弹起。
生产声音的部件由一个数字-模拟转换器(Digital-to-Analog Converter,简称DAC)处理FPGA通过一个计数器输出的数字信号,将它转换成模拟信号。
这样,设计思路就非常清晰明了。
二、VHDL仿真的步骤1. 创建虚拟设计:在仿真之前,我们需要创建一个虚拟的设计,包括引脚、组件、实体、测试模块,以及其他必需的部件。
这些将精确地模拟真实世界中的电路元素。
2. 创建设计模块:VHDL仿真涉及到多个模块。
在这种情况下,我们有两个模块:数字模块和组件模块。
我们将数字模块设计为接收一个8位的计数器并输出模拟信号。
组件模块包括DAC芯片和琴键开关,这些组件分别接收输入信号,经过逻辑处理后,通过计数器和气压传感器输出压缩后的模拟信号。
3. 配置实体接口:为了确保VHDL仿真的准确性,我们必须配置模块实体接口,这里有两个实体:数值模块和组件模块。
它们需要定义数据量和接收输入端口。
4. 定义测试激励波形:这些波形定义从测试模块输入到仿真环境中的数字信号序列。
因此,我们需要定义输入数据以及时钟信号。
5. 编写测试模块:测试模块是用来检测VHDL仿真环境的激励波形。
它包括测试模块、实体、配置、激励波形和仿真模块。
三、VHDL实现的步骤1. 设计和构建硬件:在这一阶段,我们将实现FPGA硬件。
VHDL电子琴实验报告

VHDL电子琴实验报告
实验目的:
本实验的目的是设计一个VHDL电子琴,通过FPGA实现,实现按键发出不同的音调,并通过扬声器输出对应的音频信号,达到模拟真实电子琴的效果。
实验原理:
VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,用于描述数字电路的行为和结构。
在本实验中,我们将使用VHDL语言描述电子琴的按键和音调的对应关系,通过FPGA实现电子琴的功能。
电子琴实验主要包含两个部分:输入部分和输出部分。
输入部分是按键,按下不同的按键会发出不同的音调。
输出部分是扬声器,通过扬声器输出对应的音频信号。
实验步骤:
1.确定电子琴的按键数量和对应的音调。
2.使用VHDL语言描述电子琴的按键和音调的对应关系。
3.将VHDL代码综合成逻辑电路网表。
4.将逻辑电路网表烧录到FPGA中。
5.连接扬声器到FPGA输出引脚。
6.按下不同的按键,测试扬声器输出的音频信号是否正确。
实验结果:
经过实验测试,我们成功实现了一个简单的VHDL电子琴。
按下不同的按键,扬声器输出对应的音调。
通过调整VHDL代码中的音频频率,可以改变电子琴的音调高低。
实验总结:
通过本实验,我们深入理解了VHDL语言的应用和FPGA的原理。
电子琴作为一个实际应用案例,充分展示了数字电路设计的魅力。
在今后的学习和工作中,我们将能更加熟练地应用VHDL语言和FPGA技术,设计更加复杂的数字电路系统。
简易电子琴的VHDL仿真与实现

简易电子琴的VHDL仿真与实现随着科技的发展,电子琴已成为一种十分普及的音乐乐器。
除了可以通过购买市面上的电子琴来使用外,我们还可以自己动手制作一台简易的电子琴。
本文将介绍使用VHDL仿真与实现一台简易电子琴的方法。
首先,我们需要了解VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述数字电路和系统。
VHDL可以描述数字电路和系统的行为、结构和时间性质,并且可以转化为硬件和软件实现。
因此,我们可以使用VHDL来描述电子琴的结构和行为,然后将其实现在FPGA上。
在电子琴的设计中,我们需要考虑最基础的功能:音符的产生和声音的输出。
因此,我们需要将电子琴拆分成两部分来考虑:输入和输出。
输入部分主要负责产生音符,音符的产生需要考虑按键的位置、按键的压力等因素。
由于VHDL主要用来描述数字电路,我们可以将输入部分简化为一组称为“开关矩阵”的二维数组。
在这个开关矩阵中,我们可以设置每个按键的位置和状态(即是否按下),并通过数字电路来判断按键状态的变化。
输出部分则负责将产生的声音输出到扬声器上。
在FPGA 中,我们可以通过PWM(Pulse-Width Modulation)技术来实现声音的输出。
PWM技术可以将模拟信号转化为数字信号,然后通过FPGA输出数字信号的高低电平来模拟模拟信号的频率和幅度,从而实现声音的输出。
接下来,我们需要考虑如何将输入和输出部分结合起来。
我们可以将输入部分和输出部分放在同一个模块中,并通过端口来连接。
在这个模块中,我们可以设置一个时钟,根据时钟的脉冲来判断按键状态是否改变,并且触发PWM来输出声音。
在设计完成后,我们需要进行VHDL仿真来验证我们的电子琴是否正确。
仿真可以模拟电路的行为和输出,以验证电路是否按照预期工作。
我们可以通过仿真来测试输入部分的工作状态,例如测试按键是否可以正确响应。
同时,我们也可以测试输出部分的工作状态,例如测试声音的频率和幅度是否符合预期。
简单电子琴实训报告

《基于GA数字系统设设计文档项目名称:基于VHDL的简易电子琴姓名: __________________________院系: __________________________专业: __________________________ 学号: __________________________指导教师: _______________________完成时间:2012 年6月20日基于FPGA的数字系统设计项目成绩评价表指导教师:目录1项目名称、内容与要求............................... 4页1.1设计内容...................................... 4页1.2具体要求...................................... 4页2 系统整体架构(Architecture Description ) ................... 4 页2.1设计思路...................................... 4页2.2系统原理(包含:框图等阐述)与设计说明等内容…4页2.3创新点与原创性内容............................ 5页3系统设计(含HDL或原理图输入设计) ..................................... 5页注:此部分包含主要逻辑单元、模块、源代码等内容3.1 HDL 代码...................................... 5页3.2系统整体电路图(或RTL级电路图).................. 7页4 系统仿真(Simulation Waveform ) ................... 7 页5 FPGA 实现(FPGA Implementation ) (9)页6 总结(Closing ) ........................................................... 10 页参考书目(Reference ) : ................................ 11 页附录(Appendix ) : ...................................... 12 页1、项目名称、内容与要求1.1设计内容:设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
VHDL电子琴设计

VHDL电子琴设计电子琴是一种键盘乐器,其本质就是电子合成器,它采用的是大规模集成电路。
而VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language。
VHDL语言是一种用于电路设计的高级语言,是一种在电子工程领域通用的硬件描述语言。
而本设计就是基于VHDL而设计的电子琴,使用Quartus II 程序实现电子琴的功能。
在Quartus Ⅱ软件平台上编译下载到FPGA实验箱,采用FPGA器件驱动小扬声器构成一个乐曲演奏电路。
该电子琴的设计大体由三个模块构成,分别为控制模块,乐曲存储及循环播放模块,顶层模块。
本设计可以实现手动电子琴储存和自动播放音乐功能。
1 引言 (1)1.1研究背景及课题意义 (1)1.1.1电子琴的特点 (1)1.1.2 VHDL的特点 (1)1.1.3 VHDL的电子琴的应用 (2)1.1.4 本论文实现的基本要求 (2)2 基于FPGA模块的电子琴设计思路 (3)2.1基于FPGA模块电子琴的方案 (3)2.1.1 电子琴的基本按键的定义与实现 (3)2.1.2 电子琴储存模块的实现 (4)2.1.3 电子琴回放模块的实现 (5)3 基于VDHL的电子琴的系统顶层设计思路 (7)3.1 用QUARTUSII进行电子琴系统顶层设计 (7)4 基于VDHL的电子琴设计总结 (7)1 引言1.1研究背景及课题意义1.1.1电子琴的特点电子琴是一种电子乐器。
电子乐器的产生,首先是用来模仿管风琴(Pipe Organ)。
管风琴发明于公元前,鼎盛于17世纪。
它是靠水力或人力鼓风,吹响与建筑物一样高大的管子而发音的乐器。
管风琴是大型键盘乐器,结构非常复杂。
管风琴有手键盘和脚键盘构成,有些手键盘多达4-5层。
一架管风琴的演奏可以和一个管弦乐队媲美。
管风琴结构复杂,体积庞大,造价昂贵,受演出场地、环境限制,不易搬动。
VHDL语言电子琴设计

简易电子琴的设计摘要本系统是采用技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言按模块化方式进行设计,然后进行编程、时序仿真、整合。
本系统功能比较齐全,有一定的使用价值。
关键字电子琴;;;音调发生;目录1 引言 (1)1.1 设计的目的 (1)1.2 设计的基本内容 (1)2 、简介 (1)2.1 技术 (1)2.2 硬件描述语言—— (2)2.2.1 的简介 (2)2.2.2 语言的特点 (2)2.2.3 的设计流程 (3)3 简易电子琴设计过程 (4)3.1简易电子琴的工作原理 (4)3.2简易电子琴的工作流程图 (4)3.3简易电子琴中各模块的设计 (5)3.3.1 乐曲自动演奏模块 (6)3.3.2 音调发生模块 (7)3.3.3 数控分频模块 (7)3.3.4 顶层设计 (9)4 系统仿真 (10)5 结束语 (11)致谢 (12)参考文献 (13)附录 (14)1 引言我们生活在一个信息时代,各种电子产品层出不穷,作为一个计算机专业的学生,了解这些电子产品的基本组成和设计原理是十分必要的,我们学习的是计算机组成的理论知识,而课程设计正是对我们学习的理论的实践与巩固。
本设计主要介绍的是一个用超高速硬件描述语言设计的一个具有若干功能的简易电子琴,其理论基础来源于计算机组成原理的时钟分频器。
1.1 设计的目的本次设计的目的就是在掌握计算机组成原理理论的基础上,了解技术,掌握硬件描述语言的设计方法和思想,通过学习的语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机实际问题的能力。
Verilog hdl—简易电子琴设计

文理学院简易电子琴设计专业:自动化学号:2012118064:一天虹影实验目的使用VerilogHDL语言进行前端设计,并使用Quaruts软件在GW48-PK2实验上实现仿真,实现硬件电子琴。
电子琴要求有8个音阶,使用外部时钟信号3MHz,能同步显示音阶。
1、 设计一个简易电子琴。
要求能演奏的音域为D 调的do 到E 调do 。
2、 用GW48-PK2中的8个按键作为琴键。
3、 GW48-PK2中有蜂鸣器。
4、 可以使用GW48-PK2上的12MHz 作为输入时钟信号设计思路通过可编程逻辑器件(PLD )和VHDL 硬件描述语言来实现电子琴的基本要求。
设计的主体是数控分频器,对输入的频率按照与每个音阶对应的分频系数进行分频,得到各个音阶对应的频率分别在蜂鸣器和数码管上以声音和频率数值的形式作为输出。
设计组成与原理下图为系统的工作原理框图。
分频置 数按 键分 频器12MHZ蜂 鸣 器数码管显示1.音名与频率的关系音乐的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。
在2个八度音之间,又可分为12个半音。
灵位,音符A(简谱中的低音6)的频率为440HZ,音符B到C之间、E到F之间为半音,其余为全音。
由此可以计算出简谱中所有的音符的频率,在这我们只需计算出中音1到高音1的频率即可。
如下所示:表一简谱音名与频率的对应关系由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。
若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。
实际的设计应综合考虑两方面的因素,在尽量减少频率误差的前提下取合适的时钟频率。
本实验要求用12MHZ的时钟脉冲信号,所以不必考虑这方面的因素。
实际上,只要各个音符间的相对频率关系不变,弹奏出来的音调听起来是不会走调的。
2.分频系数与初始值(预置数)本例设计的音乐电子琴选取12MHZ的系统时钟频率。
简易电子琴的VHDL仿真与实现

简易电子琴的VHDL 设计与实现一.设计课题与任务要求:设计制作一个简易电子琴演奏器。
原理概述:依据声乐知识,产生音乐的两个因素是音乐频率的持续时刻,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。
每两个半音的频率比为4。
另外,音名A〔乐谱中的低音6〕的频率为440HZ,音名B到C之间,E到F 之间为半音,其余为全音。
由此能够计算出乐谱中从低音1到高音1之间每个音名的频率如下表所示。
全然要求:1、用8×8点阵显示“1234567”七个音符构成的电子琴键盘。
其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如以如下面图所示。
图1点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1234567”七个音符。
当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂喊器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂喊器停止声音的输出。
以如下面图所示为按下BTN3按键时点阵的显示情况。
图2按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。
4、通过按键BTN0进行复位,操纵点阵显示图1的初始状态。
提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲曲折折曲曲折折折折曲曲折折曲曲折折折折折折的功能。
2、增加手动演奏的音符存储、播放功能。
二.系统设计〔包括设计思路、总体框图、分块设计〕1.设计思路讲明:电子琴的设计包括七个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table、分频模块fenpin、存储模块store、七段数码管显示模块seg7和点阵的显示模块lattice。
弹奏模块keyplay依据按键动作key,和高中低模式选择mode产生指示音调的index_key。
基于VHDL文本输入法的简易电子琴的设计

EDA 课程设计报告书课题名称基于V HD L 文本输入法的简易电子琴的设计 姓 名 学 号 院 系 专 业 指导教师年 月 日※※※※※※※※※※※※※ ※※※※※※※※※※※级学生EDA 课程设计一、设计任务及要求设计任务设计一个简易的八音符电子琴,其由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
要求(1) 通过按键输入来控制音响。
(2)系统演奏时通过按键可以选择是手动演奏还是自动演奏已存入的乐曲。
(3) 能够自动演奏多首乐曲,且乐曲可重复演奏。
指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日基于VHDL文本输入法的简易电子琴的设计1设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
2设计的主要内容和要求(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)系统演奏时通过按键可以选择是手动演奏还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且乐曲可重复演奏。
3 整体设计方案本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,不同的音阶对应不同频率的正弦波。
按下每个代表不同音阶的按键时,能够发出对应频率的声音。
故系统可分为乐曲自动演奏模块(AUTO)、音调发生模块(TONE)和数控分频模块(FENPIN)三部分。
系统的整体组装设计原理图如图3-1。
图3-1 系统的整体组装设计原理图由于设计分模块组成,每个单独的模块都是一个完整的源程序,分别实现不同性质的功能,但是每个模块又是紧密关联的,前一个模块的输出很可能是后一模块的输入。
基于VHDL的电子琴程序设计与仿真(附代码)

电子琴程序设计与仿真顶层程序与仿真,音阶发生器程序与仿真,数控分频模块程序与仿真,自动演奏模块程序与仿真设计例1.顶层程序与仿真(1)顶层VHDL程序--文件名:top.vhd--功能:顶层文件--最后修改日期:2004.3.20library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top isPort ( clk32MHz :in std_logic; --32MHz系统时钟handTOauto : in std_logic; --键盘输入/自动演奏code1 :out std_logic_vector(6 downto 0); --音符显示信号index1 :in std_logic_vector(7 downto 0); --键盘输入信号high1 :out std_logic; --高低音节信号spkout :out std_logic); --音频信号end top;architecture Behavioral of top iscomponent automusicPort ( clk :in std_logic;Auto: in std_logic;index2:in std_logic_vector(7 downto 0);index0 : out std_logic_vector(7 downto 0));end component;component tonePort ( index : in std_logic_vector(7 downto 0);code : out std_logic_vector(6 downto 0);high : out std_logic;tone0 : out integer range 0 to 2047);end component;component speakerPort ( clk1 : in std_logic;tone1 : in integer range 0 to 2047;spks : out std_logic);end component;signal tone2: integer range 0 to 2047;signal indx:std_logic_vector(7 downto 0);beginu0:automusic port map(clk=>clk32MHZ,index2=>index1,index0=>indx,Auto=>handtoAuto); u1: tone port map(index=>indx,tone0=>tone2,code=>code1,high=>high1);u2: speaker port map(clk1=>clk32MHZ,tone1=>tone2,spks=>spkout);end Behavioral;(2)仿真顶层文件仿真图如图8.17.2所示。
简易电子琴电路的设计仿真与实现课程设计(可编辑)

简易电子琴电路的设计仿真与实现课程设计课程设计任务书学生姓名:专业班级:指导教师:工作单位: 信息工程学院题目: 简易电子琴电路的设计仿真与实现初始条件:可选元件:集成运算放大器LM324、电阻、电位器、电容若干,直流电源,或自备元器件。
可用仪器:示波器,万用表,直流稳压源,函数发生器要求完成的主要任务:(1)设计任务根据要求,完成对简易电子琴电路的仿真设计、装配与调试,鼓励自制稳压电源。
(2)设计要求①设计一简易电子琴电路,按下不同琴键即改变 RC值,能发出C调的八个基本音阶, 采用运算放大器构成振荡电路,用集成功放电路输出。
已知八个基本音阶在C调时所对应的频率如下表所列C调 1 2 3 4 5 6 7 if 0 /H Z 264 297 330 352 396 440 495 528②选择电路方案,完成对确定方案电路的设计。
③利用Proteus或Multisim仿真设计电路原理图,确定电路元件参数、掌握电路工作原理并仿真实现系统功能。
④安装调试并按规范要求格式完成课程设计报告书。
⑤选做:利用仿真软件的PCB设计功能进行PCB设计。
时间安排:1、前半周,完成仿真设计调试;并制作实物。
2、后半周,硬件调试,撰写、提交课程设计报告,进行验收和答辩。
指导教师签名: 年月日系主任(或责任教师)签名: 年月日目录1.模电课设概述..............................................................................1)1.1设计背景..............................................................................1)1.2设计目的及意义.....................................................................11.3开发环境proteus简介 (1)2.电路原理....................................................................................32.1 RC桥式振荡电路及频率选择......................................................32.2振荡条件 (4)3.总体方案设计……………………………………………………………………53.1实验电路设计思路…………………………………………………………53.2设计电路图...........................................................................63.3实验参数选择 (6)4.仿真曲线及结果分析.....................................................................74.1仿真操作过程及曲线...............................................................74.2仿真结果分析 (14)5.实物制作及仿真、实物的差异......................................................155.1实物制作过程和调试过程......................................................155.2 仿真、实物的差异 (16)6.心得体会………………………………………………………………………(17)7.元件清单………………………………………………………………………(18)8.参考文献………………………………………………………………………(19)1模电课设概述1.1 设计背景电子琴是一种键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
用VHDL语言设计简易电子琴演奏

基于VHDL语言设计简易电子琴演奏电路摘要:生活中一首简单的歌也要遵循基本的乐理知识,歌曲要有固定的节拍,即每多少分音符为一拍,每小节几拍。
因此,拍子是音乐中最重要的组成部分,本课程设计主要采用EDA技术,基于VHDL语言设计一个简易的八音符电子琴,并且可以选择通过按键输入或者自动演奏来奏出存入的乐曲。
课程设计中,程序运行平台为MAX+plusIIo根据音符的分频预置数来弹奏出不同的音符,将演奏出的《小红帽》既而再通过各个子模块,编程,仿真,达到最终的验证。
关键字:EDA;VHDL;电子琴;音符;频率一、设计说明(一)EDA的技术及其发展当今世界,电子技术有了突飞猛进的发展,这使得现代电子产品融入并运用于各个领域,其性能也在逐步地提高。
现代电子技术的核心是EDA,EDA是电子设计自动化(ElectronicDesignAutomation)缩写,是90年代初从CAD、CAM、CAT和CAE的概念发展而来的,以硬件描述语言为系统逻辑描述的主要表达方式,并以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统。
EDA工具从数字系统设计的单一领域,发展到今天,应用范围已涉及模拟、微波等多个领域,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
可以说,EDA技术为现代电子理论和设计的表达与实现提供了可能。
(二)VHDL语言的特点常用硬件描述语言有VHDL、Verilog和ABEL语言,其中VHDL语言用的较为广泛,它的全英文名VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,VHDL具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
简易电子琴电路的设计仿真与实现word精品

目录一.模电课设概述 (1)1.1设计背景 (1)1.2设计目的及意义 (1)二.Proteus软件简介 (2)三.简易电子琴基本原理 (3)3.1音乐产生原理 (3)3.2设计原理 (3)3.3方案设计 (8)四.Proteus 原理图绘制 (12)4.1选取元件 (12)4.2放置元件及排版 (13)4.3模拟及仿真 (14)五.Proteus 电路仿真 (15)六仿真结果分析 (19)6.1频率及放大倍数测量 (19)6.2理论比较 (19)6.3误差分析 (19)七心得体会 (20)八.参考文献 (21)九.元器件清单 (22)十.本科生课程设计成绩评定表 (24),•模电课设概述1.1设计背景电子琴是一种键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
现在的电子琴一般使用PCM或AWM采样音源所谓采样就是录制乐器的声音,将其数字化后存入ROM里,然后按下键时CPU回放该音。
甚至有一些高级编曲键盘可以使用外置采样(比如Tyros 3的硬盘音色)。
现代电子琴并非“模仿”乐器音色。
它使用的就是真实乐器音色。
当然,现在力度触感在电子琴里是必备的。
而且现代电子琴还加上了老式电子琴的滤波器,振荡器,包络线控制来制造和编辑音色。
甚至也带上了老式电子琴的FM 合成机构。
本次课程设计主要是通过对电子琴主体部分的电路进行模仿设计,按下不同琴键改变RC值,发出C调的八个基本音阶,采用运算放大器构成振荡电路,用集成功放电路输出音调,从而达到电子琴固有的基本功能。
1.2设计目的及意义(1)培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。
⑵锻炼学生自学软件的能力及分析问题、解决问题的能力。
(3) 通过课程设计,使学生在理论计算、结构设计、工程绘图、查阅设计资料、标准与规范(4) 巩固、深化和扩展学生的理论知识与初步的专业技能。
(6)为今后从事电子技术领域的工程设计打好基础基本要求。
简易电子琴电路的设计仿真及实现

. -目录一.模电课设概述11.1 设计背景11.2 设计目的及意义1二.Proteus软件简介2三.简易电子琴基本原理33.1 音乐产生原理33.2 设计原理33.3 方案设计8四.Proteus原理图绘制124.1选取元件124.2放置元件及排版134.3模拟及仿真14五.Proteus电路仿真16六仿真结果分析206.1 频率及放大倍数测量206.2 理论比较206.3 误差分析21七心得体会21八. 参考文献22九.元器件清单23十.本科生课程设计成绩评定表26一.模电课设概述1.1 设计背景电子琴是一种键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。
现在的电子琴一般使用PCM或AWM采样音源所谓采样就是录制乐器的声音,将其数字化后存入ROM里,然后按下键时CPU回放该音。
甚至有一些高级编曲键盘可以使用外置采样(比如Tyros 3的硬盘音色)。
现代电子琴并非“模仿”乐器音色。
它使用的就是真实乐器音色。
当然,现在力度触感在电子琴里是必备的。
而且现代电子琴还加上了老式电子琴的滤波器,振荡器,包络线控制来制造和编辑音色。
甚至也带上了老式电子琴的FM 合成机构。
本次课程设计主要是通过对电子琴主体部分的电路进行模仿设计,按下不同琴键改变RC值,发出C调的八个基本音阶,采用运算放大器构成振荡电路,用集成功放电路输出音调,从而达到电子琴固有的基本功能。
1.2 设计目的及意义(1)培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。
(2)锻炼学生自学软件的能力及分析问题、解决问题的能力。
(3)通过课程设计,使学生在理论计算、结构设计、工程绘图、查阅设计资料、标准与规X(4)巩固、深化和扩展学生的理论知识与初步的专业技能。
(6)为今后从事电子技术领域的工程设计打好基础基本要求。
二.Proteus软件简介Proteus软件是由英国LabCenter Electronics公司开发的EDA工具软件,由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑器,它集成了高级原理布线图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易电子琴的VHDL 设计与实现一.设计课题与任务要求:设计制作一个简易电子琴演奏器。
原理概述:根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。
每两个半音的频率比为4。
另外,音名A(乐谱中的低音6)的频率为440HZ,音名B到C之间,E到F 之间为半音,其余为全音。
由此可以计算出乐谱中从低音1到高音1之间每个音名的频率如下表所示。
基本要求:1、用8×8点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。
其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示。
图1 点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。
当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。
下图所示为按下BTN3按键时点阵的显示情况。
图2 按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。
4、通过按键BTN0进行复位,控制点阵显示图1的初始状态。
提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。
2、增加手动演奏的音符存储、播放功能。
二.系统设计(包括设计思路、总体框图、分块设计)1.设计思路说明:电子琴的设计包括七个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table、分频模块fenpin、存储模块store、七段数码管显示模块seg7和点阵的显示模块lattice。
弹奏模块keyplay根据按键动作key,和高中低模式选择mode产生指示音调的index_key。
自动演奏模块autoplay接收50MHz的时钟信号,输出index_auto。
存储录音模块store根据store1选择录音,用数组存储index_key,并将其传输给index_store,作为录音存储的数据。
查表及显示模块table根据按键button,replay选择采用index_key或index_auto或者index_store来查分频系数表,输出分频系数tone。
对于tone的编码,采用了五位编码方式,高2位存储高中低音对应的11、01、00编码,低3位存储相应输入音调对应的二进制编码。
分频模块fenpin接收table输出的分频系数tone,并据此分频,将对应频率的信号buzz输出给扬声器供其发声。
七段数码管显示模块seg7根据对应的按键button,replay选择采用index_key 或index_auto或者index_store,分别对应不同的数码管显示输出。
点阵的显示模块lattice根据对应的按键button,replay选择采用index_key 或index_auto或者index_store,分别对应不同的数码管显示输出。
这样可以保证在不同的模式下点阵以及数码管都可以对应显示输出。
2.总体框图与流程图图1 系统实现流程图图2 系统设计框图3.分块设计系统总体设计:图3 顶层设计Keyplay模块设计:将输入key[6..0],mode编码为index_key[4..0]。
index_key[4..0]的高两位表示高、中、低音,00表示低音,01表示中音、11表示高音。
index_key[4..0]低三位表示音调,001表示do,010表示re,以此类推,000表示不发音。
这样可以实现对不同按键模式下的编码,而这些编码会为后续模块例如seg7,lattice所使用。
图4 keyplay模块设计autoplay模块设计:把50MHz的输入时钟分频为16Hz,作为节拍。
将要自动演奏的歌曲预先写为index_auto 的格式(index_auto格式与index_key格式相同)。
以16Hz 的频率将index_auto输出。
这里需要用到计数器,此计数器的长度由演奏的歌曲长度而定。
图5 autoplay模块设计查表及显示模块table设计:(1)输入按键button,replay用于选择模式。
由于是琴键式,不能根据button本身的值来选择模式。
button为1且replay为0则把index_auto赋给内部信号index,button为0且replay为0则把index_key 赋给它,button为0且replay为1则把index_store 赋给它。
(2)用index来查表,获得分频系数tone,输出。
(3)同时根据index获得编码表示的高、中、低音的音调,输出给数码管和点阵。
图6 table模块设计分频模块fenpin设计:输入分频系数tone。
(1)设置内部信号i用于计数,clk_data作为分频结果。
,每次clk上升沿检测i是否等于tone,相等则把i清零,并使clk_data翻转,否则i自增1。
(2)把clk_data赋给输出信号buzz,由buzz驱动扬声器发声。
图7 fenpin模块设计seg7数码管模块设计:(1)由button和replay进行调用选择,选择采用index_key或index_auto或者index_store作为对应的信号index输入。
(1)index分别对应不同的数码管显示输出。
图8 seg7模块设计lattice数码管模块设计:(1)由button和replay进行调用选择,选择采用index_key或index_auto或者index_store作为对应的信号index输入。
(1)index分别对应不同的点阵输出显示图9 lattice模块设计Store存储模块设计:Store模块使用了store1和replay控制录音和录音播放的选择。
这里使用了一个二维数组来存储输入的按键信息,然后录音播放时可以按照输入的频率进行对应的播放。
图10 store模块设计三、仿真波形及仿真分析lattice模块仿真:波形分析:这里我只选择性地选取了键盘输入的对应点阵显示,首先键盘输入时button 信号为低电平,所以可以从仿真图中看到button信号为低电平,且此时的复位信号无效,为低电平,此时key输入信号有效。
在对应的时钟时钟信号输入下,当键盘输入信号key对应相应的输入时,点阵的行列也会有对应的输出。
由于行的输出是扫描信号,所以对应时钟输入,点阵的行信号在对应的时钟分频下,分别对应一行输出低电平有效,表示扫描至该行,下一个时钟分频对应下一行的低电平输出。
而对应列扫描,根据key输入的情况,分别对应列扫描的电平输出。
如图,例如输入do时,有lie 11011111,row 01100000。
fenpin模块仿真:可以看到,2(tone+1)代表的是分频系数,所以对应仿真如上图有,当tone为0时,为2分频,所以buzz对应着时钟的二分频,即分频系数与tone的关系为分频系数=2(tone+1)。
所以在计算每个音调对应的频率时,使用f=2(tone+1)。
Keyplay模块仿真:如图,对应着不同的key输入和mode选择,会译码为不同的index_key。
比如mode=00,key=0000001时,有index_key译码为00001,mode=00,key=0001000时,有对应index_key译码为00100。
仿真结果与预期要求相符。
autoplay模块仿真:如图,对应时钟输入产生一定的节拍,在对应的节拍播放我预先设定的乐曲音调,可以看出,对应前三个节拍的为音调mi,接下来有一拍的停顿,接下来又是三个节拍的mi,和预先编写的jungle bells的乐曲对应auto-play输出一致。
store模块仿真:如图,对应时钟上升沿若有按键,则记录;replay有效后,可以看到index_store 有对应的赋值,表示有效的按键信息已经被存储。
可以看到根据手动录入的index-key情况,对应replay时的index_store输出分别为10001,10110,01011……Seg7模块仿真:如图所示,对应的cat输出为时钟扫描信号,所着时钟变化,cat0,cat1,cat2, cat3,cat4,cat5依次出现低电平,表示对应的选通管有效,而A,B,C,D,E,F,G,DP则根据输入的key而变,可以看到,对应mi的输入的时候,数码管A,B,C,D,E,F,G,DP 分别对应1,1,1,1,0,0,1,0,恰好可以显示数码管上的3字样。
四、源程序(要有注释)electrorgan.vhl --顶层文件library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity electrorgan is --作为顶层文件,它包含实现功能用到的所有端口port ( clk :in std_logic;key:in std_logic_vector(6 downto 0);mode:in std_logic_vector(1 downto 0);cat:out std_logic_vector(5 downto 0);clr:in std_logic;button:in std_logic;replay:in std_logic;spkout :out std_logic;store1: in std_logic;Atop:OUT std_logic;Btop:OUT std_logic;Ctop:OUT std_logic;Dtop:OUT std_logic;。