EDA_课程设计_乐曲演奏器

合集下载

eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计

eda乐曲硬件演奏电路课程设计一、课程目标知识目标:1. 学生能够理解EDA乐曲硬件演奏电路的基本原理,掌握电路组成及各部分功能。

2. 学生能够描述常见电子元件在演奏电路中的作用,并运用相关知识分析电路性能。

3. 学生能够掌握编程软件及硬件设计工具,完成简单的EDA乐曲演奏电路设计。

技能目标:1. 学生能够运用所学知识,独立完成演奏电路的搭建与调试。

2. 学生能够通过编程软件,编写简单的乐曲程序,实现乐曲演奏。

3. 学生能够运用团队协作能力,共同解决演奏电路设计过程中遇到的问题。

情感态度价值观目标:1. 学生通过本课程的学习,培养对电子技术和音乐艺术的热爱,提高审美情趣。

2. 学生在学习过程中,养成积极探究、勇于创新的精神,增强实践操作能力。

3. 学生能够认识到科技与艺术的结合在生活中的应用,增强社会责任感和团队合作意识。

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

学生特点:本年级学生具备一定的电子技术基础知识,对音乐艺术有一定兴趣,好奇心强,善于动手实践。

教学要求:教师应注重理论与实践相结合,引导学生积极参与实践操作,鼓励学生创新思维,提高团队协作能力。

同时,关注学生的个体差异,因材施教,确保每位学生都能在课程中收获成长。

二、教学内容本课程教学内容主要包括以下三个方面:1. 理论知识学习:- 电路基础知识:回顾电路的基本概念、原理及电路图的识别。

- 电子元件介绍:学习常用电子元件的原理、功能及在演奏电路中的应用。

- EDA软件使用:介绍编程软件及硬件设计工具的使用方法,如Multisim、Proteus等。

2. 实践操作能力培养:- 电路搭建:学习演奏电路的搭建方法,熟悉各类电子元件的连接方式。

- 程序编写:编写简单的乐曲程序,掌握编程技巧,实现乐曲演奏。

- 调试与优化:对搭建的演奏电路进行调试,找出问题并进行优化。

3. 创新思维与团队协作:- 设计实践:运用所学知识,小组合作完成指定乐曲的演奏电路设计。

电子课程设计EDA课程设计乐曲硬件演奏电路

电子课程设计EDA课程设计乐曲硬件演奏电路

电子课程设计——乐曲硬件演奏电路设计学院太原科技大学华科学院专业、班级电子信息工程姓名学号指导教师2011年12月目录一、设计任务与要求 (3)二、总框体图 (3)三、选择器件 (4)四、功能模块 (4)一、音乐数据模块 (4)二、音符控制输出模块 (7)3、音符译码模块 (8)4、数控分频器模块 (11)五、分频器模块 (12)六、译码模块 (13)五、整体设计电路图 (15)一、整体电路原理图……………………………15二、管脚分派图……………………………153、电路仿真结果 (15)4、硬件验证 (16)六、设计心得 (17)七、附录 (19)乐曲硬件演奏电路设计一、设计任务与要求:一、实验内容利用可编程逻辑器件FPGA,设计乐曲硬件演奏电路,可自动演奏乐曲。

二、实验要求(1)利用数控分频器设计硬件乐曲演奏电路。

(2)利用给定的音符数据定制ROM“music”。

(3)设计乘法器逻辑框图,并在QuartusII上完成全部设计。

(4)将音乐通过实验箱上的喇叭播放出来。

(5)与演奏发音相对应的简谱码输出在数码管上显示。

二、整体框图设计思路:C调音阶频率表:同的预置数即可发出不同频率的声音。

由此,可以以此为设计基础。

设计一功能模块,能够将乐曲中的音符一一以对应的频率以预置数的形式置入数控分频计中,即可利用该数控分频计产生不同的声音,演奏出设定好的音乐。

ROM 中的音乐数据文件刚可由编辑好的音符填入MIF 文件中再定制LPM_ROM 将音符数据加载入ROM 中,并设计程序在运行时自动读取ROM 中的文件并置入数控分频器中。

当采用四四拍曲子时,每节拍持续时间为秒。

置入数控分频器的速度也应与此同步或一致,避免音乐过快或过快慢而失真。

由已知的C 调音阶频率表,各频率对应的预置数就与数控分频推动蜂鸣器发作声音的频率对应。

在编写数控分频器时,不仅要考虑预置数的输入方式,还要考虑输入的速度,和驱动蜂鸣器发声的频率。

EDA课程设计自动奏乐器2

EDA课程设计自动奏乐器2

EDA课程设计一设计题目:自动奏乐器二二设计要求:1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。

1 3 1 3 5 6 5 – 6 6 і 6 5 –––6 6 і 6 5 5 3 1 2 2 3 2 1 –––3.附加:显示乐谱。

三设计过程:(一)设计方案:本实验共分变速控制、断音延音、选音、分频和显示五部分。

其中,变速控制部分由biansu模块构成;断音延音部分由模块yuepu1构成;模块yuepu2选出不同的地址输出,yindiao模块实现分频,两者连接得到不同的音调,输出到一个TFF,实现占空比为1:1,送出到扬声器发声;显示部分是一个7449译成器,在选音奏乐的同时数码管显示乐谱。

详细实现过程如下:1.实验采用两个时钟信号:93.75kHZ和23.438kHZ,分别用于演奏速度的控制与不同音调的分频。

