数电EDA简易电子琴Verilog设计方案

合集下载

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模块。

eda课程设计简易电子琴

eda课程设计简易电子琴

eda课程设计简易电子琴一、课程目标知识目标:1. 让学生了解EDA(电子设计自动化)的基本概念,掌握简易电子琴的设计原理;2. 使学生掌握电子琴电路的组成、工作原理和编程方法;3. 帮助学生理解电子琴音调、音量调节的电路实现方式。

技能目标:1. 培养学生运用EDA工具进行电路设计和编程的能力;2. 提高学生动手实践、团队合作和问题解决的能力;3. 让学生学会使用电子琴演奏简单曲目,培养音乐素养。

情感态度价值观目标:1. 激发学生对电子设计的兴趣和热情,培养创新精神和实践能力;2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯;3. 引导学生关注科技发展,认识电子技术在生活中的应用,增强社会责任感。

课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手能力和创新能力。

学生特点:学生处于初中阶段,具有一定的物理、数学基础,对新鲜事物充满好奇心,但可能缺乏实际操作经验。

教学要求:结合学生特点,采用任务驱动法,引导学生主动探究、实践,注重理论与实践相结合,提高学生的综合能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 理论知识:- 电子元件基本原理:电阻、电容、二极管、三极管等;- 电子琴工作原理:振荡器、分频器、放大器、键盘扫描电路等;- EDA软件使用:原理图绘制、PCB设计、仿真测试等。

2. 实践操作:- 简易电子琴电路搭建:指导学生动手搭建电子琴电路;- EDA软件操作:教授学生使用EDA软件进行原理图绘制和PCB设计;- 编程与调试:教授学生编程方法,对电子琴进行调试。

3. 教学大纲:- 第一周:电子元件基本原理学习;- 第二周:电子琴工作原理学习;- 第三周:EDA软件使用教学;- 第四周:简易电子琴电路搭建与调试;- 第五周:总结与展示,学生进行作品展示,分享心得。

4. 教材章节:- 《电子技术基础》中关于电子元件、电路原理的相关章节;- 《电子设计自动化》中关于EDA软件使用的相关章节;- 《电子琴设计与制作》中关于电子琴工作原理和制作过程的相关章节。

基于EDA的简易电子琴设计-鲍亚文

基于EDA的简易电子琴设计-鲍亚文

基于EDA的简易电子琴设计鲍亚文(安庆师范大学物理与电气工程学院安徽安庆 246011)指导老师:郑江云摘要:本设计是一个简易的七音符电子琴,该电子琴可以通过按键输入来控制音调,也可对预置乐曲的自动演奏,同时由数码管显示即时音符。

系统的实现是基于EDA技术,在Quartus软件平台上,借助FPGA目标器件,用硬件描述语言Verilog HDL进行编程并仿真验证。

本设计中的电子琴可操作性好,音符显示直观,声音优美。

关键词:电子琴,电子设计自动化,Verilog HDL语言引言科技发展的日新月异,催生了一系列新奇实用的电子产品。

在这些电子产品中,电子琴早已成为电子乐器行列中的重要一员。

电子琴是人类仿制常规乐器的代表之一,其发明问世极大地丰富了人们的听觉感受,推动了音乐的普及和发展。

在信息化与电子化交织的今天,电子琴作为社会科技与文明的产物,正扮演着音乐领域中不可或缺的角色。

EDA技术的快速发展和成熟,FPGA等数字可编程器件的出现和进步,基于EDA技术的设计也变得愈加简单可行。

基于EDA技术的设计不仅系统可靠性较高,而且能实现较为复杂的功能。

运用EDA软件可方便地在计算机平台上实现设计与仿真,本设计中的电子琴便是基于EDA技术,运用Verilog HDL 语言设计完成的。

1 EDA概述与音乐知识1.1 EDA技术1.1.1 EDA的发展EDA(Electronic Design Automation,电子设计自动化)可以认识为在计算机工作平台上,以EDA 软件为开发环境,以PLD器件或ASIC专用集成电路为目标器件来设计实现电路系统的一门技术。

EDA 技术在逐渐进步,其大致经历了3个发展阶段:CAD阶段(20世纪70年代至80年代初)、CAE阶段(20世纪80年代初至90年代初)、EDA阶段(20世纪90年代以后)。

[1]EDA技术在进入21世纪后,得到了不小的进步和发展,突出表现在以下几个方面:[2](1)不断推出在仿真验证和设计两方面都支持标准硬件描述语言的EDA软件,功能更加强大且验证更加高效;(2) EDA技术使得电子设计成果以自主知识产权(IP)的方式予以确认,提高了设计成果的可重用性;(3)EDA技术使得电子领域各学科之间的界限更加模糊,互为包容,如模拟和数字、软件和硬件、系统和器件、ASIC和FPGA等;(4)SoPC(可编程芯片系统)进入实用化阶段;(5)高速数字信号处理算法可基于FPGA的DSP技术实现。

