当前位置:文档之家› 乐曲硬件演奏电路设计

乐曲硬件演奏电路设计

乐曲硬件演奏电路设计
乐曲硬件演奏电路设计

湖南人文科技学院

课程设计报告

课程名称:VHDL语言与EDA课程设计

设计题目:乐曲硬件演奏电路设计

系别:通信与控制工程系

专业:电子信息工程

班级:08电信二班

学生姓名: 王世伟朱彩虹

学号:08409249 08409231

起止日期:2011年06月13日~ 20年06月26日指导教师:姚毅成继中

教研室主任:侯海良

指导教师评语:

指导教师签名:年月日

成绩评定

项目权重

成绩

王世伟朱彩虹

1、设计过程中出勤、学习态度等方面0.2

2、课程设计质量与答辩0.5

3、设计报告书写及图纸规范程度0.3

总成绩

教研室审核意见:

教研室主任签字:年月日教学系审核意见:

主任签字:年月日

摘要

乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着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,设计一个乐曲硬件演奏电路。乐曲的12平均率规定:每2个八度(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12/2。另外,音符A的频率为440HZ,音符B到C之间,E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。

1、方案论证与对比

1.1方案一

利用FPGA来实现乐曲硬件演奏电路。乐曲的12平均率规定:每2个八度(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12/2。另外,音符A的频率为440HZ,音符B到C之间,E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。

1.2方案二

制作一个纯硬件电路来完成乐曲演奏。

1.3综合对比

与利用微处理器来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。所以选择方案一。

2 乐曲演奏电路原理

2.1 音乐演奏电路原理

图1 电路原理框图

该主系统由三个模块:Songer顶层文件、div分频器、译码器组成。且Songer 顶层文件还包括3个子文件分别是NoteTabs,ToneTaba和Speakera,此外,我们还需建立一个名为“music”的LPM_ROM模块与NoteTabs模块连接。

2.2 音符频率的获得

多个不同频率的信号可通过对某个基准频率进行分频器获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。本文中选取750KHz的基准频率。由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。

由于最大分频系数是1274,故分频器采用11位二进制计数器才能满足要求。

2.3 乐曲节奏的控制

本课设的两只老虎乐曲,最小的节拍为1/4拍,若将1拍的时间定为1秒,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。

计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。2.4 乐谱发生器

本文将乐谱中的音符数据存储在LPM-ROM中,如“两只老虎”乐曲中的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒的时间,相应地,音符“3”就要在LPM-ROM中连续的四个地址上都存储。当一个4Hz的时钟来时,相应地就从LPM-ROM中输出一个音符数据。

2.5 乐曲演奏电路原理框图

我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。图1中,模块U1类似于弹琴人的手指;U2类似于琴键;U3类似于琴弦或音调发声器。

音符的频率可以由图1中的SPEAKERA获得,这是一个数控分频器。由其clk端输入一具有较频率(这里是12MHz)的信号,通过SPEAKERA分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。SPEAKERA对clk输入信号的分频比由11位预置数Tone[10..0]决定。SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone[10..0]与SPKOUT的输出频率,就有了对应关系。

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

中Index[3..0]的值ToneIndex[3..0]的输出值与持续的时间由模块NOTETABS决定。在NOTETABS中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。得到乐曲演奏电路的原理框图如图1所示:

图1 电路原理图

3音乐硬件演奏电路的设计实现

音乐硬件演奏电路主要是用VHDL语言来设计,并利用QuartusII软件工具来编译、测试和仿真。根据顶层原理图,共分为地址发生器模块、分频预置数模块、数控分频模块这三个模块。而music模块是存放乐曲中的音符数据,在我们的顶层原理图中并没有显示出来,地址发生器模块作为music模块中所定制的音符数据ROM的地址发生器,分频预置数模块提供分频预置数即给数控分频模块提供计数初值。数控分频模块根据分频预置数输出各个音符所对应的频率。

3.1 地址发生器模块

地址发生器模块设置了一个8位二进制计数器(计数最大值为138),作为音符数据ROM的地址发生器。每来一个时钟脉冲信号(Clk),8位二进制计数器就计数一次,ROM文件中的地址也就随着递增,音符数据ROM中的音符也就一个接一个连续的取出来了。

3.1.1 地址发生器的VHDL设计

这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒,四四拍的4分音符持续时间。例如,地址发生器在以下的

VHDL逻辑描述中,“两只老虎”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间。那么相应随着程序中的计数器按4Hz的时钟频率作加法计数时,即随地址递增时,将从音符数据ROM中将连续取出4个音符“3”通过toneindex[3..0]端口输向分频预置数模块。这样两只老虎乐曲中的音符就一个接一个的通过toneindex[3..0]端口输向分频预置数模块。程序如下LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY NoteTabs IS

PORT (clk: IN STD_LOGIC;

ToneIndex:OUT STD_LOGIC_VECTOR (3 DOWNTO 0));

END;

ARCHITECTURE one OF NoteTabs IS

COMPONENT MUSIC

PORT (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);

BEGIN

CNT8: PROCESS(clk,Counter)

BEGIN

IF Counter=138 THEN Counter<="00000000";

ELSIF (clk'EVENT AND clk='1') THEN Counter<=Counter+1;

END IF;

END PROCESS;

u1:MUSICPORT MAP(address=>Counter,q=>ToneIndex,inclock=>clk);

END one;

程序的功能是每来一个时钟,地址值递增1,并将这个地址上所存储的音符数据输出。当Clk来了一个时钟脉冲,输出相应地址上的音符3,地址值递增1;接下来的三个时钟脉冲来时,输出也是音符3,地址连续递增3次;再下一个脉冲来时,输出为音符5等等都符合模块中的音符数据文件中的地址/数据表。3.2 分频预置数模块

分频预置数模块是乐曲简谱码对应的分频预置数查表电路。它提供了每个音符所对应的分频预置数,即给数控分频模块提供计数初值,以”两只老虎”乐曲为例,列出了在这个乐曲中所用到的13个音符的分频预置数。

3.2.1 分频预置数模块的VHDL设计

在这个模块的VHDL逻辑描述中设置了“两只老虎”乐曲中全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和地址发生器模块的时钟(Clk)的输入频率决定,在此为4Hz。这13个值的输出由程序的4位输入值index[3..0]确定。输向程序[4]中index[3..0]的值又由地址发生器模块的输出toneindex[3..0]的输出值和持续时间决定。程序如下:

library ieee;

use ieee.std_logic_1164.all;

entity tonetaba is

port(index: in std_logic_vector(3 downto 0);

code: out std_logic_vector(3 downto 0);

high: out std_logic;

tone: out std_logic_vector(10 downto 0));

end entity tonetaba;

architecture one of tonetaba is

begin

search:process(index)

begin

case index is

when"0000"=>tone<="11111111111";code<="0000";high<='0';--2047; when"0001"=>tone<="01100000101";code<="0001";high<='0';-- 773; when"0010"=>tone<="01110010000";code<="0010";high<='0';-- 912; when"0011"=>tone<="10000001100";code<="0011";high<='0';--1036; when"0101"=>tone<="10010101101";code<="0101";high<='0';--1197; when"0110"=>tone<="10100001010";code<="0110";high<='1';--1290; when"0111"=>tone<="10101011100";code<="0111";high<='1';--1372; when"1000"=>tone<="10110000010";code<="0001";high<='1';--1410; when"1001"=>tone<="10111001000";code<="0010";high<='1';--1480; when"1010"=>tone<="11000000110";code<="0011";high<='1';--1542; when"1100"=>tone<="11001010110";code<="0101";high<='1';--1622; when"1101"=>tone<="11010000100";code<="0110";high<='1';--1668; when"1111"=>tone<="11011000000";code<="0001";high<='1';--1728; when others=>null;

end case;

end process;

end one;

模块的功能是输出各个音符所对应的分频预置数,当index是“0000”,

tone输出为2047,即休止符的分频预置数;当index是“0101”时, tone输出为1197即低音5的分频预置数;当index是“1111”时, tone输出为1728即高音1的分频预置数等等其它状态时,tone分别输出相应音符的分频预置数。

3.3 数控分频模块

音符的频率由数控分频模块获得,这是一个数控分频电路。它是由一个初值可变的加法计数器构成。该计数器的模为2047,当计数器记满时,计数器产生一个溢出信号FULL,此溢出信号就是用作发音的频率信号。在计数器的输入端给定不同的初值,而此预置数就是表1中的计数初值,就可得到不同音符的发音频率信号。它计满时所需要的计数初值可由下式来表示。计数初值(Tone)=2047分频系数而分频系数又可有下式来求:分频系数=基准频率/音符的发生频率

低音时Tone值小,分频系数大,溢出信号周期长,扬声器发出的声音低,Tone 随音乐的乐谱变化大,自动控制分频比,实现了数控分频,发生信号的频率与音调Tone成正比。这就是利用数控分频器自动演奏音乐的原理。

3.3.1 数控分频模块的VHDL设计

其时钟(Clk)端输入的是12MHz的信号,从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,这时的频率就变为原来的1/2,刚好就是相应音符的频率。数控分频模块中对Clk输入信号的分频比由11位预置数tone[10..0]决定。Fout的输出频率将决定每一个音符的音调,这样,分频计数器的预置值tone[10..0]与Fout 的输出频率就有了对应关系。例如在分频预置数模块中若取tone[10..0]=1036,将发出音符为“3”音的信号频率。程序如下:

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity speakera is

port(clk: in std_logic;

tone: in std_logic_vector(10 downto 0);

spks: out std_logic);

end entity speakera;

architecture one of speakera is

signal preclk,fullspks: std_logic;

begin

divideclk: process(clk)

variable count4: std_logic_vector(3 downto 0); begin

preclk<='0';

if count4>11 then preclk<='1';count4:="0000";

elsif clk'event and clk='1' then count4:=count4+1; end if;

end process;

genspks: process(preclk,tone)--11

variable count11: std_logic_vector(10 downto 0); begin

if preclk'event and preclk='1'then

if count11=16#7ff#then count11:=tone;fullspks<='1'; else count11:=count11+1;fullspks<='0';end if;

end if;

end process;

delayspks: process(fullspks)

variable count2: std_logic;

begin

if fullspks'event and fullspks='1' then count2:=not count2;

if count2='1' then spks<='1';

else spks<='0';

end if;

end if;

end process;

end one;

此模块的功能是根据初始值d的值,对输入时钟信号Clk的频率进行分频,得到想要的音符的发声频率。d的值设为6c0(即高音1的分频预置数1728),Clk的频率为750KHz,Fout输出的脉冲信号的周期为849.9291us(即1176.568Hz),接近高音1的发声频率。由表1中可知高音1的分频系数为319,即对输入时钟Clk进行319次分频就可得高音1的发声频率。

3.4 music模块

Music模块存放乐曲中的音符数据,它是利用LPM-ROM来实现的,将乐谱中相应的音符放在一个连续的地址上。它首先是编写音符数据文件,将乐谱中相应的音符存放在一个连续的地址上。因为1拍的时间定为1秒,提供的是4Hz的时钟频率(即1/4拍的整数倍),则需将这个音符存储在相应次数的连续几个地址上。然后对音符数据进行ROM定制,最后对定制好的ROM文件进行测试和仿真。

3.4.1 音符数据文件

width=4;--“两只老虎”乐曲演奏数据

depth=256;

address_radix=dec;

data_radix=dec;

content begin

其中WIDTH=4,表示数据输出为宽为4;DEPTH=256,表示共有256个4位数据点;ADDRESS-RADIX=DEC,表示地址信号用十进制;DATA-RADIX=DEC,表示输出数据是十进制数。

形成ROM中的配置数据(初始化数据)文件的方法如下:在QuartusII中编辑.mif文件。文件中的关键词WIDTH设置ROM的数据宽度;DEPTH设置ROM数据的深度,即4位数据的数量,文件中设置的256等效于8位地址线宽度,初始化数据如下:

图2 ROM初始化数据

ADDRESS-RADIX=DEC和DATA-RADIX=DEC表示设置地址和数据的表达式格式都是十进制;地址/数据表以CONTENT BEGIN开始,以END结束;其中的地址/数据表达方式是冒号左边写ROM地址值,冒号右边写对应此地址放置的十进制数据,如46:9,表示46为地址,9为该地址中的数据。这样每读到一个地址,即可输出其相应的数据。文件编辑好后,保存时取文件名为“mucic.mif”,存盘的路径为“D:\altera\muci c”。

3.5.2 LPM-ROM定制

定制的基本步骤如下:

(1)进入QuartusII,选菜单 file->megawizard plug-in manager,选择“creat a new…”,然后按“next”键,进入图2所示界面。选择LPM-ROM;最后在browse下的栏中键入路径与输出文件名:“D:\mucic.vhd”,注意后缀vhd小写。

图3 选择路径

(2)单击“next”键,将出现图3所示的界面,选择ROM数据位宽度为4,地址线宽为8,即设置此ROM能存储8位二进制数据共64个,然后进入图4所示的窗口。

(3)通过在图4所示窗口的“browse”钮,找ROM中的加载文件路径和文件名:“D:\altera\QuartusII\music.mif”,注意ROM元件的inclock文件名:“D:\altera\QuartusII\music.mif”,注意ROM元件的inclock是地址锁存钟。

此模块的功能是输出相应地址上所存储的音符数据,当address是0、1、2、3时,q的输出是3;当address是4、5、6时,q的输出是5;当address是7时,q的输出是6等等都符合模块中的音符数据文件中的地址/数据表。这里必须选择AUTO和Dual clock:used separate ‘input’ and ‘output’C locks 选项

图4 芯片的选择

(4)单击“next”键,将出现图5所示的界面,选择允许在线编程,地址线宽为8,即设置此ROM能存储8位二进制数据共64个,通过在图4所示窗口的“browse”钮,找ROM中的加载文件路径和文件名:“D:\altera\QuartusII\music.mif”,注意ROM元件的inclock文件名:“D:\altera\QuartusII\music.mif”,注意ROM元件的inclock是地址锁存钟,然后单击’Next’完成LPM_ROM的定制。

如下图所示:

图5 选择是否在线编程

3.6 顶层文件

程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY Songer IS

PORT (CLK12MHZ: IN STD_LOGIC;

CLK8HZ: IN STD_LOGIC;

CODE1: OUT STD_LOGIC_VECTOR (3DOWNTO 0); HIGH1: OUT STD_LOGIC;

SPKOUT: OUT STD_LOGIC);

END ENTITY Songer;

ARCHITECTURE one OF Songer IS

COMPONENT NoteTabs

PORT (clk: IN STD_LOGIC;

ToneIndex: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));

END COMPONENT;

COMPONENT ToneTaba

PORT (Index: IN STD_LOGIC_VECTOR (3 DOWNTO 0);

CODE: OUT STD_LOGIC_VECTOR (3 DOWNTO 0);

HIGH: OUT STD_LOGIC;

Tone: OUT STD_LOGIC_VECTOR (10 DOWNTO 0));

END COMPONENT;

COMPONENT Speakera

PORT (clk: IN STD_LOGIC;

Tone: OUT STD_LOGIC_VECTOR (10 DOWNTO 0);

SpkS: out STD_LOGIC);

END COMPONENT;

SIGNAL Tone: STD_LOGIC_VECTOR (10 DOWNTO 0);

SIGNAL ToneIndex: STD_LOGIC_VECTOR (3 DOWNTO 0);

BEGIN

u1: NoteTabs PORT MAP(clk=>CLK8HZ,ToneIndex=>ToneIndex);

u2:ToneTabaPORTMAP(Index=>ToneIndex,Tone=>Tone,CODE=>CODE1,HIGH=>HIGH 1);

u3:SpeakeraPORTMAP(clk=>CLK12MHZ,Tone=>TONE,SpkS=>SPKOUT);

END one;

将所编写的顶层文件程序设为当前工程,通过对程序进行编译,仿真,确定工程没有错误后经过引脚锁定就可以下载到EDA试验箱中了。通过试验箱上的蜂鸣器我们可以听到“两只老虎”的乐曲。

4 时序仿真及下载调试过程

关于乐曲演奏电路设计的实现关键是要实现它的时序仿真,下面就是各部分的仿真图示。

4.1 时序仿真图

图6 Notetabas的时序仿真图

图7 Tonetaba的时序仿真

乐曲硬件演奏电路设计

湖南人文科技学院 课程设计报告 课程名称:VHDL语言与EDA课程设计 设计题目:乐曲硬件演奏电路设计 系别:通信与控制工程系 专业:电子信息工程 班级:08电信二班 学生姓名: 王世伟朱彩虹 学号:08409249 08409231 起止日期:2011年06月13日~20年06月26日 指导教师:姚毅成继中

教研室主任:侯海良

摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,随着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)

硬件电路设计过程经验分享 (1)

献给那些刚开始或即将开始设计硬件电路的人。时光飞逝,离俺最初画第一块电路已有3年。刚刚开始接触电路板的时候,与你一样,俺充满了疑惑同时又带着些兴奋。在网上许多关于硬件电路的经验、知识让人目不暇接。像信号完整性,EMI,PS设计准会把你搞晕。别急,一切要慢慢来。 1)总体思路。 设计硬件电路,大的框架和架构要搞清楚,但要做到这一点还真不容易。有些大框架也许自己的老板、老师已经想好,自己只是把思路具体实现;但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。 2)理解电路。 如果你找到了的参考设计,那么恭喜你,你可以节约很多时间了(包括前期设计和后期调试)。马上就copy?NO,还是先看懂理解了再说,一方面能提高我们的电路理解能力,而且能避免设计中的错误。 3)没有找到参考设计? 没关系。先确定大IC芯片,找datasheet,看其关键参数是否符合自己的要求,哪些才是自己需要的关键参数,以及能否看懂这些关键参数,都是硬件工程师的能力的体现,这也需要长期地慢慢地积累。这期间,要善于提问,因为自己不懂的东西,别人往往一句话就能点醒你,尤其是硬件设计。 4)硬件电路设计主要是三个部分,原理图,pcb,物料清单(BOM)表。 原理图设计就是将前面的思路转化为电路原理图。它很像我们教科书上的电路图。

