FPGA课程设计(最终版)_第1页
FPGA课程设计(最终版)_第2页
FPGA课程设计(最终版)_第3页
FPGA课程设计(最终版)_第4页
FPGA课程设计(最终版)_第5页
免费预览已结束,剩余26页可下载查看

下载本文档

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

文档简介

1、课程设计任务书学生姓名:专业班级:指导教师:工作单位: 信息工程学院题 目 : 电子琴的设计课程设计目的: FPGA 原理与应用课程设计的目的是为了让学生熟悉基于 VHDL 语言进行 FPGA 开发的全流程,并且利用 FPGA 设计进行专业课程理论知识的再现,让学生体会 EDA 技术的强大功能,为今后使用 FPGA 进行电子设计奠定基础。课程设计内容和要求设计内容:(1)设计一个八音电子琴。(2)由键盘输入控制音响,同时可自动演奏乐曲。(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已 存入的乐曲。要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所

2、涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩时间安排:序号阶段内容所需时间1方案设计1天2软件设计2天3系统调试1天4答辩1天合计5天指导教师签名: 年 月 日系主任(或责任教师)签名:目录摘 要 3Abstract 41 设计意义和要求 51.1 设计意义 51.2 功能要求 52 方案论证及原理分析 62.1 实现方案比较 62.2 乐曲实现原理 62.3 系统组成及工作原理 93 系统模块设计 103.1 顶层模块的设计 103.2 乐曲自动演奏模块的设计 113.3 音阶发生器模块的设计 113.4 数控分频器模块的设计 124 程序设计 134.1VHDL设计

3、语言和 ISE 环境简介 134.2 顶层模块的程序设计 144.3 乐曲自动演奏模块的程序设计 154.4 音阶发生器模块的程序设计 164.5 数控分频模块的程序设计 165 设计的仿真与实现 175.1 乐曲自动演奏模块仿真 175.2 音调发生模块仿真 205.3 数控分频模块仿真 215.4 电子琴系统的仿真 225.5 设计的实现 245.6 查看 RTL视图 245.7 查看综合报告 276心得体会 错误! 未定义书签。7参考文献 错误! 未定义书签。8附录 错误! 未定义书签。摘要随着基于 FPGA的 EDA技术的发展和应用领域的扩大与深入, EDA技术在电 子信息、通信、自动

4、控制用计算机等领域的重要性日益突出。 EDA技术就是以计 算机为工具, 设计者在 EDA软件平台上, 用硬件描述语言 HDL完成设计文件, 然 后由计算机自动地完成逻辑编译、 化简、分割、综合、优化、布局、布线和仿真, 直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。利用 EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统, 大量工作可以通过计算机完成, 并可以将电子产品从电路设计、 性能分析到设计 出 IC 版图或 PCB版图的整个过程的计算机上自动处理完成。此次设计主要是基于 VHDL文本输入法设计乐曲演奏电路, 运用 VHDL语言对 简易电子琴的各个模块进行设计,

5、并使用 EDA工具对各模块进行仿真验证。 该系 统基于计算机中时钟分频器的原理, 采用自顶向下的设计方法来实现, 通过按键 输入来控制音响或者自动演奏已存入的歌曲。 系统由乐曲自动演奏模块、 音调发 生模块和数控分频模块三个部分组成。 选择手动弹奏模式按键时, 按下音符键后 就会选通相应的频率输出; 选择自动演奏模式按键时, 储存器会将编写好的音符 信息依次取出, 去选通各个对应的频率输出, 实现自动演奏。 系统实现是用硬件 描述语言 VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验 证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时 序仿真)。关键词: E

6、DA,VHDL,电子琴,自动演奏AbstractWith the expansion and further FPGA-based EDA technology development and applications, the importance of EDA technology in the field of electronic information, communication, computer and other automatic control have become increasingly prominent. EDA technology is to the com

7、puter as a tool designer in the EDA software platform, hardware description language HDL complete the designt hen automatically done by computer logic compilation, simplification, segmentation, integration, optimization, placement, routing and simulation, until for specific target chip adapter compi

