基于EDA技术设计的一个简易的八音符电子琴.doc
《基于EDA技术设计的一个简易的八音符电子琴.doc》由会员分享,可在线阅读,更多相关《基于EDA技术设计的一个简易的八音符电子琴.doc(23页珍藏版)》请在三一办公上搜索。
1、简易电子琴的设计报告学院: 物电学院班级: 08(27)姓名: 孟倩学号: 08417642日期: 2011-6-28指导老师:康素成目 录一实验目的2二设计要求2三设计的基本内容2四简易电子琴设计过程21.简易电子琴的工作原理22.简易电子琴的工作流程图23.简易电子琴中各模块的设计23.1 乐曲自动演奏模块23.2 音调器发生模块23.3 数控分频模块23.4 顶层设计2五程序代码分析21.顶层VHDL程序22.音阶发生器VHDL程序23. 数控分频模块VHDL程序24. 自动演奏模块VHDL程序2六实验操作内容及步骤:21、打开Quartus,创建jtxhd工程22.引脚分配2七设计心得
2、和体会2八、参考文献2一实验目的1. 在掌握计算机组成原理理论的基础上,了解EDA技术。2. 掌握VHDL硬件描述语言的设计方法和思想,并设计一个八音符简易电子琴。3.掌握Quartus II软件的使用;二设计要求本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,由键盘输入控制音响,同时可自动演奏乐曲。用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。本
3、系统功能比较齐全,有一定的使用价值。三设计的基本内容基于MAX+PLUS平台,运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工具对各模块进行仿真验证。本设计包含如下三个模块:乐曲自动演奏模块,音调发生模块,数控分频模块,最后把各个模块整合后,通过电路的输入输出对应关系连接起来。四简易电子琴设计过程1.简易电子琴的工作原理音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把
4、一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,电子琴的具体工作原理图如图下图所示。图为:简易电子琴的工作原理图2.简易电子琴的工作流程图开始按键按下是否成功TO初始化并开中断允放TO中断识别按键功能根据按键功能,装入音符T到TO中启动TO工作2简易电子琴的工作流程图按键释放是否成功?停止TO工作TO中断入口重装THO,TLO初值P1.0取反中断返回图为: 简易电子琴的工作流程图3.简易电子琴中各模块的设计为了更清楚的了解电
5、子琴的工作过程,我们利用EDA工具(本课程设计Max+plus)对各个模块实施时序仿真(Timing Simulation),由自顶向下的设计方式,最后将三个模块进行整合,做出简易电子琴整个系统的时序仿真图。3.1 乐曲自动演奏模块乐曲自动演奏模块的作用是产生8位发声控制输入信号。当进行自动演奏时,由存储在此模块中的8位二进制作为发声控制输入,从而自动演奏乐曲。这段模块的原理图如图3.1所示:CLKAUTO INDEX07.0INDEX27.0 3.1 乐曲自动演奏模块原理图3.2 音调器发生模块音调发生模块的作用是产生音阶的分频预置值。当8位发声控制输入信号中的某一位为高电平时,则对应某一音
6、阶的数值将输出,该数值即为该音阶的分频预置值,分频预置值控制数控分频模块进行分频,由此可得到每个音阶对应的频率。这段模块的原理图如图3.2所示: TONE10.0INDEX7.0 HIGH CODE6.0图 3.2 音调发生器模块原理图3.3 数控分频模块数控分频模块对时基脉冲进行分频,得到1、2、3、4、5、6、7七个音符对应的频率。该模块的VHDL程序中包含了三个过程。首先对FPGA的32MHZ的时基脉冲进行分频得到8MHZ的脉冲,然后按照tonel输入的分频系数对8MHZ的脉冲再次分频,得到所需要的音符频率。第三个进程的作用是音调输出时再进行二分频,将脉冲展宽,使扬声器有足够发声功率。这
7、段模块的原理图如图3.3所示:CLK1 SPKSTONE110.0图 3.3 数控分频模块原理图3.4 顶层设计顶层模块由乐曲自动演奏、音调发生器和数控分频器三个模块组成,把以上各个模块进行整合,最后我们得到了系统的整个工作原理图,如图3.4:34 简易电子琴的顶层设计原理图五程序代码分析1.顶层VHDL程序-文件名:top.vhd-功能:顶层文件library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top isPort ( clk
8、32MHz :in std_logic; -32MHz系统时钟handTOauto : in std_logic; -键盘输入/自动演奏code1 :out std_logic_vector(6 downto 0); -音符显示信号index1 :in std_logic_vector(7 downto 0); -键盘输入信号high1 :out std_logic; -高低音节信号spkout :out std_logic); -音频信号end top;architecture Behavioral of top iscomponent automusicPort ( clk :in std
9、_logic; Auto: in std_logic; index2:in std_logic_vector(7 downto 0); index0 : out std_logic_vector(7 downto 0); end component;component tonePort ( index : in std_logic_vector(7 downto 0); code : out std_logic_vector(6 downto 0); high : out std_logic; tone0 : out integer range 0 to 2047);end component
10、;component speakerPort ( clk1 : in std_logic;tone1 : in integer range 0 to 2047;spks : out std_logic);end component;signal tone2: integer range 0 to 2047;signal indx:std_logic_vector(7 downto 0);beginu0:automusic port map(clk=clk32MHZ,index2=index1,index0=indx,Auto=handtoAuto);u1: tone port map(inde
11、x=indx,tone0=tone2,code=code1,high=high1);u2: speaker port map(clk1=clk32MHZ,tone1=tone2,spks=spkout);end Behavioral; 2.音阶发生器VHDL程序-文件名:tone.vhd。-功能:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity tone isPort ( index : in std_logic_vector(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 EDA 技术设计 一个 简易 音符 电子琴

链接地址:https://www.31ppt.com/p-2589054.html