EDA简易电子琴设计报告

EDA简易电子琴设计报告

,、题目分析1、分析要求,确定总体方框图本设计基本部分是用VHDL语言设计一个简易的八音符电子琴,在Quartus II 平台下下载到Cyclone系列的EP1C12Q240C芯片中,该电路设计能够实现DO RE Ml、FA等八个音调的电子琴,发挥部分是设计一乐曲自动演奏器,用户自己编制乐曲存入电子琴,电子琴可以完成自动演奏。

电子琴音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。

根据系统设计要求,系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图1所示,它由乐曲自动演奏模块AUTO音调发生模块TONE和数控分频模块FENPIN三部分组成。

图1系统的整体组装设计原理图2、最终完成的技能指标(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。

(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲】、选择方案通过可编程逻辑器件(PLD和VHDL硬件描述引言来实现电子琴的基本部分和发挥部分的设计。

对于基本部分,设计的主体是数控分频器,对输入的频率进行分频,得到各个音阶对应的频率最为输出。

当按下不同的键时发出不同的声音。

对于发挥部分,则在原设计的基础上,增加一个乐曲存储模块,代替了键盘输入,产生节拍控制(index数据存留时间)和音阶选择信号,即在此模块中可存放一一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。

方案一:由单片机来完成设计。

可用单片机控制键盘的输入,以及产生相应的频率信号作为输出。

目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。

但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,如锁存器,译码器等都需要单独的电路,因此整个系统显得十分复杂,抗干扰性差,在运行过程中容易死机或进入死循环,可靠性降低,而功耗费用增高。

数字电子EDA课程设计八音电子琴

数字电子EDA课程设计八音电子琴

数字电子EDA课程设计八音电子琴第一篇:数字电子EDA课程设计八音电子琴燕山大学EDA课程设计实验报告院系:信息科学与工程学院姓名:班级:学号:日期:[实验名称] 八音电子琴[实验要求] 1.能发出1.2.3.4.5.6.7.i八个音2.用按键作为键盘3.C调至B调对应频率如下表音调 C(高音)B A G F E D C频率(Hz)261.63x2 493.88 440.00 392.00 349.23 329.63 293.66 261.63 [实验电路设计] 1.命题分析根据命题的要求,要使扬声器发音,需要在其输入信号端连接一个对应频率的方波信号.实验使用的信号源可以提供从几Hz到几兆Hz不等的信号频率,自然可以想到本实验命题的关键是一个具有相应分频比的分频器.考虑到硬件(按钮)在实际工作过程中会因元件的接触产生一些不可避免的抖动脉冲电平,会对实验造成影响,因此需要在按键接入线路中安装防抖动电路.2.设计过程1>分频器为了取得合适的电路复杂度和可接受的误差范围,分频器的时钟信号选取为器件所提供的JPCK—1(3MHz音频信号).然后通过计算,用时钟信号频率除以各发音频率,得到的分频比如下表:分频比(16进制)5DEE 6384 6F84 7D62 8ADE 951C A760 BBDE频率(Hz)高C:261.63x2 B:493.88 A:440.00 G:392.00 F:349.23 E:329.63 D:293.66 C:261.63 利用四片十六进制计数器74LS161就可以连接成适用的分频器.分频器连接完成后会产生一个预定频率的周期脉冲.但是实验要求的方波其占空比应该为1:1,因此在输出脉冲端加装一个T触发器,每次脉冲到达触发器的时候输出便会跳变电平,这就达到了驱动扬声器的条件.但是在应用了T触发器后输出方波的周期比预定的扩大了一倍,也就是说频率减至原来的二分之一.此时应重新选择时钟信号,令其为原来2倍即可.根据实验指导书,最终确定选择的时钟信号为6MHz.2>防抖动电路利用D触发器的电压跟随特性可以用一个频率较低的时钟信号驱动,达到防止按键抖动的目的.电路较简单,见图3.图1.时钟分频电路(downway)图2.CP为375K时上图的B4输出波形由于设计的原因,本电路只能支持单音节输入.当同时键入两个以上的音阶时,分频比较小的(比较高的音阶)优先发声.图3.按键输入防抖动电路3>电路组合组合后的电路模块如图4.共有11个输入端和1个输出端.其中,CP_6M为整个电路的主频,使用电路板上的6MHz信号输出端;CP_1US为防抖动电路中触发器所使用的时钟,要求频率不高,选择电路板提供的CLK3-3(12Hz);KEYCa-B是电子琴的输入按键接口,依次是从低音到高音.Speaker是电路的输出端,接入扬声器,为其产生相应音阶的频率.实际电路如图4.连接完成后,对该电路进行仿真测试,如图5,令其CP_6M为6MHz,CP_1US为一个较低频率脉冲,设臵KEYB(音节B)为有效电平,在speaker上得到的输出频率为493,与实际音节的频率相同.图4.八音电子琴图5.电子琴完成品的仿真波形T触发器2分频电路[硬件测试] [实习心得] 第一感觉,数字电子技术EDA实习很有意思.我们可以有充分的时间去思考怎么做出一个东西,这个东西的用处也许不大甚至几乎没有,但重要的是思考的过程:从它的用途总结出它的特性,从它的特性构思出它的原理,从原理到构建模型,再到模型的实现,利用已有的知识,可用的元件,最终组合出一个具有高度逻辑性的组合电路,这和我们小时候玩搭积木差不多.把积木一块块的搭成一座城堡,中间缺少任何一层甚至任何一块,城堡都可能会倒塌.同理,在我们构建命题所给的元器件时任何一个逻辑错误都可能是致命的,导致最后无法出现正确结果或者干脆不能用.因此,实习,有意思的同时还不能大意.这是一个锻炼逻辑思维和思维严谨性的极好的机会,我和我的同学们在这次工作中受益非浅.大家都积极思思考,查找资料,集思广益来解决现有的问题。

EDA_电子琴课程设计 2(1).

EDA_电子琴课程设计 2(1).

《EDA技术实用教程》课程设计课程设计报告课题: EDA电子琴课程名称: EDA技术实用教程学院名称:物理电气信息学院班级: 2011级通信工程(1)班学生姓名:安昱学号: 12011243986 指导教师:杨泽林2013年12月26日EDA技术实用教程课程设计EDA电子琴摘要:本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它可通过按键输入来控制音响从而演奏出已存入的乐曲。

在课程设计中,系统开发平台为Windows XP,程序设计采用VHDL语言,程序运行平台为Quartus II。

然后编写程序实现电子琴的各项功能,使不同的音阶对应不同频率的正弦波,按下不同的键时发出对应频率的声音。

程序通过调试运行,时序仿真,电路功能验证,顺利地实现了设计目标。

关键词:电子琴;EDA;VHDL;音阶;频率1、引言随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。

其中电子技术的核心便是电子设计自动化EDA(Electronic Design Automatic)技术。

EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD 通用软件包,它根据硬件描述语言VHDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

本课程设计就是采用EDA技术描述语言VHDL编程实现简易电子琴的各项功能,是EDA技术应用于实际的一个很好的例子。

1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。

系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。

系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。

数电EDA简易电子琴Verilog设计

数电EDA简易电子琴Verilog设计

数电EDA简易电子琴Verilog设计数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:一、日期:设计任务用Verilog HDL语言设计简易电子琴。

(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。

二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。

三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。

题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。

低8度音:基本音频率/2,例如低音1的频率为523/2=。

高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。

不同的频率产生利用给定的时钟脉冲来进行分频实现。

(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。

(3)原理框图四、程序设计消抖模块module xiaodou(key_in,key_out,clk);input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0; elsepresta<=s1; ends1:beginkey_out<=0; if(q>9999) presta<=s2; elseq<=q+1; ends2:beginkey_out<=0; q<=0;if(key_in==1) presta<=s0; elsepresta<=s3; ends3:beginkey_out<=1; q<=0;if(key_in==0) presta<=s3; elsepresta<=s4; ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) begin q[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b000000011:qout<=11'b00000000000;9'b000000001:qout<=11'b00000000000;9'b000000000:qout<=11'b00000000000;9'b000000010:qout<=11'b00000000000;default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out);input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)< p="">beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000;pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。

verilog-hdl—电子琴课程设计

verilog-hdl—电子琴课程设计

v e r i l o g-h d l—电子琴课程设计(总22页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--湖北文理学院课程设计报告题目 Verilog hdl课程设计专业 1211自动化学生姓名一天虹影指导教师单鸣雷完成时间 2015—1—9课程设计(报告)任务书(理工科类)课程设计(报告)题目:电子琴的设计课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、深入学习Verilog HDL,了解其编程环境;3、学会运用Modelsim和Quartus II等编程仿真软件;4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习;二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、遇到问题小组成员及时讨论得出解决方法;3、遇到本组内解决不了的问题,及时和其他小组交流或询问老师;4、程序仿真,仿真无问题后进行模块调试,根据实验箱上的硬件实现是否符合要求来检验程序正确与否。

三、课程设计预期效果1、完成实验环境搭建;2、具有手动弹奏和自动播放功能;3、以按键(或开关)作为琴键,至少可以通过蜂鸣器输出7个音阶;4、自动播放曲目至少两首;摘要简易电子琴的设计通过通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。

电子琴有按键代替琴键的弹奏功能和自动播放功能。

按键有七个音,自动播放功能中有三首曲子,分别是《两只老虎》、《天空之城》和《康定情歌》。

程序共有五个模块,分别为主模块、琴键模块、曲1模块、曲2模块、曲3模块。

硬件实现是用三个LED灯组合亮暗分别表示七个按键按下情况,另外两个按键用来选择曲目。

实验箱原始时钟为50MHz,分频后变成不同的频率输出,通过蜂鸣器输出不同频率的声音。

数电实验简易电子琴的设计报告

数电实验简易电子琴的设计报告

数电实验简易电子琴的设计报告简易电子琴的设计姓名:班级:学号:一、项目概况选题目的,为了进一步巩固之前学到的知识,将课本的知识结合趣味性,让自己得到更好的提高。

项目构思,模型要做一个能成功实现的简易电子琴,包括按键按下后蜂鸣器会根据相应的频率准确发出相应音阶的声音,7段数码管会显示出按键的简谱,输出端H能够表示音的高低。

要用到计数器,触发器分频器,7段数码显示器等元件。

二、方案设计系统框图为:系统简介如下:1.系统框图2.系统端口(2个输入口 3个输出口)(1)CLK,频率1MHz。

用于提供时钟脉冲信号。

(2)DIN[7..0]。

琴键输入的8个音符,8位中只有一位是低电平即每次只能按一个键。

(3)SPK。

用于驱动蜂鸣器,输出频率fB与蜂鸣器发出的音调与电子琴各音阶基频有对应关系。

(4)LED。

接数码管,用于显示对应的简谱码,H显示音调高低。

3.工作原理(1)编码器CODE3。

将输入的8位琴键信号进行编码,输出一个4位码,最多能对应16个音符(若有16个键)。

按下的琴键的电平为低。

例:8’b11111110 : KEY<=4’b0001输入第一位琴键“哆”此时编译成4位二进制数 2^0=1 传入译码器INX2CODE。

(2)译码器INX2CODE。

将键盘输入的编码信号译码成数控分频器SPK0输出信号的频率控制字。

例:1 : F_CODE <= 11’H305刚才编码器编码传入的琴键“哆”的 1此时被译码为数控分频器SPK0的输出信号的频率控制字305H。

(3)SPK0。

计数器CNT11B是一个LPM宏模块,利用同步加载控制sload避免来自进位信号cout中可能的毛刺影响,反相器和D触发器使得进位信号延迟半个时钟周期,过滤掉可能的毛刺,使得加载更加可靠。

例:经过编译的305H被置入模块SPK0的11位可预置计数器中计数器不断以此值为计数起始值,直至全为1。

以305H计数起始,计数器成为一个模为1270(7FFH-305H=4F6H=1270)的计数器。

Verilog hdl—简易电子琴设计

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的系统时钟频率。

EDA课设--简易电子琴

EDA课设--简易电子琴

目录1 概述 (1)1.1 设计背景和意义 (1)1.2 设计任务 (1)1.3 设计要求 (1)2 原理设计及层次划分 (2)2.1 工作原理 (2)2.2 层次划分 (2)3 软件设计 (5)3.1 乐曲自动演奏模块代码设计 (5)3.2 音调发生模块代码设计 (6)3.3 数控分频模块代码设计 (7)3.4 顶层模块代码设计 (8)4 仿真及测试 (9)4.1 乐曲自动演奏模块仿真 (9)4.2 音调发生模块仿真 (9)4.3 数控分频模块仿真 (9)4.4 顶层模块仿真 (10)4.5 原理图综合时序仿真 (10)5 总结 (11)6 参考文献 (12)1 概述1.1 设计背景和意义EDA技术是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

1.2 设计任务利用所学的EDA设计方法设计简易电子琴,熟练使用QUARTUSⅡ应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。

1.3 设计要求①设计一个简易的八音符电子琴,它可通过按键输入来控制音响。

②演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。

③能够自动演奏多首乐曲,且每首乐曲可重复演奏。

④它由乐曲自动演奏模块、音调发生模块和数控分频模块三部分组成。

2 原理设计及层次划分2.1 工作原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。

按下每个代表不同音阶的按键时,能够发出对应频率的声音。

故系统可分为乐曲自动演奏模块(AUTO)、音调发生模块(TONE)和数控分频模块(FENPIN)三部分。

数电EDA简易电子琴Verilo

数电EDA简易电子琴Verilo

数电EDA简易电子琴Verilog- 设计.数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:日期: 2015.6.5一、设计任务用Verilog HDL语言设计简易电子琴。

(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。

二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ7.0的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。

三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。

题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。

低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。

高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。

不同的频率产生利用给定的时钟脉冲来进行分频实现。

(2)消抖的原理:按键默认输入逻辑‘1',当有按键按下时对应的输入为逻辑‘0'(但会存在抖动),当FPGA开始检测到该引脚从‘1'变为‘0'后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0'则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。

)原理框图3(.四、程序设计消抖模块module xiaodou(key_in,key_out,clk); input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0;elsepresta<=s1;ends1: beginkey_out<=0;if(q>9999)presta<=s2;elseq<=q+1;ends2:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends3:beginkey_out<=1;q<=0;if(key_in==0)presta<=s3;elsepresta<=s4;ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) beginq[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b100000000:qout<=11'b01110111100;9'b010000000:qout<=11'b01101010011;9'b001000000:qout<=11'b010********;9'b000100000:qout<=11'b010********;9'b000010000:qout<=11'b010********;9'b000001000:qout<=11'b010********;9'b000000100:qout<=11'b00111110101;9'b100000010:qout<=11'b00111011110;9'b010000010:qout<=11'b00110101010;9'b001000010:qout<=11'b00101111011;9'b000100010:qout<=11'b00101100110; 9'b000010010:qout<=11'b00100111111; 9'b000001010:qout<=11'b00100011100; 9'b000000110:qout<=11'b00011111011;9'b100000001:qout<=11'b11101111000; 9'b010000001:qout<=11'b11010100110; 9'b001000001:qout<=11'b10111101110; 9'b000100001:qout<=11'b10110011000; 9'b000010001:qout<=11'b10011111100; 9'b000001001:qout<=11'b10001110000; 9'b000000101:qout<=11'b01111101010;9'b000000011:qout<=11'b00000000000; 9'b000000001:qout<=11'b00000000000; 9'b000000000:qout<=11'b00000000000; 9'b000000010:qout<=11'b00000000000; default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out); input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000; pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。

eda简易电子琴课程设计

eda简易电子琴课程设计

eda简易电子琴课程设计一、课程目标知识目标:1. 学生能理解并掌握EDA简易电子琴的基本组成结构及其工作原理。

2. 学生能掌握基础电子元件的使用,如电阻、电容、二极管、三极管等,并能运用到电子琴的制作中。

3. 学生能理解并运用基础的电子音乐理论知识,如音符、音阶、和弦等。

技能目标:1. 学生能够独立完成EDA简易电子琴的组装和调试。

2. 学生能够通过编程实现对电子琴音调的控制,具备初步的编程能力。

3. 学生能够运用所学的电子琴知识创作简单的音乐作品,提高动手实践能力。

情感态度价值观目标:1. 学生通过动手实践,培养对电子科技的兴趣,提高创新意识和团队合作精神。

2. 学生在创作过程中,体验科技与艺术的结合,培养审美观念和艺术修养。

3. 学生在课程学习过程中,树立正确的价值观,认识到科技发展对生活的改善,增强社会责任感。

课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新意识和团队合作精神。

学生特点:六年级学生具备一定的认知能力和动手能力,对新鲜事物充满好奇,喜欢动手实践。

教学要求:教师需注重理论与实践相结合,关注学生的个体差异,鼓励学生主动探究,培养学生的创新思维和解决问题的能力。

同时,注重课程目标的分解与落实,确保学生能够达到预期学习成果。

二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识- 了解EDA简易电子琴的组成结构,包括键盘、主控板、音源、功放等。

- 学习基础电子元件(电阻、电容、二极管、三极管等)的功能和选型。

- 掌握基础的电子音乐理论知识,如音符、音阶、和弦等。

教学内容关联教材章节:第二章 电子元件与电路基础2. 电子琴制作与调试- 学习使用面包板进行电路搭建,掌握EDA简易电子琴的组装方法。

- 学习编程控制电子琴音调,实现不同音符的演奏。

- 学习调试电子琴,解决制作过程中遇到的问题。

教学内容关联教材章节:第三章 数字电路与编程基础、第四章 电子琴设计与制作3. 音乐创作与展示- 运用所学知识创作简单的音乐作品,进行小组内分享与评价。

verilogHDL的电子琴设计

verilogHDL的电子琴设计

河海大学计算机与信息学院(常州)课程设计报告题目电子琴设计专业/学号电科/**********授课班号278605学生姓名马东林指导教师单鸣雷完成时间2014/01/07河海大学本科课程设计报告课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:电子琴设计Ⅱ、课程设计(论文)工作内容用FPGA器件驱动蜂鸣器演奏“茉莉花”片段。

一首乐曲包含三个要素:乐曲声音频率,发音时间的长短,停顿的时间。

按照图1乐谱,设计相应电路控制speaker信号的方波频率,某一频率持续时间长短,各频率间间隔大小,就可以推动蜂鸣器演奏乐曲。

图1 茉莉花简谱一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生独立编写verilog hdl 程序的能力,加深对课本知识的理解。

二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、两人一组合作分工完成程序的编写和调试。

三、课程设计预期效果1、完成实验环境搭建;2、完成程序的编写和调试;3、能在实验平台上顺利演示效果用蜂鸣器播放一首音乐,并可以按键弹奏;4、锻炼学生的独立分析程序,解决问题的能力以及掌握verilog hdl 的实际应用。

学生姓名:马东林专业年级:电科/2011摘 要乐曲演奏广泛用于自动答录装置、手机铃声、集团电话及智能仪器仪表设备。

实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA 集成度的提高,价格下降,EDA 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。

FPGA 预装了很多已构造好的参数化库单元LPM 器件,通过引入支持LPM 的EDA 软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。

本设计由现场可编程门矩阵(FPGA )作为控制芯片,通过VreilogHDL 硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。

总体设计方案为先用分频电路产生不同频率方波;再利用利用数控分频器实现speaker 输出信号频率的选择,某一频率持续时间长短,各频率间间隔大小,其中方波的频率决定了音调的高低。

基于verilog语言简易电子琴设计 数字电子技术课程设计报告

基于verilog语言简易电子琴设计 数字电子技术课程设计报告

数字电子技术课程设计报告基于verilog HDL 语言地简易电子琴设计学院:__信息与控制工程学院________专业班级:___电气11级四班______________姓名:___商玉玺________________________学号:___11053421_____________________指导教师:___________________________________一、实验目地语言地基本运用,能够利用其进行简单编程;verilogHDL1、学习地基本操作,能够利用其进行简单地设计;Ⅱ7.0、学习使用2Quartus. 3、结合实践加深对理论知识地理解二、设计题目.语言设计简易电子琴用verilogHDl 三、题目要求(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”地音乐声;键后,发高八度地对应音;),同时再配合按下S1-S72()按下最右边按键(S8处理;消抖”(3)按键需要进行“;)外部输入脉冲信号频率为1mhz(4).8度功能,自动播放一段音乐(5)扩展要求:自主设计(增加低四、设计原理(1)喇叭地振动频率不同,导致产生不同地声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐.题目中音乐基本音地“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz.2=261.5Hz./1地频率为523低8度音:基本音频率/2,例如低音523×2=1046Hz..1地频率为,例如高音高8度音:基本音频率×2.不同地频率产生利用给定地时钟脉冲来进行分频实现(2)消抖地原理:按键默认输入逻辑‘1',当有按键按下时对应地输入为逻辑‘0'(但会存在抖动),当FPGA开始检测到该引脚从‘1'变为‘0'后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0'则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程地消抖处理和按下时原理一样.)原理框图3(.四、管脚对应表说明对应信号名称FPGA管脚名L21MHz基准时钟F3OU音频输出F8S1A14S2F10S3B16S基本功能按F1SB1SF1SB1SMBTMBT扩展功能按U1BTU1BT4五、实验过程、设计按键防抖模块1)设计程序1(。

EDA课程设计电子琴

EDA课程设计电子琴

EDA课程设计自动电子琴专业:电子信息工程班级:学号:姓名:组员:指导老师:完成时间:2010-11-26目录一、课程设计目的 (2)二、课程设计内容 (2)三、课程设计原理 (2)四、EDA、VHDL简介 (3)五、简易电子琴的设计过程 (3)六、结束语 (5)七、参考文献 (6)八、附录 (6)九、评分表 (9)一、课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过自动演奏已存入的歌曲。

系统由乐曲自动演奏模块组成。

系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。

二、课程设计内容(1)设计一个简易的八音符电子琴,它可自动演奏已存入的歌曲。

(2)能够自动演奏多首乐曲,且乐曲可重复演奏。

三、课程设计原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。

系统的整体组装设计原理图如图所示。

系统的整体组装设计原理图四、 EDA、VHDL简介EDA技术是以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

EDA可提供文本输入以及图形编辑的方法将设计者的意图用程序或者图形方式表达出来,而我们经常用到的VHDL 语言便是用于编写源程序所需的最常见的硬件描述语言(HDL)之一。

1、EDA技术EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD、CAM、CAT和CAE的概念发展而来的。

EDA技术是电子设计的发展趋势,利用EDA 工具可以代替设计者完成电子系统设计中的大部分工作。

EDA工具从数字系统设计的单一领域,发展到今天,应用范围已涉及模拟、微波等多个领域,可以实现各个领域电子系统设计的测试、设计方针和布局布线等。

verilog简易电子琴课程设计

verilog简易电子琴课程设计

verilog简易电子琴课程设计一、课程目标知识目标:1. 理解Verilog硬件描述语言的基本概念和语法结构;2. 掌握利用Verilog设计简易电子琴的基本原理和方法;3. 学习并掌握数字信号处理中音调生成的基础知识;4. 了解电子琴音阶与频率的关系,能够运用Verilog进行编码实现。

技能目标:1. 能够运用Verilog编写程序代码,实现简易电子琴的基本功能;2. 能够利用仿真工具对Verilog代码进行测试和验证,确保电子琴设计的正确性;3. 能够运用已学知识解决实际电子琴设计中的问题,具备一定的创新和实际操作能力。

情感态度价值观目标:1. 培养学生对数字电路设计和硬件描述语言的兴趣,激发学习热情;2. 培养学生的团队协作能力,提高沟通与交流技巧;3. 培养学生面对问题时的耐心和毅力,形成积极向上的学习态度;4. 增强学生的创新意识,培养敢于尝试、勇于实践的精神。

课程性质:本课程为电子信息技术专业高年级选修课,旨在让学生在实际操作中掌握Verilog硬件描述语言,提高数字电路设计能力。

学生特点:学生具备一定的电子基础和编程能力,对硬件描述语言有一定了解,具有较强的学习能力和实践欲望。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实际操作能力。

通过本课程的学习,使学生能够独立完成简易电子琴的设计与实现。

二、教学内容1. Verilog基础知识回顾:- 数据类型与运算符;- 顺序与并行语句;- 模块与端口定义;- 基本时序控制。

2. 简易电子琴设计原理:- 电子琴音阶与频率关系;- 音色生成与合成方法;- MIDI协议简介;- 电子琴硬件架构。

3. Verilog代码编写与实现:- 音符产生模块设计;- 音调控制模块设计;- 声音合成与输出模块设计;- 整体程序框架搭建。

4. 仿真与测试:- ModelSim仿真工具使用;- 仿真测试用例编写;- 功能验证与调试;- 性能评估与优化。

基于FPGA的简易电子琴的设计.doc

基于FPGA的简易电子琴的设计.doc

基于FPGA的简易电子琴的设计..学校代码:学号:本科毕业设计说明书题目:基于FPGA的简易电子琴的设计学生姓名:学院:系别:专业:班级:指导教师:摘要我们都知道的当物体在振动或者在晃动的时候,能够发生声音。

并且如果振动的频率不同,而物体发出的声音就不同,因此音调也会不同。

在简易的电子琴的设计时候虽然没有振动的物体,比如簧,管,弦等,但是电子琴的内部却有很多电子类的装置,而这些电子类的装置只要开始工作就能使扬声器发出像振动的物体那样发出不同的声音。

当按动某个琴键,就会是相应的电子装置工作,从而使扬声器发出不同的音调。

本系统是采用EDA技术设计的一个简易电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制扬声器,同时也可以有自动播放歌曲的功能。

该电子琴的设计大体可以由三个模块构成,分别是控制输入电路,FPGA和扬声器电路。

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

可以实现按键的输入和自动演奏的功能,同时可以即时的播放出来关键词:EDA;VHDL;FPGA;电子琴系统AbstractWe all know that when the vibration of an object that can happen to sound.And the frequency of the vibration is different, the object the sound is different, the tone will be different.Simple design of the keyboard when the vibrating object.Such as reed, tube, string, etc., but the keyboard's internal has a lot of electronic devices.These electronic devices to work can make the speakers like the vibration of objects that make different sounds.When pressing a key, the corresponding electronic devices work, so that speakers of different tones.This system is designed using EDA technology a simple eight- 学号:本科毕业设计说明书题目:基于FPGA的简易电子琴的设计学生姓名:学院:系别:专业:班级:指导教师:摘要我们都知道的当物体在振动或者在晃动的时候,能够发生声音。

eda电子设计使用verilog语言电子琴实验报告

eda电子设计使用verilog语言电子琴实验报告

电子设计自动化课程设计报告院系:信息工程学院专业:电子信息工程学号:姓名:指导教师:2013 年月日目录1设计目的 (3)2题目描述与要求 (3)3课程设计报告内容 (3)3.1设计原理与思路 (3)3.2操作过程 (4)3.3设计和调试过程中出现的问题及解决方法 (7)4设计总结和心得体会 (8)一、课程设计目的使用VerilogHDL语言进行前端设计,并使用Quaruts软件在实验箱上实现仿真,实现硬件电子琴。

电子琴要求有8个音阶,使用外部时钟信号32MHz,能同步显示音阶。

二、课程设计题目描述和要求题目:简易电子琴的设计主要功能:(1)设计一个八音电子琴。

(2)由键盘输入控制音响,同时可自动演奏乐曲。

(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。

三、课程设计报告内容3.1设计原理与思路系统由数控分频器、乐曲存储模块以及发声模块组成。

数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。

乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。

由发声模块产生音符对应的频率的信号来使扬声器发音。

(1)模块automusic模块automsic由auto信号来选择发声的方式,auto=0时系统自动播放内置的音乐,auto=1时由键盘来手动演奏音乐。

(2)模块TONE模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。

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

verilog-hdl-简易乐曲设计

verilog-hdl-简易乐曲设计

指导教师:日期:EDA技术课程设计题目: EDA技术及其应用——简易电子琴设计姓名:院系:电子信息工程学系专业:通信工程班级: 091班级学号:指导教师:2012年1 月EDA技术课程设计报告——简易电子琴的设计(电子信息工程学系指导教师:)摘要在现代的电子设计中,EDA技术已经成为一种普遍的工具,它在电子信息、通信、自动控制用计算机等领域的重要性日益突出。

本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它采用EDA作为开发工具,Verilog HDL 语言为硬件描述语言,MAX + PLUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。

本程序使用的硬件描述语言Verilog HDL,既能进行面向综合的电路设计,又可用于电路的模拟仿真,能够在多层次上对所设计的系统加以描述,易学易用,语言功能强。

关键词课程设计;EDA;Verilog HDL;电子琴1.课程设计的目的系统实现是用硬件描述语言verilog按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。

巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。

巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。

2.课程设计的要求(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。

(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。

(3)能够自动演奏多首乐曲,且每首乐曲可重复演奏。

3. EDA技术EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。

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

数字电子技术课程设计
--简易电子琴设计
专业班级:电子
姓名:
学号:
日期: 2015.6.5
一、设计任务
用Verilog HDL语言设计简易电子琴。

(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;
(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;
(4)外部输入脉冲信号频率为1mhz;
(5)扩展要求:自主设计(增加低8度功能)。

二、实验目的
1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;
2、学习使用QuartusⅡ7.0的基本操作,能够利用其进行简单的设计;
3、结合实践加深对理论知识的理解。

三、设计原理
1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。

题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。

低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。

高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。

不同的频率产生利用给定的时钟脉冲来进行分频实现。

(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。

(3)原理框图
四、程序设计
消抖模块
module xiaodou(key_in,key_out,clk); input key_in;
input clk;
output key_out;
reg key_out;
reg [2:0]presta;
integer q;
parameter s0=3'b000,
s1=3'b001,
s2=3'b010,
s3=3'b011,
s4=3'b100,
s5=3'b101,
s6=3'b110,
s7=3'b111;
always@(posedge clk)
begin
case(presta)
s0:
key_out<=0;
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s1;
end
s1:
begin
key_out<=0;
if(q>9999)
presta<=s2;
else
q<=q+1;
end
s2:
begin
key_out<=0;
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s3;
end
s3:
begin
key_out<=1;
q<=0;
if(key_in==0)
presta<=s3;
else
presta<=s4;
end
s4:
begin
key_out<=1;
if(q>44444)
presta<=s5;
else
q<=q+1;
end
s5:
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s3;
end
s6:
begin
presta<=s0;
end
s7:
begin
presta<=s0;
end
endcase
end
end module
按键模块
module anjian(a,b,c,d,e,f,g,h,i,qout);
input a,b,c,d,e,f,g,h,i;
output [10:0] qout;
reg [8:0] q;
reg [10:0] qout;
always@(a or b or c or d or e or f or g or h or i) begin
q[0]=i;
q[1]=h;
q[2]=g;
q[3]=f;
q[4]=e;
q[5]=d;
q[6]=c;
q[7]=b;
q[8]=a;
end
always@(q)
begin
case(q)
9'b100000000:qout<=11'b01110111100;
9'b010000000:qout<=11'b01101010011;
9'b001000000:qout<=11'b010********;
9'b000100000:qout<=11'b010********;
9'b000010000:qout<=11'b010********;
9'b000001000:qout<=11'b010********;
9'b000000100:qout<=11'b00111110101;
9'b100000010:qout<=11'b00111011110;
9'b010000010:qout<=11'b00110101010;
9'b001000010:qout<=11'b00101111011;
9'b000100010:qout<=11'b00101100110;
9'b000010010:qout<=11'b00100111111;
9'b000001010:qout<=11'b00100011100;
9'b000000110:qout<=11'b00011111011;
9'b100000001:qout<=11'b11101111000;
9'b010000001:qout<=11'b11010100110;
9'b001000001:qout<=11'b10111101110;
9'b000100001:qout<=11'b10110011000;
9'b000010001:qout<=11'b10011111100;
9'b000001001:qout<=11'b10001110000;
9'b000000101:qout<=11'b01111101010;
9'b000000011:qout<=11'b00000000000;
9'b000000001:qout<=11'b00000000000;
9'b000000000:qout<=11'b00000000000;
9'b000000010:qout<=11'b00000000000;
default:qout<=qout;
endcase
end
endmodule
分频模块
module fenpin(clk_1M,yuzhi,pl_out);
input clk_1M;
input [10:0]yuzhi;
reg [10:0]q;
output pl_out;
reg pl_out;
always@(posedge clk_1M)
begin
if(yuzhi>0)
begin
if(q<yuzhi)
begin
q<=q+1;
pl_out<=0;
end
else
begin
q<=11'b00000000000;
pl_out<=1;
end
end
else
begin
q<=11'b00000000000;
pl_out<=1;
end
end
endmodule
五、原理图及仿真波形图
六、心得体会
由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。

从书本上获得的知识跟实践之间具有很大的差距,这要求我们要加强锻炼自己的实际操作能力。

首先,在课程设计之前,要先了解我们要完成什么功能,否则做的任何努力都是无用功。

其次,,在编写程序过程中,要有耐心,端正态度,积极思考,认真对待。

另外,遇到问题首先要自己思考,但是实在无法解决的时候一定要细心地向别人请教或是在网上查找资料。

最后要对自己之前的操作和执行进行纠错和总结经验,提升自己。

在以后的学习中要注意培养自主学习的能力和文献查阅的能力,以及很重要的动手能力。

相关文档
最新文档