8、lation, mapping and logic programming download work.Use of EDA tools, electronic designers from concept, algorithms, protocols, and so began the design of electronic systems, a lot of work can be done by computer and electronic products can be from the circuit design, performance analysis to the ent

9、ire process of IC layout design or layout of the PCB automatic processing is completed on the computer.The design is mainly based on VHDL text input music performance circuit design, each module using VHDL language of simple flower design, and the use of EDA tools for simulation of each module. The

10、system is based on the principle of the computer clock divider, using top-down design approach to achieve, through the key input to control the sound or song to automatically play has been deposited. System from automatically playing music module, tone generator module and NC divider module three pa

11、rts. When you select the manual mode after the play button, it will note is pressed the corresponding frequency strobe output; Select Auto Play mode button, the reservoir will be removed in order to write good music information, each corresponding to the frequency of the strobe output, automatic pla

12、ying. System implementation is hardware description language VHDL by a modular approach to design, and then programming, timing simulation, circuit functional verification, play wonderful music (of course, due to constraints, they will not perform functional verification, and timing simulation progr

13、am only) .Key words: EDA, VHDL, electronic organ, automatic play1 设计意义和要求1.1 设计意义电子琴作为音乐与科技的产物, 在电子化和信息化的时代, 为音乐的大众化 做出了很大的贡献, 歌曲的制作大多数都要由电子琴来完成, 然后通过媒介流传 开来,电视剧和电影的插曲、电视节目音效、甚至手机铃声,都很可能包含电子 琴的身影。电子琴是数字电路中的一个典型应用。 然而在实际的硬件设计中用到的器件 非常多,连线比较复杂,同时会产生比较大的延时,从而造成测量误差较大,可 靠性不好。以 EDA 工具作为开发手段,运用 VHDL 硬件描述语

14、言可以使使整个 系统大大简化,提高了电子琴整体的性能和可靠性。1.2 功能要求1)设计一个八音电子琴;2)由键盘输入控制音响,同时可自动演奏乐曲;3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或 者已存入的乐曲。2 方案论证及原理分析2.1 实现方案比较方案一:采用数字逻辑电路制作,用 IC 拼凑焊接实现。其特点是直接用现 成的 IC 组合而成,简单方便,但本系统需用到许多分频器,这就使得需要用到 相当多的 IC,从而造成了体积过于庞大,而且连线也会比较复杂。方案二:由单片机来完成设计。 可用单片机控制键盘的输入, 以及产生相应 的频率信号作为输出。 目前,单片机的功能已比较

15、强大, 集成度日益增高且其设 计和控制比较容易。 但是由于在传统的单片机设计系统中必须使用许多分立元件 组成单片机的外围电路, 如锁存器, 译码器等都需要单独的电路, 因此整个系统 显得十分复杂, 抗干扰性差,在运行过程中容易死机或进入死循环, 可靠性降低, 而功耗费用增高。方案三 :采用可编程逻辑器件( FPGA)来完成该设计,将所有器件集成在一 块芯片上,大大减小了电子琴的体积,可靠性和精度都比较好。用VHDL编程实现时更加方便,而且易于进行功能扩展,并可调试仿真,制作时间大大缩短。综合分析后我认为,方案三采用 FPGA的方法来实现,不仅可以实现按键播 放音乐和自动播放音乐的要求, 有较高

16、的灵敏度和可靠性。 并且原理方法和模块 结构清晰,制作方案比较容易实现,所以我采用方案三作为具体实现方案。2.2 乐曲实现原理乐曲都是由一连串的音符组成, 按照乐曲的乐谱依次输出这些音符所对应的 频率,就可以在扬声器上连续地发出各个音符的音调。 为了准确地演奏出一首乐 曲,仅仅让扬声器能够发出声音是远远不够的,还必须准确地控制乐曲的节奏, 即每个音符的持续时间。 由此可见, 乐曲中每个音符的发音频率以及音符持续的 时间是乐曲能够连续演奏的两个关键因素。乐曲的 12 平均率规定:每 2 个八度音之间的频率要相差 1 倍,比如简谱中 的中音 2与高音 2。在 2个八度音之间,又可分为 12个半音。

