基于VHDL的乐曲演奏器设计
乐器演奏电路设计-vhdl

重庆交通大学计算机与信息学院设计性实验报告班级:通信工程专业 07 级 2 班姓名(学号):实验项目名称:乐器演奏电路设计实验项目性质:设计性实验所属课程: VHDL 实验室(中心):指导教师:徐雯娟实验完成时间: 2009 年 12 月 13 日一、实验目的1,了解普通扬声器的工作原理;2,了解QuartusII4.1中提供了宏功能元件库mega_lpm。
3,使用LPM_ROM参数化存储模块。
二、实验内容及要求要求能够演奏出《友谊地久天长》的曲调或可另选一段较完整的曲调。
(扩展要求:能够从数码管上显示出当前曲调的简谱和频率)三、实验原理1,音符的频率:可以由上图中的U3获得,这是一个数控分频器。
由其clk 端输入一具有较高频率(这里是12MHz)的信号,通过U3分频后由SPKOUT输出,U3对clk 输入信号的分频比由11位预置数Tone[10..0]决定。
SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone[10..0]与SPKOUT 的输出频率,就有了对应关系。
2,音符的持续时间:须根据乐曲的速度及每个音符的节拍数来确定,图中模块U2的功能首先是为U3提供决定所发音符的分频预置数,而此数在U3输入口停留的时间即为此音符的节拍值。
模块U2是乐曲简谱码对应的分频预置数查表电路,其中设置了乐曲全部音符所对应的分频预置数(一共8个),每一音符的停留时间由音乐节拍和音调发生器模块U1的clk的输入频率决定(如为4Hz),这8个值的输出由对应于U2的3位输入值Index[2..0]确定。
3,乐谱的存储:在U1中设置了一个7位二进制计数器(计数最大值为65),作为音符数据ROM 的地址发生器。
这个计数器的计数频率若选为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。
随着U1中的计数器按4Hz的时钟速率作加法计数时,即随地址值递增时,音符数据ROM 中的音符数据将从ROM中通过ToneIndex[2..0]端口输向U2模块,乐曲就开始连续自然地演奏起来了。
EDA课程设计---乐曲硬件演奏电路的VHDL设计

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计一、 设计题目:乐曲硬件演奏电路的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秒。
基于VHDL的乐曲演奏设计与实现

