乐曲硬件演奏电路的EDA设计(3)

2018-12-22 21:58

沈阳工程学院课程设计(论文)

用技巧,VHDL硬件电路语言在微机、通信、编码、存储器以及电子电路等方面的具体设计应用,具有实际的指导意义。

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。

VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。但是这样做需要设计人员要在两方面有较高的素质: 对电路的知识要比较丰富;对CPLD/FPGA的结构比较熟悉。

有了这两个条件才能在设计的过程中选用适当的器件从而提高设计的可靠性、提高器件的利用率及缩短设计的周期。但是有一个重大的问题是在于,如果你的产品有所改动,需要采用另外的CPLD/FPGA时,你将需要重新输入原理图。(改用不同的器件在今天这种竞争环境下是会经常发生的。头儿们为了提高产品的性能或者是降低产品的造价,提高保密性等等,都会考虑选用不同的器件。对他们而言只是做出一个决定,对我们而言却是要我们付出更多的心血)。

但是当你采用VHDL等高级语言来设计时这些问题都会得到较好的解决。由于在使用VHDL等高级语言时,有专用的工具来实现将语言描述的电路功能转换为实际的电路所以你就用不着对底层的电路很熟悉,也用不着对CPLD/FPGA的结构很熟悉(因为有专用的工具针对你的描述采用相应的器件哦)。当你要换器件时,你只需要将原来设计好的VDHL文件在新器件的设计工具中再次实现就行了。

在用高级语言来设计电路时,主要的过程是这样的:

(1) 使用文本编辑器输入设计源文件(你可以使用任何一种文本编辑器。但是,为了提高输入的效率,你可以用某些专用的编辑器,如:Hdl Editor,Tubor Writer或者一些EDA工具软件集成的HDL编辑器)。 (2)使用编译工具编译源文件。VHDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST

- 4 -

沈阳工程学院课程设计(论文)

公司等都有自己的编译器。

(3)(可选步骤)功能仿真。对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。

(4)综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。(但是此时还没有在芯片中形成真正的电路。这一步就好像是把人的脑海中的电路画成原理图。--这是我的个人观点,似乎在好多文献中都没有提到“综合”的准确定义。至少,我读过的几本书中就没有。)这一部的最终目的是生成门电路级的网表(Netlist)。

(5)布局、布线。这一步的目的是生成用于烧写(编程Programming)的编程文件。在这一步,将用到第4步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。这就好像在设计PCB时的布局布线一样。先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。最后,生成一个供编程的文件。这一步同时还会加一些时序信息(Timing)到你的设计项目中去,以便与你做后仿真。

(6)后仿真。这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。

(7)烧写器件(编程)。 随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是VHDL和Verilog HDL。 VHDL发展的较早,语法严格,而Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。 VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。 国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授verilog。从国内来看,VHDL的参考书很多,便于查找资料,而Verilog HDL的参考书相对较少,这给学习Verilog HDL带来一些困难。 从EDA技术的发展上看,已出现用于CPLD/FPGA设计的硬件C语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继VHDL和Verilog之后,设计大规模CPLD/FPGA的又一种手段。

应用VHDL进行工程设计的优点是多方面的:

(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

- 5 -

沈阳工程学院课程设计(论文)

(3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

(4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计.

任何新生事物的产生都有它的历史沿革,早期的硬件描述语言是以一种高级语言为基础,加上一些特殊的约定而产生的,目的是为了实现RTL级仿真,用以验证设计的正确性,而不必像在传统的手工设计过程中那样,必须等到完成样机后才能进行实测和调试。

VHDL就是在用用最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。

VHDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog HDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难一些。但Verilog HDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。

- 6 -

沈阳工程学院课程设计(论文)

第3章 乐曲硬件演奏电路

3.1 基本要求

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

3.2 乐曲演奏原理

声音的频谱范围一般在几十到几千赫兹,利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每个音符对应着一定的频率,因此,想要发出不同音符的音调,只要能控制输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以往扬声器上连续地发出各个音符的音调。音乐频率和音乐的持续时间是音乐演奏的两个关键因素,以纯硬件完成演奏电路比利用微处理器来实现乐曲演奏要复杂的多,如果不凭借EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。乐曲演奏电路的结构框图如下:

图3.2.1 乐曲演奏电路结构框图

- 7 -

沈阳工程学院课程设计(论文)

(1) 音名与频率的关系

乐曲的12平均率规定:每2个八度(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12√2。另外,音符A的频率为440HZ,音符B到C之间,E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率。如表 3.2.1所示:

表 3.2.1简谱中的音名与频率的关系 音名 低音1 低音2 低音3 低音4 低音5 低音6 低音7 频率/HZ 261.6 293.7 329.6 349.2 392 440 493.9 音名 中音1 中音2 中音3 中音4 中音5 中音6 中音7 频率/HZ 523.3 587.3 659.3 698.5 784 880 987.8 音名 高音1 高音2 高音3 高音4 高音5 高音6 高音7 频率/HZ 1046.5 1174.7 1318.5 1396.9 1568 1760 1975.5 由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但是分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本例中选取4MHZ的基准频率。

各音阶频率计相应的分频系数如表3.2.2所示。为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,又经过一个2分频的分频器。表3.2.2的分频系数就是从4MHZ频率2分频得到的2MHZ频率基础上计算得出的。

表3.2.2各音阶频率对应的分频表 音名 低音1 低音2 低音3 低音4 低音5 低音6 低音7 分频系数 7644 6810 6067 5727 5102 4545 4050 547 1381 2124 2464 3089 3646 4141 中音1 中音2 中音3 中音4 中音5 中音6 中音7 初始值 音名 分频系数 3822 3405 3034 2864 2551 2273 2025 4369 4786 5157 5327 5640 5918 6166 高音1 高音2 高音3 高音4 高音5 高音6 高音7 初始值 音名 分频系数 1911 1270 1517 1432 1256 1137 1013 6280 6921 6674 6759 6935 7054 7178 初始值 由于最大分频系数是7644,故采用13位二进制计数器已能满足分频的要求。在表3.2.2中,除了给出了分频比例外,还给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为0,即初始值位8191即可,此时扬声器将不会发声。对于不同的分频系数,加载

- 8 -


乐曲硬件演奏电路的EDA设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外国文学_在线作业一及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: