电子琴设计报告

更新时间:2024-06-04 14:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

广西工学院课程设计用纸

EDA技术课程设计

设计题目:简易电子琴设计

专 业:应用物理学 学生姓名:赵骉

学 号:20081326031 日 期:2011/8/31

摘 要

随着基于CPLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、

第 页 共 页

广西工学院课程设计用纸

自动控制用计算机等领域的重要性日益突出。作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。本程序设计的是简易电子琴的设计。采用EDA作为开发工具,VHDL语言为软件描述语言,QuartusII6.1作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。本程序使用的硬件描述语言VHDL,可以大大降低了硬件数字系统设计的入门级别,让人感觉就是C语言的近亲。通过老师的指导和自己的学习完成了预想的功能。 1 课程设计的目的及任务 1.1 课程设计的目的

巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。为了进一步了解计算机组成原理与系统结构,深入学习EDA技术,用VHDL语言去控制将会使我们对本专业知识可以更好地掌握。 1.2 课程设计的内容

设计一个简易电子琴,利用试验箱的脉冲电源产生1,2,3,4,5,6,7共7个音阶信号,当按下一个键时,有相应的乐音发出,同时用指示灯显示乐音,用数码管显示音符。

2 原理描述

2.1音名与频率的关系

根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。每两个半音的频率比为4。另外,音名A(乐谱中的低音6)的频率为440HZ,音名B到C之间,E到F之间为半音,其余为全音。由此可以计算出乐谱中从低音1到高音1之间每个音名的频率如表2-1所示: 音名 低音1 低音2 低音3 低音4 低音5 低音6 低音7

2.3电路各模块设计

第 页 共 页

频率(Hz) 音名 261.63 293.67 329.63 349.23 391.99 440 439.88 中音1 中音2 中音3 中音4 中音5 中音6 中音7 频率(Hz) 音名 523.25 587.33 659.25 698.46 783.99 880 987.76 高音1 高音2 高音3 高音4 高音5 高音6 高音7 频率(Hz) 1046.50 1174.66 1381.51 1396.92 1567.98 1760 1975.52 表2-1 简谱中的音名与频率的关系

广西工学院课程设计用纸

图 2-2 电路结构方框图 2.3设计规划

根据系统设计要求,系统设计采用自顶向下的设计方法,它由乐曲自动演奏模块、音调发生模块和数控分频模块三部分组成。

3 个人负责模块部分

我在这次设计中主要做音调发生模块,以下是这个部分的分析:

音调发生模块的作用是产生音阶的分频预置值。当7位发声控制输入信号中的某一位为高电平时,则对应某一音节的数值将输出(通过对照图4-1各音名对应的分频系数值及初始值)该数值即为该音阶的分频初始值,分频预置值控制数控分频模块进行分频,由此可得到每个音阶对应的频率。 3.1可变分频器 (1)基准频率的选取

各音名所对应的频率可由一频率较高的基准频率进行整数分频得到,所以实际产生各音名频率为近似的整数值。这是由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整,若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差较小,但分频结构将变大,实际的设计应综合考虑两方面的因素,在尽量减小频率差的前提下取舍合适的基准频率。本次设计选择12MHz作为基准频率。

(2)分频系数A、公用二进制的计数容量N及初始值的选取D

1、分频系数的选取

首先将12MHz的基准频率进行12分频,得到1MHz的基准频率,分频系数A=1MHz/音名频率,此分频系数可由计数器实现。但若不加处理语句,其分频后的信号将不是对称方波。而占空比很小的方波很难使扬声器有效地发出声响。

为得到对称方波,可将分频系数A分解为:分频系数A=分频系数n×2。即先进行分频系数n的分频,得到不对称方波,然后再2分频得到对称方波。

2、公用二进制的计数容量N的选取

第 页 共 页

广西工学院课程设计用纸

n分频可由n进制计数器实现。n进制计数器可用复位法或置位法实现,由于加载初始值d的置位法可有效地减少设计所占用的可编程逻辑器件资源,因此,此次设计采用置位法。

低音1的分频数n为最大,其值为1275,应取公用二进制计数器的计数容量N大与“最大分频系数n”,故本次设计的公用二进制计数器应该设计为十一位二进制加法计数器,其计数最大容量为2048,计数的最大值N为2047,可满足本次设计中所有音名对音频系数的要求。

3、初始值的选取D

初始值D = 计数最大值N - 分频系数n

此次设计中应用的各音名对应的分频系数值及初始值如表所示: 音符 0 1 2 3 4 5 6 7 8 9 10 12 15

3.2音调发生模块程序 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity tone1 is

port ( index : in std_logic_vector (6 downto 0); code : out std_logic_vector (3 downto 0); tone0 : out integer range 0 to 2047); end;

architecture two of tone1 is

第 页 共 页

