1、摘要摘要在EDA开发工具Quartus II 6.0平台上,采用VHDL语言层次化和模块化的设计方法,通过音符编码的设计思想,预先定制乐曲,实现动态显示乐曲演奏电路的设计,并在此基础上,基于同一原理,使此电路同时具备了简易电子琴的功能,使基于CPLD/FPGA芯片的乐曲播放数字电路得到了更好的优化,提高了设计的灵活性和可扩展性。关键字:EDA;Quartus II;VHDL;CPLD/FPGA;乐曲演奏电路;简易电子琴19AbstractABSTRACTBased on the QuartusII-the EDA development tool, this design has adopte
2、d the method of classification and modularization of VHDL level. Through the concept of note coding, the design of dynamic music-displaying circuit is realized after the musical composition has been made in advance. On the basis of the above and the same principle, this electric circuit has the same
3、 function of a simple electronic organ. The design of CPLD/FPGA chip-based music-displaying digital circuit is greatly improved, and the flexibility and expansibility of the design are improved as well.Key Words: EDA;Quartus II;VHDL;CPLD/FPGA;music-displaying circuit;simple electronic organ目录目录第1章绪论
4、11.1 研究背景11.2 电子设计自动化发展史21.2.1 EDA技术的涵义21.2.2 EDA技术的发展史21.3 EDA技术发展动态31.4 研究思路及主要工作4第2章可编程技术简介52.1 可编程逻辑器件FPGA/CPLD52.2 硬件描述语言VHDL72.3 开发软件QUARTUS 9第3章系统设计133.1 系统原理133.1.1 音调的控制143.1.2 音长的控制143.2 系统结构153.3 各模块分析与设计163.3.1 定制万水千山总是情音符数据ROM163.3.2 音符数据地址发生器模块NOTETABS173.3.3 预置数查表电路电路模块TONETABA173.3.4
5、 发声频率产生模块SPEAKERA173.3.5 简易电子琴功能模块ELECLOCK18第4章系统程序实现与仿真分析194.1 各部分程序实现194.1.1 在QUARTUSII 6.0下定制的LPM_ROM194.1.2 乐曲硬件演奏电路顶层设计VHDL实现194.1.3 音符数据地址发生器模块NOTETABS程序与说明214.1.4 预置数查表电路模块TONETABA程序与说明224.1.5 发声频率产生模块SPEAKERA程序与说明254.1.6 简易电子琴功能模块ELECLOCK程序与说明274.2 仿真结果分析294.2.1 Speakera仿真294.2.2 顶层文件仿真(包括电子
6、琴部分)结果314.2.3 顶层文件仿真(不包括电子琴)结果324.2.4 简易电子琴单独仿真33第5章硬件验证35第六章结束语39参考文献39致谢40第1章 绪论第1章 绪论1.1 研究背景随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体的工艺水平的线宽已经达到了60nm,并在不断地缩小,面在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模,极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。同时,利用可编程逻辑器件和EDA 技术使设计方法发生了质的变化。把以前“电路设计+硬件搭
7、试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发平台,采用可编程逻辑器件CPLDFPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的
8、诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA技术提供支持。本文应用VHDL硬件描述语言,设计一个乐曲硬件演奏电路,它能将一首预先设置存储好的乐曲自动播放出来,除此之外,也能够通过按键的方式输入音符,使其具备简易电子琴的功能。通过此项研究,能够深切的体会利用EDA工具开发的优越性,在此基础上,对乐曲硬件演奏电路功能进行丰富,具体一定的社会实用性。下面对乐曲演奏电路的设计与实现中涉及的EDA技术,以及EDA技术中常用的开发器件CPLDFPGA可编程逻辑器件,开发语言VHDL以及开发软件Quar
9、tus作简单介绍。1.2 电子设计自动化发展史1.2.1 EDA技术的涵义什么叫EDA技术?EDA是Electronic Design Automation(电子设计自动化)的缩写。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。1.2.2 EDA技术的发展史EDA技术伴随着计算机、集成电路和电子系统设计的发展,经
10、历了计算机辅助设计(Computer Assist Design,CAD)、计算机辅助工程设计(Computer Assist Engineering Design,CAED)和电子设计自动化(Electronic Design Automation,EDA)三个发展阶段。 20世纪70年代的计算机辅助设计(CAD)阶段;早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(Printed Circuit Board)板上
11、进行的,由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。可编程逻辑技术及其器件问世,计算机作为一种工具在科研领域得到广泛应用。而在后期,CAD的概念已见雏形,这一阶段人们开始利用计算机取代手工设计,辅助进行集成电路版图编辑、PCB布线等工作。 20世纪80年代的计算机辅助工程设计(CAED)阶段;20世纪80年代,集成电路进入了CMOS(互补场效应管)时代,复杂可编程逻辑器件进入商业应用,相应的辅助设计软件投入使用;而在80年代末,出现了FPGA;CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线及PCB分析
12、,以及逻辑设计、仿真、综合和简化等方面担任了重要的角色。特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。 20世纪90年代电子系统设计自动化(EDA)阶段; 为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具。 这个阶段发展起来的EDA工具,目的是在设计前期将设计师
13、从事的许多高层次设计由工具来完成,如可以将用户要求转换为设计技术规范,有效的处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成,System on A Chip)。因此,EDA工具是以系统机设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件
14、生成等一整套的电子系统设计自动化工具。这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、AHDL或Verilog-HDL),同时含有各种工艺的标准元件库。只有具备上述功能的EDA工具,才可能是电子设计工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。1.3 EDA技术发展动态未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC(单片系统)设计技术的发展,软硬核功能库
15、的建立,以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。1.4 研究思路及主要工作本文按照EDA开发流程,采用VHDL硬件描述语言开发,将乐曲硬件演奏电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,最后,经顶层文件将各单独结构体进行综合,实现乐曲硬件演奏。主要工作:根据硬件演奏电路的功能进行全局分析,采用自上至下的设计方法,从系统总体要求出发,逐步将设计内容细化,最后完成系统结构的整体设计。将功能分成两部分
16、,功能一:实现预先设置乐曲的播放功能;功能二:实现乐曲按键输入,实现简易电子琴功能。实现功能一乐曲播放,需要完成以下设计:预置乐曲,本文选取了万水千山总是情的一段作预置,作预置时,需要将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过EDA开发平台quartus ii 6.0进行乐曲定制;为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率;为了给分频提供预置数,需要计算分频预置数;对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真;实现功能二按键输入简易电子琴,需要完成以下设计;同样利用数控
17、分频原理,通过公式预先计算分频预置数;编写简易电子琴源程序VHDL文件;启动quartus ii 6.0全程编译,生成具体输入,输出端口的图形文件。启动全程功能仿真,生成仿真波形文件。生成下载文件,在EPM7128实验开发板上利用Altera公司的EPM7128SLC8410芯片进行功能验证。第2章 可编程技术简介第2章 可编程技术简介2.1 可编程逻辑器件FPGA/CPLD在数字化道路上,我国电子设计技术的发展经历了并将继续经历很多重大的变革与飞跃。从应用SSI通用数字电路芯片构成电路系统,到广泛应用MCU(微控制器或单片机),在电子系统设计上发生了一个具有里程碑意义的飞跃,这一飞跃不但克服
18、了纯SSI数字电路系统许多不可逾越的困难,同时也为电子设计技术的应用开拓了更广阔的前景,使得电子系统的智能化水平在广度和深度上产生了质的飞跃。MCU的广泛应用并没有抛弃SSI的应用,而是为它们在电子系统中找到了更合理的地位。随着社会经济发展的延伸,电子设计技术的应用为我们提出了许多全新的课题和更高的要求,因此也拓宽了更大的应用空间。不言而喻,我国的电子设计技术发展到今天,又将面临一次更大意义上的突破。从某种意义上来说,这种突破的实现是历史抉择性的,而非技术性的。即CPLD/FPGA在EDA中的广泛应用。可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CP
19、LD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展而成为电子设计领域的重要角色。从本质上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构上,但却是一次更高层次的循环。它在更高层次上容纳了过去数字技术的优秀部分,对MCU系统将是一种扬弃,但在电子技术的设计操作和系统构成的整体上却发生了质的飞跃。如果说MCU在逻辑的实现上是无限的话,那么CPLD/FPGA不但包括了MCU这一特点,而且还可触及硅片电路线度的物理极限,并兼有串并行方式、高速、高可靠性以及宽口径实用性等诸多方面的特定。不但如此,随着EDA技术的发展和
20、CPLD/FPGA在深亚微米级领域的进军,它们与MCU、MPU、DSP、A/D、RAM和ROM等独立器件间的物理与功能界限将日益模糊。特别是软/硬IP芯核产业的迅猛发展,嵌入式通用与标准FPGA器件呼之欲出,片上系统(SOC)已近在咫尺。CPLD/FPGA其不可替代的地位及其伴随而来的极具知识经济特征的IP核产业的崛起越来越受到业内人士的密切关注。国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。 Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200
21、系列等,可用门数为120018 000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供门数为500025 000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25 000个PLD等效门。FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点
22、,其时钟延时可小至ns级,结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于FPGA/CPLD的集成规模非常大,可利用先进的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。 它几乎可用于任何型号和规模的FPGA/CPLD中,
23、从而使得产品设计效率大幅度提高。可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。美国IT公司认为,一个ASIC 80%的功能可用于IP核等现成逻辑合成。而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核(Core)的拼装,其设计周期将更短。与ASIC设计相比,FPGA/CPLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。对于一个开发项目,究竟是选择FPGA还是选择CPLD 呢?主要看开发项目本身的需要。对于普通规模,且产量
24、不是很大的产品项目,通常使用CPLD比较好。对于大规模的逻辑设计ASIC设计,或单片系统设计,则多采用FPGA。另外,FPGA掉电后将丢失原有的逻辑信息,所以在实用中需要为FPGA芯片配置一个专用ROM。我们深刻体会到,CPLD/FPGA的学习与应用已不仅仅是一种单纯的基于某种特定器件的应用开发过程,而是一种极富挑战性和创造性的开拓性活动。它打破了软硬件之间最后的屏障,使软硬件工程师们有了真正的共同语言,它使目前一切仍处于计算机辅助性设计和规划的纯软件活动变成了实实在在的设计和实体。在1997年全国大学生电子设计竞赛组委会专家组的一次会议上,一位专家指出:我国的单片机时代已经结束,未来的电子设
25、计将是EDA的时代。这是极具深刻洞察力的明世之言。2.2 硬件描述语言VHDLVHDL(Very High Speed Integrated Circuit Hardware Description Language)是非常高速集成电路硬件描述语言,是可以描述硬件电路的功能、信号连接关系及定时关系的语言。它能比电路原理图更有效地表示硬件电路的特性。使用VHDL语言,可以就系统的总体要求出发,自上至下地将设计内容细化,最后完成系统硬件的整体设计。VHDL语言作为IEEE标准的硬件描述语言和EDA的重要组成部分,经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语句表
26、达风格和层次的仿真测试手段,受到业界的普遍认同和广泛的接受,从数十种国际流行的硬件描述语言中脱颖而出,成为现代EDA领域的首选硬件设计计算机语言,而且目前流行的EDA工具软件全部支持VHDL。除了作为电子系统设计的主选硬件描述语言外,VHDL在EDA领域的仿真测试、学术交流、电子设计的存档、程序模块的移植、ASIC设计源程序的交付、IP核(Intelligdence Property Core)的应用等方面担任着不可或缺的角色。目前,它还不能应用于模拟电路的设计,但已有人投入研究。VHDL程序结构包括:实体(Entity)、结构体(Architecture)、配置(Configuration)
27、、包集合(Package)及库(Library)。其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成:实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为、系统数据的流程或系统组织结构形式。配置用语从库中选取所需的单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生变化。包集合存放各设计模块能共享的数据类型、常数、子程序等。库用于存放已编译的实体、构造体、包集合及配置:一种是用户自己开发的工程软件,另一种是制造商提供的库。VHDL语言的主要特点是: 功能强大,灵活性高:VHDL语言是一种功能强大的语言结构,可用简洁明确的代码来进行复杂控制逻辑的设计。同时
28、VHDL语言还支持层次化的设计,支持设计库和可重复使用的元件生成。目前,VHDL语言已成为一种设计、仿真、综合的标准硬件描述语言。 器件无关性:VHDL语言允许设计者在生成一个设计时不需要首先选择一个具体的器件。对于同一个设计描述,可以采用多种不同器件结构来实现其功能。因此设计描述阶段,可以集中精力从事设计构思。当设计、仿真通过后,指定具体的器件综合、适配即可。 可移植性:VHDL语言是一种标准的语言,故采用VHDL进行的设计可以被不同的EDA工具所支持。从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。在一个EDA工具中采用的技术技巧
29、,在其它工具中同样可以采用。 自顶向下的设计方法:传统的设计方法是,自底向上的设计或平坦式设计。自底向上的设计方法是先从底层模块设计开始,逐渐由各个模块形成功能复杂的电路。这种设计方法优点是很明显的,因为它是一种层次设计电路,一般电路的子模块都是按照结构或功能划分,因此这种电路层次清楚,结构明确,便于多人合作开发,同时设计文件易于存档,易于交流。自底向上设计方法的缺点也很明显,往往由于整体设计思路不对而使的花费几个月的低层设计付之东流。平坦式设计是整个电路只含有一个模块,电路的设计是平铺直叙的,没有结构和功能上的划分,因此不是层次电路的设计方式。优点是小型电路设计时可以节省时间和精力,但随着电
30、路复杂程度的增加,这种设计方式的缺点变的异常突出。自顶向下的设计方法是将要设计的电路进行最顶层的描述(顶层建模),然后利用EDA软件进行顶层仿真,如果顶层设计的仿真结果满足要求,则可以继续将顶层划分的模块进行低一级的划分并仿真,这样一级一级设计最终将完成整个电路的设计。自顶向下的设计方法与前面两种方法相比优点是很明显的。 数据类型丰富:作为硬件描述语言的一种VHDL语言的数据类型非常丰富,除了VHDL语言自身预定义的十种数据类型外,在VHDL语言程序设计中还可以由用户自定义数据类型。特别是std_logic数据类型的使用,使得VHDL语言能最真实模拟电路中的复杂信号。 建模方便:由于VHDL语
31、言中可综合的语句和用于仿真的语句齐备,行为描述能力强,因此VHDL语言特别适合信号建模。目前VHDL的综合器能对复杂的算术描述进行综合(如:Quartus 2.0以上的版本都能对std_logic_vector类型的数据进行加、减、乘、除),因此对于复杂电路的建模VHDL语言无论仿真还是综合都是非常合适的描述语言。 运行库和程序包丰富:目前支持VHDL语言的程序包很丰富,大多以库的形式存放在特定的目录下,用户可随时调用。如IEEE库收集了std_logic_1164、std_logic_arith、std_logic_unsigned等程序包。在CPLD/FPGA综合时,还可以使用EDA软件商
32、提供的各种库和程序包。而且用户利用VHDL语言编写的各种成果都可以以库的形式存放,在后续的设计中可以继续使用。 VHDL语言是一种硬件电路的建模描述语言,因此与普通的计算机语言有较大差别,普通计算机语言是CPU按照时钟的节拍,一条指令执行完后才能执行下一条指令,因此指令执行是有先后顺序的,也即是顺序执行,而每条指令的执行占用特定的时间。而与VHDL语言描述结果相对应的是硬件电路,它遵循硬件电路的特点,语句的执行没有先后顺序,是并发的执行的;而且语句的执行不像普通软件那样每条指令占用一定的时间,只是遵循硬件电路自身的延迟时间。2.3 开发软件QUARTUS Altera公司是世界三大CPLDFP
33、GA 厂家之一,它的器件能达到最高的性能和集成度,不仅仅因为采用了先进的工艺和全新的逻辑结构,还在于它提供了现代化的设计工具之一QUARTUS 可编程逻辑开发软件,该软件是MAX+plus的升级版本,Altera公司的第四代开发软件。其提供了一个完整高效的,一种与结构无关的设计环境,非常适应具体的设计需要。Quartus提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。QUARTUS 提供了全面的逻辑设计能力,包括电路图、文本和波形的设计输入以及编译、逻辑综合、仿真和定时分析以及器件编程等诸多功能。特别是在原
34、理图输入等方面,QUARTUS 被公认为是最易使用、人机界面最友好的PLD 开发软件,QUARTUS开发系统具有很多突出的特点: 开放式的界面:Altera公司与EDA开发商紧密合作,使QUARTUS 可以与其他工业标准的设计与输入、综合、校验工具相连接。它与EDA工具的接口遵循EDIF 200、EDIF 300,参数模块库LPM 2.1.0,标准延迟格式SDF 1.0、SDF 2.0,VITAL 95,Verilog HDL,VHDL 1987 及VHDL 1993等多种标准。QUARTUS软件接口允许用户使用Altera或标准EDA设计输入工具来创建逻辑设计,使用QUARTUS的编译器对A
35、ltera器件的设计进行编译,使用Altera或其他EDA校验工具进行器件升级或板级仿真。表2-1 显示 Quartus II 软件支持的 EDA 工具,并指出哪个 EDA 工具可支持NativeLink。 NativeLink 技术在 Quartus II 软件和其它 EDA 工具之间无缝地传送信息,并允许在 Quartus II 软件中自动运行 EDA 工具。表2-1 Quartus II 软件支持的 EDA 工具 功能支持的EDA工具Nativelink(支持)综合Mentor Graphics Design ArchitecMentor Graphics LeonardoSpectru
36、mMentor Graphics Precision RTL SynthesisMentor Graphics ViewDrawSynopsys Design CompilerSynopsys FPGA ExpressSynopsys FPGA Compiler IISynplicity SynplifySynplicity Synplify Pro仿真Cadence NC-VerilogCadence NC-VHDLCadence Verilog-XLModel Technology ModelSimModel Technology ModelSim-AlteraSynopsys Sciro
37、ccoSynopsys VSSSynopsys VCS时序分析Mentor Graphics Blast (通过标签)Mentor Graphics Tau (通过标签)Synopsys PrimeTime板级验证Hyperlynx (通过 Signal Integrity IBIS)XTK (通过 Signal Integrity IBIS)ICX (通过 Signal Integrity IBIS)SpectraQuest (通过 Signal Integrity IBIS)Mentor Graphics Symbol Generation(Viewdraw)形式验证Verplex Con
38、formal LEC再综合Aplus Design Technologies (ADT) PALACESynplicity Amplify资料来源:Altera公司,Quartus ii 简介电子书版设计与结构无关:QUARTUS支持CycloneII、 Cyclone、 MAXII、 StratixII、 Stratix、 Excalibur、 APEXII、 APEX20KE、 FLEX10KE、 FLEX10KA、 FLEX10K、 ACEX1K、 FLEX6000、 MAX7000B、 MAX7000AE、 MAX7000S和MAX3000A等系列可编程逻辑器件,门数为6000250
39、000门,提供了业界真正与结构无关的可编程逻辑设计环境。QUARTUS的编译器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。 可在多种平台运行:QUARTUS软件可在基于PC机的WindowsNT 4.0、Windows 98、Windows 2000操作系统下运行,也可在Sun SPARCstations、HP 9000 Series 700/800、IBM RISC System/6000等工作站上运行。 完全集成化:QUARTUS软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具内,从而可以更快地进行调试,缩短开发周期。 模块化工具:设计者可以从各种设计输入、编辑、校验及
40、器件编程工具中做出选择,形成用户风格的开发环境,必要时还可在保留原始功能的基础上添加新的功能。由于QUARTUS支持多种器件系列,设计者无需学习新的开发工具即可对新结构的器件进行开发。 支持硬件描述语言(HDL):QUARTUS软件支持多种HDL的设计输入,包括标准的VHDL、Verilog HDL及Altera公司自己开发的硬件描述语言AHDL。 MegaCore功能:MegaCore 是经过预先校验的为实现复杂的系统级功能而提供的HDL网表文件。它为ACEX 1K、MAX 7000、MAX 9000、FLEX 6000、FLEX 8000和FLEX 10K系列器件提供了最优化设计。用户可从
41、Altera公司购买这些MegaCore,使用它们可以减轻设计任务,使设计者能将更多的时间和精力投入到改进设计和最终产品上去。OpenCore特点:QUARTUS软件具有开放性内核的特点,OpenCore可供设计者在购买产品前来对自己的设计进行评估。同时,QUARTUS还有多种设计输入方法,主要包括:图形设计输入:QUARTUS的图形设计输入是较其他软件更容易使用的特点,因为QUARTUS提供了丰富的库单元供设计者调用,尤其是在maxplus2库里几乎包含了所有的74系列的器件。因此只要具有数字电路的知识,几乎不需要过多的学习就可以利用QUARTUS进行CPLD/FPGA的设计。文本编辑输入:
42、QUARTUS的文本输入和编译系统支持AHDL语言、VHDL语言、VERILOG语言三种输入方式波形输入方式:如果知道输入、输出波形,也可以采用波形输入方式。混合输入方式:QUARTUS设计开发环境,可以进行图形设计输入、文本编辑输入、波形编辑输入混合编辑。具体操作方法是:在图形编辑、波形编辑时形成模块,在文本编辑时通过include“模块名.inc”或者采用Function(.) Return(.)的方式进行调用。同样,文本编辑输入形成的模块,也可以在图形编辑时调用,AHDL语言编译的结果可以在VHDL 语言下使用,VHDL语言编译的结果也可以在AHDL语言或图形输入时使用。这样灵活多变的输
43、入方式,给设计使用者带来了极大的方便。第3章 系统设计第3章 系统设计3.1 系统原理传统数字逻辑设计方法相比,本设计借助于功能强大的EDA工具和硬件描述语言来完成,如果只以纯硬件的方法完成乐曲演奏电路的设计,将是难以实现的。本设计采用了万水千山总是情(图3-1)的一部分来曲子来完成。为了便于理解,首先介绍一下硬件电路的发声原理。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可(音符和频率的关系
44、见表3-1)。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。而简易电子琴,工作原理与乐曲演奏一样,只是将固定预置乐曲变成了手动按键输入,节拍时间取决于按键的停留时间,如果合适,同样能播放出完整的歌曲来。图3-1万水千山总是情曲谱3.1.1 音调的控制频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)
45、之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准频率过高,虽然误差较小,但分频数将变大。实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符
46、的频率即可。综合考虑各因素,本文中选取12MHZ作为CLK的分频计数器的输入分频信号。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。表3-1简谱中的音名与频率的关系音名频率/Hz音名频率/Hz音名频率/Hz低音1261.6中音1523.3高音11045.5低音2293.7中音2587.3高音21174.7低音3329.6中音3659.3高音31318.5低音4349.2中音4698.5高音41396.9低音5392中音5784高音51568低音6440中音6880高音61760低音7493.9中音7987.8高音71975
47、.5资料来源:EPM7128实验板说明书3.1.2 音长的控制音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,在想控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,在这个设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4HZ的时钟频率即可产生四分音符的时长。要想让系统知道现在应该演奏哪个音符,而这个音符持续的时间应该是多少,就必须编写乐曲文件,在乐曲文件中音符是按地址存放的,当系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,而如果在曲谱文件中这个音符为三拍音长,那又该如何控制呢?其实只要将该音符连续书写三遍,这时系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,通过这样一个简单的操作就可以控制音乐的音长了。3.2 系统结构本系统主要由四个功能模块组成:NOTETABS.VHD,TONET