93.75kHZ用四片74160构成2929进制计数器和1464进制计数器,分别得到32HZ和64HZ的信号,使演奏出快慢两种速度;用23.438kHZ构成八个音频的进制计数器,将输出加到八选一数字选择器,用控制端CBA控制,以便通过分频得到不同的音调。

2.从乐谱开始到结束总共包括32种状态, 且为了实现乐曲能够自动循环播放,采用了32进制加法计数器。

3. 乐谱中的延音与断音用一个八进制计数器与上述的32进制计数器构成,在每八个时钟周期后出现一个脉冲out1,用来控制每个音符的断音。

在32进制计数器计到6时出现out2; 计数器计到12时出现out3; 计数器计到13时出现out4; 计数器计到14时出现out5; 计数器计到28时出现out6; 计数器计到29时出现out7; 计数器计到30时出现out8。

out2-out8均用来控制延音。

(二)设计说明:总图:1.变速模块:有两个输入端,93.75kHZ的信号输入端和变速控制端biansu。

93.75kHZ用四片74160构成2929进制计数器和1464进制计数器,如下图所示,当biansu=1时得到32HZ信号,当biansu=0时,得到64HZ的信号,使演奏出快慢两种速度。

eda乐曲演奏电路设计

eda乐曲演奏电路设计

eda乐曲演奏电路设计
设计一个eda乐曲演奏电路可以分为以下几个步骤:
1. 选择音频输入设备:首先需要选择合适的音频输入设备,如麦克风或乐器接口,用于将音频信号输入到电路中。

2. 音频信号处理:接下来,需要对音频信号进行处理,以便对其进行分析和控制。

可以使用模拟或数字信号处理技术来实现这一步骤。

3. 音符检测与转换:将处理后的音频信号输入到音符检测模块中,以检测出演奏中的音符和音高。

可以使用算法(如傅里叶变换)来实现音符检测,并将检测结果转换成数字形式,以便后续处理。

4. 控制信号生成:根据检测到的音符和音高,产生相应的控制信号。

可以使用模拟电路或数字信号处理器(DSP)来实现这一步骤。

5. MIDI信号输出:将控制信号转换成MIDI(Musical Instrument Digital Interface)格式的信号,以便将其与其他MIDI设备或乐器连接起来。

可以使用MIDI编码/解码器芯片实现这一步骤。

6. 音乐合成与演奏控制:利用MIDI信号控制MIDI设备或乐器,实现乐曲的合成与演奏。

可以使用MIDI合成器,MIDI 乐器模块或其他合成器设备来实现这一步骤。

在整个设计过程中,需要考虑信号处理的实时性、音质、精度等因素,并根据具体需求进行优化和调整。

EDA课设简易乐曲演奏器说明书

EDA课设简易乐曲演奏器说明书

目录1引言 (1)2 EDA简介 (2)3 硬件描述语言VHDL (3)4 Quartus II软件 (4)5 简易乐曲演奏器设计及仿真 (5)5.1简易乐曲演奏器的各个模块原理 (5)5.1.1模式选择模块 (5)5.1.2音调存储模块 (5)5.1.3音调输入模块 (6)5.1.4音调译码模块 (7)5.1.5音调分频发生模块 (9)5.2简易乐曲演奏器的顶层程序仿真及下载 (9)5.2.1顶层程序仿真 (9)5.2.2顶层程序管脚连接 (10)5.2.3顶层程序硬件连接 (11)6 总结 (12)参考文献 (13)附录 (14)1引言VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,它可以对电子电路和系统的行为进行描述。

基于这种描述,结合相关软件工具,可以得到所期望的实际电路和系统。

它出现在80年代的后期,,最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

VHDL语言随着后来被广泛使用,有可编程逻辑器件(包括CPLD和FPGA)和专用集成电路(ASIC)两个直接的应用领域。

随着EDA技术的高速发展,,目前有许多工具支持采用VHDL进行电路综合、仿真以及实现。

比较常见的是Altera公司的QuartusII开发平台和Xilinx公司的ISE 开发平台。

本次课设就是基于FPGA开发系统,在QuartusII 9.0软件平台上,采用VHDL语言来实现简易乐曲演奏器电路的设计与仿真,并下载到试验箱进行硬件实现,且要求实现如下功能:(1)设计一简单的乐曲演奏器,可通过按键输入来控制音响声音;(2)演奏时可以通过按键选择是手动演奏还是自动演奏,手动演奏是通过按键进行简易乐曲的演奏,自动演奏则是演奏已存入的固定乐曲;(3)至少保存一首自动演奏的乐曲,且自动演奏的乐曲能重复播放;(4)进行手动演奏和自动演奏时,数码管上要同时能显示出演奏乐曲的乐谱;(5)自动播放时,设置低速,中速,快速控制键,能实现乐曲不同速度的播放;(6)此演奏器要设置一个整体复位控制键;本文主要介绍了EDA技术、VHDL语言、QuartusII软件和简易乐曲演奏器的设计原理及设计过程和实现。

EDA实验报告5_乐曲硬件演奏电路设计

EDA实验报告5_乐曲硬件演奏电路设计