17、另外,音符 A(简 谱中的低音 5)的频率为 392Hz,音符 E到F之间、B到 C之间为半音,其余为全 音。由此可以计算出简谱中从低音 l 至高音 1 之间每个音符的频率。简谱音名与频率对应关系如表 2-1 所示:音名频率/Hz音名频率/Hz音名频率/Hz低音 1262中音 1523高音 11047低音 2296中音 2587高音 21175低音 3330中音 3659高音 31319低音 4350中音 4698高音 41397低音 5392中音 5784高音 51568低音 6440中音 6880高音 61760低音 7494中音 7988高音 71976表 2-1 简谱音名与频率的对应关

18、系使用一分频器来产生各音符所需的频率, 但由于各音符对应的频率多为非整 数,而分频系数又不能为小数,所以必须将计算得到的分频数四舍五入取整数。 若分频器时钟频率过低,则由于分频系数过小,四舍五入取整数后的误差较大; 若时钟频率过高, 虽然误差变小, 但分频数将会变大。 在实际的设计中应综合考 虑这两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。实际上, 只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。设计的音乐电子琴选取 32MHZ 的系统时钟频率。在数控分频器模块,首先 对时钟频率进行 4 分频,得到 8MHZ 的输入频率,然后再次分频得到各音符的频率。由于数控分频

19、器输出的波形是脉宽极窄的脉冲波, 为了更好的驱动扬声器 发声,在到达扬声器之前需要均衡占空比, 从而生成各音符对应频率的对称方波 输出。这个过程实际上进行了一次二分频,将脉冲展宽。因此,分频系数的计算可以按照下面的方法进行。 以中音 1 为例,对应的频 率值为 523Hz,它的分频系数应该为:至于其他音符, 可由上式求出对应的分频系数, 这样利用程序可以很轻松地 得到相应的乐声。各音名对应的分频系数如表 2-2 所示:音名频率/Hz分频系数音名频率/Hz分频系数中音 15237648高音 110473820中音 25786920高音 211753404中音 36596069高音 3131930

20、32中音 46985730高音 413972863中音 57845102高音 515862522中音 68804545高音 617602272中音 79884048高音 719762024低音 539210204低音 64409090表 2-2 各音名对应的分频系数音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。 因此,要控 制音符的音长, 就必须知道乐曲的速度和每个音符所对应的节拍数。 如果将全音 符的持续时间设为 1s的话,那么一拍所应该持续的时间为 0.25 秒,则只需要提 供一个 4HZ 的时钟频率即可产生四分音符的时长。至于音长的控制, 在自动演奏模块, 每个乐曲的音符是按地

21、址存放的, 播放 乐曲时按 4HZ 的时钟频率依次读取简谱,每个音符持续时间为 0.25 秒。如果乐 谱中某个音符为三拍音长, 那又该如何控制呢?其实只要在 3 个连续地址存放该 音符,这时就会发三个 0.25 秒的音长,即持续了三拍的时间,通过这样一个简 单的操作就可以控制音长了。2.3 系统组成及工作原理2.3.1 系统组成整个系统由乐曲自动演奏模块、 音调发生器模块和数控分频器模块三个部分 组成。乐曲自动演奏模块又包含了键盘的编码,并且设置了一个自动演奏/键盘输入切换 auto。乐曲自动演奏模块的作用是产生发声控制输入信号。 音调发生器 根据发声控制输入产生获得音阶的分频预置值(即分频系

22、数) 。数控分频器根据 分频预置值对 FPGA 的基准频率进行分频, 得到与各个音阶对应的频率输出。 系 统组成框图如图 2-1 所示。图 2-1 系统组成框图2.3.2 系统工作原理系统的基准时钟脉冲为 32MHz ,所以在本设计中需要将其进行分频,以得 到所需要的脉冲来发出相应的音符。 键盘输入一共有 9个按键,除了 8 个音符对 应的按键之外,还设置一个自动演奏 / 键盘输入切换 auto,它不是一个单独的模 块,它和其他按键一起包含在乐曲自动演奏模块中,作用相当于一个开关。当 auto=“ 0”时,选择自动演奏音乐存储器里面的乐曲,自动演奏模块以4Hz的频率输出 8位发声控制输入信号,