pcb涉及到实际的电路板,它根据原理图转化而来的网表(网表是沟通原理图和pcb之间的桥梁),而将具体的元器件的封装放置(布局)在电路板上,然后根据飞线(也叫预拉线)连接其电信号(布线)。完成了pcb布局布线后,要用到哪些元器件应该有所归纳,所以我们将用到BOM表。 5)用什么工具? Protel,也就是altimuml容易上手,在国内也比较流行,应付一般的工作已经足够,适合初入门的设计者使用。 6)to be continued...... 其实无论用简单的protel或者复杂的cadence工具,硬件设计大环节是一样的(protel上的操作类似windwos,是post-command型的;而cadence的产品concept&allegro是pre-command型的,用惯了protel,突然转向cadence的工具,会不习惯就是这个原因)。设计大环节都要有1)原理图设计。2)pcb设计。3)制作BOM 表。现在简要谈一下设计流程(步骤): 1)原理图库建立。要将一个新元件摆放在原理图上,我们必须得建立改元件的库。库中主要定义了该新元件的管脚定义及其属性,并且以具体的图形形式来代表(我们常常看到的是一个矩形(代表其IC BODY),周围许多短线(代表IC管脚))。protel创建库及其简单,而且因为用的人多,许多元件都能找到现成的库,这一点对使用者极为方便。应搞清楚ic body,ic pins,input pin,output pin,analog pin,digital pin,power pin等区别。 2)有了充足的库之后,就可以在原理图上画图了,按照datasheet和系统设计的要