EDA技术与应用实验报告姓名学号专业年级电子信息工程实验题目乐曲硬件演奏电路设计实验目的1.学习利用数控分频器设计硬件乐曲演奏电路2.掌握模块化和层次化的设计方法以及音符编码的设计思想实验原理1.一定频率的矩形波通过扬声器可以发出相应频率的声音,乐曲是由一系列的音符组成的。

所以,如果我们通过控制每个音符的发音频率值及其持续的时间,就可以以纯硬件的手段,利用这些数值来实现所希望演奏的乐曲。

2.该硬件演奏电路由三个模块构成<1>音符数据ROM的地址发生器模块NoteTabs.vhdl内置8位二进制计数器,作为ROM的地址发生器,计数频率4Hz,即每一计数值的停留时间为0.25s,恰为全音符设为1s时,四四拍的4音符持续时间。

随着NoteTabs中的计数器按4Hz的时钟速率作加法计数即地址值递增时,ROM中的音符数据将通过ToneIndex[3..0]输向ToneTaba模块,乐曲即开始演奏起来。

<2>乐曲简谱码对应的分频预置数查表电路模块ToneTaba.vhdlToneTaba为Speakera提供决定所发音符的分频预置数,此数在Speakera输入口停留的时间即为此音符的节拍值。

输入Index[3..0]可确定乐曲全部音符所对应的分频预置数(13个)每一音符的停留时间由NoteTabs模块的clk决定(4Hz)。

<3>决定每一个音符音调的数控分频器模块Speakera.vhdl输入端clk输入一较高频率(12MHz)的信号,经Speakera分频,再经2分频以展宽脉冲后,由SpkOut输出。

11位预置数Tone[10..0]决定由clk输入信号的分频比,SpkOut输出的频率决定每一音符的音调。

实验内容1.定制存放LPM-ROM模块Music,在连续地址上存放乐曲的音符数据,2.用vhdl文本输入法和元件例化语句完成NoteTabs.vhdl的设计,该模块包含音符数据ROM模块Music.vhdl3.完成ToneTaba.vhdl的设计,此模块给数控分频模块提供每个音符所对应的分频预置数,即计数初值4.完成Speakera.vhdl的设计,该模块是一个初值可变的加法计数器。

EDA课程设计音乐演奏

EDA课程设计音乐演奏

EDA课程设计音乐演奏一、教学目标本课程旨在通过EDA(电子设计自动化)技术的学习,使学生掌握音乐演奏的基本原理和技巧,培养学生的创新意识和实践能力。

具体目标如下:知识目标:使学生了解音乐演奏的基本知识,包括音乐理论、演奏技巧等;掌握EDA技术的基本原理和应用。

技能目标:培养学生能够运用EDA技术进行音乐创作和演奏的能力;提高学生的音乐表现力和演奏技巧。

情感态度价值观目标:培养学生对音乐的热爱和尊重,培养学生的创新意识和团队合作精神。

二、教学内容本课程的教学内容主要包括音乐演奏的基本原理、EDA技术的基本原理和应用、音乐创作和演奏技巧等。

具体安排如下:第一章:音乐演奏概述1.1 音乐理论和演奏技巧1.2 音乐演奏的生理和心理基础第二章:EDA技术的基本原理2.1 EDA技术的发展和应用2.2 EDA工具的使用和操作第三章:音乐创作和演奏技巧3.1 音乐的创作方法和过程3.2 演奏技巧的训练和提高第四章:音乐演奏实践4.1 集体演奏和合作4.2 个人演奏和创作展示三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

通过多样化的教学方法,激发学生的学习兴趣和主动性,提高学生的学习效果。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。

教材选用权威、实用的专业教材,参考书选择与课程内容相关的学术著作和案例集,多媒体资料包括音乐演奏视频、图片等,实验设备包括计算机、音响等。

教学资源的选择和准备应能够支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等多种形式,以全面、客观、公正地评价学生的学习成果。

具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置相关的音乐演奏练习和EDA技术任务,评估学生的实践能力和掌握程度。

3.考试:包括期中考试和期末考试,以闭卷形式进行,评估学生对音乐演奏和EDA技术的理论知识掌握。

EDA课程设计——乐曲硬件演奏电路资料

EDA课程设计——乐曲硬件演奏电路资料

《电子技术基础Ⅲ》项目设计报告课程名称任课教师设计题目乐曲硬件演奏电路设计班级姓名学号成绩日期一、题目分析1.设计要求利用FPGA,设计一硬件乐曲硬件演奏电路,能够利用硬件电路,自动播放音乐。

2.题目分析乐曲是由一连串的音符组成,而每个音符的发音频率值及其持续时间是乐曲能连续演奏所需的两个基本因素。

所以,设计音乐发生电路,需要得到相应音符的频率值,及其持续时间。

如果能够得到这两个基本元素,利用程序来控制FPGA 某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

所以,获取这两个要素是本实验的关键。

(1)频率值频率的高低决定了音调的高低。

由于乐曲都是由一连串的音符组成,因此按照乐曲的乐谱,依次输出这些音符相对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。

简谱的音名与频率的关系如下表:表1 简谱中的音名与频率的关系(2)时长这次设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4Hz 的时钟频率即可产生四分音符的时长。

系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,如果在曲谱文件中某个音符为三拍音长,只要将该音符连续书写三遍,系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,这样就可以控制音乐的音长了。

二、设计方案1.顶层实体描述音乐播放器,是能够演奏一曲完整的乐曲,在外部时钟的作用下,产生相应频率的方波信号,即在乐曲中对应相应的音符。

