FPGA课程设计报告--简易电子琴的设计[1].doc

合集下载

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及片上系统SOPC应用授课学期2013 学年至2014 学年第一学期学院电子工程学院专业电子与通信学号姓名任课教师宋树祥专题基于FPGA的电子琴设计交稿日期2014年01月09日成绩阅读教师签名日期广西师范大学研究生学院1、引言电子琴作为音乐与科技的产物,在电子化和信息化的时代,为音乐的大众化做出了很大的贡献,歌曲的制作大多数都要由电子琴来完成,然后通过媒介流传开来,电视剧和电影的插曲、电视节目音效、甚至你的手机铃声,都很可能包含电子琴的身影。

1.1课题分析随着电子技术的高速发展,由于FPGA/CPLD具有高速、高可靠性、串并行工作方式等突出优点,所以在电子设计中受到广泛的应用,并且它代表着未来EDA设计的方向。

FPGA/CPLD的设计采用了高级语言,例如VHDL语言,AHDL语言。

从而进一步打破了软硬件之间的界限,加速了产品的开发过程,缩短了设计周期。

所以采用FPGA/CPLD取代传统的标准集成电路、接口电路已经成为电子技术发展的必然趋势。

EDA(电子设计自动化) 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片集成电路(FPGA/CPLD) 实现。

电子琴是数字电路中的一个典型应用。

在实际的硬件设计中用到的器件非常多,连线比较复杂,同时会产生比较大的延时,从而造成测量误差较大,可靠性不好。

以EDA工具作为开发手段,运用VHDL硬件描述语言将使整个系统大大简化,提高了电子琴整体的性能和可靠性。

1.2 VHDL语言和QUARTUS II环境简介1.2.1 VerilogHDL语言简介Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。

V erilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述.Verilog HDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。

基于FPGA的电子琴设计课程设计

基于FPGA的电子琴设计课程设计

课程设计摘要乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。

实现方法有许多种。

现用可编程逻辑器件(PLD)来完成该设计。

核心是一数控分频器,对输入的脉冲进行分频,得到每个音阶对应的频率,由此实现简易电子琴的发音功能。

电子琴可演奏由键盘输入的音阶,同时在数码管上显示对应音节的频率。

本设计基于超高速硬件描述语言VHDL在Altera公司的CycloneⅡ系列的EP2C5T144C8芯片上编程实现;经仿真,调试基本能够达到技术指标,仿真结果基本正确。

关键词音乐译码电路模块,VHDL,数控分频,电子琴基于FPGA的电子琴设计AbstractMusic performances are widely used in automatic answering devices, cell phone ring tones, the Group phones, smart instrumentation and equipment。

The design is accomplished using a programmable logic device (PLD). The core is a numerical control frequency divider, the input pulse frequency, the frequency of each scale corresponding to the frequency, thus achieving the function of simple electronic piano. The electronic piano can be played by the keyboard input of the scale, while in the digital tube display the corresponding syllable frequency. The design based on ultra high speed hardware description language VHDL on Altera's cyclone II Series ep2c5t144c8 chip programming; the simulation and debugging can basically meet the technical indicators, and the result of simulation is correct.Keywords Music decoder circuit module,VHDL,Numerical control pointing frequency modules,electronic organ沈阳工程学院课程设计目录摘要 (I)Abstract ................................................................................................................................................................ I I1 引言 (1)2 VHDL简述及应用 (2)2.1VHDL简述 (2)2.2 VHDL的应用 (2)3 FPGA的简述 (3)3.1 FPGA的介绍 (3)3.2 FPGA的整体结构 (3)3.3 Altera公司的FPGA (3)4 电子琴演奏系统设计原理分析 (4)4.1电子琴演奏设计的基本要求 (4)4.2电子琴演奏原理 (4)4.3音名与频率的关系 (5)4.4控制音长的节拍发生器 (6)5 电子琴硬件演奏电路的层次化设计方案 (8)5.1按键控制模块 (8)5.2自动演奏模块 (8)5.3自动播放控制模块 (9)5.4数控分频模块设计 (9)5.5数码管译码显示 (10)5.6音频驱动模块 (10)结论 (12)致谢 (13)参考文献 (14)附录1 (15)附录2 (16)基于FPGA的电子琴设计1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

基于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 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

简易电子琴设计-可编程逻辑设计实践课程报告

简易电子琴设计-可编程逻辑设计实践课程报告

学院:物理与信息工程学院班级:2010级信通____学生:______学号:_________老师:____基于FPGA的简易电子琴设计报告 (3)一、设计简介 (3)二、方案论述 (4)1)、基本乐理知识: (4)2)、模块方案: (4)1、数控分频部分: (4)各音阶频率对应的分频值以及初始化 (5)2、音乐节拍产生器: (5)3、键盘输入及译码模块 (6)4、音量控制模块: (7)5、数码管显示模块: (8)三、总体结构框图: (8)四、单元模块设计 (8)1、键盘输入译码模块ToneData (8)2、播放速度控制模块(包括暂停功能): (10)3、自动演奏模块 (11)4、分频器模块(Speaker): (14)5)、数码管显示译码模块 (15)6)、数码管动态扫描模块 (16)7、音量调节 (18)五、系统测试 (20)六、设计总结 (23)基于FPGA的简易电子琴设计报告一、设计简介本次的课程设计是围绕着可编程逻辑器件进行的,可编程器件强大的并行性能使得其能轻易实现许多顺序执行程序的功能,并且效率高得多,但由顺序执行的思想转化为并行的思维方式,并不是那么容易的。

通过这次课程设计熟悉了FPGA设计的思路与方法,为将来的进一步发展奠定了基础。

本次选择电子琴为课题,并不仅仅因为其较为简单,而是基于个人对于音频等多媒体信息处理的兴趣,希望通过此次课程设计收获些相关的知识。

本次课设设计的电子琴主要实现了以下功能:1、手动演奏功能。

共用到8个按键,其中1个为shift键,用于切换不同组的音符。

Shift置零时,其余七个按键为中音Do至Xi。

Shift置高时,其余七个按键为低音的So La Xi和高音的Do Re Mi Fa。