乐器演奏电路设计-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模块,乐曲就开始连续自然地演奏起来了。 四、实验仪器、材料 1,2MHZ和4HZ的信号源 2,ACEX1K EP1K30TC144—1芯片 3,扬声器 五、方案设计(设计性实验需要,综合性实验无该项) 1,音符的产生: 音符的产生是利用数控分频器模块SPKEAR对输入的时钟信号CLK400KHZ进行分频,预置数为TONE[10..0],然后分频得出频率为CLK/2*(2048- TONE[10..0]),通过控制输入预置数TONE[10..0]来达到不同的输出频率,以达到控制扬声器发出不同的声音。 例如:当设置预置数TONE[10..0]为1538时,输出SPKEAR频率为396,为低音5。 2,频率的分频: 由于实验给定信号源为12MHZ,不满足数控分频器模块SPKEAR对输入时钟信号的要求,遂其进行30分频(PULSE30),产生0.4MHZ的时钟信号。 3,预置数的产生:

简易电子琴课程设计

课程设计任务书学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 简易电子琴电路的设计仿真与实现 初始条件: 可选元件:集成运算放大器LM324、电阻、电位器、电容若干,直流电源,或自备元器件。 可用仪器:示波器,万用表,直流稳压源,函数发生器 要求完成的主要任务: (1)设计任务 根据要求,完成对简易电子琴电路的仿真设计、装配与调试,鼓励自制稳压电源。 (2)设计要求 ①设计一简易电子琴电路,按下不同琴键即改变RC值,能发出C调的八个基本音阶,采用运算放大 ②选择电路方案,完成对确定方案电路的设计。 ③利用Proteus或Multisim仿真设计电路原理图,确定电路元件参数、掌握电路工作原理并仿真实现系 统功能。 ④安装调试并按规范要求格式完成课程设计报告书。 ⑤选做:利用仿真软件的PCB设计功能进行PCB设计。 时间安排: 1、前半周,完成仿真设计调试;并制作实物。 2、后半周,硬件调试,撰写、提交课程设计报告,进行验收和答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 1.模电课设概述 (1) 1.1设计背景 (1) 1.2设计目的及意义 (1) 1.3开发环境proteus简介 (1) 2.电路原理 (3) 2.1 RC桥式振荡电路及频率选择 (3) 2.2振荡条件 (4) 3.总体方案设计 (5) 3.1实验电路设计思路 (5) 3.2设计电路图 (6) 3.3实验参数选择 (6) 4.仿真曲线及结果分析 (7) 4.1仿真操作过程及曲线 (7) 4.2仿真结果分析 (14) 5.实物制作及仿真、实物的差异 (15) 5.1实物制作过程和调试过程 (15) 5.2 仿真、实物的差异 (16) 6.心得体会 (17) 7.元件清单 (18) 8.参考文献 (19)