23、 再送入音调发生器。 当 8位发声控制输 入信号中的某一位为高电平时,则对应某一音阶的数值将在端口 tone 输出,该 数值即为该音阶的分频预置值, 音调发生器还输出音符显示信号、 高低音显示信 号。最后由数控分频模块按照音调发生器输出的分频预置值进行分频, 得到存储 的乐曲的音符的频率,之后由扬声器输出对应的声调。auto=“1”时,选择键盘输入的信号, 8 个按键分别对应 8个音符,自动演 奏模块将按键输入转化为 8 位发声控制输入信号送入音调发生器, 最后通过数控 分频模块得到按键对应的音符的频率,之后由扬声器输出对应的声调。3 系统模块设计3.1 顶层模块的设计VHDL 采 用的是自顶

24、向下的设计方式,顶层模块由 乐曲自动演奏 ( automusic),音调发生器( tone)和数控分频器( speaker)三个模块组成。其 中乐曲自动演奏部分( automusic)又包括了键盘编码,还设置了一个自动演奏 / 键盘输入切换 auto,即当 auto=“0”时,选择自动演奏音乐存储器里面的乐曲, auto=“1”时,选择由键盘输入的信号,再对其进行编码。两种情况下输出的都 是八位二进制数,对应音调发生器的输入。图 3-1 即是顶层模块设计原理图。图 3-1 顶层模块设计原理图3.2 乐曲自动演奏模块的设计为了实现电子琴的功能要求, 需要设计一个自动演奏模块, 该模块的作用是 产

25、生 8 位发声控制输入 index。当 auto为“ 0”或“ 1”时可以选择自动演奏或者 键盘输入,如果 auto为“0”,则由存储在此模块中的 8 位二进制数来作为发声 控制输入 index,由此便可自动演奏乐曲;当 auto 为“ 1”时,则由键盘的输入 转化为 8 位 2 进制数作为发声控制输入 index。此模块的 VHDL 语言中包括三个 进程,首先是对基准脉冲进行分频得到 4Hz 的脉冲,作为第二个进程的时钟信 号,它的目的是控制每个音阶之间的停顿时间,此处便是1/4=0.25s;第二个进程完成自动演奏部分乐曲的地址累加; 第 3 个进程是输出存储的自动演奏的乐曲 或键盘输入的发

26、声控制输入 index。乐曲自动演奏模块如图 3-2 所示。图 3-2 乐曲自动演奏模块3.3 音阶发生器模块的设计音阶发生器的作用是产生获得音阶的分频预置值。 当 8位发声控制输入 index 中的某一位为高电平时,则对应某一音阶的数值将以端口tone 输出,作为获得该音阶的分频预置值,该值作为数控分频器的输入, 来对4MHz 的脉冲进行分频, 由此得到每个音阶相应的频率, 例如输入 index="00000010",即对应的按键是 2, 产生的分频系数便是 6920 由 code输出对应该音阶简谱的显示数码;由 high 输 出指示音阶高 8 度的显示,高电平有效。音阶

27、发生器如图 3-3 所示。图 3-3 音阶发生器模块3.4 数控分频器模块的设计数控分频模块的目的是对基准脉冲分频,得到 0,1,2,3,4,5,6,7 七个音符对应频率。该模块的 VHDL 描述中包含了三个进程。首先对 32MHz 的基准脉冲进行分频得到 8MHz 的脉冲,然后按照 tone1 输入的分频系数对 8MHz 的脉冲再次分频,得到的便是所需要的频率。 而第三个进程的作用是在音调输出时再进行二分频,将脉冲展宽,以使扬声器有足够功率发音图 3-4 数控分频器模块4 程序设计4.1VHDL 设计语言和 ISE 环境简介4.1.1VHDL 语言简介VHDL 是超高速集成电路硬件描述语言,

28、是一种用于电路设计的高级语言。 它出现于 80 年代后期,最初是由美国国防部开发出来的,是为了供美军用来提 高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL 主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在 FPGA/CPLD/EPLD 的设计中,同时也被一些实力较为雄厚的单位用来设计 ASIC。VHDL 具有多层次描述系统硬件功能的能力, 支持自顶向下和基于库的设计 特点。其开发流程: 在顶层用方框图或硬件语言对电路的行为进行描述后, 进行 系统仿真验证和纠错。再用逻辑综合优化工具生成具体的门级逻辑电路的网表。 然后通过适配器将网表文件配置于指定的目标器件, 产

29、生最终下载文件或配置文 件。最后把适配后生成的下载或配置文件通过编程器或编程电缆下载到具体的FPGA/CPLD 器件中去,以便进行硬件调试和验证,而实现可编程的专用集成电 路 ASIC 的设计。VHDL 主要用于描述数字系统的结构, 行为,功能和接口。 除了含有许多具 有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的 计算机高级语言。 VHDL 系统设计与其他硬件描述语言相比, VHDL 具有更强的 行为描述能力, 从而决定了他成为系统设计领域最佳的硬件描述语言。 强大的行 为描述能力是避开具体的器件结构, 从逻辑行为上描述和设计大规模电子系统的 重要保证。4.1.

30、2 Xilinx ISE 简介Xilinx 是最大的 FPGA/CPLD 生产商之一,其设计开发的软件也不断升级 换代,已从 Foundation系列发展到目前的 ISE 13.x 系列。 ISE(Integrated System Configuration )是集成综合环境的简称,是 Xilinx 提供的一套工具集,其集成的 设计工具可以完成整个 FPGA/CPLD 的开发过程。ISE 具有强大辅助功能, 在编写代码时可以使用编写向导生成文件共和模块 框架,也可使用语言模板( Language Templates)帮助编写代码。在图形输入时 可以使用 ECS 的辅助项帮助设计原理图。另外,

31、 ISE 的 Core Generator 和 LogiBLOX 工具可以方便地生成 IP Core (IP 核)与高效模块为用户所用, 大大 减少了设计者的工作量,提高了设计效率与质量。ISE 通过改进综合、 实现等关键环节的优化手段与方法, 提高了设计的工作 速度,减小了设计消耗的面积, 使设计结果能更好地调动芯片的内部资源, 工作 更高效。4.2 顶层模块的程序设计顶层模块( top)是整个电子琴设计的核心,也是 VHDL 程序的主程序,其 他三个子模块的源程序都是作为子程序分别实现电子琴的某一功能, 而顶层模块 则通过调用子程序最终实现乐曲演奏的目的,奏出美妙的乐曲。利用 VHDL 语

32、 言 COMPONENT 将三个模块组合起来,其中 3 个模块和顶层模块的输入输出是设计时采用自顶而下的设计方法,其软件流程图如图 4-1 所示图 4-1 顶层模图会根据 clk2 时钟输出 8位 发声控制的地址累加。在 址输出存储的乐 声控制输入 程中判断为键盘 输入按键对应的 制输入 index。软4.3 乐曲自动演奏模块的程序设计该模块的 VHDL 源程序主要由 3 个工作进程组成, 分别为 PULSE0,MUSIC和COM1。PULSE0的作用是判断自动演奏(键盘输入)的值 0或(1),若为 0则要将系统时钟进行 8M 的分频,得到 4Hz 的信号 clk2。如果产生了 clk2,那么

33、第二个进程 MUSIC 就 完成自动演奏部分乐曲 第三个进程中就根据地 曲对应的音符的 8 位发 index,如果在第一个进 输入,在此进程中就将 音符转化为 8 位发生控 件流程图如 4-2 所示。图 4-2 乐曲自动演奏模块流程图4.4 音阶发生器模块的程序设计音阶发生器模块的作用是产生音阶的分频预置值。该模块的唯一输入信号 INDEX 对应就是自动模块中最后的输出 INDEX0 。音符显示信号 CODE,高低 音显示信号 HIGH 和音符分频系数 TONE 都是根据音符输入确定的。比如我们 自定义 INDEX 第 1 位为高电平时,它的分频系数则为 6920,音符显示信号为 001001

