版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的乐曲音符显示系统设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲 师 完成日期: 2014年4月21日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 V基于FPGA的乐曲音符显示系统设计与实现摘 要为了符合国家的发展趋势,随着集成技术迅速发展,可编程逻辑器件的功能和容量的不断扩大, FPGA(Field Programmable Gate Array,现场可
2、编程门阵列)使集成电路的设计进入可编程片上系统(System on a Programmable Chip,SoPC)的设计时代。基于芯片的设计方法, 有效地缩短了产品开发周期,减少了设计芯片的数量,缩小了系统体积,降低了系统能耗,提高了系统的灵活性和可靠性。这一设计用于音乐入门教育上,能够节约纸张成本,可循环利用。本文主要论述了基于FPGA的乐曲音符显示系统设计,FPGA的基本原理以及核心技术:数控分频、数字电路功能仿真、逻辑综合、FPGA验证等。本设计的基本原理是:硬件电路的发声原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就
3、能发出相应频率的声音。其中涉及到的关键技术有:数控分频,即使用数字分频模块将基准时钟的频率分频成相应的音符频率;数字电路功能仿真,电路在理想环境下的行为和设计构想是否一致;逻辑综合,用硬件描述语言(Verilog或VHDL)设计电路,需要将语言描述转换为电路图描述;还有FPGA验证,借助FPGA开发板对数字电路进行验证。设计完成后能够看到稳定的输出波形,下载到Altera的板子上,演奏一首或几首指定乐曲,并且在乐曲演示的同时在七段数码管上显示出对应的音符,以达到听觉和视觉上的双重感受。关键词:集成电路设计,FPGA,硬件描述语言大连东软信息学院毕业设计(论文) AbstractDesign a
4、nd Implementation of Music NotesDisplay System Based on FPGAAbstractIn order to meet the trend of development of our country, with the rapid develop progress of the integrated technology,the functionality and capacity of programmable logic devices continue to expand. FPGA (Field Programmable Gate Ar
5、ray) makes the design of integrated circuit come into an era of design of SoPC. Based on the design methodology of chips, FPGA, it has effectively shortened the development period of products, reduced the number of designed chips, the system size, and the energy consumption, and it has improved the
6、flexibility and reliability of the system. This design, used for the entrance of music education, can not only save the cost of paper, but also be recycled.This article mainly discusses the displaying system and design of music notes based on FPGA, and its basic principles and the core technologies
7、of FPGA, such as numerical control divider, digital circuit functional simulation, logic synthesis, FPGA verification and so on. The basic principles of the design are - vocalization principles of hardware circuit, the spectrum of vocalization frequency is about dozens of Hz to thousands of Hz. If w
8、e can make good use of a program to control a certain pin of FPGA chip to output a rectangular wave in a certain frequency, we can make the sounds of a corresponding frequency if connected with a speaker. Every note in music corresponds to a determined frequency. Therefore, in order to get different
9、 notes tone from FPGA, in fact, we only need to control the frequency of each note.There are some key technologies involved in our design, numerical control divider, that is to divide the frequency of a reference clock into its corresponding notes, using the digital frequency divider module; Digital
10、 circuit functional simulation, that is to check if the performance of the circuit in an ideal environment is suited to its designing ideas; Logic synthesis ,that is to use hardware descriptive languages (Verilog or VHDL) to design circuit ,which needs to change the language description into Schemat
11、ic; and FPGA verification, that is to verify the digital circuits with the help of FPGA development board.When the design is completed, the stable output waveform can be seen. We download it to the Altera board to play one or few designated songs, and show the corresponding notes on the seven-segmen
12、t digital tube during the playing time of the songs, so as to achieve the dual feelings, both auditory and visual.Key words: IC design, FPGA, HDL大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc386434695 h IAbstract PAGEREF _Toc386434696 h II第1章绪 论 PAGEREF _Toc386434697 h 11.1 课题研究背景与意义 PAGEREF _T
13、oc386434698 h 11.2 课题研究现状 PAGEREF _Toc386434699 h 1第2章关键技术介绍 PAGEREF _Toc386434700 h 32.1 关键技术介绍 PAGEREF _Toc386434701 h 32.1.1音符频率 PAGEREF _Toc386434702 h 32.1.2节拍输出 PAGEREF _Toc386434703 h 32.2 关键词介绍 PAGEREF _Toc386434704 h 3第3章系统需求分析 PAGEREF _Toc386434705 h 53.1 系统设计目标 PAGEREF _Toc386434706 h 53.
14、2 系统功能需求 PAGEREF _Toc386434707 h 53.3 系统非功能需求 PAGEREF _Toc386434708 h 63.4 系统开发环境 PAGEREF _Toc386434709 h 63.5 系统可行性分析 PAGEREF _Toc386434710 h 63.5.1 音乐硬件演奏电路基本原理 PAGEREF _Toc386434711 h 63.5.2 音符频率的获得 PAGEREF _Toc386434712 h 63.5.3 乐曲节奏的控制 PAGEREF _Toc386434713 h 73.5.4 音乐节拍的产生 PAGEREF _Toc38643471
15、4 h 73.6 经济可行性 PAGEREF _Toc386434715 h 7第4章系统设计 PAGEREF _Toc386434716 h 84.1 系统设计指导原则 PAGEREF _Toc386434717 h 84.2 体系结构设计 PAGEREF _Toc386434718 h 84.2.1 控制单元的设计 PAGEREF _Toc386434719 h 94.2.2数据通道的设计 PAGEREF _Toc386434720 h 94.3 功能模块设计 PAGEREF _Toc386434721 h 104.3.1 乐曲播放模块 PAGEREF _Toc386434722 h 10
16、4.3.2 LED数码管音符显示模块 PAGEREF _Toc386434723 h 11第5章系统实现 PAGEREF _Toc386434724 h 125.1语言实现 PAGEREF _Toc386434725 h 125.1.1 2-1数据选择器 PAGEREF _Toc386434726 h 125.1.2 地址计数器 PAGEREF _Toc386434727 h 125.1.3 歌谱存储器 PAGEREF _Toc386434728 h 135.1.4 数控分频器 PAGEREF _Toc386434729 h 145.1.5 音符译码器 PAGEREF _Toc38643473
17、0 h 155.1.6 顶层代码 PAGEREF _Toc386434731 h 155.2硬件实现 PAGEREF _Toc386434732 h 175.2.1实现的主要步骤 PAGEREF _Toc386434733 h 175.2.2实现结果显示 PAGEREF _Toc386434734 h 19第6章系统测试 PAGEREF _Toc386434735 h 216.1 测试目的 PAGEREF _Toc386434736 h 216.2 测试方案描述 PAGEREF _Toc386434737 h 216.3前仿真描述 PAGEREF _Toc386434738 h 216.3.1
18、激励文件 PAGEREF _Toc386434739 h 216.3.2 测试波形分析 PAGEREF _Toc386434740 h 236.4硬件电路功能测试 PAGEREF _Toc386434741 h 246.5测试结论 PAGEREF _Toc386434742 h 24第7章结论 PAGEREF _Toc386434743 h 25致 谢 PAGEREF _Toc386434744 h 27大连东软信息学院毕业设计(论文)- 第1章绪 论1.1 课题研究背景与意义多媒体播放器面世已经有六到七年的时间,国内外在本课题的研究方面也在不同的层面展开,从早期纯粹具备音频播放功能的MP3播
19、放器问世,到视频应用的兴起和快速发展,再到近几年来与各种其他功能如移动通信、全球定位系统(GPS)、移动数字电视(MDTV)、电子游戏等的融合,便携式多媒体娱乐设备功能越发强大,目前已经同电视机、个人电脑一样成为人们日常生活不可缺少的一部分。自二十年前发明世界上第一个 HYPERLINK /view/333155.htm t _blank 可编程逻辑器件开始,Altera公司(NASDAQ:ALTR)秉承了创新的传统,是世界上“可编程芯片系统”(SoPC)解决方案倡导者。Altera结合带有软件工具的可编程逻辑技术、知识产权(IP)和技术服务,在世界范围内为14,000多个客户提供高质量的可编
20、程解决方案。我们新产品系列将可编程逻辑的内在优势灵活性、产品及时面市和更高级性能以及集成化结合在一起,专为满足当今大范围的系统需求而开发设计。根据国家教委与专业教学委员会对教育机构的要求,为培养适应我国21世纪国民经济发展需要的电子设置人才,同时基于国家教委面向21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果。要求高等专科学校学生能够自己动手完成简单数字器件的设计。这不但反应了我国当前在电子电路的实验教学体系、内容和方法上的改革思路和教学水平的提高,更重要的是在加强以传统电子设计方法为基础的工程设计训练的同时,使学生能够尽快掌握现代电子设计自动化技术的新方法、新工具和
21、新手段,系统的、科学的培养了学生的实际动手能力、理论联系实际的能力、工程设计能力、工程设计能力以及创新能力,提高了学生对基础实验的兴趣。1.2 课题研究现状为了符合国家的发展趋势,随着微电子技术、集成技术和计算机技术的迅速发展,数字化电子系统的设计方法和手段发生了很大的变化。特别是可编程逻辑器件的功能和容量的不断扩大,FPGA(Field Programmable Gate Array,现场可编程门阵列)使集成电路的设计进入可编程片上系统(System on a Programmable Chip,SoPC)的设计时代。同时采用超高速集成电路硬件描述语言VHDL (Very High Spee
22、d Integrated Circuit Hardware Description Language),其具有多层次描述系统硬件功能的能力,既支持模块化设计,也支持层次化设计,使各种数字化电子系统的设计通过描述芯片功能实现系统功能。这种基于芯片的设计方法,目前已成为现代电子系统设计的主流。有效地缩短了产品开发周期,减少了设计芯片的数量,缩小了系统体积,降低了系统能耗,提高了系统的灵活性和可靠性。这一设计用于音乐入门教育上,能够节约纸张成本,可循环利用。并且有利于初学音乐者视觉和听觉同时调用,更便于迅速识记音乐知识。本文选取天空之城、当你孤单你会想起谁两首乐曲的一部分为例,本文分析了乐曲演奏设计
23、中音符、频率、节拍与编码的相互关系,并在EDA开发工具Quartus II平台上,采用VHDL语言及原理图的设计方法,实现了基于FPGA片上系统动态显示可选择多首乐曲的乐曲演奏器的设计,使乐曲演奏数字电路的设计得到了更好的优化,提高了设计的灵活性。大连东软信息学院毕业设计(论文)第2章关键技术介绍此处先对论文所涉及的关键技术进行简要介绍,下面再针对具体的技术进行说明。2.1 关键技术介绍设计的关键是要准确地产生乐曲中每个音符的发音频率,并根据乐曲要求按音符需要的节拍输出,这是乐曲能够演奏的两个关键因素。2.1.1音符频率音符频率解决方案:根据所用FPGA芯片上外接的高频时钟频率,先对其进行分频
24、或利用锁相环变成4 MHz和4 Hz的时钟频率,再对4 MHz通过数控分频器将根据高、中、低音音符编码分频成各音符所需要的声音频率的2倍,由于数控分频器输出的波形是脉宽极窄的脉冲波,为减小输出偶次谐波分量和更好的驱动扬声器发声,最后在到达扬声器之前再进行一次二分频,从而生成各音符对应频率的方波输出,以成功完成乐曲演奏的功能。2.1.2节拍输出节拍输出解决方案:每个音符持续的时间是乐曲能连续演奏所需的另一个基本要素。选取的乐曲中最小的节拍为1/4拍,将1拍的时间长度定为1 s,则只需由一个4 Hz的时钟频率即可产生1/4拍的时长。演奏的节拍控制通过音符编码输出来完成,每输出一次编码占用时间为1/
25、4拍,乐曲中节拍一般是1/4拍的整数倍,如2/4拍、4/4拍等,2/4拍只需将该音符的编码连续输出2次即可。设计中设置了一个多位二进制计数器,计数器的计数频率选为4 Hz,所以每一计数值的停留时间为0.25 s,即4/4拍的4分音符持续时间。随着计数器按4 Hz的时钟速率作加法计数时,则连续按节拍输出乐曲中各音符的编码,乐曲就自动连续演奏起来,若停止4 Hz时钟频率,则乐曲演奏也随即停止。这样就实现了节拍输出的控制电路的设计。2.2 关键词介绍(1)音乐演奏芯片:能进行音乐播放的集成电路;(2)基准频率:时钟发生器提供给数字模块的时钟频率,本设计基准频率为4MHZ;(3)最小节拍时长:存储在R
26、OM中的乐谱的最高音符的时值长短,本设计选取8分音符的时长定为0.25s;(4)数控分频:使用数字分频模块将基准时钟的频率分频成相应的衣服频率;(5)数字电路功能仿真:功能仿真也称前仿真是在RTL层进行的仿真,其特点是不考虑构成电路的逻辑和门的时间延迟,着重考虑电路在理想环境下的行为和设计构想的一致性;(6)逻辑综合:用硬件描述语言(Verilog或VHDL)设计电路,需要将语言描述转换为电路图描述,即用芯片制造商提供的基本电路单元(综合库)实现用硬件描述语言描述的(RTL级)电路的功能,这个过程就称为综合;(7)布局布线:自动布局布线是目前普遍采用的FPGA设计方法。设计者使用EDA工具,快
27、速、自动地完成逻辑门的放置和门间电路的连接;(8)FPGA验证:使用FPGA开发板对数字电路进行验证;第3章系统需求分析3.1 系统设计目标外部控制输入电路为FPGA芯片提供时钟电源以及歌谱切换的控制键与暂停键,外部控制键与暂停键提供的控制信号作为FPGA的两个输入,以实现相应的功能,即显示与音乐播放;如图3.1可以看出,FPGA内部则由相应的硬件描述语言产生控制数字电路,从控制电路输出的信号分别给数码管和扬声器。图3.1 外部原理图3.2 系统功能需求根据需求调研结果确定本系统主要包括以下功能模块。图3.2 数据通道框图该框图中的ROM1与ROM2中分别存了两首不同的乐曲简谱,CLK时钟信号
28、决定了从ROM中取出一个乐曲简谱的时间。从两个ROM中出来的音符信息都会通过一个选择器,该选择器选择决定哪首乐曲的音符信息作为数码管驱动模块与音符译码模块的输入,从而实现了乐曲的切换功能。其中音符到了数码驱动模块中,会经过该模块的相应翻译,将信号输入到数码管中,得到想要的结果;同时音符到了音符译码模块中会翻译成相应的预设值,该值提供给节拍发生模块,节拍发生模块根据这个预设值产生不同频率的音频信号,这个信号传递给扬声器,扬声器播放乐曲。表3.1 功能概述功能编号功能名称功能描述1播放功能将存储在ROM的歌曲播放2乐符显示在播放歌曲时七段数码管显示乐符信息3暂停歌曲暂停回复并继续播放4选曲选择存储
29、曲目中的歌曲3.3 系统非功能需求(1)性能管脚:208pin;封装方式:PQFP;商用温度:0-85 ;速率:8MB/s;(2)成本开发板成本290元/片3.4 系统开发环境 硬件环境:Altera EP2C8Q208C8N软件环境:Quartus II 9.03.5 系统可行性分析3.5.1 音乐硬件演奏电路基本原理能将基准时钟信号分频,使芯片输出一定频率的波形,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要使芯片发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上
30、连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。3.5.2 音符频率的获得多个不同频率的信号可通过对基准频率进行分频获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。本设计中选取4MHz的基准频率。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器,但这时的频率将是原来的1/2。下表中各音符的分频系数就是从4MHz的基准频率二分频得到的2MHz频率基础上计算得到的。由于最大分频系数是76
31、44,故分频器采用13位二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为0,即,此时扬声器不会发声。表3.2 音符频率编码表3.5.3 乐曲节奏的控制本设计中的存储的乐谱为当你孤单你会想起谁,最小的节拍为1拍,若将1拍的时间定为0.5秒,则连续提供两个4Hz的时钟频率即可产生1个1拍拍时长(共0.5秒)的Tone。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。3.5.4 音乐节拍的产生本文将乐谱中的音符数据存储在ROM中,如当你孤单你会想起谁中的第一二个音符为都为“1(高音)”,此音在逻辑中停留了2
32、个时钟节拍,即1秒的时间,相应地,它就要在ROM中连续的4个地址上都存储。当碰到一个4Hz的时钟上升沿,相应地就从ROM中输出一个音符数据。3.6 经济可行性硬件的开发成本Altera EP2C8Q208C8N,市场价值290元人民币。逻辑容量可以满足此系统的验证,成本在可接受范围内。第4章系统设计4.1 系统设计指导原则根据设计的需要,我们得到该乐曲音符显示系统流程图,见图4.1所示。它给出了不同的信号到来时,系统的状态的转化。图4.1乐曲音符显示系统流程图从系统流程图可以知道,当乐曲音符显示系统无操作的时候,整个系统会处于空闲状态,当收到开始(start)信号后,系统就会进入选曲的状态。这
33、时就会判断选择哪个ROM中的乐曲演奏。在选择乐曲后,既可以播放又可以显示播放的音符,音符由两个七段数码管显示,一个数码管显示音调(中或高),另一个则显示音符。在乐曲播放的过程中随时可以暂停、恢复播放(在暂停位置处继续播放)。播放过程中可以随时切换歌曲。若整个过程中没有按切换开关,则循环播放当前曲目。另外,我们也可以通过系统流程图得到乐曲音符显示系统的电路图。4.2 体系结构设计系统体系架构如图4.2所示。图4.2系统体系结构图对该系统体系结构图进行分析,就可以看出该设计需用的所用模块,以及各个模块的连接关系。此外,还有很多的模块存在复用的情况。由此,我们就可以在下面的章节中,根据此电路图进行设
34、计。4.2.1 控制单元的设计说明:由于此乐曲音符显示系统在开发板上验证,所有控制信号由拨码开关控制,因此这里没有对控制单元的设计。4.2.2数据通道的设计数据通道部分是将系统体系结构图的细化,详见图4.3。各个模块的说明请见4.3功能模块设计的部分,里面会有详细描述。图4.3体系结构图4.3 功能模块设计我们用一个顶层名字叫做music_display的模块,将以下所有的小模块通过实例化连接在一起我们的播放样例音乐的模块就完成了。这样就会在一个4HZ的时钟驱动下,也就是每0.25地址计数器的值就会加1,然后就会从歌谱存储器中取出一个音符,该音符会被翻译成一个初始值,该初始值就会让数控分频模块
35、产生一个占空比不均衡的波形,该波形被分频模块分频产生最终的频率。随着时间的推移,一首完整的乐曲也就此产生。4.3.1 乐曲播放模块设计一个名字叫做addr_count的地址计数器,它有三个输入的接口,分别是clk、rst、clr、输出接口是addr_out。其中clk接的是4HZ的时钟脉冲信号,rst接的是总的复位信号,clr接的是swtich信号,输出的信号addr_out会给后面的存放歌谱信息的存储器,以便于从中取出歌谱信息。在乐曲播放过程中,addr(addr1)同时也是暂停与恢复播放的重要控制信号。设计两个存储器,即alongrom和rom_skyy。它们分别有一个地址输入端口addr
36、、addr1。当addr(addr1)的值变化时, data_out(data_out1)就会输出addr(addr1)此时地址值中存储器中的值。设计一个名叫decoder的音符译码电路,它有一个输入接口index(3:0)和一个输出接口tone(12:0)。它的内部存储的是翻译值,当index(3:0)的值变化时,输入tone(12:0)就会变化成index(3:0)对应的翻译初始值。它的输入tone(12:0)会与下面的数控分频模块spk相连接。设计一个数控分频模块名叫spk(取名由来:speaker),它的功能就是接收一定的初始值,然后根据初始值的不同,这个模块就会对5MHZ的时钟频率分
37、出不同频率的波形。它有reset、clk、tone三个输入接口,fs_out一个输出接口。设计一个名叫divide2的分频模块,它的功能就是对任何输入进来的频率进行2分频,无论输入波形的一个周期内高电平周期与低电平周期是否相等,它都会输出一个均匀的高低电平的时钟周期的波形。它有两个输入端口clk、reset,一个输出端口spk_out。4.3.2 LED数码管音符显示模块设计一个名叫f_divide的分频模块,它的功能就是对任何输入进来的频率进行分频,。它有两个输入端口clk、reset,三个输出端口f_clk_d、f_clk_4、f_clk_5m;设计一个名叫led_driver的驱动模块,
38、它的功能就是对输入的解码后音符进行处理,从而驱动数码管进行显示中、高音以及音符。它有三个输入端口index(3:0)、clk、reset,两个个输出端口seg_d、seg_w。大连东软信息学院毕业设计(论文)第5章系统实现5.1语言实现本设计的软件部分,就是用Verilog设计出该电路中各个小的模块,然后再通过一个数字的顶层将这些模块连接在一起,我们利用topdown的设计方法,从顶到底规划好所有的小模块,然后,再从最低层的小模块写起,直至最后实现该系统。5.1.1 2-1数据选择器代码如下所示。module mux2(c_out,a_in,b_in,sel); /2选1数据选择器input3
39、:0 a_in; /输入信号input3:0 b_in; /输入信号input sel; /输入选择信号output3:0 c_out; /输出信号assign c_out=sel ? a_in : b_in; /当sel=1时输出为a_in,否则为b_in;endmodule综合结果如图5.1所示。它拥有3个一位的输入a_in、b_in、sel,一个一位输出c_out。图5.1 2-1数据选择器综合图sel=1时,输出c_out输出a_in的值,反之输出b_in的值。5.1.2 地址计数器代码如下所示:module addr_counter(clk,clr,rst,addr_out); /地
40、址计数器input clk,clr,rst; /输入信号output7:0 addr_out; /定义8位输出信号reg7:0 addr_out; /输出信号定义成寄存器型always(posedge clk or negedge rst) /定义成异步复位方式beginif(!rst) addr_out=0; /rst信号为1时对输出为0else if(clr) addr_out=0; /clr信号为1时输出为0 else addr_out=addr_out+1; /不复位时,地址会不断自加1endendmodule综合结果如图5.2所示。它有clk、clr、rst三个输入,addr_out
41、一个8位的输出。图 5.2 地址计数器综合图clk是时钟信号,clr是同步清零的信号,rst是系统的异步复位的信号。当rst或clr为1时,输出为0,当以上信号不为0时,每来一次时钟的上升沿,输出的地址值就会自动的加1。5.1.3 歌谱存储器 代码如下所示:module alongrom(addr,data_out); /定义存放样例音乐的rominput7:0 addr; /寻址的地址输入信号output3:0 data_out; /输出数据值reg3:0 data_out; /定义输出类型always(addr) /触发条件begin /存储器中不同地址空间中存放的音符信息case(add
42、r)0:data_out=d0;1:data_out=d0; 2:data_out=d0;3:data_out=d0;4:data_out=d0;5:data_out=d0;6:data_out=d3;7:data_out=d4;8:data_out=d5;9:data_out=d5;10:data_out=d5;11:data_out=d5;12:data_out=d5;13:data_out=d5;14:data_out=d3;15:data_out=d4;16:data_out=d5;17:data_out=d5;18:data_out=d5;19:data_out=d5;20:data
43、_out=d5;21:data_out=d5;22:data_out=d6;23:data_out=d7;24:data_out=d8;25:data_out=d8;26:data_out=d3;243:data_out=d6;244:data_out=d5;245:data_out=d9;246:data_out=d10;247:data_out=d9;248:data_out=d8;249:data_out=d6;endcaseendendmodule大连东软信息学院毕业设计(论文)该段代码的综合结果如图53所示。它有一个8位的寻址地址信号addr,一个4位的信息输出信号data_out。
44、图5.3 存储器综合图寻址地址信号值的不断变化,就会从ROM1的相应地址中取出该地址中存储的音符信息。ROM2与ROM1同理,只是存放歌曲内容不同。5.1.4 数控分频器代码如下所示:module spk( tone,clk,reset,fs_out); /定义一个数控分频模块input clk,reset; /输入的基本信号input12:0 tone; /输入的初始值信号output fs_out; /输出频率信号reg fs_out;reg12:0 cout; /内部变量,用于分频计数always(posedge clk or negedge reset) /表明触发条件beginif(
45、!reset) begin fs_out=0; cout=0; end /复位输出为0,内部变量也为0else if(tone=0) begin fs_out=0; cout=0; endelse if(cout=8191) begin fs_out=1; cout=tone; end /当内部变量为8191时,输出变为1,并且把输入的初始值赋给内部变量else begin cout=cout+1; fs_out=0; end /内部变量不为8191时,输出为0endendmodule综合结果图5.4所示。它有13位的tone预置值信号,时钟clk,复位reset信号,一个一位的fs_out输
46、出信号。图5.4 数控分频器综合图clk为该模块提供时钟信号,作为触发该模块工作的敏感信号。reset为该模块进行复位,tone提高预置值,当tone的值不一样的时候,fs_out的输出也会不一样。从而产生不同的频率。5.1.5 音符译码器代码如下所示:module decoder(index,tone); /定义音符译码器input3:0 index; /输入的译码数据output12:0 tone; /输出的译码初始值reg12:0 tone; /定义输出类型always( index) /当输入的被译码的值发生变化时,触发该电路根据被译码的值进行译码,给出相应的初始值begincase(
47、index) /选择的条件0 : tone=0;/给出不同的条件时,对应的初始值 1 : tone=d3411; 2 : tone=d3933; 3 : tone=d4398; 4 : tone=d4663; 5 : tone=d5003; 6 : tone=d5350; 7 : tone=d5661; 8 : tone=d5803; 9 : tone=d6063; 10: tone=d6296; 11: tone=d6401; 12: tone=d6597; 13: tone=d6771; 14: tone=d6926; default : tone=0; /输入不满足以上的条件,输出为0e
48、ndcaseendmodule该代码的综合结果如图5.5所示。它有一个输入index,一个输出tone。图5.5 音符译码电路综合图它的原理与一个rom的原理相同,index可以当成一个寻址地址,index值的变化,tone的输出也会发生变化,其中tone的输出就是预置值。5.1.6 顶层代码该部分代码是用来连接整个零散的小模块,通过实例化的作用,会对不同的代码模块进行组合从而形成不同功能的电路,将这些电路再次连接起来就会形成最终的电子琴。代码如下所示:module music_display( spk,ds,ws,reset,clk,switch,pause); /定义乐曲音符显示系统最顶端
49、模块output spk; /输出频率,输出到扬声器上的信号output7:0 ds; /段选output7:0 ws; /位选input reset;/复位信号input clk ;/输入开发板时钟input switch;/切换歌曲input pause; /暂停与恢复播放键wire clk5m,clk2h,clk4h;/定义线性的变量用于实例化时,连接不同的模块wire7:0 addr_star,addr_sky;wire3:0 star_tone,sky_tone,music_tone;wire12:0 init_vaule;wire spk0,spk1;wire f_clk_d;f_
50、divider u0( .reset(reset),.clk(clk),.f_clk5m(clk5m),.f_clk2(clk2h),.f_clk4(clk4h),.f_clk_d(f_clk_d) );addr_count u1(.clk(clk4h & pause),.clr(!switch),.rst(reset),.addr_out(addr_star);alongrom u2(.addr(addr_star),.data_out(star_tone);/*rom_sky u2(.addr1(addr_star),.data_out1(star_tone) ); */addr_coun
51、t u3(.clk(clk4h & pause),.clr(switch),.rst(reset),.addr_out(addr_sky);rom_skyy u4(.addr1(addr_sky),.data_out1(sky_tone) );mux2 u5( .c_out(music_tone),.a_in(star_tone),.b_in(sky_tone),.sel(switch) );/实例化一个2选一数据选择器decoder u6( .index(music_tone),.tone(init_vaule);led_drive u7( .reset(reset),.clk(f_clk_
52、d),.index(music_tone),.seg_d(ds),.seg_w(ws);spk u8( .tone(init_vaule),.clk(clk5m),.reset(reset),.fs_out(spk0);divide2 u9( .clk(spk0),.reset(reset),.spk_out(spk1);assign spk= pause ? spk1 : 0;endmodule乐曲音符显示系统的整体综合结果见图5.6。它具有clk、reset、switch、pause这四个输入,spk、ds、ws三个输出。图5.6 整体综合图clk信号为整个系统提供时钟信号,reset为整
53、个系统的复位信号。switch、pause信号为系统模式的选择信号,通过改变这些信号的值用来选择不同的模式。spk为整个系统的音符声音频率输出,ds与ws显示了乐符的中高音及乐谱。5.2硬件实现5.2.1实现的主要步骤(1)登陆软件界面Quartus II是Altera公司开发的为了将HDL编写的代码烧录到FPGA开发板上的软件辅助工具,为了硬件实现我们的设计,首先我们应该双击电脑桌面上的QuratusII快捷方式,就会进入该软件的操作界面,如图5.7所示。图5.7 QuartsII操作界面图(2)输入设计代码创建一个新的项目目录,然后,将所有的电路设计的.V文件输入到该工作目录中去,到此设计
54、的输入就结束了。(3)代码综合通过该软件中的综合工具,将所有的设计相关的.V文件进行综合,综合过程中会对代码的语法进行检查,发现错误及时的修正。(4)分配引脚综合之后我们就要对所有的输入输出引脚进行分配,以便于生成的配置文件加载到FPGA中,我们能够合理的控制。该系统的引脚分配如图5.8所示。它表明了我们的代码中输入信号、输出信号与开发板子中所用引脚的对应关系。图5.8 引脚分配图通过该表中的引脚值我们就可以,对FPGA开发板上的一些相关的按钮进行操作,来判断和验证我们的设计。(5)布局布线对引脚进行分配后,重新综合和布局布线,布局布线就是根据硬件描述语言所描述的电路,对该软件库里的一些运用的
55、器件进行合理的连接运用,最后,生成可配置,也就是可以加载到FPGA中的“.sof”文件。(6)烧录到FPGA开发板子将生成的“.sof”文件,通过数据连接线加载到FPGA开发板子上。加载的界面如图5.9所示。图5.9 烧录界面图从该界面中我们选择右侧的Add File选项,然后在生成“.sof”文件的目录中,选择该格式的文件,选中后,我们点击start选项,那么加载的过程就开始了。5.2.2实现结果显示(1)软件实现结果 当所有的输入电路的代码,经过一系列的仿真、综合后,就得到了所有的各个模块之间的连接关系,从软件角度就实现了该设计。软件实现结果如图5.10所示。它将各个模块间的连接关系清晰的
56、展现出来。图5.10 软件实现结果图从该实现的结果图中,我们看到各个模块,还有模块之间的连接关系,然后,我们可以将该图与电子琴的电路图进行比较。通过比较找到不同的地方和相同的地方,然后,进行分析、改正和优化。(2)硬件实现结果当用Qartus II软件将设计输入的文件,通过一系列步骤生成”.sof”的配置文件时,将该配置文件加载到FPGA开发板中,加载成功时,FPGA硬件开发板根据配置文件生成电子琴的电路。此时的硬件实现结果如图5.11所示。图5.11 硬件实现结果图该实现结果图中,从左端开始的连续三个拨码开关分别代表电路中乐曲播放系统的复位、暂停(回暂)及切换歌曲的控制开关。开发板上的一个扬
57、声器及两个七段数码管用来接收电路的输出。第6章系统测试测试是一件非常复杂且非常广义的概念,在本设计中的测试是针对设计电路功能方面的验证。在集成电路设计的流程步骤中,测试是至关重要的一步。我们对一个产品进行设计需求分析,并尽可能选择合适的方案进行设计,最终目的就是为了得到一个合理的产品。因而只有通过测试才能确定自己的设计产品的正确,足见测试的重要性!6.1 测试目的验证系统设计是否存在问题;测试系统功能能否实现;检查并改正电路逻辑设计中存在的问题。6.2 测试方案描述对乐曲音符显示系统的基本功能进行前仿真测试,包括复位、选曲、开始播放、切换歌曲、暂停、回复播放等。查看波形是否正确,无误后将程序下
58、载FPGA开发板上进行验证,最终得到测试结论。6.3前仿真描述前仿真即功能仿真,是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。布局布线以前的仿真都称作功能仿真,它包括综合前仿真(Pre-SynthesisSimulation)和综合后仿真(Post-SynthesisSimulation)。综合前仿真主要针对基于原理框图的设计;综合后仿真既适合原理图设计,也适合基于HDL语言的设计。6.3.1激励文件module m_tb;/ Inputs reg reset;reg clk;reg switch;reg pause;/ Outputswire spk;wire
59、7:0 ds;wire 7:0 ws;/ Instantiate the Unit Under Test (UUT)music_display uut (.spk(spk), .ds(ds), .ws(ws), .reset(reset), .clk(clk), .switch(switch), .pause(pause) );always # 10 clk=clk; /产生与FPGA开发板子上一样的晶振50MHZ integer i=0,j=0;initial begin/*处于复位状态*/reset = 0; clk = 0;switch = 0;pause = 1; /pause=1 不
60、停下来,pause=0时代表停下来不播放任何声音#100000000; /100ms /*复位结束switch=0 选中播放天空之城状态*/ reset=1; switch=0; pause=1; for(i=0;i10;)begin i=i+1;#100000000; /100msend/*switch=1 选中播放当你孤单你会想起谁的状态*/switch=1;pause=1;for(j=0;j20;) begin j=j+1;#100000000; /100msend /等待2s/*pause=0,处于暂停状态,歌曲播出为0,数码管显示数字不变*/pause=0;end endmodule
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版滴灌灌溉系统节水效果评估与推广合同3篇
- 2025年度能源矿业行业劳动合同模板3篇
- 2024年危险废物运输安全风险评估与应急预案合同3篇
- 2024年环保材料研发与应用买卖合同范本3篇
- 2025版洗碗工劳动合同与劳动权益保障措施合同3篇
- 2025版车辆租赁市场调研与分析合同2篇
- 课题申报书:大语言模型增强中学生科学探究实践的路径和机制研究
- 2024年度户外LED灯具安装与维护一体化合同范本3篇
- 2024年环保型柴油研发合作协议
- 2024年终止租赁合同3篇
- 《销售主管竞聘》课件
- 青少年型青光眼个案护理
- 小学数学六年级解方程练习300题及答案
- 医院药房年终工作总结
- 纯化水制备工艺讲座(新)课件
- 整理收纳师职业规划
- 整体爬升钢平台模板工程技术规程
- DB32/T 4700-2024 蓄热式焚烧炉系统安全技术要求
- 发动机无法启动的故障诊断
- 医疗机构医院临床微生物学检验标本的采集和转运指南
- 国开电大《员工招聘与配置》形考册第一次形考答案
评论
0/150
提交评论