乐曲硬件演奏电路设计-verilog

EDA技术及创新实践(设计报告) 题目:乐曲硬件演奏电路设计 姓名:漩涡鸣人 学院:数理与信息工程学院 专业:电子科学与技术 班级:112 学号:1886****20 指导教师:汤大智 2014年6 月

一、设计目的及要求 实验目的: 1、理解音乐演奏的原理及分频器的原理与使用。 2、了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。 3、培养自主学习、正确分析和解决问题的能力。 要求:利用分频器设计硬件乐曲演奏电路;能通过数码管显示动态效果;通过一个开关实现两首乐曲的切换;在音乐播放的同时,会有led流水灯的闪烁。 二、设计原理 乐曲演奏的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。 图1、顶层模块图 其中,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值可以使计数器产生不同频率的信号,从而产生

不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 1、音调的控制 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为12√2。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音[4]。由此可以计算出简谱中从低音1至高音1之间每个音名对应的频率,如表2所示: 表2简谱中的音名与频率的关系 所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率

乐曲硬件演奏电路设计

江西理工大学应用科学学院 SOPC/EDA综合课程设计报告 设计题目:硬件音乐演奏电路 设计者:徐达健 学号:08040108131 班级:测控081 指导老师:王忠锋 完成时间:2011年01月07日 设计报告综合测试总评 格式(10)内容 (40) 图表 (10) 答辩 (20) 平时 (20)