34、0,此时高低音显示 0 表示非高音。部分源程序如下:CASE INDEX ISWHEN"00000010"=>TONE0<=6920;CODE<="0010010"HIGH<='0'-音符第 1 位为 1,分频系数为 6920,音符显示为 0010010,属非高音WHEN"01000000"=>TONE0<=4048;CODE<="0001111"HIGH<='0'WHEN OTHERS =>TONE0<=8191;CODE

35、<="0000001"HIGH<='0'显然,该模块最主要的作用就是给音符输入预设频率值, 因为,电子琴最终 实现乐曲演奏就是输出不同频率的声波, 此模块就是将二进制发声信号转化为对 应分频系数。4.5 数控分频模块的程序设计该模块的 VHDL源主要由 3 个工作进程组成。首先,第一个进程根据系统时 钟信号的输入进行 4 分频得到预分频时钟脉冲。 第二个进程是此模块的核心, 即 按照 tone1 输入的分频系数对 8MHz的脉冲再次分频,得到所需要的音符频率。第三个进程是在音调输出时再进行二分频, 将脉冲展宽, 使扬声器有足够发声功 率。软件流程

36、图如图 4-3 所示。图 4-3 数控分频模5 设计的仿块流程图真与实现5.1 乐曲自动演奏模块仿真( 1)创建 Testbench 波形源文件在仿真前,首先创建一个 Testbench源文件。选择 Project->New Source., 选 择文件类型为 Test Bench Waveform,键入文件名“ Testautomusic”,单击“ Next”, 在本步骤中可以将波形文件与 automusic.vhd 文件进行关联, 如图 5-1 所示。继 续单击“ Next”直到完成。此时,HDL Bencher 程序启动,如图 5-2 所示,可以选择哪一个信号是时钟 信号并可以输入

37、所需的时序需求,系统时钟信号为 32MHz,但是由于限制只能选择时钟周期为 32ns,因此仿真时时钟信号为 31.25MHz。图 5-2 仿真时间参数设置这时出现了如图 5-3 所示的波形图, 可以单击波形图中的蓝色方块来设置波形电平的高低,并可以拉动仿真时间线。此时设置 Auto=“0”,选择自动演奏。单击 Sourcese 窗口中的 testbench,则在 Processes 窗口中显示 Xilinx ISESimulator 工具栏,扩 展开后,右键 单击 Simulator Behavioral Model,选择Properties, 对 Simulation Run Time 输入

38、 10000ns,单击 OK 按钮 , 如图 5-4 所 示。双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真, 在右方窗口弹出仿真结果的波形,如图 5-5 所示盘 输 入 信 号 INDEX2 为0x00。从图中可以看出,输出 INDEX0 是程序中存储的乐曲的音符。若将 ATUO 设为1,并设置相应的键盘输入 INDEX2 ,进行仿真如图 5-6所示,输出 INDEX0 与键盘输入相同,符合设计要求。(由于输入频率太高,实验条件所限,如按 源程序仿真将看不到输出波形,因此将原脉冲的分频点 4000000和8000000改为 4 和8)图

39、 5-6 仿真结果示意5.2 音调发生模块仿真( 1)创建 Testbench波形源文件新建一个 Testbench波形源文件,并与 tone.vhd 文件关联,出现如图 5-7 所 示的波形图。单击波形图中的蓝色方块来设置音符输入信号 INDEX电平的高低, 设置音符输入 INDEX7:0 从 0x01到 0x80。图 5-7 HDL Bencher 中输入波形的设置2)设计的仿真双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真, 在右方窗口弹出仿真结果的波形,如图 5-8 所示。图 5-8 仿真结果及示意3)仿真结果分析由仿真结果图可以

40、看出,当音符输入信号 INDEX7:0 为 00000001 时,输出 分频系数 TONE0 为 7648,输出音符显示信号 CODE6:0为 1001111,高低音显示 信号 HIGN 为 0。并且随着音符输入信号 INDEX7:0 的改变,输出信号按照程序 设定改变,符合设计要求。5.3 数控分频模块仿真( 1)创建 Testbench波形源文件新建一个 Testbench波形源文件,并与 speaker.vhd文件关联,出现如图 5-9 所示的波形图。系统时钟信号为 32MHz,但是由于仿真限制只能选择时钟周期为 100ns,并且只能设置分频系数为 TONE10:2047。图 5-9 H

