05毕业设计论文.pdf_第1页
05毕业设计论文.pdf_第2页
05毕业设计论文.pdf_第3页
05毕业设计论文.pdf_第4页
05毕业设计论文.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕毕 业业 设设 计计(论论 文文) 题题目:目:基于 Verilog 的音乐电路设计 学生姓名施程耀指导教师陈天君 二级学院 电子信息工程学院(筹)专业电子信息工程 班级12 电子信息工程学号1205102014 提交日期2016 年 4 月 22 日答辩日期 2016 年 5 月 11 日 金陵科技学院学士学位论文目录 I 目 录 摘 要. III Abstract. IV 1 绪论.1 1.1 课题研究背景.1 1.2 课题研究目的1 1.3 课题相关知识.2 1.3.1 分频器的设计要求. 2 1.3.2 分频器的设计思路. 2 1.3.3 分频器的设计实现. 2 1.4 主要研究思路.3 2 EDA 技术简介.4 2.1 可编程逻辑器件4 2.2 EDA 电子技术的背景.5 2.3 EDA 技术发展史.5 2.4 Verilog HDL 语言.6 2.5 QUARTUS 简介7 2.5.1 Quartus II 基本信息7 2.5.2 Quartus II 简介. 7 3 基于 Verilog 音乐电路的总体设计9 3.1 设计原理9 3.1.1 音调的控制9 3.1.2 音长的控制.10 3.2 音乐电路结构框图11 3.3 74HC138 译码器.11 3.3.1 七段字符显示器. 11 3.3.2 数码管显示方式. 14 4 程序设计与仿真16 金陵科技学院学士学位论文目录 II 4.1 仿真概述16 4.2 程序设计16 4.2.1 程序分频模块 17 4.2.2 音乐产生模块. 18 4.2.3 显示模块.19 4.2.4 音频发生器模块. 20 4.2.5 总体电路图.22 4.3 结果分析22 参考文献. 24 致谢.25 附录.26 金陵科技学院学士学位论文摘要 III 基于 Verilog 的音乐电路设计 摘摘 要要 本次设计的音乐电路是通过 verilog HDL 语言编程实现的,通过 Quartus II 来进行仿真实现演奏乐曲的功能。 通过不停的改变信号频率的大小和音调持续的 时间从而完成播放乐曲的功能。 在本篇论文的开头,先对 EDA 技术进行了详细的介绍,其中包括本次实验使 用的编程语言:Verilog 语言和本次实验使用的编程开发软件:QuartusII。然 后, 本文介绍了音频和频率的关系;如何对音长和音频的进行合理控制来产生美 妙的音乐;通过对程序的模块化处理,画出总体电路设计图,并对各个模块化的 程序进行系统分析。最后实现程序的仿真并对仿真结果进行分析。 关键词:EDA;Quartus II;Verilog HDL;乐曲演奏电路 金陵科技学院学士学位论文Abstract IV music players design based on Verilog language Abstract The music of the designed circuits are implemented by verilog HDL language programming, through the Quartus II simulation can realize the function of playing music. By constantly changing the size of the signal frequency and pitch last time to complete the function of playing music. At the beginning of this paper has carried on the detailed introduction of EDA technology, including the experimental use of programming languages: Verilog language and this experiment use development programming software : QuartusII. Then, this paper introduces the relationship and audio frequency; How to control the duration and audio to produce wonderful music; Through the process procedure of modularization, draw the overall circuit design, and system analysis to each modular program. Finally realize the simulation of the program and the simulation results are analyzed. Keywords:EDA;Quartus II;Verilog HDL;music playing circuit 金陵科技学院学士学位第 1 章 绪论 1 1 绪 论 作为一门最近几年在电子科学界涌现的技术,可编程逻辑设计语言技术的出现很好的 解决了以前数字系统过于复杂化的问题;然后使得现在的系统设计简单化,便于设计者编 写设计;这样就使得设计还没有实现就可以进行调试,调试时的时序仿真和功能仿真都将 在计算机上进行。 正是由于 FPGA 芯片在应用中非常灵活,使得现在的电子线路设计都是 以 FPGA 芯片为基础。 同时在 FPGA 芯片上运行的软件编程语言是 Verilog 语言。 正是由于这 种原因,可编程逻辑设计语言可以在各级电路设计阶段进行验证。Verilog 语言在计算机仿 真阶段进行验证,正是由于验证分工明确,使得有很高的设计成功率。Verilog 语言的扩展 性很突出,被广泛应用于电子设计。当系统由设计芯片来完成后,器件包含的管脚和逻辑 结构可以被系统设计者自定义。由于可自定义的管脚和逻辑结构,可以依据需求对芯片进 行合理化的设计,这样实现了数字逻辑系统功能的多样化。有着强大灵活性的 Verilog 定 义在工作中简化了工作流程,使得工作量下降了不少。同时,使得工程师更容易设计电路 图和电路板,使得在更短的时间内完成更多的任务,效率大大的提高。设计生产 FPGA 芯 片是为了解决:芯片数量过量化,芯片体积过大化,消耗能源过大化,开发周期过长化, 系统的不稳定性等问题,极大的节省了设计成本。 在本文中,具体的描述了本论文研究方向的背景和目的。同时,有关设计的分频技术 也会在本文中进行说明。 1.1 课题研究背景 在现阶段,可编程逻辑器件主要应用于集成电路(integrated circuit)设计,印制 电路(Printed Circuit Board)板的设计,电子线路的设计,而且应用范围正在扩大, 应用与很多方面。目前,正是由于电子线路设计和计算机技术的依赖,因此它在很多行业 中应用很多,像航空航天电子器件,精密仪器仪表,等等。在这些因素的推动下,EDA 的 发展速度惊人,逐步成为电子开发应用的领导者。 在 20 世纪后半世纪,由于迅速发展起来的电路集成化和系统电子化功能,电子技术 遇到了很多问题,正是因为电子开发周期的不断剪短,使得它与电路集成化技术随着时间 的增长,矛盾化越来越激烈。在这种情况下,就要有更新的设计措施和设计工具来处理这 些弊端,正是这个原因,EDA 就出现了。 1.2 课题研究目的 对大学中所学的 Verilog hdl 语言,EDA 课程,数字电路等科目进行系统的复习并且进 行实践应用。并且对我的论文课题内容进行模块化处理,易于以后的工作。通过设计程序 和调试程序,在电脑上仿真出结果,实现音乐电路播放音乐的功能。 通过本论文课题,使得学生将以前大学中学的专业课知识进行整理运用,提高学生这 方面的能力。另外通过查找文献,使得学生接触到未学过的东西,并且将中间一些东西转 化位自己的东西;在设计中培养学生遇到问题并解决问题的能力;通过撰写论文,锻炼学 生按规范要求完成论文的能力。 金陵科技学院学士学位第 1 章 绪论 2 1.3 课题相关知识 1.3.1 分频器的设计要求 分频器就是根据已有的频率进行分频的仪器,根据实验中所需的不同的要求获取频 率,那么获取不同频率的方法有哪些呢?半整数分频(0.5 + int)、整数(int)分频等。 还有的设计要求有等占空比、非等占空比。而在实验中,会涉及很多分频方法。根据本次 实验的要求,要获取 6Mhz 频率和 4HZ 频率,而我们可以得到易取的基本频率(12MHZ)。 1.3.2 分频器的设计思路 首先,本设计要获取时钟信号,从计算机输入;然后,对时钟信号进行设置,60MHZ 的频率、20 微秒的周期,30%的占空比。最后,将从获取的信号看作为敏感信号,并通过 4 分频的方法来对敏感信号进行处理。上面获取的信号就是我们要的信号。同时,获取另 一个系统, 然后根据项目的要求来对周期和复位进行设置。 这样, 分频器就设置完成了。 1.3.3 分频器的设计实现 本次毕设,实现效果需要 6 步。第一步,打开应用程序。第二步,建立名为音乐电路 的项目。在新建立的名为音乐电路的项目下,单击处理。将项目保存在指定的的文件路径 下。在当前路径下,可以将项目保存在已有文件夹下,也可以新建一个文件夹,然后,对 你的项目进行命名,然后直接打开这个项目就可以对该文件进行一个加载。然后,对诸多 的 FPGA 芯片进行筛选,选择的指标是实验箱芯片型号,并且,我们通过封装芯片的不同, 合适的引脚数,性能依次进行合理的选择,最后,选到一个最符合要求的芯片。选到一个 最符合要求的芯片后,就要选择合适的工具了,因为不需要更换工具,直接选择默认的就 好了。然后点击下一步按钮,等到桌面弹出菜单后,点击完成按钮,这样就 OK 了。第三 步,对于 verilog HDL 文件的建立。先点击工具栏下的 File 按钮,然后 new 出一个新工程, 在弹出框内输入已经编写好的 verilog HDL 语言程序。将程序导入程序输入框中完成后, 进行保存并对文件名就行确定(提示;当前文件名,硬件描述语言,模块名,这三者文件 名应该一致)。到了这一步,单击编译图标,看看有无弹出警告信息,如果有,则对提示 的信息进行修改,如果无,则说明电机安装成功。第四步,建立仿真波形图。和上一步差 不多,然而不同之处就是在于 new 出一个新工程,在空白处点两下鼠标,这样就到了时序 仿真端口当中,点击“OK”按钮即完成了选择仿真端口正确方法和仿真波形图的建立(仿 真端口的选择)。第五步,仿真。对仿真持续时间进行设置,一般位 20us。然后,点击按 钮到时钟对话框中,在其中设置开始时间、周期长度、完结时间。同时,还要选择合适的 高低电平设置。最后,对其进行保存,但要注意当前文件名,硬件描述语言,模块名,这 三者文件名应该一致。第六步,编译。仿真波形图的时候,要求他们的间隔时间为四个时 钟周期,使得输出端的占空比为原波形频率的 1/4。最后,对占空比进行修改,还有就是 可以稍微改变计数器技术状态值,现在,分频就成功了。 金陵科技学院学士学位第 1 章 绪论 3 1.4 主要研究思路 本次设计,采用的是 verilog hdl 硬件描述语言来进行编程实现。将音乐播放电路拆分 成几个单独功能实现模块,并且利用 verilog hdl 硬件描述语言来进行编程实现每个模块的 功能。最后,将几个模块组合起来,最终实现音乐播放功能。 1.选择要演奏的乐曲,本次实验我选取的乐曲是“梁祝”,然后通过对音长和音调的 控制,将这些控制命令转化成 verilog hdl 代码。 2.为了获取合适的音乐频率,我们就要使用分频器来获取合适的音乐频率,使得乐曲 中的每个音符都有相应的音频来与之对应。而获取合适的音乐频率就需要通过计算给分频 器设置预置数。 3.对于每个模块进行编码实现功能,并且对每个模块进行仿真。 4.启动 quartus II 编译、 链接生成具体输入, 输出端口的图形文件。 启动全程功能仿真, 生成仿真波形文件。 金陵科技学院学士学位第 2 章 EDA 技术简介 4 2 EDA 技术简介 2.1 可编程逻辑器件 随着电子技术的快速发展, 大规模集成电路技术的产物可编程逻辑器件 PLD 应运而生, 经历了从 PROM、PLA、PAL、可重复编程的 GAL、直之今天的 CPLD 和 FPGA 器件发展 历程,不断地改进,在集成度、功能、性能方面取得大幅度的进步。PLD 本质上就是大规 模的逻辑门电路的混合使用,基本的原理结构图如图 2.1 所示: 图 2.1 基本 PLD 器件的原理结构图 在现代社会,高速率、高集成、高性能的 PLD 器件的需求高计算速率等领域得到大范 围的应用。PLD 的分类按不同的性能,也有不同的分类类型。如,按逻辑门数模分类有: 简单 PLD、复杂 PLD;从结构分类:乘积项结构器件、查找表结构器件;以及其他的分类 方式。总之,PLD 是一个大家庭,他们是速率的代表,根据不同的要求,选择合适的芯片 也是对能力,经验的考验。 CPLD、FPGA 等大规模逻辑器件在日常生活中逐步被人们所熟知,传统的标准集成电 路、接口电路和专用集成电路已经被它们逐步代替,这是技术发展的必然趋势 。在传统 微机系统中都是硬件接口芯片,在功能复杂,性能要求高的情况下,芯片会跟多更复杂, 而利用 CPLD 和 FPGA 可以将多个微机系统功能集成到芯片中。简化各功能块间的联系, 以最优化的连接方式连接各微机系统的功能,使功能块建的联系更紧凑,更方便,提高应 用的整体性能。这也是现代流行的“功能集成”化。 现代的通信系统应用追求是:更强的功能,更小的体积,更快的速度,更低的功耗, FPGA/CPLD 在各方面都满足通信系统的要求。总所周知,通信系统在人们生活,工作, 娱乐,军事雷达,等等方面都是起着必不可少的作用,高性能的通信系统也是人们追求的, 国家需要的。所以,在通信领域中大规模可编程逻辑器件已经取得了大规模的使用。 金陵科技学院学士学位第 2 章 EDA 技术简介 5 2.2 EDA 电子技术的背景 EDA 技术在现代高速开展的计算机行业中,因为 EDA 具有高度的电路集成化和系统电 子化,由于这些原因,产生了电子设计技术,正因为它的出现使得人们更容易自行设计电 子电路了,正因为 EDA 这种技术,使得电子,计算机,智能化技术集成化,正因为这种 原因,在各种电子通信方面都可以应用。 在现阶段,此应用主要应用于集成电路(integrated circuit)设计,印制电路(Printed Circuit Board)板的设计,电子线路的设计,而且应用范围正在扩大,应用与很多方面。目 前,正是由于电子线路设计和计算机技术的依赖,因此它在很多行业中应用很多,像航空 航天电子器件,精密仪器仪表,等等。在这些因素的推动下,EDA 的发展速度惊人,逐 步成为电子开发应用的领导者。 在 20 世纪后半世纪,由于迅速发展起来的电路集成化和系统电子化功能,电子技术 遇到了很多问题,正是因为电子开发周期的不断剪短,使得它与电路集成化技术随着时间 的增长,矛盾化越来越激烈。在这种情况下,就要有更新的设计措施和设计工具来处理这 些弊端,正是这个原因,EDA 就出现了。 2.3 EDA 技术发展史 从上世纪 90 年代初到现在的二三十年中,纵观这几年的电子设计发展,EDA 的发展 一共有三个阶段:20 世纪 70 年代先是有了 CAD,也就是计算机辅助设计;后来 20 世纪 80 年代发展到了 CAE,也就是计算机辅助工程;最后 20 世纪 90 年代有了 EDA,被称为 电子设计自动化。 一丶计算机辅助设计 CAD(ComputerAided Design)阶段 EDA 是从 1970 年开始发展的,这是一个电子设计的里程碑,在此之前,开发人员都 是通过非常烦的计算和绘图来对集成电路板和印制电路板进行描绘,而有了 CAD 后,我 们完全可以通过计算机来对集成电路板和印制电路板进行电脑测绘,操作。CAD 的出现, 使得开发时间和效率提高了很多,使开发者从原来繁琐的工作换为比较轻松一点的工作, 但是也有很多弊端,PCB 的布局布线和计算机密切相关,致使工作的局限性,所以使得非 常依赖于计算机平台。 二丶计算机辅助工程设计 CAE(ComputerAided Engineering)阶段 1980 年开始到 1990 年为 CAE 的发展时间点,而在那个时代 CAE 主要用于模仿逻辑 方面,按时定点剖析方面,缺点模拟仿真方面,主动布线和规划方面等等,如果说 CAD 的出现,使得开发时间和效率提高了很多,使开发者从原来繁琐的工作换为比较轻松一点 的工作,那么 CAE 工具则使得一些工作可以免去。然而, CAE 还有很多不足的地方,当 要处理复杂电子系统设计的时候,CAE 就不能解决。那么,就要一个新的技术来解决上面 的问题。EDA 就出现了。 金陵科技学院学士学位第 2 章 EDA 技术简介 6 三丶电子设计自动化 EDA(Electronic Design Automation)阶段 1990 年以前,设计师都是考虑如何合理的使用硬件和如何解决电子产品单一化的问 题,而 1990 年以后,设计师都是考虑如何合理的设计硬件,设计成功了电子产品系统化 (片上系统集成(IC)。而 90 年代的 EDA 工具不仅仅是就只在如何设计电路电路方面 下功夫,而是有了电子设计工艺化,使得开发更为简单,造福于电路设计开发师。可以说, 20 世纪 90 年代 EDA 技术的发展对电子设计起到了很大的作用。 2.4 Verilog HDL 语言 Verilog HDL 是一门硬件描述语言,主要应用于数字系统建模(从算法级、门级到开 关级的多种抽象设计层次)。而简单的门比被建模的数字系统对象更简单,完整的电子数 字系统比被建模的数字系统对象复杂。能够依据层次来对数字系统进行描述,并可进行时 序建模在相同描述中。 Verilog HDL 语言(标准的硬件描述语言)。它的特点如下: (1)是一门比较容易学习和使用的一款编程语言。 (2)使用该语言可以描述不同抽象层次即使在同一模块中。 (3)该语言可移植性比较好,可以在很多种逻辑编程编译器运行。 (4)通过制造商提供的工艺库(其中可以运行 Verilog HDL 语言)来进行仿真。 (5)该语言有强大的接口,程序员可以使用 C 语言来描述内部的数据结构。 正是以上优点,使得 Verilog HDL 语言广泛流行。 下面是 verilog 的设计流程 图 2.2 Verilog 设计流程图 功能设计 代码下载到硬件电路 完 成 用 Verilog 语言描述电路 结果满意 逻辑组合 软件模拟与仿真 N Y 金陵科技学院学士学位第 2 章 EDA 技术简介 7 2.5 QUARTUS 简介 2.5.1 Quartus II 基本信息 作为 Altera 公司的综合性 PLD/FPGA 开发软件,Quartus II 主要拥有的设计输入形式 有: 原理图、 VHDL、 VerilogHDL 以及 AHDL (Altera Hardware 支持 Description Language) 等。在这款开发软件中,自有的仿真器和综合器被内嵌其中。完整的 PLD 流程可以在这款 软件上面完成,包含了从输入的设计到硬件配置等具体流程。 2.5.2 Quartus II 简介 Quartus II 可以支持目前大多数的主流操作系统,如:Windows、Linux 或者 Unix。在 展现给用户完善的图形界面设计方式的同时,还可以使用 Tcl 脚本完成设计流程。拥有一 流的运行速度,高度的界面一致性,集成化的功能组合,低门槛、入门快等特点。 Altera 公司在开发 Quartus II 这款产品的时候,将 Altera IP 核包含于其中。同时,为了 简化用户的操作,减少设计的复杂度,缩减设计周期, LPM/MegaFunction 等宏功能模块 库也被 Quartus II 所包含。由于用户在不同的设计阶段因为需求的不同,可能对第三方 EDA 工具选择有所不同,所以,这款软件也提供了对第三方 EDA 开发工具的良好支持。 此外,通过和 DSP Builder、Matlab/Simulink 等工具软件配合使用,Quartus II 能够轻 易地做出不同功能需求的 DSP 应用系统。而作为一种综合性、多样性较强的开发平台, Quartus II 能够做到 Altera 的片上可编程系统(SOPC)开发并支持系统级设计、嵌入式软 件开发、可编程逻辑设计等。 简单易用的特点使得 Altera 的前一款优秀 PLD 开发设计软件:Maxplus II 被大众所接 受。但是,在 Maxplus II 已经被 Altera 公司终止了更新的情况下,Quartus II 与之比较不 单单支持了更加丰富的器件类型, 还对图形界面进行了优化并增加了用户的体验度。 Altera 公司在开发设计在 Quartus II 这款软件的时候,在其中内嵌了诸多如:SignalTap II、Chip Editor 和 RTLViewer 的辅助设计开发法工具, 在承载了 Maxplus II 的友好操作界面和易用 性的同时,SOPC 和 HardCopy 等知名设计流程被集成其中。 由于以上的种种优点,更多的数字系统开发者使用 Altera 公司推出的 Quartus II 作为 可编程逻辑设计环境。 2.5.3 Quartus II 功能 作为一款与电路结构低耦合性的开发环境, Quartus II 拥有数字逻辑设计工作中所需的 各种特点和功能,如下所示: (1) 通过原理图、结构框图、VerilogHDL、AHDL 和 VHDL 进行电路描述,同时把描 述内容按照设计的实体文件进行保存。; (2) 编辑并连线芯片(电路); (3) 用户可通过 LogicLock 增量设计方法建立和优化系统。然后,在对不影响初始系 统的性能基础下或影响较小的情况下,增加或删除模块; (4) 拥有突出的逻辑能力; 金陵科技学院学士学位第 2 章 EDA 技术简介 8 (5) 可以使用软件来仿真实现电路功能和时序逻辑功能; (6) 分析时序功能与分析关键路径延时; (7) 可对嵌入式进行基于 SignalTap II 工具的逻辑分析; (8) 通过链接手动添加和新建软件源的文件生成可编译文件; (9) 可以将程序一起编译,整体流程的设计能够一次性完成; (10) 对于编译出错处,可自主自动进行定位; (11) 在期间编程功能和功能验证上,效率高、功能强。 金陵科技学院学士学位第 3 章 基于 Verilog 音乐电路的总体设计 9 3 基于 Verilog 音乐电路的总体设计 3.1 设计原理 乐曲演奏的基本原理:音频和音长是演奏音乐的两个基本要数,音频指的是每个音符 的频率值,音长指的是一个音符持续的时间。通过对音频和音长的控制,从扬声器中演奏 出美妙的音乐。 3.1.1 音调的控制 音调的高低和频率的高低成正比关系。根据音乐的十二平均率所规定的:音每相差 8 度,则他们之间的频率相差一倍。而在他们之间,又可以把他们分为 12 个半音,他们互 相之间的频率比位 12 又根号 2.此外,低音 6 的频率位 440HZ,中音 1 和中音 2 之间、中 音 4 和中音 5 之间为半音,其余的均为全音。依据上面的关系,可以计算得出从低音 1 到 高音 7 的每个音符对应的频率,如表 3.1 所示: 表 3.1 简谱中的音名与频率的关系 为了方便起见,所有音名的频率(不同的频率)都是通过对一个基准频率分频得到的。 但是在上述计算所得的频率大多不为整数,但是分频系数又必须为整数,因此我们就必须 要将计算得到的分频数进行四舍五入操作。如果取的基准频率过大的话,使得分频系数过 大,使得数目过于庞大。如果取的基准频率过小的话,使得分频系数过小,使得通过四舍 五入操作的数字误差大。综合上述两大原因,首先将四舍五入操作的数字误差降到最低, 然后选择合适的基准频率。 在本次毕设中,经过严格的计算选择的基准频率为 6MHz。如果无法得到该频率,可 以选择分频操作来获取,或者另选合适的基准频率。事实上,只有确保音名间的频率相对 值保持不变,这样确保演奏出美妙的音乐,不至于乐曲跑调。本设计选取演奏的乐曲名为 梁祝,将本乐曲中的所出现的音符,通过计算将音符对应的频率和分频比绘成表格 3.2。 最后,为了使得偶次谐波分量输出量最小化,所以,输入到扬声器的波形位对称方波。 为了实现这个效果,在波形输入扬声器之前,就应该设置一个分频器,它的分频系数为 2. 在表 3.2 中,表中的分频比是根据 3MHz 频率(6MHz 分频)计算出来的。在表中分频数 音名频率 /HZ 音名频率 /HZ 音名频率 /HZ 低音 1261.6中音 1 523.3高音 11046.5 低音 2293.7中音 2587.3高音 21174.7 低音 3329.6中音 3659.3高音 31318.5 低音 4349.2中音 4698.5高音 41396.9 低音 5392中音 5784高音 51568 低音 6440中音 6 880高音 61760 低音 7493.9中音 7987.8高音 71975.5 金陵科技学院学士学位第 3 章 基于 Verilog 音乐电路的总体设计 10 最大就是 9102,因此我们可以使用 14 位二进制计数器进行分频。不同的计数器对应了不 同的预置数。我们也可以对预置数进行加载,使用这种方法,可以很大程度上节约资源, 使得更易于实现,如表 3.2 所示: 表 3.2 各音阶频率对应的分频比及预置数 同时, 将分频系数设为 0 就可以使得扬声器不发出声音, 从而达到了乐曲结束的效果。 3.1.2 音长的控制 首先估算出整个乐曲播放的速度,根据速度设置每个音节的节拍数,从而达到该音符 持续的时间。本设计中,以梁祝为播放曲目,曲目中 2 分音符在全部音符中是最短,假设 本曲目播放总的时间为 1s 的话,我们只需要通过对基准频率进行分频获取 2 Hz 的时钟频 率,就可以得到 2 分音符了。 如图 3.1 所示是音乐电路的原理图,在图中,通过对乐谱产生电路的控制,进而实现 对乐曲中的音调和音长进行控制。每个音调与计数器的预置数成正比关系,我们可以通过 对预置数的设置,从而达到对每个不同音调的控制。而每个音长与计数器的预置数持续时 间成正比关系, 我们可以通过对预置数持续时间的设置, 从而达到对每个不同音长的控制。 从而实现了播放音乐的效果。 如图 3.1 所示: 图 3.1 音乐电路原理图 音名分频比预置数音名分频比预置数 低音 391027281 中音 2511111272 低音 576538730中音 3455211831 低音 668189565中音 5382712556 低音 7607310310中音 6340912974 中音 1573610647高音 1286713516 金陵科技学院学士学位第 3 章 基于 Verilog 音乐电路的总体设计 11 3.2 音乐电路结构框图 本次设计的音乐电路是通过 verilog HDL 语言编程实现的, 通过 Quartus II 来进行仿真 实现演奏乐曲的功能。通过不停的改变信号频率的大小和音调持续的时间从而完成播放乐 曲的功能。程序流程图如图 3.2 所示: 图 3.2 音乐电路结构框图 对基准频率分频采用设置反馈预置计数器的方法,对 6MHZ 频率进行分频操作,将其 作为输出时钟信号。再对已经产生的频率进行分频操作,经过 2 倍分频后,将产生达到方 波信号输入扬声器演奏出乐曲。接下来就是对乐曲中的各个音频的不同,设置对应的分频 计数器的预置数。根据音长设置时长计数器的值,根据音调设置分频计数器的值。 3.3 74HC138 译码器 译码器的作用:就是将程序中的二进制代码编译成对应的高、低电平信号或者另一种 进制的代码。所以,译码器可以理为编码器的对立者。常见的译码器有二进制译码器、二 -十进制译码器和显示译码器。而本次设计中,我们主要运用显示译码器,通过对二进制 代码的编译,然后进而在数码管上进行显示。 3.3.1 七段字符显示器 为了将十进制数可以方便在数码管上显示,目前用的最多的数码管就是七段字符显示 金陵科技学院学士学位第 3 章 基于 Verilog 音乐电路的总体设计 12 器,也可以将其称为七段数码管。而它的内部其实就是由 7 根可以通电发光的电线拼接而 成。在七段字符显示器中运用的最多的就应该是液晶显示器和半导体数码管了。 根据半导体数码管的等效电路,我们可以发现半导体数码管的每个电线都是发光二极 管。而这种二极管和普通的常用二极管完全不同,它的材料是砷化镓等,它的浓度比常见 的硅浓度高很多。当在二极管两端加正向电压的时候,使得大量的载流电子在扩散中进行 复合,使得一些载流电子从导带流向了价带,使得其中的能量通过光对面进行释放,所以 说我们可以看到一些光。 数码管有 7 段数码管和 8 段数码管两种,8 段数码管比 7 段数码管多出一个二极管单 元,这个二极管是用于显示小数点的。 数码管也可以按照二极管的连接方式来区分,可以分为共阳极数码管和共阴极数码 管。 我们可以对半导体数码管进行编码,就可以在数码管上显示出 0-9 的数字,甚至更多 如果想要显示 0,以共阳极数码管为例,我们可以就将 g 和 dp 置为 0,其他都为 1。半导 体数码管外形图如下:图 3.3 图 3.3 半导体数码管外形图 共阳极数码管,我们可以将其可以理解为将所有的二极管的阳极全部连接到正极,形 成共阳极的数码管。如果想要将其中一个二极管通电发亮,我们可以对二极管的阴极段进 行操作。将二极管的阴极段置为低电平,那么,这个二极管就导通了。反之,将二极管的 阴极段置为高电平,那么,这个二极管就不导通了。如图 3.4 共阳极数码管内部图: 金陵科技学院学士学位论文第3章 基于Verilog音乐电路的总体设计 13 图 3.4 共阳极数码管内部图 共阴极数码管,我们可以将其可以理解为将所有的二极管的阴极全部连接到负极,形 成共阴极的数码管。如果想要将其中一个二极管通电发亮,我们可以对二极管的阳极段进 行操作。将二极管的正极段置为高电平,那么,这个二极管就导通了。反之,将二极管的 正极段置为低电平,那么,这个二极管就不导通了。如图 3.5 共阴极数码管内部图: 图 3.5 共阴极数码管内部图 下面在本设计引用了数码管常用码表,共阳极数码管常用码,见表 3.3;共阴极数码管常 用码,见表 3.3。 表 3.3 共阳极数码管常用码 16 进制码数码管显示内容16 进制码数码管显示内容 0xc000x808 0xf910x909 0xa420x88A 0xb030x83B 金陵科技学院学士学位论文第3章 基于Verilog音乐电路的总体设计 14 0x9940xc6C 0x9250xa1D 0x8260x86E 0xf870x8eF 下面在本设计引用了数码管常用码表,共阴阳极数码管常用码,见表 3.3;共阴极数码管 常用码,见表 3.4。 表 3.4 共阴极数码管常用码 16 进制码数码管显示内容16 进制码数码管显示内容 0x3f00x7f8 0x0610x6f9 0x5b20x77A 0x4f30x7cB 0x6640x39C 0x6d50x5eD 0x7d60x79E 0x0770x71F 3.3.2 数码管显示方式 通常来讲,数码管显示方式有两种:静态显示和动态显示。 本设计中运用的是动态显示。 (1) 静态显示:就是通过一个 I/O 口来控制其对应的一个单独的数码管,数码管上 的每个段码都由 I/O 口决定,显示亮度比较高。 优点:操作简单,只需要对 I/O 口进行直接的设置,就可以达到对数码管的显示操作。 缺点:当输入字型码后,显示出对应的数字,要想对其改变就一定要重新输入新字型 码,比较耗时。浪费资源,如果要同时对 6 个数码管进行控制,就需要 6*8=48 根 I/O 口来 进行驱动。 (2) 动态显示:将所有将要用到的数码管的段选线全部并联到一起。这样我们可以 通过对位码的控制来选择哪个数码管有效。我们可以进行动态扫描方法(就是按照顺序轮 流对数码管发送对应的位码和段码),利用人眼的滞留效果,实现数码管同时显示的功能。 优点:节约 I/O 资源。 缺点:灯光比较暗,操作复杂。 金陵科技学院学士学位论文第3章 基于Verilog音乐电路的总体设计 15 我们可以将数码管中的各个二极管各自连接到可编程逻辑器的 8 位 I/O 口上,比如 p2 口。我们可以控制 p2 口上 8 位 2 进制数置 0 或置 1。从而达到对数码管驱动的功能。 金陵科技学院学士学位论文第 4 章 程序设计与仿真 16 4 程序设计与仿真 4.1 仿真概述 仿真,也称模拟(simulation),专门用于间接检测电路设计的准确性。通过对电路设 计的仿真,可以获取很多已完成电路设计模块的诸多问题,并对原电路进行分析改进。对 电路的仿真是一种可靠,快速的方法,尤其对于检测大型的电路设计时。因此,仿真在电 路设计中起着至关重要的作用。 传统的硬件电路,如纯模拟或数字电路系统,他们的缺点就是不可以进行仿真操作, 只能在硬件上直接进行模拟操作。当在模拟操作时遇到问题,只能重新设计硬件,并做再 次模拟操作,直到成功。显然,芯片成千上万,如果每种芯片都进行这样的仿真操作,那 么会非常的耗人力物力。而先进的仿真工具可以帮助开发人员简单高效的完成测试这一工 作。 在实际的设计工作中,系统仿真是整个工作中非常重要的一环,本设计不需要做出实 物,只需要仿真结果,这样大大的节约了时间,也可以看到结果。通过仿真可以准确的看 出设计的成功与否和设计的不足。 本设计中,首先将程序导入编译器,进行语法判断,语法判断无误,进行运行测试, 测试无误后,得到仿真波形。 4.2 程序设计 图 4.1 系统框图 金陵科技学院学士学位论文第 4 章 程序设计与仿真 17 4.2.1 程序分频模块 1)48MHz 分频成 12MHz 波形分频器程序: 2)分频模块图: 图 4.2 12MHz 分频图 3)仿真波形 图 4.3 分频模块图 金陵科技学院学士学位论文第 4 章 程序设计与仿真 18 4.2.2 音乐产生模块 1) song 模块源代码和顶层模块程序如下: /音乐产生模块 2)音乐产生模块图 图 4.4 音乐产生模块图 金陵科技学院学士学位论文第 4 章 程序设计与仿真 19 3)音乐产生模块仿真波形 图 4.5 音乐产生模块仿真图 4.2.3 显示模块 1)disp:显示模块,每位输出转换为七段数码管显示。源代码和顶层模块如下: /动态数码管显示模块 moduledisp(duan,clk_1khz,seg); input 7:0duan; input clk_1khz; output 7:0seg; reg 7:0seg; always (posedgeclk_1khz) begin case(duan) 1:seg=8b11111001; 2:seg=8b10100100; 3:seg=8b10110000; 4:seg=8b10011001; 5:seg=8b10010010; 6:seg=8b10000010; 7:seg=8b11111000; default: seg=8b11111001; 金陵科技学院学士学位论文第 4 章 程序设计与仿真 20 endcase end Endmodule 2)动态数码管显示模块图 图 4.6 动态数码管显示模块图 3)动态数码管显示模块仿真波形 图 4.7 动态数码管显示模块图 4.2.4 音频发生器模块 1)音频发生器模块代码: module F_CODE(INX,CODE,H,TO);/定义音频发生模块 input3:0INX;/输入信号 INX output6:0CODE;/输出信号 CODE output 2:0H;/输出信号 H output10:0TO;/输出信号 TO 金陵科技学院学士学位论文第 4 章 程序设计与仿真 21 reg10:0TO;/定义 11 位一个模块内部缓存变量 TO reg6:0CODE;/定义 7 位一个模块内部缓存变量 CODE reg 2:0H;/定义 3 位一个模块内部缓存变量 H always(INX)/执行语句 begin case(INX)/译码电路,查表方式,控制音量与预制 0:begin TO=11H7FF;CODE=0 ;H=0;end 1:begin TO=11H305;CODE=7B0110000;H=3B110;end/低音 1,数码管显示 1 2:begin TO=11H390;CODE=7B1101101;H=3B110;end/低音 2,数码管显示 2 3:begin TO=11H40C;CODE=7B1111001;H=3B110;end/低音 3,数码管显示 3 4:begin TO=11H45C;CODE=7B0110011;H=3B110;end/低音 4,数码管显示 4 5:begin TO=11H4AD;CODE=7B1011011;H=3B110;end/低音 5,数码管显示 5 6:begin TO=11H50A;CODE=7B1011111;H=3B110;end/低音 6,数码管显示 6 7:begin TO=11H55C;CODE=7B1110000;H=3B110;end/低音 7,数码管显示 7 8:begin TO=11H582;CODE=7B0110000;H=3B101;end/中音 1,数码管显示 1 9:begin TO=11H5C8;CODE=7B1101101;H=3B101;end/中音 2,数码管显示 2 10:begin TO=11H606;CODE=7B1111001;H=3B101;end/中音 3,数码管显示 3 11:begin TO=11H640;CODE=7B0110011;H=3B101;end/中音 4,数码管显示 4 12:begin TO=11H656;CODE=7B1011011;H=3B101;end/中音 5,数码管显示 5 13:begin TO=11H684;CODE=7B1011111;H=3B101;end/中音 6,数码管显示 6 14:begin TO=11H69A;CODE=7B1110000;H=3B101;end/中音 7,数码管显示 7 15:begin TO=11H6C0;CODE=7B0110000;H=3B100;end/高音 1,数码管显示 1 default:begin TO=11H6C0;CODE=7B0110000;H=3B000;/如果 错误显示高音 1,数码管 o 显示 end endcase end 2)音频发生器模块 图 4.8 音频发生器模块 金陵科技学院学士学位论文第 4 章 程序设计与仿真 22 3)音频发生器模块仿真器 图 4.9 音频发生器模块 4.2.5 总体电路图 图 4.10 音乐电子电路总体模块框图 4.3 结果分析 通过对音频和音长的合理设置后,启动程序,可以听到美妙的乐曲声。从而达成了本 次设计的目的。 金陵科技学院学士学位论文第 5 章 结论 23 5 结 论 EDA 技术在现代高速开展的计算机行业中,因为 EDA 具有高度的电路集成化和系统 电子化,由于这些原因,产生了电子设计技术,正因为它的出现使得人们更容易自行设计 电子电路了,正因为 EDA 这种技术,使得电子,计算机,智能化技术集成化,正因为这 种原因,在各种电子通信方面都可以应用。所以,EDA 在现代计算机行业中非常流行,作 为电子信息工程学院的学生,学好 EDA 这门课非常重要。 本次设计,我觉得最重要的部分就是如何设置音长和音频的问题,还有就是对常 见的 48HZ 频率进行分频操作(注意时序的问题)。一开始,就怕声音在测试时失真,本 次设计是通过 Quartus II 仿真,从我所的得到的测试结果来看,对实验的效果还算满意。 但是程序和模块还有很大要改进的地方,比如连续音频差不多的音符出现,音乐的失真效 果会明显。还有,随着音符越来越复杂,程序的复杂度也加大,如果要演奏很长的乐曲, 那么对音符的初始化设置程序的代码量会非常的多。对于这个问题,我想可以将一些已经 实现演奏乐曲的代码存入一个固定的内存中,这样就不需要每次都输入程序了。正是由于 该设计将所有的实现功能模块集成到 Verilog 芯片的核心上, 从而使得外部电路的复杂度降 低很多,因此芯片的品种也少了很多,使得芯片兼容性好。使得芯片物理空间小,使得系 统的整体性能大大增强很小的故障率。除此以外,这种通过将 VHDL 硬件描述语言植入到 可编程逻辑器件的设计,在每个测试阶段都需要不同层次的计算机来进行测试,使得软件 仿真的准确性大大的提高, 使得设计成本和缩短设计周期大大的减少, 因此 Verilog 还有很 大的前景。 通过这次设计,我知道了是在理论知识和实践的结合是很重要的,仅仅有理论知 识, 而没有很强的动手能力是不行的。 本次设计最重要的就是如何准确的设置音频和音长, 音频和音长是演奏音乐的两个基本要数,音频指的是每个音符的频率值,音长指的是一个 音符持续的时间。通过对音频和音长的控制,从扬声器中演奏出美妙的音乐。然后,对大 学中所学的 Verilog hdl 语言,EDA 课程,数字电路等科目进行系统的复习并且进行实践应 用。并且对我的论文课题内容进行模块化处理,易于以后的工作。通过设计程序和调试程 序,在电脑上仿真出结果,实现音乐电路播放音乐的功能。 通过本论文课题,使得学生将以前大学中学的专业课知识进行整理运用,提高学生这 方面的能力。另外通过查找文献,使得学生接触到未学过的东西,并且将中间一些东西转 化位自己的东西;在设计中培养学生遇到问题并解决问题的能力;通过撰写论文,锻炼学 生按规范要求完成论文的能力。总之,通过这次设计,我学到了很多。 金陵科技学院学士学位论文参考文献 24 参考文献 1.黄仁欣.EDA 技术实用教程M.清华大学出版社(第一版),2006. 2.王松武,于鑫,武思军.电子创新设计与实践M.国防工业出版社(第一版),2005. 3.谭会生,瞿遂春.EDA 技术综合应用实例与分析J.西安电子科技大学出版社(第一 版),2004. 4.潘松,黄继业.EDA 技术实用教程M.科学出版社(第十二版),2005. 5.刘常澍,赵雅兴.数字电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论