目录 一:设计原理 (3) 二:总体框图 (5) 三:选择器件 (7) 四:功能模块: (8) 1:NoteTabs模块(程序仿真图) (8) 2:ToneTaba模块(程序仿真图) (11) 3:Speakera模块(程序仿真图) (12) 五:总体设计电路图 (16) 1.顶层设计的电路原理图(Songer模块) (16) 2.Songer模块的程序 (16) 3.Songer顶层文件的仿真图形 (17) 4、锁定引脚 (17) 5、下载验证 (18) 六:结束语 (19)

七:心得体会 (20) 八:参考文献 (21) 一、设计原理 1.音乐演奏电路原理 这种频率的振荡可以用不同音符的代码所控制,从而分出不同频率的振荡,它采用编程方式将各种音符的代码预先存的计算机的内存中,利用软件和一定硬件电路配合将存放的乐曲代码有节地进行演奏,产生电子音乐。乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。 图1.1 音乐演奏电路原理图

2.音符频率的获得 多本文中选取750KHz的基准频率。由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。表1中各音符的分频系数就是从750KHz 的基准频率二分频得到的375KHz频率基础上计算得到的。 由于最大分频系数是1274,故分频器采用11位二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为0,即初始值=2048-1=2047,此时扬声器不会发声。3.乐曲节奏的控制 本文中的梁祝乐曲,最小的节拍为1/4拍,若将1拍的时间定为1秒,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数即可。 计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。 4.乐谱发生器 本文将乐谱中的音符数据存储在NoteTABS中,如“梁祝”乐曲中的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒的时间,相应地,音符“3”就要在NoteTABS 中连续的四个地址上都存储。当一个4Hz的时钟来时,相应地存入NoteTABS中一个音符数据。

电子琴实验报告乐曲硬件演奏电路设计本科论文

武夷学院实验报告 课程名称:逻辑设计与FPGA 项目名称: 乐曲硬件演奏电路设计 ______________ 姓名: 专业:微电子学 班级:14微电子 学号:04实验日期 、 实验预习部分: 1. 实验目的: 学习利用数控分频器设计硬件乐曲演奏电路。 2. 实验原理: 综合利用数控分频器、LPM ROMPLL 等单元电路设计硬件乐曲演奏电路。系统框图如图 1 所示由三个模块组成,分别为 NOTETABSTONETABASPEAKERA NOTETAB 模块(把教材图9-4中的CNT138T 和MUSIC 模块合在一起即为此模块)类似于弹 琴人的手指;TONETAB 模块类似于琴键;SPEAKER 类似于琴弦或音调发生器。 音符的频率由SPEAKER 模块(与教材图9-4中的SPKEF 模块对应)获得,这是一个数控分 频器。由其CLK 端输入一具有较高频率(12MHZ 的信号,通过SPEAKER 分频后由SPKOU 输出。 SPEAKER 对CLK 输入信号的分频比由11位预置数TONE[10..0]决定。SPKOU 的输出频率将决定 每一音符的音调,这样,分频计数器的预置值 TONE[10..0]与SPKOU 的输出频率就有了对应关 系。例如在TONETAB 模块(与教材图9-4中的F_COD 模块对应)中若取 TONE[10..0] = 1036, 图1硬件乐曲演奏电路结构框图 i.;E-Z

将发出音符“ 3”音的信号频率。

实验预习成绩(百分制)____________________ 实验指导教师签字:_________________________

硬件电路设计基础知识

硬件电子电路基础

第一章半导体器件 §1-1 半导体基础知识 一、什么是半导体 半导体就是导电能力介于导体和绝缘体之间的物质。(导电能力即电导率)(如:硅Si 锗Ge等+4价元素以及化合物)

二、半导体的导电特性 本征半导体――纯净、晶体结构完整的半导体称为本征半导体。 硅和锗的共价键结构。(略) 1、半导体的导电率会在外界因素作用下发生变化 ?掺杂──管子 ?温度──热敏元件 ?光照──光敏元件等 2、半导体中的两种载流子──自由电子和空穴 ?自由电子──受束缚的电子(-) ?空穴──电子跳走以后留下的坑(+) 三、杂质半导体──N型、P型 (前讲)掺杂可以显著地改变半导体的导电特性,从而制造出杂质半导体。 ?N型半导体(自由电子多) 掺杂为+5价元素。如:磷;砷P──+5价使自由电子大大增加原理:Si──+4价P与Si形成共价键后多余了一个电子。 载流子组成: o本征激发的空穴和自由电子──数量少。 o掺杂后由P提供的自由电子──数量多。 o空穴──少子 o自由电子──多子 ?P型半导体(空穴多) 掺杂为+3价元素。如:硼;铝使空穴大大增加 原理:Si──+4价B与Si形成共价键后多余了一个空穴。 B──+3价 载流子组成:

o本征激发的空穴和自由电子──数量少。 o掺杂后由B提供的空穴──数量多。 o空穴──多子 o自由电子──少子 结论:N型半导体中的多数载流子为自由电子; P型半导体中的多数载流子为空穴。 §1-2 PN结 一、PN结的基本原理 1、什么是PN结 将一块P型半导体和一块N型半导体紧密第结合在一起时,交界面两侧的那部分区域。 2、PN结的结构 分界面上的情况: P区:空穴多 N区:自由电子多 扩散运动: 多的往少的那去,并被复合掉。留下了正、负离子。 (正、负离子不能移动) 留下了一个正、负离子区──耗尽区。 由正、负离子区形成了一个内建电场(即势垒高度)。 方向:N--> P 大小:与材料和温度有关。(很小,约零点几伏)

(完整版)基于51单片机简易电子琴的设计

电子琴的设计 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。一. 任务要求与总体设计方案 1.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 1.2 设计方案 1.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率

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)

电路硬件设计基础

1.1电路硬件设计基础 1.1.1电路设计 硬件电路设计原理 嵌入式系统的硬件设计主要分3个步骤:设计电路原理图、生成网络表、设计印制电路板,如下图所示。 图1-1硬件设计的3个步骤 进行硬件设计开发,首先要进行原理图设计,需要将一个个元器件按一定的逻辑关系连接起来。设计一个原理图的元件来源是“原理图库”,除了元件库外还可以由用户自己增加建立新的元件,用户可以用这些元件来实现所要设计产品的逻辑功能。例如利用Protel 中的画线、总线等工具,将电路中具有电气意义的导线、符号和标识根据设计要求连接起来,构成一个完整的原理图。 原理图设计完成后要进行网络表输出。网络表是电路原理设计和印制电路板设计中的一个桥梁,它是设计工具软件自动布线的灵魂,可以从原理图中生成,也可以从印制电路板图中提取。常见的原理图输入工具都具有Verilog/VHDL网络表生成功能,这些网络表包含所有的元件及元件之间的网络连接关系。 原理图设计完成后就可进行印制电路板设计。进行印制电路板设计时,可以利用Protel 提供的包括自动布线、各种设计规则的确定、叠层的设计、布线方式的设计、信号完整性设计等强大的布线功能,完成复杂的印制电路板设计,达到系统的准确性、功能性、可靠性设计。 电路设计方法(有效步骤) 电路原理图设计不仅是整个电路设计的第一步,也是电路设计的基础。由于以后的设计工作都是以此为基础,因此电路原理图的好坏直接影响到以后的设计工作。电路原理图的具体设计步骤,如图所示。

图1-2原理图设计流程图 (1)建立元件库中没有的库元件 元件库中保存的元件只有常用元件。设计者在设计时首先碰到的问题往往就是库中没有原理图中的部分元件。这时设计者只有利用设计软件提供的元件编辑功能建立新的库元件,然后才能进行原理图设计。 当采用片上系统的设计方法时,系统电路是针对封装的引脚关系图,与传统的设计方法中采用逻辑关系的库元件不同。 (2)设置图纸属性 设计者根据实际电路的复杂程度设置图纸大小和类型。图纸属性的设置过程实际上是建立设计平台的过程。设计者只有设置好这个工作平台,才能够在上面设计符合要求的电路图。 (3)放置元件 在这个阶段,设计者根据原理图的需要,将元件从元件库中取出放置到图纸上,并根据原理图的需要进行调整,修改位置,对元件的编号、封装进行设置等,为下一步的工作打下基础。 (4)原理图布线 在这个阶段,设计者根据原理图的需要,利用设计软件提供的各种工具和指令进行布线,将工作平面上的元件用具有电气意义的导线、符号连接起来,构成一个完整的原理图。 (5)检查与校对 在该阶段,设计者利用设计软件提供的各种检测功能对所绘制的原理图进行检查与校对,以保证原理图符合电气规则,同时还应力求做到布局美观。这个过程包括校对元件、导线位置调整以及更改元件的属性等。 (6)电路分析与仿真 这一步,设计者利用原理图仿真软件或设计软件提供的强大的电路仿真功能,对原理图的性能指标进行仿真,使设计者在原理图中就能对自己设计的电路性能指标进行观察、测试,从而避免前期问题后移,造成不必要的返工。

乐曲演奏电路

成绩 指导教师: 日期: 《EDA技术与VHDL语言设计》 课程设计 题目: EDA技术及其应用 ——乐曲演奏电路 姓名:陈 院系:电子信息工程学系 专业:电子信息工程 班级:电信092 学号: 910706220 指导教师:余尤好 2011年12 月

EDA 技术及其应用 ——乐曲演奏电路 陈 (电子信息工程学系 指导教师:余尤好) 摘要:利用EDA 技术对乐曲演奏电路进行仿真,设计者在EDA 软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA 是电子设计自动化(Electronic Design Automation )的缩写,在20世纪90年代初从计算机辅助设计(CAD )、计算机辅助制造(CAM )、计算机辅助测试(CAT )和计算机辅助工程(CAE )的概念发展而来的。 关键词:EDA 技术 仿真 乐曲演奏 一、概述 1.1设计目的及要求 本实验课程的目的,旨在通过上机实验,使学生加深理解EDA 技术的基本方法,帮助和培养学生建立利用原理图和硬件描述语言进行电路设计的基本方法和利用EDA 工具软件(MAX+plus Ⅱ或Quartus7.2)设计简单数字电子系统的能力,为以后从事有关数字电子系统方面的设计和研究开发工作打下基础。 为使演奏能循环进行,需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。 1.2实验前预习 每次实验前,学生须仔细阅读本实验指导书的相关内容,明确实验目的和实验内容;明确实验原理与步骤;复习与实验内容有关的理论知识;预习仪器设备的使用方法、操作规程及注意事项。 1.3设计环境 计算机 MAX+plusII10.2 二、设计过程及原理 2.1乐曲演奏的原理 组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率高低和持续时间,就可以使扬声器发出连续的乐曲声。首先来看怎样控制音调的高低变化。如下图1是乐曲演奏电路的原理框图,其中,乐谱产生的电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值就可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s 的整数倍,对于节拍长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 6MHz 扬声器 4Hz 数码管 图1 乐曲演奏电路原理框图 反馈预置计数器 2分频器 曲谱产生 音符显示

