基于cpld和fpga的简易电子琴设计内容摘要:

基础之上构成基于 CPLD/FPGA 的简易电子琴。 如何使用 EDA 工具设计电子系统是人们普遍关心的问题。 在 EDA 工具软件MAX+PLUS II 的支持下,本文所有的软件通过了编译、调式和波形仿真。 设计的主要工作 本设计首先需要对各个模块进行编程,用的是 VHDL 语言实现各个模块的功能,然后利用 EDA 工具软件 max+plus II 编写并调试系统的 VHDL 程序。 并且每一个模块都在这个 软件下进行了仿真。 系统的 VHDL 程序编好过后先在实验室的 EDA 实验箱上下载调试,成功过后再根据电路焊接相应的电路板。 最好将程序下载到制好的电路上验证。 音准这是电子琴质量的重要指标,需要通过扬声器将准确的音符对应的频率播放出来,而且需要通过显示器实时的将正在播放的音符以及它的高低音正确的显示出来,其中数控分频和信号处理成为本文研究的关键。 与设计相关的音乐知识 所谓简谱,是指一种简易的记谱法。 有字母简谱和数字简谱两种。 一般所称的 科谱,系指数字简谱。 数字简谱以可动唱名法为基础,用 7 代表音阶中的 7 个基本音级,读音为 do、 re、 mi、 fa、 sol、 la、 si,休止以 O 表示。 每一个数字的时值名相当于五线谱的 4 分音符。 休止符:音乐中除了有音的高低,长短之外,也有音的休止。 表示声音休止的符隆健:基于 CPLD/FPGA的简易电子琴设计 4 号叫休止符,用“ 0”标记。 通俗点说就是没有声音,不出声的符号。 休止符与音符基本相同,也有六种。 但一般直接用 0 代替增加的横线,每增加一个 0,就增加一个四分休止符时的时值。 音的高低:任何一首曲子都是高低相间的音组成的,从钢琴上直观看就是越往左面的键盘音越低,越往右面的键盘音越高。 本 设计是以 G 调为基准,能 发出部分低音组 ,整个中音组,部分高音组一共 15 个音符,包括休止符一共 16 个,其中所有音符为 1, 2, 3, 4, 5, 6, 7 共七种。 2020 届 电气工程与自动化毕业设计 (论文) 5 第二章 开发工具以及硬件 FPGA 器件简介 EDA 技术 EDA 是电子设计自动化( Electronic Design Automation)缩写, 是 90 年代初从 CAD(计算机辅助设计)、 CAM(计算机辅助制造)、 CAT(计算机辅助测试)和 CAE(计算机辅助工程)的概念发展而来的。 EDA 技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。 典型的 EDA 工具中必须包含两个特殊的软件包,即综合器和适配器。 综合器的功能就是将设计者在 EDA 平台上完成的针对某个系统项目的 HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行 编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。 综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构 用一定 的方式联系起来。 也就是说,综合器是软件描述与硬件实现的一座桥梁。 综合过程就是将电路的高级语言描述转换 成 低级的、可与目标器件 FPGA/CPLD 相映射的网表文件。 适配器的功能是将由综合器产生的网 表文件配置与指定的目标器件中,产生最终的下载文件,如 JED 文件。 适配 器 所选定的目标器件( FPGA/CPLD 芯片)必须属于在综合器中已指定的目标器件系列。 硬件描述语言 HDL 是相对于一般的计算机软件语言,如: C、 PASCAL 而言的。 HDL 语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和 连接方式。 设计者可利用 HDL 程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式 , 然后利用综合器和适配器将此程序编程能控制 FPGA 和CPLD 内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。 目前,就 FPGA/CPLD 开发来说,比较常用和流行的 HDL 主要有 ABELHDL、 AHDL和 VHDL。 硬件描述语言 — VHDL VHDL 的英文全名是 VeryHighSpeed Integrated Circuit Hardware Description Language, 诞生于 1982 年。 1987 年底, VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。 自 IEEE 公布了 VHDL 的标准版本, IEEE1076(简称 87 版 )之后,各 EDA隆健:基于 CPLD/FPGA的简易电子琴设计 6 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。 此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。 1993 年, IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 10761993 版本,(简称93 版)。 现在, VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。 有专家认为,在新的世纪中, VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。 VHDL 主要用于描述数 字系统的结构,行为,功能和接口。 除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分 ,及端口 )和内部(或 称不可视部分),既涉及实体的内部功能和算法完成部分。 在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。 应用 VHDL 进行工程设计的优点是多方面的。 (1) 与其他的硬件描述语言相比, VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。 强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2) VHDL 丰富的仿真语句和库函数,使 得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3) VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和 已有设计的再利用功能。 符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个 开 发组共同并行工作才能实现 任务。 (4)对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动地 把 VHDL 描述设计转变成门级网表。 (5) VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什 么,而进行独立的设计。 VHDL 的设计流程: (1) 设计输入 根据电路设计所提出的要 求,将程序输入到 VHDL 编辑器中去编辑。 2020 届 电气工程与自动化毕业设计 (论文) 7 (2) 功能级模拟 用 VHDL, 模拟器对编辑后的程序进行模拟 , 如果达不到设计要求,则可以重新修改程序,直到通过功能模拟。 (3) 逻辑综合与优化 将通过功能模拟的程序放到 VHDL 编译器中,进行逻辑综合与优化。 (4) 门级模拟 对电路用 VHDL 仿真器仿真, 可对门级电路的延时、定时状态、驱动能力等进行仿真。 如不符合要求,可重复步骤 (3),再门 级模拟,直到符合要求止。 (5) 版图生成 用相应的软件处理后,就可以拿去制版。 FPGA 器件简介 1985 年, Xilinx 公司推出了世界上第一款 FPGA。 FPGA 的发展非常迅速,形成了各种不同的结构。 目前 FPGA 的主流是 Xilinx 公司的产品,所以就以 Xilinx 公司的FPGA 为例,介绍其结构特点。 FPGA 一般由三种可编程电路和一个用于存放编程数据的 SRAM组成,这三种可编程电路是:可编程逻辑块 CLB(Configurable Logic Block)、输入 /输出模块 IOB(I/O Block)和互连资源 IR(Interconnect Resource),其基本结构如图21 所示 (1)可编程逻辑块 CLB CLB 是 FPGA 的主要组成部分,是实现逻辑功的基本单元。 CLB 中有许多不同规格的数据选择器,分别用来选择触发激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。 这些数据择器的地址控制信号均由编程信息提供,从而实现所需电路结构。 (2)输入 /输出模块 IOB IOB 提供了器件引脚和内部逻辑 阵列之间的 连 接,通常排列在芯片的四周。 IOB 主要由输入触发器、输入缓冲器、输 出 触发 /锁存器和输出缓冲器组 成。 每个 IOB 控制一个引脚,可被配置为输 入 、输出或双向 I/O 功能。 (3)可编程互连资源 IR 可编程互联资源包括各种长度的连线和一些可编程连 接开关,它们将各个 CLB 之间以及 CLB 与 IOB 之间互相连接起来,构成各种复杂功能的系统。 可编程互连资源分为分段互连型和连续互连型。 分段互连资源中具有多种不同长度的金属线,各金属线段之间通过开关矩阵或反熔丝编程连接,走线灵活方便,但走线延时无法预测;连续互连资源是利用相同长度的金属线,连接与距离远近无关,布线延时是固定的、可预测的。 隆健:基于 CPLD/FPGA的简易电子琴设计 8 图 21 本章小结 本章首先介绍了 EDA 技术的概况,随后介绍了本次课题需要用到的 VHDL 语言和它的特点,以及介绍了基于 EDA 软件和 VHDL 语言的 FPGA/CPLD 数字系统设计的流程,最后简单介绍了可编程逻辑器件 FPGA 的特点和结构。 2020 届 电气工程与自动化毕业设计 (论文) 9 第三章 方案论证 设计思想以及设计原理框图 本文的指导思想是利用 EDA 技术, 通过 VHDL 语言对 CPLD/FPGA 进行配置来实现电子琴的功能,通过键盘的弹奏,将采集到的信号转换成含有音符信号的代码以及产生分频预置数,采用数控分频的方法 输出不同音符的频率,最后通过扬声器或者蜂鸣器发出声音,同时用 LED 显示器显示正在演奏的音符和音符的高低音,用 LED_A表示音符,用 LED_B 表示音阶的高低。 其原理框图如图 31 所示: 图 31 原理说明 系统工作原理如下: ( 1)当演奏者按下 K3 键后,演奏者便可以开始按键演奏,将全局时钟分频后,产生频率较低的时钟 clk_scan,同时驱动键盘扫描电路产生 keydrv7kevdrv0 的信号,并且 将键盘的输入 信号 k2 和 k1 的值综合起来并输出,产生出 含有 音符信息的音符代码。 隆健:基于 CPLD/FPGA的简易电子琴设计 10 ( 2)代码音符作为音符查表电路和 简谱 码 产生电路的处理,分别将按键的信息,以及所弹奏的音符的信息送出到译码显示电路和数控分频器。 ( 3)在时钟频率为 5MHz 的作用下,基准频率分频器对该时钟分频,产生一个频率为 1MHz 的时钟,并将时钟送到数控分频器,在根据上级电路输出的对应的分频预置数,数控分频器产生弹奏者所弹音符的对应的频率,在经过一个二分频器输出该频率,最后通过扬声器发出该音符的声音。 与此同时,显示译码电路对上级电路输出的音符信息进行处理,实时 地 对其进行译码,来点亮各个二极管。 ( 4)当演奏者按再次下 K3 后,键盘不起作用,输出始终为 0Hz 的信号,扬声器停止发声。 ( 5)同时,可以通过 K4, K5 按键,可以灵活控制二极管的显示与不显示。 系统的实现以及设计指标 实现时,可以分块进行独立设计,最后将各个模块联系到一起,实现协调工作,即顶层描述。 采用该方案可以提高设计的效率,并且易于对每一部分功能分析及总体的流程控制,对于已经产生的例化元件可以进行调用,增强了整个程序的可读性,同时通过修改各个模块的程序,十分有利于系统的升级。 简易电子琴具体设计指标: ( 1)能够进行正常的演奏; ( 2)可演奏的发 音音阶为 G 调的部分低音组,整个中 音组,部分高 音组; ( 3)在实现演奏的同时用简谱的形式同步显示演奏的乐曲; ( 4)保证足够音量,使输出信号最好保持 50%左右的占空比。 2020 届 电气工程与自动化毕业设计 (论文) 11。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。