2、自动演奏功能。

内部可识别21个音符,rom容量为512位,字宽为5位(0~31)。

其中用0表示休止符。

1~7表示低音Do~Xi,11~17表示中音Do~Xi,21~31用于表示高音Do~Xi。

基于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开发板及电源。

(完整版)FPGA课程设计(最终版)

(完整版)FPGA课程设计(最终版)

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 电子琴的设计课程设计目的:《FPGA原理与应用》课程设计的目的是为了让学生熟悉基于VHDL语言进行FPGA开发的全流程,并且利用FPGA设计进行专业课程理论知识的再现,让学生体会EDA技术的强大功能,为今后使用FPGA进行电子设计奠定基础。

课程设计内容和要求设计内容:(1)设计一个八音电子琴。

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

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

要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩。

时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)Abstract (2)1设计意义和要求 (3)1.1设计意义 (3)1.2功能要求 (3)2方案论证及原理分析 (4)2.1实现方案比较 (4)2.2乐曲实现原理 (4)2.3系统组成及工作原理 (6)3系统模块设计 (8)3.1顶层模块的设计 (8)3.2乐曲自动演奏模块的设计 (8)3.3音阶发生器模块的设计 (9)3.4数控分频器模块的设计 (9)4程序设计 (11)4.1VHDL设计语言和ISE环境简介 (11)4.2顶层模块的程序设计 (12)4.3乐曲自动演奏模块的程序设计 (13)4.4音阶发生器模块的程序设计 (13)4.5数控分频模块的程序设计 (14)5设计的仿真与实现 (15)5.1乐曲自动演奏模块仿真 (15)5.2音调发生模块仿真 (18)5.3数控分频模块仿真 (19)5.4电子琴系统的仿真 (20)5.5设计的实现 (22)5.6查看RTL视图 (23)5.7查看综合报告 (25)6心得体会 (31)7参考文献 (32)8附录 (33)摘要随着基于FPGA的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。

课程设计——简易电子琴的设计1

课程设计——简易电子琴的设计1

成绩:分××××系课程设计报告书课程设计名称电子产品综合设计题目简易电子琴的设计学生姓名专业班级指导教师日期:2010 年7 月5 日摘要:本课程是采用EDA和CPLD技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

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

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

关键词:电子琴,EDA,VHDL,CPLDAbstract:This course is designed using EDA and CPLD technology as a simple eight-note keyboard, which is based on the principle of the computer clock divider, designed by top-down approach to implementation, it can be controlled through key input audio. System by the decoder module and the NC frequency module composed of three parts. System implementation is to use hardware description language VHDL modular way by design, then programming, timing simulation, integration.Key Words:Electric piano, EDA, VHDL, CPLD目录1.总体设计方案 (4)1.1简易电子琴设计方 (4)1.2 电子琴设计原理 (4)1.2.1顶层文件的设计 (4)1.2.2八音符的设置 (5)2.单元模块设计 (6)2.1数控分频模块设计 (6)2.1.1数控分频器原理图设计 (6)2.1.2数控分频器原理图输入方法流程 (6)2.3.顶层文件的设计 (9)3.系统调试 (10)3.1 Quartus II系统仿真的介绍 (10)3.2 时序仿真 (10)3.3 电路功能验证 (13)4.设计总结 (14)5.参考文献 (15)6.附录 (16)前言EDA技术发展迅猛,已在科研、产品设计与制造及教学等各方面都发挥着巨火的作用。

基于FPGA的电子琴设计

基于FPGA的电子琴设计

基于FPGA的电子琴设计电子琴由于操作相对比较简单,并且能够模拟几乎所有传统乐器的音色,因而深受广大消费者的喜爱。

近年来,在数字系统的设计领域融入了一种新型的设计技术:数字系统设计的自动化技术EDA (Electronic Design Automation)。

该技术优越之处在于系统设计的效率高、保密性强、集成度好、易于修改和实现等。

因此,一跃成为当下数字系统设计领域的主流技术,并被越来越广泛地应用到相关领域中,其中,被应用到电子琴的设计与实现中去就是一个相当重要的尝试及应用。

本文所设计的电子琴基于一种可编程逻辑控制器件:FPGA(Field Programmable Logical Device)芯片,首先采用Visual Basic来设计上位机琴键的控制界面程序,再利用VHDL硬件描述语言设计系统的核心部件(演奏电路)以及配合使用一些适当和必要的外围电路,并且,核心部件的模块通过QUARTUS II这个平台,自顶而下地进行下载到Altera芯片上,其中,上位机经RS232串行口能够直接和FPGA进行通信,从而完成数据的交换工作。

该演奏电路由琴键控制界面直接进行音调的输入,并通过RS232的通信方式来控制从而可以发出DO、RE、MI等共计8个音调,经由蜂鸣器出声,顺利行使完成演奏功能。

可从琴键上手动直接进行演奏各种电路,亦可自动开始乐曲演奏,而且能够模拟笛子、小号、风琴、单簧和双簧等传统乐器。

同通常所见到的电了琴的设计一样,该电子琴采用总计61个按键,共划分为5个音区,每个音区包含12个琴键,即7个白色的琴键与5个黑色的琴键(为半音键),在进行演奏的时候能够动态显示各音名。

1 系统设计为了使电子琴的演奏电路完美实现8个音键的控制和顺利播放已经编好的音乐,对系统的设计就应有所要求。

根据各个音调的频率差异来实现当演奏者按不同的音键时从而发出的声音又了差别。

当八位发声控制键的输入中有一位是高电平时,那么,对应这一音阶其初始计数值被作为获得此音阶分频的预置值而将送至预制数计数器,而后预制数计数器就会输出相应的频率,同时输出的还有对应音阶简谱的显示代码,然后,该频率通过二分频器被送至扬声器,在扬声器处能够发出相对应该音符的声音,与此同时,该音名将显示在数码管上。

基于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;目录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 结束语..................................................................致谢..................................................................... 参考文献................................................................. 附录.....................................................................1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

基于FPGA的电子琴设计课程设计

基于FPGA的电子琴设计课程设计

基于FPGA的电子琴设计课程设计摘要乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。