并且信号要持续一定的时间,即对应乐曲中的节拍。

得到了音调和节拍后,就可以组成相应的乐曲了。

2.模块划分采用“自顶向下”的设计方法,将音乐播放器模块主要划分为地址发生模块、数控分频模块、music模块和预置数模块。

(1)地址发生模块:增地址计数器,用于产生地址数。

EDA课程设计 乐曲自动演奏机

EDA课程设计 乐曲自动演奏机

郑州航空工业管理学院《EDA技术及应用》课程设计报告13 届通信工程专业班级题目:乐曲自动演奏机姓名:学号:同组人:指导老师:2015年7月9日乐曲自动演奏机一、设计要求:(1)可以在电路上自动演奏至少两首乐曲,在这里我们选用的是《茉莉花》、《欢乐颂》和《小苹果》。

(2)有相应的LED灯指示高低音。

二、其他要求:(在EDA实验箱上完成)1.晶振为48 MHz。

2. 采用FPGA器件为ALTERA 的EP1C6Q240C8。

3.采用数码管显示。

一、设计方案规划1、整体规划输入一个:clk(系统时钟48MHz)输出四个:beep(蜂鸣器输出端)、led(LED指示灯)、dig(数码管选择输出引脚)、seg(数码管段输出引脚)2、功能模块与模块划分总共分为三部分,①蜂鸣器发声部分,②LED灯显示部分,③数码管显示部分。

3、各功能或各模块的功能细分①蜂鸣器自动演奏乐曲,②LED灯显示高低音,③数码管显示音调。

二、各模块的实现方法、技术、要点1、乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续(时间音长)是乐曲演奏的2个基本数据,因此需控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。

频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。

所有不同频率的信号都是从一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。

如在48MHz 时钟下,中音1(对应的频率值是523.3Hz)的分频系数应该为:48000000/(2*523.3)=45863,这样只需对系统时钟进行45863次分频可得到所要的中音M1(分频系数计算公式为D=F/2K,由于F/2K之后,会使分频系数D变小,所以功能模块中语句:beep_r<=!beep_r,使得输出取反,K=F/2count_end,消除了前面除以2K的影响)。

eda课程设计自动演奏

eda课程设计自动演奏

eda课程设计自动演奏一、教学目标本课程的教学目标是使学生掌握eda课程设计自动演奏的基本原理和方法,能够运用所学知识进行简单的自动演奏设计。

1.理解eda的基本概念和原理。

2.掌握自动演奏的基本方法和技巧。

3.能够使用eda工具进行简单的自动演奏设计。

4.能够分析并解决自动演奏过程中遇到的问题。

情感态度价值观目标:1.培养学生对音乐和艺术的热爱和尊重。

2.培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括eda的基本概念和原理,自动演奏的基本方法和技巧。

1.eda的基本概念和原理:介绍eda的基本概念,包括eda的定义、特点和应用范围;讲解eda的基本原理,包括数字信号处理、声音合成和音乐理论。

2.自动演奏的基本方法和技巧:介绍自动演奏的基本方法,包括midi文件编辑、音频处理和虚拟乐器;讲解自动演奏的技巧,包括节奏控制、音色选择和音乐创作。

三、教学方法本课程的教学方法主要包括讲授法、实践法和讨论法。

1.讲授法:通过讲解eda的基本概念和原理,自动演奏的基本方法和技巧,使学生掌握相关知识。

2.实践法:通过让学生实际操作eda工具,进行自动演奏设计,使学生掌握实际操作技能。

3.讨论法:通过分组讨论,让学生分享自己的设计和经验,促进学生之间的交流和合作。

四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。

1.教材:选用权威、实用的教材,如《eda教程》等。

2.多媒体资料:提供相关的视频、音频和图文资料,如eda软件教程、自动演奏案例等。

3.实验设备:准备计算机、音响设备、midikeyboard等实验设备,为学生提供实践操作的机会。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

1.平时表现:通过观察学生在课堂上的参与度、提问和回答问题的情况,以及小组讨论的表现来评估学生的学习态度和理解程度。

2.作业:布置适量的作业,如eda工具的使用练习、自动演奏设计案例分析等,通过学生的作业完成情况评估其掌握程度。

EDA_电子琴课程设计

EDA_电子琴课程设计

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

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

系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。

该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。

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

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

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

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

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

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

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

图1-1 系统的整体组装设计原理图由于设计分模块组成,每个单独的模块都是一个完整的源程序,分别实现不同性质的功能,但是每个模块又是紧密关联的,前一个模块的输出很可能是后一模块的输入。

如AUTO模块的音符信号输出就是TONE模块的音符信号输入。

另外,时钟脉冲信号在本课程设计中用的最多,用处也最大,一般情况下时钟信号处上升沿有效,判断和控制各个计数器计数多少。

简易电子琴的设计过程根据系统设计要求,系统该系统基于计算机中时钟分频器的原理,设计采用自顶向下的设计方法,通过按键输入来控制音响或者自动演奏已存入的歌曲。

EDA音乐播放器课程设计

EDA音乐播放器课程设计

摘要本课程设计是实现演奏三首乐曲演奏电路的硬件实现。

总共分为五个模块,分别为20MHZ转换1MHZ分频模块,1MHZ转换4HZ分频模块,地址计数器模块,rom 存储器模块,乐音分频模块。