硬件述语 言 , 括系统 行为级 、 包 寄存 器传输 级 和逻
辑 门级多个设计层次。它具有 强大 的行 为描述 能力 ,
可 以用 简 洁 明确 的源代码 来 描述 复 杂 的逻 辑 控制 。 设计者可 以利 用 V D H L程序 , 用 “ 采 自顶 而下 ” 的方
图 1 设 计 流 程 图
事 检 测 与 自动 化 装 置研 究 。
音 阶产生 部分 由分 频器和选 择器组 成 。分频 器
产 生音 阶信 号 , 由于音 阶信 号频 率 只有 几百 赫 兹 至 上 千赫兹 , 而系 统 的主 频选 用 1 H , 么 分频 器 2M z那
21 0 1午第 2期
工 业 仪 表 与 自动化 装 置
4器件进行验证 , 果表 明该设 计能很好 地 实现 乐 曲的 自动演奏 、 结 暂停及 恢复功 能。
关 键 词 : 曲 演 奏 ; H L M x lsI 乐 V D ; aPu 1
中图分 类号 :P 0 T 32
文献标志码 : A
文章编号 :0 0— 6 2 2 1 )2— 0 2— 3 10 0 8 ( 0 1 0 0 3 0
择模块 控制音 阶发 生部 分 , 连续 地 演奏 出一段 乐 能 曲; 数器采 用可预置 计数器 , 计 主要实 现 的是连 续演 奏和暂 停功能 。
2 1 音阶模块 .
收 稿 日期 :0 0— 9—2 21 0 5
基 金项 目 : 省 级 自然科 学 重 点 项 目资 助 ( J0 8 1 1 安徽 K20 A 0 ) 作者 简 介 : 崔袜 ( 95) 女 , 南 个 旧 人 , 验 师 , 16 , 云 实 本科 , 要 从 主
t e s se .smu ain.a d d wno d d t EX1 h y tm i lto n o la e o FL OK e is EPF1 s re OLC8 — 4 d vc s t e f . e 0KI 4 e ie o v r y Th i r s t h w h tt i e in c n b o d f ra t mai sc p a e ul s o ta h sd sg a e g o o u o tc mu i ly,p u e a d r s m e fncin. s a s n e u u to
基于VHDL的简易音乐播放器

EDA技术实用教程课程设计简易音乐播放器电子12-11206040124简易音乐播放器设计1.MIDI概述MIDI(Musical Instrument Digital Interface)乐器数字接口,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。
MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。
它用音符的数字控制信号来记录音乐。
一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。
MIDI 应用也比较广泛,电视晚会的音乐编导可以用MIDI功能辅助音乐创作,或按MIDI 标准生成音乐数据传播媒介,或直接进行乐曲演奏。
如果在计算机上装备了高级的MIDI软件库,可将音乐的创作、乐谱的打印、节目编排、音乐的调整、音响的幅度、节奏的速度、各声部之间的协调、混响由MIDI来控制完成。
利用MIDI 技术将电子合成器、电子节奏机(电子鼓机)和其他电子音源与序列器连接在一起即可演奏模拟出气势雄伟、音色变化万千的音响效果,又可将演奏中的多种按键数据存储起来,极大的改善了音乐演奏的能力和条件。
2.工作原理MIDI 音乐是Windows下的一种合成音乐,由于它通过记谱的方式来记录一段音乐。
因此与wave音乐相比,它可以极大的减少存储容量。
MIDI 音乐的基本原理为:组成乐曲的每一个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和每一个频率信号持续时间,就可以使扬声器发生连续的乐曲。
图 1 是歌曲《生日快乐歌》开头一句的简谱。
由图 1 可知,该乐典涉及:中音5,6 ,7 ;高音1,2,3,4,5 。
以此为例下面介绍在本音乐发生器芯片中音乐的形成过程。
前两个音符为中音 5 ,1/16 音符,它对应的编码为1000 ,所占的脉冲个数为2 ,这样逐个将以上的简谱翻译成代码如下:|1000 1000 1001 1001 1000 1000 |1011 1011 1010 1010 1010 1010| |1000 1000 1001 1001 1000 1000 |1100 1100 1011 1011 1011 1011| |1000 1000 1111 1111 1101 1101 |1011 1011 1010 1010 1001 1001| |1110 1110 1101 1101 1011 1011 |1100 1100 1011 1011 1011 1011|图1 《生日快乐歌》歌谱在节奏时钟脉冲的控制下,将每个代码所对应的分频系数逐一赋给基频,得到对应的音调,这样连续起来就形成一段美妙的音乐。
应用VHDL设计数字系统-电子琴和音乐播放器的设计

CNT_N CLK RST EN N[11..0]
: : : :
IN STD_LOGIC; IN STD_LOGIC_VECTOR(11 DOWNTO 0); OUT STD_LOGIC_VECTOR(11 DOWNTO 0); OUT STD_LOGIC
CNT[
inst
项目1:电子琴的设计
设计关键:N进制计数器设计——可变分频器
HIGH
: OUT STD_LOGIC
); END entity converter ;
项目1:电子琴的设计
设计关键2: “频率”到“分频数”的转换模块。
conv erter
ARCHITECTURE one OF converter IS BEGIN PROCESS(converter ) BEGIN CASE key IS -- 译码电路,查表方式,控制音调的预置数 ; en <= '0'; CODE<="0000"; HIGH <='0‘; -- 不按键,0Hz,不响 WHEN "00000000" => div_num<=0
--计数等于
CNT_N CLK RST EN N[11..0]来自CNT[inst
项目1:电子琴的设计
设计关键: 改进的N进制计数器——可变分频器, COUT占空比50%
占空比非50% 结论:
1. COUT实现了N分频,
占空比接近50%
2. 当N比较大时,占空比是接近50%,能量足以驱动蜂鸣器工作。
ARCHITECTURE behav OF CNT_N IS ELSE COUT <= '0'; BEGIN END IF; PROCESS(CLK, RST, EN) VARIABLE CNTI : STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN IF RST = '1' THEN CNTI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CNTI < N-1 THEN CNTI := CNTI + 1; --小于N/2,允许加1计数 ELSE CNTI := (OTHERS =>'0'); --大于等于N/2,计数值清零 END IF; END IF; END IF; IF CNTI < CONV_INTEGER(N)/2 THEN COUT <= ‘0'; ELSE COUT <= ‘1'; END IF; CNT <= CNTI; COUT <= COUTI; --将计数值向端口输出 END PROCESS; END behav;
VHdl乐曲演奏实验

EDA课程设计实验报告专业:班级:姓名:LSC学号:指导教员:一、试验名称:乐曲自动演奏器二、试验目的:1. 使用FPGA 控制蜂鸣器演奏乐曲梁祝中的一段;2. 初步学会利用结构建模方法设计程序。
三、试验内容:1. 利用时钟分频进行音调和音长的设定;2. 利用整个程序,播放梁祝乐曲;3. 让LED 灯随着音乐的节拍显示,分高、中、低三种频率显示。
四、试验要求:1. 将时钟频率分别分成6MHz 和4Hz 两种;2. 利用功能框图建立整个程序,清晰的播放出梁祝乐曲。
五、试验背景及基本原理:5.1乐曲演奏基本原理:乐曲演奏的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。
5.2音调的控制频率的高低决定了音调的高低。
音乐的十二平均率规定:每两个8度音(如简谱中的中音1与高音1)之间的频率相差一倍。
在两个8度音之间,又可分为12个半音,每两个半音的频率比为12√2。
另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音[4]。
由此可以计算出简谱中从低音1至高音1之间每个音名对应的频率,如表所示:5.3音名与频率的关系所有不同频率的信号都是从同一个基准频率分频得到的。
由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。
若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率过高,虽然误差变小,但分频数将变大。
实际的设计综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。
本试验中选取6MHz为基准频率。
若无6MHz的基准频率,则可以先分频得到6MHz,或换一个新的基准频率。
实际上,只要各个音名间的相对频率关系不变,演奏出的乐曲听起来都不会"走调"。
课程设计(论文)基于vhdl的简易乐曲演奏器的设计

1 引言VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。
使用VHDL语言描述的电路,可以进行综合和仿真。
然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。
VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。
VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。
关于VHDL最后要说明的是:与常规的顺序执行的计算机程序不同,VHDL 从根本上讲是并发执行的。
在VHDL中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。
本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
我们知道,与利用单片机来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具与硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。
2 整体功能介绍2.1准备知识在本次设计中采用了铃声《北京欢迎你》作为要播放的乐曲,它的旋律如下:3 5 3 2 3 2 3 3 2 6 1 3 2 22 1 6 1 23 5 2 3 6 5 6 2 1 12 1 6 1 23 5 2 3 6 5 5 3 -2 3 2 1 5 6 2 5 3 3 2 3 (加粗表示低音,其他为中音)根据声乐知识,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。
VHDL实验:乐曲演奏

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY song IS PORT( clk_4MHz, clk_4Hz: IN STD_LOGIC; --预置计数器和乐谱产生器的时钟 digit: BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0); --低三位表示低音,中间三位表示中音,最高位表示高音;本 曲仅仅有高音1,故此用1位表示。 speaker: out STD_LOGIC --扬声器 ); END song; ARCHITECTURE song_arch OF song IS
WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN
44=>digit<="0001000"; 46=>digit<="0010000"; 48=>digit<="0000011"; 50=>digit<="0001000"; 52=>digit<="0000110"; 54=>digit<="0000110"; 56=>digit<="0000101"; 58=>digit<="0000101"; 60=>digit<="0000101"; 62=>digit<="0000101"; 64=>digit<="0011000"; 66=>digit<="0011000"; 68=>digit<="0000111"; 70=>digit<="0010000"; 72=>digit<="0000110";
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
音符产生电路采用查找表形式 。在节拍控制 电路产生的节拍控制信号作用下 , 按乐曲中音符 持续时间的长短输出相应音符 。以乐曲中前两个
①
收稿日期 :2002 - 05 - 31 作者简介 : 魏 东 (1979 - ) ,男 ,哈尔滨工程大学自动化学院硕士研究生 ,主要研究方向 : 测控技术及智能系统 。
・ ・
3. 2. 2 MDA TA 模块设计 根据表 2 ,在输入音符的控制下 ,分别输出对
应பைடு நூலகம்预置数 。源文件如下
L IBRAR Y IEEE ; U SE IEEE. STD-LO GIC- 1164. ALL ; EN TIT Y mdata IS POR T ( S : IN STD-LO GIC- V ECTOR ( 4 DOWN TO 1 ) ;B : OU T STD-LO GIC- V ECTOR ( 8 DOWN TO 1) ) ; END mdata ; ARCHITECTU RE data OF mdata IS B EGIN PROCESS ( S)
Musical Instrument Design Using VHDL
WEI Dong , YE Kui ,L I Wei2lin
( College of Automation ,Harbin Engineering University ,Harbin 150001 ,China)
Abstract : This paper int roduced t he process of musical inst rument design using V HDL . V HDL provides more flexibility which makes t he programs rat her general. Key words :V HDL ;musical inst rument ;MAX + plus Ⅱ
・46 ・
应 用 科 技 第 30 卷
10100000” ; ) THEN B < = ” EL SIF ( S = ”0010 ” 10101011” ; ) THEN B < = ” EL SIF ( S = ”0011 ” 10110100” ; ) THEN B < = ” EL SIF ( S = ”0100 ” 10111000” ; ) THEN B < = ” EL SIF ( S = ”0101 ” 11000000” ; ) THEN B < = ” EL SIF ( S = ”0110 ” 11000111” ; ) THEN B < = ” EL SIF ( S = ”0111 ” 11001101” ; ) THEN B < = ” EL SIF ( S = ”1000 ” 01000001” ; ) THEN B < = ” EL SIF ( S = ”1001 ” 10001111” ; END IF ; END PROCESS ; END data ; 在上述源文件中 ,B 为表 2 中预置数的相应
基于 V HDL 的乐曲演奏器设计
魏 东 ,叶 葵 ,李维林
( 哈尔滨工程大学 自动化学院 ,黑龙江 哈尔滨 150001 )
摘 要 : 论述了用 V HDL 设计乐曲演奏器的过程 。V HDL 为设计提供了更大的灵活性 ,使程序具有更高
① 的通用性 。
关 键 词 :V HDL ; 乐曲演奏器 ;MAX + plus Ⅱ 中图分类号 : TN791 文献标识码 :A
SI GNAL count : IN TEGER : = 0 ; B EGIN PROCESS ( C K1) B EGIN ) THEN IF ( C K1′ EV EN T AND C K1 = ′ 1′ IF ( count < 29) THEN count < = count + 1 ; IF ( count = 0) THEN S < = ” 0000” ; EL SIF ( count = 1) THEN S < = ” 1001” ; EL SIF ( count = 2) THEN S < = ” 0001” ; ( ) EL SIF count = 3 THEN S < = ” 0011” ; EL SIF ( count = 4) THEN S < = ” 0001” ; EL SIF ( count = 5) THEN S < = ” 0010” ; EL SIF ( count = 6) THEN S < = ” 0010” ;
第 1 期 魏 东 ,等 : 基于 V HDL 的乐曲演奏器设计 音节为例 ,音符输出查找表如表 1.
表1 音符输出查找表
CL K 0 1 2 3 4 5 6 7 8 count 状态 00 01 02 03 04 05 06 07 08
・4 5 ・
数器的设计原理及各音符的分频系数 , 可计算出 乐曲中各音符的预置数如表 2 所示 。
第 30 卷第 1 期 应 用 科 技 Vol. 30 , № .1 2003 年 1 月 Applied Science and Technology J an. ,2003 文章编号 :1009 - 671X ( 2003) 01 - 0044 - 04
1 系统设计
设计简易乐曲演奏器 , 要求能够自动演奏一 首指定乐曲 。这里选取乐曲 《莫斯科郊外的晚上》 开头一段 ,其简谱如下所示 。该乐曲涉及到的音 符有 :1 、 2、 3、 4、 5、 6、 7、 1、 6.
・ ・
图1 乐曲演奏器的原理框图
本设计的关键是要准确地产生音乐中各音符 所对应的频率信号 ,并根据乐曲要求按节拍输出 。 本设计采用具有预置功能的可变模值计数器实现 不同频率的信号输出 。根据可变模值计数器原 理 ,按照乐曲要求定时改变计数器的预置数 ,即可 产生乐曲所需要的频率信号 。简易乐曲演奏器的 原理框图如图 1. 节拍控制电路产生节拍定时信号 ; 音符产生 电路按节拍要求产生乐曲所需要的音符 ; 预置数 产生电路受音符控制 , 产生与该音符频率相应的 预置数 ,送计数器的置入数据输入端 ,可变频率信 号发生器根据不同的预置数产生相应的频率信 号 ,从而完成乐曲的演奏功能 。
・ ・
3 用 V HDL 实现系统设计
3. 1 顶层文件设计
顶层文件采用原理图设计 。根据分析 , 可设 计出简易乐曲演奏器顶层原理图如图 2. 为了设 计方便 ,将节拍控制电路与音符产生电路设计在 同一模块中 , 称为 MNAM E 模块 ; 预置数产生模 块称为 MDA TA 模块 ; 可变模值计数模块称为 MCN T 模块 。
EL SIF ( count = 7) THEN S < = ” 1000” ; ( ) EL SIF count = 8 THEN S < = ” 0111” ; EL SIF ( count = 9) THEN S < = ” 0011” ; ELSIF (count = 10) THEN S < = ” 0011” ; ELSIF (count = 11) THEN S < = ” 0010” ; ELSIF (count = 12) THEN S < = ” 0010” ; ELSIF (count = 13) THEN S < = ” 1001” ; ELSIF (count = 14) THEN S < = ” 1001” ; ELSIF (count = 15) THEN S < = ” 1001” ; ELSIF (count = 16) THEN S < = ” 1001” ; ELSIF (count = 17) THEN S < = ” 0001” ; ELSIF (count = 18) THEN S < = ” 0011” ; ELSIF (count = 19) THEN S < = ” 0101” ; ELSIF (count = 20) THEN S < = ” 0101” ; ELSIF (count = 21) THEN S < = ” 0110” ; ELSIF (count = 22) THEN S < = ” 0110” ; ELSIF (count = 23) THEN S < = ” 0101” ; ELSIF (count = 24) THEN S < = ” 0100” ; ( ) ELSIF count = 25 THEN S < = ” 0011” ; ELSIF (count = 26) THEN S < = ” 0011” ; ELSIF (count = 27) THEN S < = ” 0011” ; ( ) ELSIF count = 28 THEN S < = ” 0011” ; ELSIF (count = 29) THEN S < = ” 0000” ; END IF ; END IF ; END IF ; END PROCESS ; END name ; 在上 述 源 文 件 中 , S 的 0000 、 0001 、 0010 、 0011 、 0100 、 0101 、 0110 、 0111 、 1000 、 1001 状态分 别对应休止符 0 和音符 1 、 2、 3、 4、 5、 6、 7、 1、 6.
图2 乐曲演奏器顶层原理图
3. 2 底层文件设计 3. 2. 1 MNAM E 模块设计 MNAM E 模块的工作频率根据乐曲演奏速
度而定 。假设乐曲中每 1/ 4 节拍演奏 0. 25 s , 则 MNAM E 模块的工作脉冲频率为 4 Hz , 即 C K1 为 4 Hz 脉冲信号 。源文件如下 L IBRAR Y IEEE ; U SE IEEE. STD-LO GIC1164. ALL ; EN TIT Y mname IS POR T ( C K1 : IN STD-LO GIC ; S : OU T STD-LO GIC- V ECTOR ( 4 DOWN TO 1) ) ; END mname ; ARCHITECTU RE name OF mname IS