实现方法有许多种。

现用可编程逻辑器件(PLD)来完成该设计。

核心是一数控分频器,对输入的脉冲进行分频,得到每个音阶对应的频率,由此实现简易电子琴的发音功能。

电子琴可演奏由键盘输入的音阶,同时在数码管上显示对应音节的频率。

本设计基于超高速硬件描述语言VHDL在Altera公司的CycloneⅡ系列的EP2C5T144C8芯片上编程实现;经仿真,调试基本能够达到技术指标,仿真结果基本正确。

关键词音乐译码电路模块,VHDL,数控分频,电子琴AbstractMusic performances are widely used in automatic answering devices, cell phone ring tones, the Group phones, smart instrumentation and equipment。

The design is accomplished using a programmable logic device (PLD). The core is a numerical control frequency divider, the input pulse frequency, the frequency of each scale corresponding to the frequency, thus achieving the function of simple electronic piano. The electronic piano can be played by the keyboard input of the scale, while in the digital tube display the corresponding syllable frequency. The design based on ultra high speed hardware description language VHDL on Altera's cyclone II Series ep2c5t144c8 chip programming; the simulation and debugging can basically meet the technical indicators, and the result of simulation is correct.Keywords Music decoder circuit module,VHDL,Numerical control pointing frequency modules,electronic organ目录摘要 (I)Abstract (II)1 引言 (1)2 VHDL简述及应用 (2)2.1VHDL简述 (2)2.2 VHDL的应用 (2)3 FPGA的简述 (3)3.1 FPGA的介绍 (3)3.2 FPGA的整体结构 (3)3.3 Altera公司的FPGA (3)4 电子琴演奏系统设计原理分析 (4)4.1电子琴演奏设计的基本要求 (4)4.2电子琴演奏原理 (4)4.3音名与频率的关系 (5)4.4控制音长的节拍发生器 (6)5 电子琴硬件演奏电路的层次化设计方案 (8)5.1按键控制模块 (8)5.2自动演奏模块 (8)5.3自动播放控制模块 (9)5.4数控分频模块设计 (9)5.5数码管译码显示 (10)5.6音频驱动模块 (10)结论 (11)致谢 (12)参考文献 (13)附录1 (14)附录2 (15)1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

简易电子琴设计报告(完整版)

简易电子琴设计报告(完整版)

中南民族大学课程设计题目简易电子琴学院计算机科学学院专业班级姓名指导教师2010 年 6 月23 日电子技术课程设计三、时间安排1.第10周:布置设计任务,讲解设计要求、实施计划、设计报告等要求。

完成选题。

2.第10 ~ 14周:完成资料查阅、设计、仿真。

3.第15 ~ 16周:制作与调试,完成课程设计报告撰写。

4.第16 ~ 17周:提交课程设计报告,课程设计验收,答辩。

目录摘要 (5)关键词 (5)1 绪论 (5)2 技术指标及要求 (5)2.1 设计任务及要求 (5)2.2 设计思想 (6)3 方案论证及整体电路工作原理 (6)3.1 方案论证 (6)3.2 整体电路工作原理 (7)4 单元电路设计:计算,元器件选择及电路图 (7)4.1 RC串并联选频网络电阻的选择 (7)4.2 滤波电容的选择 (8)4.3 电路图如下所示 (9)5 Multisim仿真结果显示 (9)6课程设计成果展示: (12)7元件及器件明细 (13)8成果评价,设计特点,存在的问题及改进意见 (14)8.1 成果放入评价: (14)8.2 本次设计的特点 (14)8.3存在的问题和改进的意见 (14)9设计总结: (14)10附录: (14)摘要简易电子琴一般是由正弦波产生电路,功率放大电路和滤波电路组成。

简易电子琴是通过RC串并联网络和集成运放产生一个稳定的正弦波(要产生八种不同的音调,在输入端就并联了八种不同的RC支路)。

由于该正弦波功率很小,无法驱动喇叭正常工作,须得在正弦波后面加一个集成功放,把正弦波放大之后再通过滤波网络滤去高频干扰信号,以此来实现对喇叭的驱动。

关键词正弦波发生器,功率放大,滤波网络1 绪论电子琴对于丰富人类的精神生活有着很重要的作用,已经进入了家家户户的生活。

而我们利用基本的工作原理设计了一个简易电子琴,能达到基本的电子琴的要求,当然也能弹奏出简单的曲目。

通过设计词电路,我了解了简易电子琴的基本工作原理,在一定程度上对现代电子琴的了解有作用,而且做这样一个简易电子琴能然让我很好的利用模电知识。

基于FPGA硬件电子琴设计

基于FPGA硬件电子琴设计

摘要文中介绍了电子琴系统的整体设计,并基于超高速硬件描述语言VHDL在Xilinx公司的SpartanⅡ系列的EMP240T100C5N芯片上编程实现.电子琴系统的设计包含四个模块,分别是控制输入电路、FPGA、显示电路和扬声器电路。

其中FPGA模块的设计是整个电子琴系统设计的核心内容。

四个模块的有机组合完成了电子琴自动演奏的功能。

文中还详细介绍了FPGA功能模块的原理及其工作时序仿真图。

本产品的特点是成本较低,性能稳定,精度高,有一定的开发价值。

目录摘要 (2)一、整体设计方案 (4)1.1设计要求 (4)1.2整体设计原理 (4)1.3方案比较 (5)二、单元电路设计 (5)2.1实验原理 (5)2.2顶层模块的设计 (6)2.3音调发生器(tone)模块的设计 (6)2.4数控分频模块(speaker)的设计 (7)三、软件设计 (7)3.1 VHDL硬件描述语言简介 (7)3.2 软件设计 (8)四、系统测试 (9)4.1测试使用的仪器 (9)4.2测试方法 (9)4.3指标测试和测试结果 (9)五、心得 (11)附录 (12)参考文献 (15)一、整体设计方案1.1 设计要求利用数控分频器设计硬件电子琴,当按下琴键时,扬声器发出该琴键相对应的音阶,同时数码管显示音阶数字,若为高音时,二极管点亮。

1.2 整体设计原理本设计可以通过多种方案来实现,下面就主要的三种方案进行阐述和比较。