音符的频率由乐音分频模块获得,这是一个数控分频器。

由时钟端输入一具有1MHZ的信号,分频比由预置数值决定,其输出频率将决定每一个音符的音调。

音符的持续时间根据乐曲的速度及每个音符的节拍数来决定。

三首乐曲分别为”两只老虎”,“找朋友”,“世上只有妈妈好”。

关键词:乐曲演奏电路,20MHZ转换1MHZ分频模块,1MHZ转换4HZ分频模块,地址计数器模块,rom存储器模块,乐音分频模块Pick toThis course is designed to play music three play hardware implementation of the circuit. A total is divided into five modules, respectively for 20 MHZ conversion 1 MHZ frequency module, 1 MHZ conversion 4 HZ frequency module, address counter module, ROM memory module, dividing sound module. Note the frequency of the sound frequency module, a CNC divider. By the input, a signal with 1 MHZ clock end, frequency division ratio determined by the preset value, the output frequency will determine the tones of every note. The duration of the notes according to the number of speed and every note of the beat of the music to decide. Three piece respectively "two tigers", "find friends", "only a mother good in the world".Keywords: music playing circuit, 20 MHZ conversion 1 MHZ frequency module, 1 MHZ conversion 4 HZ frequency module, address count前言电子技术飞速发展,传统的电子电路设计已经满足不了人们的要求,可编程逻辑逻辑器件和EDA技术的运用大大地提高了工作效率。

EDA乐曲硬件演奏电路设计 课程设计

EDA乐曲硬件演奏电路设计 课程设计

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

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

如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。

使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。

FPGA预装了很多已构造好的参数化库单元LPM器件。

通过引入支持LPM的EDA软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。

本课设在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以“两只老虎”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。

只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。

关键词:FPGA;EDA;VHDL;音乐目录设计要求 (1)1、方案论证与对比 (1)1.1方案一 (1)1.2方案二 (1)1.3综合对比 (1)2 乐曲演奏电路原理 (2)2.1 音乐演奏电路原理 (2)2.2 音符频率的获得 (2)2.3 乐曲节奏的控制 (3)2.4 乐谱发生器 (3)2.5 乐曲演奏电路原理框图 (3)3音乐硬件演奏电路的设计实现 (4)3.1 地址发生器模块 (4)3.1.1 地址发生器的VHDL设计 (4)3.2 分频预置数模块 (6)3.2.1 分频预置数模块的VHDL设计 (6)3.3 数控分频模块 (8)3.3.1 数控分频模块的VHDL设计 (8)3.4 music模块 (10)3.4.1 音符数据文件 (10)3.5.2 LPM-ROM定制 (12)3.6 顶层文件 (14)4 时序仿真及下载调试过程 (16)4.1 时序仿真图 (16)4.2 引脚锁定以及下载 (17)4.3调试过程及结果 (17)5扩大乐曲硬件演奏电路的通用性 (18)5.1 完善分频预置数模块的功能 (18)设计总结与心得体会 (21)参考文献 (22)乐曲硬件演奏电路设计设计要求利用FPGA,设计一个乐曲硬件演奏电路。

EDA乐曲硬件演奏电路设计-课程设计

EDA乐曲硬件演奏电路设计-课程设计
本课设在 EDA 开发平台上利用 VHDL 语言设计数控分频器电路,利用数控分 频的原理设计乐曲硬件演奏电路,并定制 LPM-ROM 存储音乐数据,以“两只老虎” 乐曲为例,将音乐数据存储到 LPM-ROM,就达到了以纯硬件的手段来实现乐曲的 演奏效果。只要修改 LPM-ROM 所存储的音乐数据,将其换成其他乐曲的音乐数据, 再重新定制 LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。
音符的频率可以由图 1 中的 SPEAKERA 获得,这是一个数控分频器。由其 clk 端输入一具有较频率(这里是 12MHz)的信号,通过 SPEAKERA 分频后由 SPKOUT 输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于 驱动扬声器,需另加一个 D 触发器以均衡其占空比,但这时的频率将是原来的 1/2。 SPEAKERA 对 clk 输入信号的分频比由 11 位预置数 Tone[10..0]决定。SPKOUT 的输出 频率将决定每一音符的音调,这样,分频计数器的预置值 Tone[10..0]与 SPKOUT 的输 出频率,就有了对应关系。
1.2方案二
制作一个纯硬件电路来完成乐曲演来自。1.3综合对比与利用微处理器来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得 多,如果不借助于功能强大的 EDA 工具和硬件描述语言,仅凭传统的数字逻辑技术, 即使最简单的演奏电路也难以实现。所以选择方案一。
部分文档来自网络收集,如有侵权,请联系作者删除
部分文档来自网络收集,如有侵权,请联系作者删除
4
人生有几件绝对不能失去的东西:自制的力量,冷静的头脑,希望和信心
5
图 1 电路原理图
3 音乐硬件演奏电路的设计实现
音乐硬件演奏电路主要是用 VHDL 语言来设计,并利用 QuartusII 软件工具来编译、 测试和仿真。根据顶层原理图,共分为地址发生器模块、分频预置数模块、数控分频模 块这三个模块。而 music 模块是存放乐曲中的音符数据,在我们的顶层原理图中并没有 显示出来,地址发生器模块作为 music 模块中所定制的音符数据 ROM 的地址发生器,分 频预置数模块提供分频预置数即给数控分频模块提供计数初值。数控分频模块根据分频 预置数输出各个音符所对应的频率。