41、DL Bencher中输入波形的设置2)设计的仿真设置分频系数为 4, TONE1 取值为 3,双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真,在右方窗口弹出仿真结果的波形,如图 5-10 所示。图 5-10 仿真结果及示意3)仿真结果分析由仿真结果图可以看出, 系统时钟首先被 4 分频,然后根据分频系数再次分 频。此时分频系数为 4,进行 4 分频。最后进行二分频,将脉冲展宽,以使扬声 器有足够功率发音。图中输出 SPKS的周期为 CLK1 的 32倍,频率是 CLK1 的1/32。5.4 电子琴系统的仿真( 1)创建 Testbenc

42、h波形源文件新建一个 Testbench波形源文件,并与 top.vhd 文件关联,系统时钟信号为 32MHz,但是由于限制只能选择时钟周期为32ns ,因此仿真时时钟信号为31.25MHz。这时出现了如图 5-11 所示的波形图,可以单击波形图中的蓝色方块来设置 波形电平的高低, 并可以拉动仿真时间线。 此时设置 Auto=“ 1”,选择键盘输入。 再设置键盘输入 INDEX17:0 为 00010000。图 5-11 HDL Bencher 中输入波形的设置(2)设计的仿真单击 Sourcese 窗口中的 testbench,则在 Processes 窗口中显示 Xilinx ISE Si

43、mulator 工具栏,扩 展开后,右键 单击 Simulator Behavioral Model,选择双击 Processes 窗口中的 Simulate Behavioral Model 对设计进行仿真, 在右方窗口弹出仿真结果的波形,如图 5-13 所示。按照设置输入系统时钟信号 CLK 为31.25MHz,AUTO 设为 1,键盘输入信 号 INDEX1 为 00010000。从图中可以看出,输出音符显示信号 CODE为 0100100,表示为中音 5,高低音显示信号为 0,表示为非高音。可以看出输出音频信号周期为 s,因此可以计算出音频信号频率约 768Hz,与中音 5 的频率 7

44、84Hz相差不大,设计符合要求。当 AUTO设置为 1时,可以按照程序存 储的曲目以 4Hz为节拍输出音频信号,也符合要求。5.5 设计的实现( 1)在工程的 Sources 窗口, Sources for 选择 Synthesis/Implementation,并单 击工程的顶层文件 top.vhd。( 2)在在工程的资源操作窗( Processe)s,双击 Implement Design。( 3)当实现设计(Implement Design)运行的过程中,展开实现(Implement Design) 的步骤,会看到实现过程中,首先是进行综合( Synthesis),然后才依次完成实 现的

45、步骤。 当完成相关操作后, 在每个操作步骤前会显示一个小图标, 表示该步 骤的完成情况。(4)当完成这些操作步骤后,生成相应的操作报告供查看。实现操作完成后, 再看 design utilization 的 Design Summary 窗口,如图 5-14 所示。此窗口中的信息包括资源利用率,在调试的过中很重要5.6 查看RTL图 5-14 Design Summary 窗口在综合之后,使用 RTL 视图工具,可以让设计者非常清楚的看到设计的寄 存器级的原理图,从而使设计者能将 HDL 代码和实际电路有效的联系起来,更容易发现问题和解决问题,提高设计效率。首先选中要查看 RTL 视图的文件 top.vhd,然后在 Process for: top - Behavioral 中 Synthesize-XST 图标的子菜单中单击 View RTL Schematic图标可以查看 RTL 视图。图 5-17 乐曲自动演奏模块 RTL 视图图 5-19 音阶发生器模块 RTL 视图(上、下)5.7 查看综合报告截取部分综合报告如下:HDL SynthesisPerforming bidirectional port resolution.INFO:Xst:267

温馨提示

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

评论

0/150

提交评论