方案一:采用数字逻辑电路制作,用IC 拼凑焊接实现,这种电路很直观,简单方便。

但应用数字逻辑电路制作的话,使用的器件较多,连接复杂,体积大,功耗大。

电路中焊点和线路较多会,使成品的稳定度和精度大大降低。

方案二:采用现场可编程逻辑器件(FPGA)制作,利用EDA软件中的VHDL硬件描述语言编程进行控制,然后烧制实现.采用FPGA来设计的原理图如图1.1所示.它由控制输入电路、FPGA、显示电路和扬声器电路组成。

图1.1 采用FPGA设计的电子琴原理方框图控制输入电路主要是为用户设计的,起到一个输入控制的作用.FPGA是现场可编程逻辑器件,也是本设计方案的核心内容,它是实现电子琴运作的主要控制模块.由设计者把编好的VHDL程序烧制到现场可编程逻辑器件FPGA中,然后通过控制输入电路把乐谱输入到FPGA,产生不同的频率驱动扬声器,发出不同的乐谱.同时也把发出的乐谱符号通过显示器输出.方案三:单片机现在已经达到很成熟的阶段了,它的应用也十分广泛. 采用单片机来实现电子琴,它的原理方框图与用FPGA来实现的原理方框图类似,如图1.2所示。

FPGA课程设计报告--简易电子琴的设计

FPGA课程设计报告--简易电子琴的设计

FPGA课程设计报告题目:简易电子琴设计及FPGA功能验证院系:专业班级:学生姓名: XX导师姓名: XX起止时间: 2012、6、18至2012、6、29一、课程设计任务:本设计一个简易电子琴,具体功能如下:1、具有手动弹奏和自动播放功能;2、以按键或开关作为电子琴的琴键,输出7个音节的音阶;3、可以自动播放曲目至少两首。

二、课程设计目的:1、培养综合运用知识和独立开展实践创新的能力;2、深入学习Verilog HDL,了解其编程环境;3、学会运用Modelsim和Quartus II等编程仿真软件;4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习;三、使用环境:1、软件:Modelsim和Quartus II等编程仿真软件;2、硬件:FPGA开发板。

四、课程设计详细方案及功能验证:1、总体实现方案:1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。

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

2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,曲目3模块。

整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。

主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。

如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。

本次设计的框图:2、输入输出信号描述:3、顶层划分:key1.key2.key3.key4.key5.key6.key7.key8.key94、主要模块:主模块:功能描述:是四个子模块的核心,通过主模块分别调用四个不同的子模块。

基于FPGA电子琴设计实验报告

基于FPGA电子琴设计实验报告

西南科技大学电工学,电子技术学生实验报告课程名称FPGA现代数字系统设计实验名称硬件电子琴电路设计姓名学号********班级电子0902指导老师评分2012年4月19日1.实验目的:1.进一步熟悉QUARTUS II软件的使用。

2.学习和熟悉时序电路的设计,仿真和硬件测试。

3.学习利用数控分频器设计硬件电子琴实验。

2.实验原理:1.主系统由3个模块组成,例1是顶层设计文件,其内部有三个功能模块(如图1所示):Speakera.v(例4) 和ToneTaba.v (例3),NoteTabs.v (例2)。

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

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

4.增加一个NoteTabs模块用于产生节拍控制(Index数据存留时间)和音阶选择信号,即在NoteTabs模块放置一个乐曲曲谱真值表,由一个计数器的计数值来控制此真值表的输出,而由此计数器的计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件的乐曲自动演奏电路。

1.实验内容和步骤:1.打开桌面上的QUARTUS II 软件。

2.选择File菜单建立XULIEQI的工程(project),参数按实验指导书设置。

由File->new,可打开下面的选项,选择Verilog HDL File,按ok继续。

在在打开的空白文档,编辑顶层模块的Verilog描述,并保存。

module songer(Clk1,Clk2,Code1,High1,Spkout);input Clk1,Clk2;output[3:0] Code1;output High1,Spkout;wire[10:0] Tone;wire[3:0] ToneIndex;wire Q1,Q2;NoteTabs u0( .Clk(Q2),.ToneIndex(ToneIndex) );ToneTaba u1( .Index(ToneIndex),.Code(Code1),.High(High1),.Tone(Tone) );Speakera u2( .Clk(Q1),.Tone(Tone),.SpkS(Spkout) );div_50 u3( .Clk1(Clk1),.Q1(Q1) );div_27 u4( .Clk2(Clk2),.Q2(Q2) );Endmodule3.由File->new,可打开下面的选项,选择Verilog HDL File,按ok继续。

fpga电子琴课程设计

fpga电子琴课程设计

fpga电子琴课程设计一、课程目标知识目标:1. 掌握FPGA的基本原理和电子琴的基础知识;2. 学习并理解电子琴的音阶产生原理和演奏方法;3. 了解数字信号处理在电子琴中的应用。

技能目标:1. 学会使用FPGA设计电子琴的硬件电路;2. 能够编写Verilog或VHDL代码实现电子琴的音阶发生器;3. 掌握电子琴演奏的基本技巧,并能够通过FPGA实现简单的乐曲演奏。

情感态度价值观目标:1. 培养学生对电子琴和FPGA技术的好奇心和探索精神;2. 增强学生的团队合作意识,提高沟通协作能力;3. 培养学生严谨的科学态度和良好的工程实践习惯。

课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,使学生能够在实践中掌握FPGA电子琴的设计与制作。

学生特点:学生具备一定的电子技术和编程基础,对FPGA和电子琴有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。

通过课程学习,使学生能够独立完成FPGA电子琴的设计与制作,提高其综合素质。

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

二、教学内容1. 电子琴基础知识:介绍电子琴的原理、结构和演奏方法,包括音阶产生、音色合成等。

教材章节:《数字电子技术》第6章“数字信号处理基础”2. FPGA原理与应用:讲解FPGA的基本原理、硬件描述语言(Verilog/VHDL)编程和应用实例。

教材章节:《FPGA原理与应用》第1章“FPGA概述”、第3章“Verilog/VHDL编程基础”3. 电子琴硬件设计:学习电子琴硬件电路设计,包括键盘输入、音阶发生器、音色控制等。