EDA课程设计-乐曲硬件演奏电路设计

EDA课程设计-乐曲硬件演奏电路设计

课程设计名称:乐曲硬件演奏电路设计一、设计要求:利用数控分频器设计硬件乐曲演奏电路二、所用设备:计算机、MaxplusⅡ、下载实验箱(ZY11EDA13BE)三、设计原理:主系统由三个模块组成,其内部有三个功能模块:TONETABA.VHD、NOTABS.VHD和SPEAKERA.VHD。

本设计项目作为“梁祝”乐曲演奏电路的实现。

①组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果音符的频率由U3---Speakera获得,这是一个数控分频器。

由其时钟信号输入端clk输入一具有较高频率(这里是12MHz)的信号,通过Speakera 分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。

Speakera对clk输入信号的分频比由11位预置数Tone[10...0]决定。

SPKOUT的输出频率将决定每一音符的音调,这样分频计数器的预置值Tone[10...0]与SPKOUT的输出频率就有了对应关系。

例如在ToneTaba模块中若取Tone[10...0]=1036,将发出音符为“3”音的信号频率。

②音符的持续时间需根据乐曲的速度及每个音符的接拍数来确定,模块ToneTaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间即为此音符的节拍值。

模块ToneTaba是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs 的clk的输入频率决定,在此为4Hz。

这13个值的输出由对应于ToneTaba的4位输入值Index[3...0]确定,而Index[3...0]最多有16种可选值。

EDA 课程设计——乐曲演奏电路

EDA 课程设计——乐曲演奏电路

出题教师:李天倩乐曲演奏电路一、 设计简要说明:用FPGA 器件驱动蜂鸣器演奏“梁祝”片段。

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

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

图1 “梁祝”片段乐谱电路功能模块为:1、用分频电路产生不同频率方波;2、利用计数器实现speaker 信号频率选择,某一频率持续时间长短,各频率间间隔大小。

详细内容见教材《数字系统设计与Verilog HDL 》(第三版)P208相关内容。

二、 源代码及说明(参考)//"梁祝"乐曲演奏电路 //信号定义与说明: //clk_4Hz : 用于控制音长(节拍)的时钟频率; //clk_6MHz : 用于产生各种音阶频率的基准频率; //speaker : 用于激励扬声器的输出信号,本例中为方波信号;//high,med,low : 分别用于显示高音、中音和低音音符,各驱动一个数码管来显示。

module song(clk_6MHz,clk_4Hz,speaker ,high,med,low); input clk_6MHz,clk_4Hz; output speaker;output[3:0] high,med,low; reg speaker;reg[3:0] high,med,low; reg[7:0] counter;reg[13:0] divider ,origin; wire carry;assign carry=(divider==16383); always @(posedge clk_6MHz) begin if(carry) divider<=origin; else divider<=divider+1; endalways @(posedge carry)begin speaker<=~speaker;end //2分频产生方波信号356215521 6 1 3 56 52365132651 6 16 57always @(posedge clk_4Hz)begin case({high,med,low}) //分频比预置'b000000000011: origin<=7281;'b000000000101: origin<=8730;'b000000000110: origin<=9565;'b000000000111: origin<=10310;'b000000010000: origin<=10647;'b000000100000: origin<=11272;'b000000110000: origin<=11831;'b000001010000: origin<=12556;'b000001100000: origin<=12974;'b000100000000: origin<=13516;'b000000000000: origin<=16383;endcaseendalways @(posedge clk_4Hz)beginif(counter==63) counter<=0; //计时,以实现循环演奏else counter<=counter+1;case(counter) //记谱0: {high,med,low}<='b000000000011; //低音"3"1: {high,med,low}<='b000000000011; //持续4个时钟节拍2: {high,med,low}<='b000000000011;3: {high,med,low}<='b000000000011;4: {high,med,low}<='b000000000101; //低音"5"5: {high,med,low}<='b000000000101; //发3个时钟节拍6: {high,med,low}<='b000000000101;7: {high,med,low}<='b000000000110; //低音"6"8: {high,med,low}<='b000000010000; //中音"1"9: {high,med,low}<='b000000010000; //发3个时钟节拍10: {high,med,low}<='b000000010000;11: {high,med,low}<='b000000100000; //中音"2"12: {high,med,low}<='b000000000110; //低音"6"13: {high,med,low}<='b000000010000;14: {high,med,low}<='b000000000101;15: {high,med,low}<='b000000000101;16: {high,med,low}<='b000001010000; //中音"5"17: {high,med,low}<='b000001010000; //发3个时钟节拍18: {high,med,low}<='b000001010000;19: {high,med,low}<='b000100000000; //高音"1"20: {high,med,low}<='b000001100000;21: {high,med,low}<='b000001010000;22: {high,med,low}<='b000000110000;23: {high,med,low}<='b000001010000;24: {high,med,low}<='b000000100000; //中音"2"25: {high,med,low}<='b000000100000; //持续11个时钟节拍26: {high,med,low}<='b000000100000;27: {high,med,low}<='b000000100000;28: {high,med,low}<='b000000100000;29: {high,med,low}<='b000000100000;30: {high,med,low}<='b000000100000;31: {high,med,low}<='b000000100000;32: {high,med,low}<='b000000100000;33: {high,med,low}<='b000000100000;34: {high,med,low}<='b000000100000;35: {high,med,low}<='b000000110000; //中音"3"36: {high,med,low}<='b000000000111; //低音"7"37: {high,med,low}<='b000000000111;38: {high,med,low}<='b000000000110; //低音"6"39: {high,med,low}<='b000000000110;40: {high,med,low}<='b000000000101; //低音"5"41: {high,med,low}<='b000000000101;42: {high,med,low}<='b000000000101;43: {high,med,low}<='b000000000110; //低音"6"44: {high,med,low}<='b000000010000; //中音"1"45: {high,med,low}<='b000000010000;46: {high,med,low}<='b000000100000; //中音"2"47: {high,med,low}<='b000000100000;48: {high,med,low}<='b000000000011; //低音"3"49: {high,med,low}<='b000000000011;50: {high,med,low}<='b000000010000; //中音"1"51: {high,med,low}<='b000000010000;52: {high,med,low}<='b000000000110;53: {high,med,low}<='b000000000101; //低音"5"54: {high,med,low}<='b000000000110;55: {high,med,low}<='b000000010000; //中音"1"56: {high,med,low}<='b000000000101; //低音"5"57: {high,med,low}<='b000000000101; //持续8个时钟节拍58: {high,med,low}<='b000000000101;59: {high,med,low}<='b000000000101;60: {high,med,low}<='b000000000101;61: {high,med,low}<='b000000000101;62: {high,med,low}<='b000000000101;63: {high,med,low}<='b000000000101;endcaseendendmodule三、仿真结果四、硬件测试实验开发板(教改项目完成后可以提供相应平台)乐曲需要现场听五、思考题(指导教师根据学生完成思考题情况酌情加分)1、补完整个乐曲。