简易电子琴电路课程设计(模拟电路)

逗你玩 课程设计报告 课程名称:模拟电子技术课程设计 专业班级:电子信息工程(2)班 学生学号: 0705110931 学生姓名:夏柳 所属院部:信息技术学院 指导教师:王雪 20 08 ——20 09 学年第 2 学期

《模拟电子技术》课程设计报告 --------简易电子琴的制作 简易电子琴电路 摘要: 本课程设计以制作一个简易电子琴为最终结果,主要以硬件测试为主。首先进行电路分析,设计电路图,其次考虑所有可能出现的问题,完善电路图,再选择合适的器件,最后按照电路图线路搭试,调试测试,直至达到理想的目标。当然在这之前对焊点等要事先查阅资料,了解手工焊接技术;查阅有关4100芯片,741芯片的功能等参数,还有测试其芯片是否好坏的电路和方法;同时还要了解RC振荡电路,与其产生振荡的条件跟原理,选择稳幅电路,理解其稳幅的原理;当然还要计算八个音阶的产生的频率,再根据RC振荡电路计算电阻值,以便选择合适的电阻,这些都是课前准备。测试电子琴我们要一步一步的,首先是振荡电路的线路测试,其次选频电路的测试,功放电路的测试,最后再是总体测试,尽量消除噪音,使音质能够很清晰。这样电子琴我们就做好了。 关键图:

电子琴的主干图

第一部分:课前准备 1.1芯片性能指标 1.2手工焊接技术 1.3元件制作工艺 第二部分:设计方案及选定 2.1八个音阶的频率 2.2振荡电路的选择与设计 2.3八个电阻的选择 2.4稳幅方式的选择 2.5功率放大电路的设计 第三部分:简易电子琴电路的检测与误差分析 3.1芯片测试 3.2振荡电路测试 3.3电子琴的测试 第四部分:元器件清单 第五部分:心得体会 第六部分:参考文献

硬件电路设计基础知识.docx

硬件电子电路基础关于本课程 § 4—2乙类功率放大电路 § 4—3丙类功率放大电路 § 4—4丙类谐振倍频电路 第五章正弦波振荡器 § 5—1反馈型正弦波振荡器的工作原理 § 5— 2 LC正弦波振荡电路 § 5— 3 LC振荡器的频率稳定度 § 5—4石英晶体振荡器 § 5— 5 RC正弦波振荡器

第一章半导体器件 §1半导体基础知识 §1PN 结 §-1二极管 §1晶体三极管 §1场效应管 §1半导体基础知识 、什么是半导体半导体就是导电能力介于导体和绝缘体之间的物质。(导电能力即电导率)(如:硅Si锗Ge等+ 4价元素以及化合物) 、半导体的导电特性本征半导体一一纯净、晶体结构完整的半导体称为本征半导体。 硅和锗的共价键结构。(略)

1、半导体的导电率会在外界因素作用下发生变化 ?掺杂一一管子 *温度--- 热敏元件 ?光照——光敏元件等 2、半导体中的两种载流子一一自由电子和空穴 ?自由电子——受束缚的电子(一) ?空穴——电子跳走以后留下的坑(+ ) 三、杂质半导体——N型、P型 (前讲)掺杂可以显著地改变半导体的导电特性,从而制造出杂质半导体。 *N型半导体(自由电子多) 掺杂为+ 5价元素。女口:磷;砷P—+ 5价使自由电子大大增加原理:Si—+ 4价P与Si形成共价键后多余了一个电子。 载流子组成: o本征激发的空穴和自由电子——数量少。 o掺杂后由P提供的自由电子——数量多。 o 空穴——少子 o 自由电子------ 多子 ?P型半导体(空穴多) 掺杂为+ 3价元素。女口:硼;铝使空穴大大增加 原理:Si—+ 4价B与Si形成共价键后多余了一个空穴。 B——+ 3价 载流子组成: o本征激发的空穴和自由电子数量少。 o掺杂后由B提供的空穴——数量多。 o 空穴——多子 o 自由电子——少子

单片机电子琴设计报告硬件设计部分

课程设计报告 课程名称:微机原理课程设计 题目:简易电子琴设计 学院:系: 专业: 班级: 学号: 学生姓名: 起讫日期: 指导教师:

摘要 随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机AT89C51为主控制器,附有独立键盘、点阵、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 关键词:AT89C51,点阵,独立键盘,蜂鸣器。

目录 第1章概述----------------------------------------------------------------------------------3 第2章课程设计任务及要求-----------------------------------------------------------3 2.1 设计任务-------------------------------------------------------------------------------3 2.2 设计要求-------------------------------------------------------------------------------3 第3章硬件设计-----------------------------------------------------------------------------3 3.1设计方案-------------------------------------------------------------------------------4 3.2 硬件电路设计及描述-----------------------------------------------------------------4 3.2.1 电路连线及概述---------------------------------------------------------------------5 3.2.2 系统设计电路图--------- --------------------------------------------------------8 第4章原件清单-----------------------------------------------------------------------------9 第5章心得体会-----------------------------------------------------------------------------10第6章参考文献-----------------------------------------------------------------------------11

乐器硬件演奏电路

EDA技术课程大作业 设计题目:乐器硬件演奏电路 院系:电子信息与电气工程学院 学生姓名: 学号:200902070018 专业班级: 2010 年12 月 4 日