教材章节:《电子电路设计》第4章“数字电路设计”4. 电子琴软件编程:编写Verilog或VHDL代码实现电子琴的音阶发生器、音色控制等功能。

教材章节:《FPGA原理与应用》第5章“数字信号处理与应用”5. 电子琴系统集成与测试:介绍如何将硬件和软件结合,进行系统集成与测试,确保电子琴功能的实现。

电子琴课程设计报告电子版(微机) .DOC

电子琴课程设计报告电子版(微机) .DOC

学院:信息工程学院专业班级:自动化姓名: 学号:自动化专业课程设计报告《微机原理及应用课程设计》题目:计算机仿真电子琴班级姓名学号时间 2011/12/19~2011/12/23地点电信实验中心第六实验室指导教师大连水产学院信息工程学院自动化教研室学院:信息工程学院专业班级:自动化姓名: 学号:题目:计算机仿真电子琴.一、课程设计的目的与要求1、教学目的本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。

本课程设计的其目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。

2、教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的基本方法。

2)进一步理解各种接口电路的应用。

例如8255并行接口,8253定时器等。

3)掌握利用PC机扬声器发出不同频率声音的方法。

二、课程设计课题的分析1、主要技术指标编写程序(1)在程序运行时使PC即成为一架可弹奏的电子琴。

当按下数字健1---8时,依次发出1,2,3,4,5,6,7,I这8个音调。

自行设计按下某一键则退出电子琴状态。

(2)在程序运行时使PC自动演奏一首乐曲。

2、设计思路通过编程,建立一个DOS界面,建立简单的菜单选项,可是实现电子琴的基本弹奏功能。

可以通过按键“1、3、4、5、6、7”实现音调的低音输入,按键“Q、W、E、R、T、Y、U”实现对音调的中音输入,按键“A、S、D、F、G、H、J”实现音调的高音输入,可以按“ESC”或“ENTER”键退出、“P”进入播放音乐模式,有两个音乐可以选择,1是水手,2是新年好。

3、硬件参数及硬件接线电路图(1)地址和初值8255口地址:PA口=60H PB口=61H PC口=62H 控制口=63H8253口地址:计数器0=40H 计数器1=41H 计数器2=42H 控制寄存器=43H8253初值:600Hz声音,1.19MHz/600=1983(2)接线电路图PC机扬声器电路以及相关接口电路:(如图1)学院:信息工程学院专业班级:自动化姓名: 学号:图1 接线电路图4、作原理PC中的定时电路有三个通道,通道3用于发声,通道1用于控制系统内部的时钟。

电子琴的设计报告

电子琴的设计报告

基于FPGA的简易电子琴的设计与制作学生班级:XXX学生学号:XXXXXXXXXXX学生姓名:XX时间: 201X年X月XX日目录一、设计任务及要求 (3)1.课题题目 (3)2.要求 (3)二、设计内容 (3)1.课题分析 (3)2.系统方案选择 (3)(1)频率产生电路 (3)(2)优先选择电路或者合成电路 (4)三、电路设计及计算 (4)1.DE2简介 (4)2.各音调所对应分频次数 (7)3.电路模块介绍 (7)(1)晶振电路 (7)(2)分频电路 (7)(3)音调选择电路 (8)四、仿真及结果分析 (8)五、设计总结 (9)一、设计任务及要求1.课题题目:基于FPGA的简易电子琴的设计与制作2.要求(1)制作一个简单的电子琴,通过按下不同的按键,电子琴能发出七种不同的音调。

电子琴发出声音的频率与七种音调的频率相近,且能清晰的听到这七种音调。

(2)当同时按下两个及以上的按键时,电子琴能根据选择或者是合成几种音调发出一种声音。

(3)学习使用quartus II以及了解DE2开发板,对FPGA有一定的了解。

二、设计内容1.课题分析由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了。

音调主要由声音的频率决定,乐音(复音)的音调更复杂些,一般可认为主要由基音的频率来决定,也即一定频率的声音对应特定的乐音。

因此,要实现电子琴,就应该设计能输出这七种频率的电路,通过开关来控制输出电路的种类。

当出现两个及以上开关闭合时,电子琴的内部电路能够合成这几种音调或者是通过选择来发出音调。

2.系统方案选择(1)频率产生电路:方案一:采用一个555集成定时器组成简易电子琴。

整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。

主振荡器由555定时器,电阻,按键及电容组成。

555电路组成的多谐振荡器,它的振荡频率可以通过改变振荡电路中的RC元件的数值进行改变。

基于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的简易电子琴的设计学生姓名:学院:系别:专业:班级:指导教师:摘要我们都知道的当物体在振动或者在晃动的时候,能够发生声音。

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

西安邮电大学FPGA课程设计报告题目:简易电子琴设计及FPGA功能验证院系:专业班级:学生姓名: XX导师姓名: XX起止时间: 2012、6、18至2012、6、29一、课程设计任务:本设计一个简易电子琴,具体功能如下:1、具有手动弹奏和自动播放功能;2、以按键或开关作为电子琴的琴键,输出7个音节的音阶;3、可以自动播放曲目至少两首。

二、课程设计目的:1、培养综合运用知识和独立开展实践创新的能力;2、深入学习Verilog HDL,了解其编程环境;3、学会运用Modelsim和Quartus II等编程仿真软件;4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习;三、使用环境:1、软件:Modelsim和Quartus II等编程仿真软件;2、硬件:FPGA开发板。

四、课程设计详细方案及功能验证:1、总体实现方案:1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。

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

2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,曲目3模块。

整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。

主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。

如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。

本次设计的框图:2、输入输出信号描述:3、顶层划分:key1.key2.key3.key4.key5.key6.key7.key8.key94、主要模块:主模块:功能描述:是四个子模块的核心,通过主模块分别调用四个不同的子模块。

按键模块:功能描述:通过按键key1~key7键入不同的7个音阶,频率不同则蜂鸣器发音就不同;通过mm=(key8、key9)的值选择调用不同曲目模块。