EDA课程设计——乐曲硬件演奏电路

EDA课程设计——乐曲硬件演奏电路

《电子技术基础Ⅲ》项目设计报告课程名称任课教师设计题目乐曲硬件演奏电路设计班级姓名学号成绩日期一、题目分析1.设计要求利用FPGA,设计一硬件乐曲硬件演奏电路,能够利用硬件电路,自动播放音乐。

2.题目分析乐曲是由一连串的音符组成,而每个音符的发音频率值及其持续时间是乐曲能连续演奏所需的两个基本因素。

所以,设计音乐发生电路,需要得到相应音符的频率值,及其持续时间。

如果能够得到这两个基本元素,利用程序来控制FPGA 某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。

所以,获取这两个要素是本实验的关键。

(1)频率值频率的高低决定了音调的高低。

由于乐曲都是由一连串的音符组成,因此按照乐曲的乐谱,依次输出这些音符相对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。

简谱的音名与频率的关系如下表:表1 简谱中的音名与频率的关系(2)时长这次设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4Hz 的时钟频率即可产生四分音符的时长。

系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,如果在曲谱文件中某个音符为三拍音长,只要将该音符连续书写三遍,系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,这样就可以控制音乐的音长了。

二、设计方案1.顶层实体描述音乐播放器,是能够演奏一曲完整的乐曲,在外部时钟的作用下,产生相应频率的方波信号,即在乐曲中对应相应的音符。

并且信号要持续一定的时间,即对应乐曲中的节拍。

得到了音调和节拍后,就可以组成相应的乐曲了。

2.模块划分采用“自顶向下”的设计方法,将音乐播放器模块主要划分为地址发生模块、数控分频模块、music 模块和预置数模块。

(1)地址发生模块:增地址计数器,用于产生地址数。

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

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计专业:通信工程班级:通信082姓名:***学号:**********一、 设计题目:乐曲硬件演奏电路的VHDL 设计二、 设计目标:1)能够播放“梁祝”乐曲。

2)能够通过LED 显示音阶。

3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。

三、 设计原理:1. 音乐基础知识一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

音符的节拍我们可以举例来说明。

在一张乐谱中,我们经常会看到这样的表达式,如1=C 44、1=G 43…… 等等。

以43为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。

比如:图1其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。

1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。

那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。

我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。

2.原理图框图:图2.框图3.原理图说明音乐播放原理说明音符的频率由数控分频器模块Speakera产生。

ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。

NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。

这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。

例如:“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在Speakera的输入端停留了1秒。

随着NoTabs中计数器按4Hz的时钟速率作加法计数时,随着地址的递增,音符数据ROM中的音符数据将从ROM中通过输出端口输入到ToneTaba模块,“梁祝”歌曲就开始连续自然地演奏起来。

键盘演奏原理说明在模块ToneTaba中设置有八个键盘输入端口,分别对应基音“1”、“2”、“3”、“4”、“5”、“6”、“7”和高音“1”八种音调。

当其中某个按键按下时,ToneTaba模块就将对应音符的分频预置数送到数控分频模块Speakera模块产生相应音调,同送将音符送到LED显示模块显示音节。

四、设计内容1)取音调节拍模块NoteTabs图5:NoteTabs实体图模块实体由时钟输入信号clk、实现暂停与播放功能的使能输入信号en和音符输出端toneindex组成。

时钟输入端clk接入4Hz信号,即0.25秒作为“梁祝”乐曲的基本时钟节拍。

NoteTabs模块设置有个计数器,作为地址计数器,用于从模块内部的music_rom中取音符数据。