乐曲硬件演奏电路 1. 设计背景和设计方案 1.1设计背景 目前,各领域的激烈竞争迫使人们不得不对办事效率格外重视,同时,这也是方便、高效的社会发展趋势之必要。随着科技发展及电子方面的成熟。数控分频器它成为这方面当之无愧的选择。本设计正是关于分频器在乐器硬件演奏电路系统的应用。与传统的纯硬件相比,简单有效,此设计可以适应多家可编程逻辑器件,便于组织大规模的系统设计;便于设计的复用继承和升级,具有广阔的应用前景。 1.2设计方案 该系统主要由NOTETABS,TONETABA,SPEAKERA三个模块组成,与利用微处理器CPU,MCU来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂的多,仅凭借传统的数字逻辑技术是难以实现的,因此,这里我们借助强大的EDA工具和VHDL硬件描述语言来完成。 模块SPEAKERA是数控分频器计数输出模块为一个11位的可预置数计数器。通过NOTETABS得到预置数,并对这些进行计数。由SPEAKERA的CLK端输入一具有较高的频率的信号,通过SPEAKERA分频后由SPKOUT输出,模块TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKERA输入口停留的时间即为此音符的节拍值。每一个音符的停留时间又由音乐节拍和音调发生器模块NOTETABS的CLK的输入频率决定,输出由对应于TONETABA的4位输入值INDEX[3..0]确定。输向TONETABA中INDEX[3..0]的输出值与持续的时间由模块NOTETABS决定。在NOTETABS中设置了一个8为二进制计数器作为音符数据ROM的地址发生器。这个计数器的计数频率选为4HZ,随着NOTETABS中的计数器按4HZ的时钟速率做加法计数时,即随地址值递增时,音符数据ROM中的音符数据将从ROM中通过TONEINDEX[3..0]端口输向TONETABA 模块,乐曲就开始连续自然地演奏起来了。 2. 方案实施 2.1 实现原理及算法的描述 首先,编写数控分频器计数输出模块SPEAKERA,其输入为clk, Tone ,输出为Spks,

乐曲硬件演奏电路设计_verilog

EDA技术及创新实践(设计报告) 题目: 乐曲硬件演奏电路设计 姓名: 漩涡鸣人 学院: 数理与信息工程学院 专业: 电子科学与技术 班级: 112 学号: 1886****20 指导教师: 汤大智 2014年6 月

一、设计目的及要求 实验目的: 1、理解音乐演奏的原理及分频器的原理与使用。 2、了解怎样控制音调的高低变化和音长,从而完成乐曲的自动循环演奏。 3、培养自主学习、正确分析和解决问题的能力。 要求:利用分频器设计硬件乐曲演奏电路;能通过数码管显示动态效果;通过一个开关实现两首乐曲的切换;在音乐播放的同时,会有led流水灯的闪烁。 二、设计原理 乐曲演奏的原理是这样的:组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和持续的时间,就可以使扬声器发出连续的乐曲声。 图1、顶层模块图 其中,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是0.25s的整数倍,对于节拍较长的音符,如2分音符,在记谱时将该音名连续记录两次即可。 1、音调的控制 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个8度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个8度音之间,又可分为12个半音,每两个半音的频率比为12√2。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音[4]。由此可以计

硬件电路设计规范样本

硬件电路板设计规范 制定此《规范》的目的和出发点是为了培养硬件开发人员严谨、务实的 工作作风和严肃、认真的工作态度, 增强硬件开发人员的责任感和使命感, 提高工作效率和开发成功率, 保证产品质量。 1、深入理解设计需求, 从需求中整理出电路功能模块和性能指标要求; 2、根据功能和性能需求制定总体设计方案, 对CPU等主芯片进行选型, CPU选型有以下几点要求: 1) 容易采购, 性价比高; 2) 容易开发: 体现在硬件调试工具种类多, 参考设计多, 软件资源丰富, 成功案例多; 3) 可扩展性好; 3、针对已经选定的CPU芯片, 选择一个与我们需求比较接近的成功参 考设计。 一般CPU生产商或她们的合作方都会对每款CPU芯片做若干开发板进行验证, 厂家最后公开给用户的参考设计图虽说不是产品级的东西, 也应该是经 过严格验证的, 否则也会影响到她们的芯片推广应用, 纵然参考设计的外围 电路有可推敲的地方, CPU本身的管脚连接使用方法也绝对是值得我们信赖的, 当然如果万一出现多个参考设计某些管脚连接方式不同, 能够细读CPU芯片 手册和勘误表, 或者找厂商确认; 另外在设计之前, 最好我们能外借或者购

买一块选定的参考板进行软件验证, 如果没问题那么硬件参考设计也是能够信赖的; 但要注意一点, 现在很多CPU都有若干种启动模式, 我们要选一种最适合的启动模式, 或者做成兼容设计; 4、根据需求对外设功能模块进行元器件选型, 元器件选型应该遵守以下原则: 1) 普遍性原则: 所选的元器件要被广泛使用验证过的尽量少使用冷、偏芯片, 减少风险; 2) 高性价比原则: 在功能、性能、使用率都相近的情况下, 尽量选择价格比较好的元器件, 减少成本; 3) 采购方便原则: 尽量选择容易买到, 供货周期短的元器件; 4) 持续发展原则: 尽量选择在可预见的时间内不会停产的元器件; 5) 可替代原则: 尽量选择pin to pin兼容种类比较多的元器件; 6) 向上兼容原则: 尽量选择以前老产品用过的元器件; 7) 资源节约原则: 尽量用上元器件的全部功能和管脚; 5、对选定的CPU参考设计原理图外围电路进行修改, 修改时对于每个功能模块都要找至少3个相同外围芯片的成功参考设计, 如果找到的参考设计连接方法都是完全一样的, 那么基本能够放心参照设计, 但即使只有一个参考设计与其它的不一样, 也不能简单地少数服从多数, 而是要细读芯片数据手册, 深入理解那些管脚含义, 多方讨论, 联系芯片厂技术支持, 最终确定科学、正确的连接方式, 如果仍有疑义, 能够做兼容设计; 当然, 如果所

相关主题
文本预览
相关文档 最新文档