曲目模块:功能描述:不同的曲目模块输出不同的曲调,根据高低音对应的频率不同输出不同曲调的曲目。

在50MHZ的情况下对主时钟分频得到6MHZ的频率,得到在6MHZ下对应的音阶及其对应频率,以及分频数,通过计数分频数,来对不同频率的声音进行输出,实验箱原始时钟为50MHz,分频后变成不同的频率输出,通过蜂鸣器输出不同频率的声音。

音乐的节拍通过分频变为4Hz,作为1/4拍,即每个单位时长0.25s。

信号名称输入/ 输出源功能描述inclk Input Pin 系统时钟50MHzKey(8~9) Input Pin 选择曲目Beep3 Output Pin 输出曲目5、功能仿真:1、综合:2、总体电路图:3、所有输入输出信号:4、管脚分配:输入信号:一个时钟信号,9个按键;输出信号:一个数码管输出,一个蜂鸣器输出音调。

5、时序仿真:仿真结果;设置输入信号key1~key7为高电平,此时设置key8~key9=01,即mm=01,在数码管应该显示1,在仿真结束后,如图示数码管为11111001,即为1,outclk为蜂鸣器的输出,如图示也正确,所以本设计经过仿真证明正确可行。

6、硬件测试结果:在时序验证后下载,通过硬件测试,实验达到预期效果,当mm(key8~key9)=00时,通过key1~key7这7个按键的键入蜂鸣器可以发出do~xi的七个音阶的音,即表示了电子琴的弹奏功能;当mm=01时,播放了第一首歌;mm=10时,播放了第二首歌;mm=11时,播放第三首歌。

通过硬件的测试,所有的设计目标均实现。

7、对结果和结论的问题讨论:实验过程中,蜂鸣器发音时好时坏,有时比较低沉,有时却比较尖锐,这可能是对主系统分频不精确导致的结果,当对主系统时钟不同分频时,结果都不同,最终在多次试验下,得到在6M时钟频率下效果最为理想。

8、音阶及其对应频率(时钟频率为50MHz分为6MHz)五、心得体会:在这次课程设计之前,其实做过了单片机关于蜂鸣器方面的实验,上手起来还是很快的,开始时,先按照老师的要求,写规范,确定实现方案,然后在逐一细化,一步一步按照要求去完成整个设计。

本次设计要用quartusII软件,由于之前对此软件不是太熟悉所以导致了一些错误和问题的发生,所以这次课程设计中认真学习了quartusII软件的具体使用步骤和操作流程,对所有可能出现的问题进行逐一攻破。

通过这次实验,我不但熟悉了quartusII软件,也了解了开发的最基本流程和方法,也进一步加深了对Verilog编程语言的理解,最重要的是锻炼了我独立思考和分析的逻辑能力,通过从顶向下的设计方法,一步步实现,然后将整个设计串套起来,是我对设计的流程以及编程有了很大的提高。

通过此次硬件课程设计,使我越来越认识到一点,编程对项目实现有着至关重要的作用,我们在硬件开发的过程中必须重视编程,将编程看作是完善开发的不可缺少的一部分。

在一次次的反复设计、论证和测试中,不仅提高了逻辑分析能力、全面分析问题的能力,还提升了发现问题、解决问题的能力。

虽然设计过程比较繁琐,大大小小也出现了许多问题,但这却磨练了我的意志。

通过各方面的学习,使我的知识面进一步拓宽了。

同时,通过本次课程设计,使我也发现了自己的不足,例如:逻辑分析能力不突出,编程能力不足,解决问题的能力不足,使我认识到在以后的学习中在这些方面要多努力,加以改进,提升自我能力。

我相信通过这次课程设计的学习,对我以后有着十分重要的影响和作用。