NoteTabs模块仿真图如下:图42)音频预置数及演奏按键模块ToneTaba图5:ToneTaba实体图该模块的实体组成端口由音符数据输入端index、音乐演奏或音乐播放选择输入端口yanzhou_en、八个按键输入端口key_1~key_8、及音阶数据输出端口code、音符分频数据输出端口tone组成。

当端口yanzhou_en置‘1’时,进行按键音乐演奏功能,即将对应按键的的音阶的分频数据送至模块Speakera产生音调;当端口为‘0’时,进行音乐播放功能,即将NoteTabs模块输入的音符数据送至模块Speakera产生音调。

ToneTaba模块仿真图如下:图63)数控分频模块Speakera图7:Speakera模块实体图该模块由时钟输入信号端clk、分频数据输入端tone以及音调频率输出端spks组成。

其clk端输入较高的频率(12MHz),通过Speakera分频后由spks输出。

模块仿真图如下:图84)软件流程图如下:图9五、仿真结果1.原理图设计:图102.仿真结果图仿真图1:音乐播放图11仿真图1说明:音乐演奏或播放选择端yanzhou_en置‘0’,音乐播放、暂停选择键play_pause置‘0’,选择音乐播放功能,其中code端口输出的音符可送入译码器模块显示音阶。

仿真图2:音乐暂停图12仿真图2说明:音乐演奏或播放选择端yanzhou_en置‘0’,选择音乐播放功能。

当音乐播放、暂停输入端口play_pause置‘1’时,从图12与图11比较可知,其中的图12的音符6因为暂停而被延长,音乐播放被暂停,当play_pause重新置‘0’时,音乐开始继续播放。

仿真图3:按键演奏音乐图13仿真图3说明:音乐演奏或播放选择端yanzhou_en置‘1’,选择按键音乐演奏功能。

其中端口tone_1到tone_7对应‘1’至‘7’基音,端口tone_11对应高音‘1’。

通过按不同的按键,即可从端口spkout输出不同的频率,即对应不同的音调。

演奏的音阶通过端口code送入译码器即可演示音阶。

六、总结本设计完整地实现了音乐的播放、按键演奏音乐、音乐播放与暂停功能,已基本符合课程设计的要求。

通过本次课程设计,更熟练了EDA软件的使用,学会了怎么制作LPM_ROM元器件,加深了对VHDL语言的理解,熟练了利用原理图设计电路的方法,体验到了将自己的创意付诸实践的乐趣。

七、附录1、音调节拍模块NoteTabs(实现了音乐播放与暂停功能)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity notetabs isport( en,clk : in std_logic; --添加了使能端toneindex: out std_logic_vector(3 downto 0));end;architecture behav of notetabs iscomponent music_romport(address :in std_logic_vector(7 downto 0);inclock: in std_logic;q: out std_logic_vector(3 downto 0) );end component;signal counter : std_logic_vector(7 downto 0);begincnt8: process(clk,counter,en)beginif en='1' then counter<=counter; --使能音乐播放与暂停elsif counter=138 then counter<="00000000";elsif clk'event and clk='1' then counter<=counter+1; end if;end process;u1:music_rom port map(address=>counter,q=>toneindex,inclock=>clk);end;2、音频预置数及演奏按键模块ToneTabalibrary ieee;use ieee.std_logic_1164.all;entity tonetaba isport(index : in std_logic_vector(3 downto 0);code : out std_logic_vector(3 downto 0);tone : out std_logic_vector(10 downto 0);yanzhou_en : in std_logic; --音乐演奏使能键key_1,key_2,key_3,key_4,key_5,key_6,key_7,key_8:in std_logic );end;architecture behav of tonetaba issignal abc:std_logic_vector(7 downto 0);signal temp:std_logic;beginabc<= key_8 & key_7 & key_6 & key_5 & key_4 & key_3 & key_2 & key_1; process(index, abc,yanzhou_en)begintemp<='0';if yanzhou_en='1' then temp<='1'; end if;if temp='1' thencase abc is --按键对应的基音表when"00000001" => tone<="01100000101";code<="0001";when"00000010" => tone<="01110010000";code<="0010";when"00000100" => tone<="10000001100";code<="0011";when"00001000" => tone<="10010101101";code<="0101";when"00010000" => tone<="10100001010";code<="0110";when"00100000" => tone<="10101011100";code<="0111";when"01000000" => tone<="10110000010";code<="0001";when"10000000" => tone<="10111001000";code<="0100";when others=>null;end case;elsecase index iswhen "0000" => tone<="11111111111";code<="0000";--2047when "0001" => tone<="01100000101";code<="0001";--773when "0010" => tone<="01110010000";code<="0010";--912when "0011" => tone<="10000001100";code<="0011";--1036when "0101" => tone<="10010101101";code<="0101";--1197when "0110" => tone<="10100001010";code<="0110";--1290when "0111" => tone<="10101011100";code<="0111";--1372when "1000" => tone<="10110000010";code<="0001";--1410when "1001" => tone<="10111001000";code<="0010";--1480when "1010" => tone<="11000000110";code<="0011";--1542when "1100" => tone<="11001010110";code<="0101";--1622when "1101" => tone<="11010000100";code<="0110";--1668when "1111" => tone<="11011000000";code<="0001";--1728when others=>null;end case;end if;end process;end;3、LED音阶显示:从ToneTaba模块的输出端code[3..0]输入到译码器模块,即可实现LED显示音阶。

相关文档
最新文档