初始值 2047 773 912 1036 1116 1197 1290 1372 1410 1480 1542 1622 1728 对应音谱 0 1 2 3 4 5 6 7 1 2 3 5 1 区别高中低音 0 0 0 0 0 0 0 0 1 1 1 1 2 表4-1各音名对应的分频系数值及初始值

广西工学院课程设计用纸

begin

search : process (index) begin case index is

when \ when \ when \ when \ when \ when \ when \ when others => tone0 <= 2047;code <= \ end case; end process; end two;

3.3音调发生模块的波形仿真图

在此程序中index为自动模块输出的音符数据,经过翻译后将tone0输出到数控分频模块为其提供分频系数的初始值,code为数码管显示的字符数,应用模式5,所以直接输出音符的二进制值。通过仿真图可以清楚地看到结果。

3.4音调发生模块生成的逻辑器件

第 页 共 页

广西工学院课程设计用纸

4 顶层原理图及仿真

4.1 顶层原理图

利用EDA工具提供的原理图的方式进行输入,原理图输入方法比较容易掌握,而且直观方便,根据前几次设计的模块及生成的逻辑器件可以很方便地把各个子模块所生成的逻辑器件组合起来,即将各个子模块之间的输入输出端、子模块与整体电路之间的输入输出端进行正确的硬件连接,进行编译、下载,从而实现整体功能。它将手动选择(bmux)模块音.调发生模块(tone1)及数控分频器(skfpqq)模块连接起来。

4-1 顶层原理图

4.2 顶层原理仿真图

第 页 共 页

广西工学院课程设计用纸

图4-2 顶层文件仿真波形图

通过仿真波形图可以看到,输入端rst1为复位端,当其值为1时,输出端均为0,输入端indx1为音调按键端,当按一个音调按键时,数码管上即code1的输出显示出音符数,输出端spks则代表将输入clk先经过12次分频,再经过(预置数终值2048-tone)次分频,最终再进行二分频处理,而这个信号的频率就是我们需要演奏的音谱的频率,根据频率的不同,从而能通过喇叭听到不同的声音,实现音乐的播放。

5.硬件下载及实现

输入程序并且编译无误,并且仿真无误后,便进行引脚锁定及程序下载,在进行引脚锁定时必须对照引脚锁定图进行锁定,采用模式5其引脚锁定图如图5-1所示:

第 页 共 页

广西工学院课程设计用纸

图5-1模式5实验电路结构图

根据模式5上所对应的引脚号查表可以得出需要锁定的引脚号码

锁定完后如图 5-2所示:

图 5-2 引脚锁定图

Clk12mhz锁定clock9的12mhz;rst1键8为复位键;index1锁定键1到键7;code1锁定译码管8;spkout锁定扬声器。

结果:当一次按下1,2,3,4,5,6,7,键时,扬声器发出do,re,mi,fa,sol,la,si七个音,同时数码管显示相应的音符数:1,2,3,4,5,6,7.

6 心得体会

经过努力,简易电子琴的设计基本上完成了。在整个设计过程中,包括前期中期和后期,我都有着许多不同的体会:

1) 这个设计的基本是接触一门新的语言并加以应用,对于我来说,没有想到的是入手的速度比我的预料快,在以前编程的基础上,从接触到开始动手编程的时间得到了很大的缩短。知识的接收速度在很大的程度上决定了动手的时间。

2) VHDL的编程与C语言的编程有着本质的不同,然而以往形成的旧编程习惯在VHDL编程中依然起着很大的作用。一通百通,不是没有道理的。对于学习新的知识并予以应用的信心,显得更足了。

3) VHDL的设计关键是电路逻辑设计,而一个程序的关键是总体设计。对于硬件设计接触不多的我们清楚这一点也许不无好处。

4)通过这个程序设计让我学会一种新的语言,对数字系统结构也有了更进一步的了解和认识,对我以后的学习有很大的帮助。希望其他人在看再做类似设计时有所借鉴。

通过几天的课程设计,我对数据库软件EDA技术、VHDL、等系列知识都有了一定的了解。使用EDA技术开发页面的能力也有了很大提高。

在整个设计过程中,有很多人对任务的完成给予了重要的支持和帮助。感谢老师给了我本次设计的机会并提供指导;感谢许多同学在我此课程设计遇到问题时给我的帮助使我能够

第 页 共 页

广西工学院课程设计用纸

顺利地进行设计的工作;论坛中有很多认识不认识的朋友也都为我的设计提出了很宝贵的建议,同样在这里感谢他们

7 参考文献

[1].潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,2005.2 [2].刘江海.《EDA技术课程设计》.华中科技大学出版社,2009.5 [3].焦素敏.《EDA应用技术》.清华大学出版社,2002.4

第 页 共 页

本文来源:https://www.bwwdw.com/article/9om6.html

Top