module dianziqin(inclk,outclk,key1,key2,key3,key4,key5,key6,key7,key8,key9,num); input inclk;input key1,key2,key3,key4,key5,key6,key7,key8,key9;output outclk;output[7:0]num;reg [7:0] num;reg outclk,clk_6M;reg [3:0]c;wire out1,out2,out3,out4;wire[8:0] key;reg [1:0]mm;assign key = {key1,key2,key3,key4,key5,key6,key7,key8,key9}; //由按键拼键为变量key//调用子调块digital_piano m1(.inclk(inclk),.key1(key1),.key2(key2),.key3(key3),.key4(key4),.key5(key5),.key6(key6),.key7(key7),.beep4(out4));bell m2(.inclk(inclk),.beep1(out1));.inclk(inclk),.beep2(out2));bell3 m4(.inclk(inclk),.beep3(out3));always@(posedge inclk)beginif(c<4'd8)c<=c+4'd1;elsebeginc <= 4'd0;clk_6M <= ~clk_6M;endendalways @(posedge clk_6M) //在时钟的上升沿检测是否有按键按下beginif(key == 9'b111111110)mm <= 2'b01;else if(key==9'b111111101)mm <= 2'b10;else if(key==9'b111111100)mm <= 2'b11;else mm <= 2'b00;endalways@(mm)begincase(mm)2'b01:num<=8'b11111001;2'b10:num<=8'b10100100;2'b11:num<=8'b10110000;default:num<=8'b11000000;endcaseendalways @(mm) //按键响应beginif(mm == 2'b01)outclk <= out1;else if(mm == 2'b10)outclk <= out2;else if(mm == 2'b11)outclk <= out3;else outclk <= out4;endendmodule//digital_piano子模块module digital_piano(inclk,key1,key2,key3,key4,key5,key6,key7,beep4); input inclk,key1,key2,key3,key4,key5,key6,key7;output beep4;wire [6:0] key_code;reg [3:0] c;reg clk_6M;reg beep_r;reg [15:0] count;reg [15:0] count_end;parameter Do = 7'b1111110,re = 7'b1111101,mi = 7'b1111011,fa = 7'b1110111,so = 7'b1101111,la = 7'b1011111,si = 7'b0111111;assign key_code = {key7,key6,key5,key4,key3,key2,key1};assign beep4 = beep_r; //输出音乐always@(posedge inclk)beginif(c<4'd8)c<=c+4'd1;elsebeginc <= 4'd0;clk_6M <= ~clk_6M;endendalways@(posedge clk_6M) //分频模块,得出乐谱begincount <= count + 16'd1; //计数器加1if(count == count_end)begincount <=16'd0; //计数器清零beep_r <= !beep_r;endendalways@(posedge clk_6M) //状态机,根据按键状态,选择不同的音符输出begincase(key_code)Do: count_end <= 16'd11450;re: count_end <= 16'd10204;mi: count_end <= 16'd09090;fa: count_end <= 16'd08571;so: count_end <= 16'd07802;la: count_end <= 16'd06802;si: count_end <= 16'd06060;default:count_end <= 16'd0;endcaseendendmodule//bell子模块《两只老虎》module bell(inclk,beep1);input inclk; //系统时钟output beep1; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep1=beep_r; //输出音乐//时钟频率6MHzreg clk_6MHz;reg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8)cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endend//时钟频率4MHzreg clk_4Hz;reg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1 if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})12'b000000010000:origin=11466;//mid112'b000000100000:origin=10216;//mid212'b000000110000:origin=9101; //mid312'b000001000000:origin=8590; //mid412'b000001010000:origin=7653; //mid512'b000001100000:origin=6818; //mid612'b000000000101:origin=14447;//low5endcaseendalways @(posedge clk_4Hz) //歌曲<<two tiger>> beginif(state ==63) state = 0;//计时,以实现循环演奏elsestate = state + 1;case(state)0,1:{high,med,low}=12'b000000010000;//mid12,3:{high,med,low}=12'b000000100000;//mid24,5:{high,med,low}=12'b000000110000;//mid36,7:{high,med,low}=12'b000000010000;//mid18,9:{high,med,low}=12'b000000010000;//mid110,11:{high,med,low}=12'b000000100000;//mid212,13:{high,med,low}=12'b000000110000;//mid314,15:{high,med,low}=12'b000000010000;//mid116,17:{high,med,low}=12'b000000110000;//mid318,19:{high,med,low}=12'b000001000000;//mid420,21,22,23:{high,med,low}=12'b000001010000;//mid524,25:{high,med,low}=12'b000000110000;//mid326,27:{high,med,low}=12'b000001000000;//mid428,29,30,31:{high,med,low}=12'b000001010000;//mid532:{high,med,low}=12'b000001010000;//mid533:{high,med,low}=12'b000001100000;//mid634:{high,med,low}=12'b000001010000;//mid535:{high,med,low}=12'b000001000000;//mid436,37:{high,med,low}=12'b000000110000;//mid338,39:{high,med,low}=12'b000000010000;//mid140:{high,med,low}=12'b000001010000;//mid541:{high,med,low}=12'b000001100000;//mid642:{high,med,low}=12'b000001010000;//mid543:{high,med,low}=12'b000001000000;//mid444,45:{high,med,low}=12'b000000110000;//mid346,47:{high,med,low}=12'b000000010000;//mid148,49:{high,med,low}=12'b000000100000;//mid250,51:{high,med,low}=12'b000000000101;//low552,53,54,55:{high,med,low}=12'b000000010000;//mid156,56:{high,med,low}=12'b000000100000;//mid257,58:{high,med,low}=12'b000000000101;//low559,60,61,62,63:{high,med,low}=12'b000000010000;//mid1default : {high,med,low}=12'bx;endcaseendendmodule//bell2子模块《康定情歌》module bell2 (inclk,beep2);input inclk; //系统时钟output beep2; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep2=beep_r; //输出音乐//时钟频率6MHzreg clk_6MHz;reg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8) //8cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endend//时钟频率4MHzreg clk_4Hz;reg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//13000000cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1 if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})'b000000000001:origin=22900; //低1'b000000000010:origin=20408; //低2'b000000000011:origin=18181; //低3'b000000000101:origin=15267; //低5'b000000000110:origin=13605; //低6'b000000000111:origin=11472; //中1'b000000100000:origin=10216; //中2'b000000110000:origin=9101; //中3'b000001010000:origin=7653; //中5'b000001100000:origin=6818; //中6'b000100000000:origin=5733; //高1'b001000000000:origin=5108; //高2'b001100000000:origin=4551; //高3endcaseendalways @(posedge clk_4Hz)beginif(state ==103)state = 0;elsestate = state + 1; //《康定情歌》case(state)0,1: {high,med,low}='b000000110000;//中32,3: {high,med,low}='b000001010000;//中54,5: {high,med,low}='b000001100000;//中66: {high,med,low}='b000001100000;//中6 7: {high,med,low}='b000001010000;//中5 8,9,10: {high,med,low}='b000001100000;//中6 11: {high,med,low}='b000000110000;//中3 12,13,14,15: {high,med,low}='b000000100000;//中2 16,17: {high,med,low}='b000000110000;//中3 18,19: {high,med,low}='b000001010000;//中5 20,21: {high,med,low}='b000001100000;//中6 22: {high,med,low}='b000001100000;//中6 23: {high,med,low}='b000001010000;//中5 24,25: {high,med,low}='b000001100000;//中6 26,27,28,29,30,31:{high,med,low}='b000000110000;//中3 32,33: {high,med,low}='b000000110000;//中3 34,35: {high,med,low}='b000001010000;//中5 36,37: {high,med,low}='b000001100000;//中6 38: {high,med,low}='b000001100000;//中6 39: {high,med,low}='b000001010000;//中5 40,41,42: {high,med,low}='b000001100000;//中6 43: {high,med,low}='b000000110000;//中3 44,45,46,47: {high,med,low}='b000000100000;//中2 48,49: {high,med,low}='b000000000101;//中5 50,51: {high,med,low}='b000000110000;//中3 52: {high,med,low}='b000000100000;//中2 53: {high,med,low}='b000000110000;//中3 54: {high,med,low}='b000000100000;//中2 55: {high,med,low}='b000000000111;//156,57: {high,med,low}='b000000100000;//中258,59,60,61,62,63:{high,med,low}='b000000000110;//低664,65: {high,med,low}='b000001100000;//中666,67,68,69,70,71:{high,med,low}='b000000100000;//中272,73: {high,med,low}='b000000000101;//中574,75,76,77,78,79:{high,med,low}='b000000110000;//中380: {high,med,low}='b000000100000;//中281: {high,med,low}='b000000000111;//182,83,84,85,86,87:{high,med,low}='b000001100000;//中688,89: {high,med,low}='b000000000101;//中590,91: {high,med,low}='b000000110000;//中392: {high,med,low}='b000000100000;//中293: {high,med,low}='b000000110000;//中394: {high,med,low}='b000000100000;//中295: {high,med,low}='b000000000111;//196,97: {high,med,low}='b000000100000;//中298,99,100,101,102,103:{high,med,low}='b000001100000;//中6 endcaseendendmodule//bell3子模块《天空之城》module bell3 (inclk,beep3);input inclk; //系统时钟output beep3; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep3=beep_r; //输出音乐//时钟频率6MHzreg clk_6MHz;reg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8)cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endend//时钟频率4MHzreg clk_4Hz;reg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})'b000000000001:origin=22900; //低1'b000000000010:origin=20408; //低2'b000000000011:origin=18181; //低3'b000000000100:origin=17142; //低4'b000000000101:origin=15267; //低5'b000000000110:origin=13605; //低6'b000000000111:origin=12121; //低7'b000000000111:origin=11472; //中1'b000000100000:origin=10216; //中2'b000000110000:origin=9101; //中3'b000000111000:origin=8571; //中4'b000001010000:origin=7653; //中5'b000001100000:origin=6818; //中6'b000010000000:origin=6060; //中7'b000100000000:origin=5733; //高1'b001000000000:origin=5108; //高2'b001100000000:origin=4551; //高3'b001010000000:origin=4294; //高4'b010*********:origin=3826; //高5'b011000000000:origin=3409; //高6'b010*********:origin=3050; //高7endcaseendalways @(posedge clk_4Hz)beginif(state ==195)state = 0;elsestate = state + 1; //kang ding qing gecase(state)0: {high,med,low}='b000001100000;//中61: {high,med,low}='b000010000000;//中72,3,4: {high,med,low}='b000100000000;//高15: {high,med,low}='b000010000000;//中76,7: {high,med,low}='b000100000000;//高18,9: {high,med,low}='b001100000000;//高310,11,12,13,14,15:{high,med,low}='b000010000000;//中7 16,17: {high,med,low}='b000000110000;//中318,19,20: {high,med,low}='b000001100000;//中621: {high,med,low}='b000001010000;//中522,23: {high,med,low}='b000001100000;//中624,25: {high,med,low}='b000000000111;//中126,27,28,29,30,31:{high,med,low}='b000001010000;//中 532: {high,med,low}='b000000110000;//中3 33: {high,med,low}='b000000110000;//中334,35,36: {high,med,low}='b000000111000;//中437: {high,med,low}='b000000110000;//中3 38: {high,med,low}='b000000111000;//中4 39,40,41: {high,med,low}='b000100000000;//高142,43,44: {high,med,low}='b000000110000;//中345,46,47: {high,med,low}='b000100000000;//高148,49,50: {high,med,low}='b000010000000;//中751,52,53: {high,med,low}='b000000111000;//中454,55,56,57,58,59,60,61:{high,med,low}='b000010000000;//中7 62: {high,med,low}='b000001100000;//中663: {high,med,low}='b000010000000;//中764,65,66: {high,med,low}='b000100000000;//高167: {high,med,low}='b010*********;//高768,69: {high,med,low}='b000100000000;//高170,71: {high,med,low}='b001100000000;//高372,73,74: {high,med,low}='b000010000000;//中775,76: {high,med,low}='b000000110000;//中377,78,79: {high,med,low}='b000001100000;//中680: {high,med,low}='b000000000101;//中581,82: {high,med,low}='b000001100000;//中683,84: {high,med,low}='b000000000111;//中185,86,87,88,89,90:{high,med,low}='b000001010000;//中 591: {high,med,low}='b000000110000;//中3 92: {high,med,low}='b000000110000;//中393,94: {high,med,low}='b000000111000;//中495: {high,med,low}='b000100000000;//高1 96,97,98: {high,med,low}='b000010000000;//中799,100: {high,med,low}='b000100000000;//高1101,102: {high,med,low}='b001000000000;//高2 103: {high,med,low}='b001100000000;//高3 104,105,106,107,108,109:{high,med,low}='b000100000000;//高1 110: {high,med,low}='b000010000000;//中7111,112: {high,med,low}='b000001100000;//中6113,114: {high,med,low}='b000010000000;//中7 115,116: {high,med,low}='b000001010000;//中5117,118,119,120,121,122:{high,med,low}='b000001100000;//中6 123,124: {high,med,low}='b000000000111;//中1 125: {high,med,low}='b001000000000;//高2126,127,128: {high,med,low}='b001100000000;//高3 129: {high,med,low}='b001000000000;//高2 130,131: {high,med,low}='b001100000000;//高3132,133: {high,med,low}='b010*********;//高5 134,135,136,137,138,139:{high,med,low}='b001000000000;//高2 140,141: {high,med,low}='b000001010000;//中5142,143,144: {high,med,low}='b000100000000;//高1145: {high,med,low}='b000010000000;//中7146,147: {high,med,low}='b000100000000;//高1148,149,150,151,152,153,154,155:{high,med,low}='b001100000000;//高3156,157: {high,med,low}='b000001100000;//中6158,159: {high,med,low}='b000010000000;//中7160,161,162,163:{high,med,low}='b000100000000;//高1 164,165: {high,med,low}='b000010000000;//中7166,167: {high,med,low}='b000100000000;//高1168,169: {high,med,low}='b001000000000;//高2170,171,172: {high,med,low}='b000100000000;//高1173,174,175,176,177,178:{high,med,low}='b000001010000;//中5 179,180: {high,med,low}='b001010000000;//高4181,182: {high,med,low}='b001100000000;//高3183,184,185: {high,med,low}='b001000000000;//高2186,187: {high,med,low}='b000100000000;//高1188,189,190,191,192,193,194,195:{high,med,low}='b001100000000;//高3endcaseendendmodule。

相关文档
最新文档