1、 毕 业 设 计(论 文) 设计(论文)题目: 基于FPGA的频率测量仪的设计 金陵科技学院学士学位论文 目录目 录摘 要IIAbstractIII1 绪 论12 相关技术综述3 2.1FPGA.3 2.2 VHDL .3 2.3 EDA .4 2.4 Quartus.43 系统整体设计7 3.1设计要求. 7 3.2系统设计原理.7 3.3系统单元模块划分.84 系统各个模块设计及仿真9 4.1系统各个模块.94.1.1 分频器模块设计及仿真94.1.2 闸门选择器模块设计及仿真104.1.3 门控电路模块设计及仿真124.1.4 计数器模块设计及仿真134.1.5 锁存器模块设计及仿真16
2、4.1.6 译码显示器模块设计及仿真184.2 顶层文件20 4.2.1顶层文件原理图.20 4.2.2顶层文件仿真图.21结 论22参考文献23附 录. 24致 谢 39III金陵科技学院学士学位论文 摘要基于FPGA的频率测量仪的设计摘 要本文介绍了基于FPGA的数字频率计的设计方法。设计采用硬件描述语言VHDL进行编程,并在软件平台Quartus7.2上完成部分功能,让该频率计可以在较高的时钟频率下正常工作。该数字频率计采用测频的方法能基本测量1Hz到10MHz之间的信号。我在设计时设计类六个模块,执行不同的功能,然后利用这六个模块,综合成一顶层文件,来实现频率计的功能设计,并且使用仿真
3、软件Quartus7.2对各个模块的VHDL程序和顶层做了仿真。关键词: VHDL,数字频率计,FPGA ,Quartus7.2金陵科技学院学士学位论文 AbstractDesign of frequency measuring instrument based on FPGAAbstractIt is introduced in this paper that the design method of digital frequency meter based on FPGA , which use hardware description language-VHDL in software
4、 development platform Quartus7.2 and word in relatively high-speed clock .The frequency meter uses the method of frequency measurement ,which could accurately measure the frequency of signals from 1Hz to 10MHz. I design six modules in the design, perform different functions ,Then using these six mod
5、ules, integrated into a top-level files, to realize the function of the design frequency, This system uses the simulation tool Quartus7.2 to run and debug the VHDL program.Keywords: VHDL, Frequency measurement ,digital frequency meter,FPGA ,Quartus7.2金陵科技学院学士学位论文 第1章 绪论1 绪 论1.1研究背景:频率测量仪是一种应用非常广泛的电子
6、测量仪器,近年来随着科技发展频率测量仪被广泛应用于各个领域。频率测量仪是一种基础测量仪器,目前已有30年的历史。人们衡量频率测量仪的标准是测量的范围以及测量的精度。如今技术发展飞快,基本技术已经应用完善,应用现代技术我们可以轻松扩展频率测量仪的测频上限。对于电子技术来说,虽然我国发展迅速,但就整体来讲我国与西方国家的差距还是很大的,我们必须更加重视这个现状,努力学习和研究电子技术,学习国外先进文化,才有可能超越他们成为科技强国。1.2研究现状:随着科学技术的发展,我们对频率测量仪的要求也越来越高。现在频率测量仪使用操作方便,量程宽,可靠性能高,价格低,分辨率高,精度高,稳定度高,测量速率高;除
7、通常通用计数器所具有的功能外,还有数据处理功能,时域分析功能,电压测量等其他功能。这些要求有的已经实现或者部分实现,但要真正实现这些目标,还有许多工作要做,而不是表面看来似乎发展到头了。由于计算机技术的发展,频率测量仪设计技术也不断地进步,灵敏度不断提高,频率范围不断扩大,功能不断地增加。为了能正确地测量不同类型的信号,必须了解待测信号特性以及各种频率测量仪器的性能和优缺点。1.3发展趋势:数字电路技术的进步,使系统设计人员可以在更小的空间实现更多的功能,提高了系统可靠性和速度。如今,频率测量仪已经不单是测量信号频率的装置了,还可以用它测量方波脉冲的脉宽。在人们的生活中频率计也发挥着越来越重要
8、的作用。在以后的生活中它将更广泛的用于各个领域,而且更加精确测量范围更广。顺应电子技术的发展趋势,可编程逻辑器件和EDA 技术使设计方法发生了质的变化。把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发工具,采用可编程逻辑器件CPLDFPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,
9、增加了系统的可靠性和稳定性,提高了技术指标。近年来随着科技的飞速发展,FPGA的应用正在不断地走向深入,在很多领域中FPGA往往是作为一个核心来使用。而且FPGA的应用也越来越频繁越来越方便。1.4研究目的和意义目的:我们要能熟练运用FPGA技术、VHDL编程语言以及电路电子知识,设计出综合的数字系统,进一步理解电子设计自动化EDA技术。并且能够利用VHDL语言,在QuartusII开发环境中编程、调试、仿真、并能将程序下载到FPGA中,并结合辅助电路,来完成频率测量仪的设计。通过本课题的设计,能够培养我们综合运用知识的能力,实践应用的能力,分析问题与解决问题的能力,激发我们的创新精神。意义:
10、频率测量仪是计算机、广播等通讯设备、音频视频等科研生产领域不可缺少的测量仪器。因此,频率的测量以及测量的精度是否高就显得更为重要。在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得尤为重要。测量频率的方法有多种,其中频率测量仪具有使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。如今频率测量仪在电子测量、航海、军事、探测、等众多领域都得到了应用。1.5研究内容和要求1. 编程时用硬件描述语言VHDL语言来实现频率测量仪功能,使其能计算出某一段时间内的待测信号的脉冲个数,并且能够通过数码管显示出来。2.
11、 之后在QuartusII7.2中进行VHDL程序的编译调试、功能仿真与时序仿真,来验证频率测量仪逻辑功能的正确性。在仿真通过后 40金陵科技学院学士学位论文 第2章相关技术综述2 相关技术综述2.1 FPGA(可编程逻辑器件)FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物8。我们认为,基于EDA技术的FPGA/CPLD器件的开发应用可以从根本上解决MCU所遇到的问题。与MCU相比,FPGA/CPLD的优势是多方面的和根本性的:(1).编程方式简便、先进。FPGA产品越来越多地采用了先
12、进的 IEEE1149.1边界扫描测试(BST)技术(由联合测试行动小组,JTAG开发)和 ISP(在系统配置编程方式)。在+5 V工作电平下可随时对正在工作的系统上的 FPGA进行全部或部分地在系统编程,并可进行所谓菊花链式多芯片串行编程,对于SRAM结构的FPGA,其下载编程次数几乎没有限制(如Altera公司的FLEXIOK系列)。这种编程方式可轻易地实现红外编程、超声编程或无线编程,或通过电话线远程在线编程。这些功能在工控、智能仪器仪表、通讯和军事上有特殊用途。(2).高速。FPGA的时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。(3).高
13、可靠性。在高可靠应用领域,MCU的缺憾为FPGA的应用留下了很大的用武之地。除了不存在MCU所特有的复位不可靠与PC可能跑飞等固有缺陷外,FPGA的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。(4).开发工具和设计语言标准化,开发周期短。由于FPGA/CPLD的集成规模非常大,集成度可达数百万门14。因此,FPGA的设计开发必须利用功能强大的EDA工具,通过符合国际标准的硬件描述语言(如VHDL或 Verilog-HDL)来进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用的FPGA器件的硬件结构没有关系,所以设计
14、成功的各类逻辑功能块软件有很好的兼容性和可移植性,它几乎可用于任何型号的FPGA中,由此还可以以知识产权的方式得到确认,并被注册成为所谓的IP芯核,从而使得片上系统的产品设计效率大幅度提高。由于相应的EDA软件功能完善而强大,仿真方式便捷而实时,开发过程形象而直观,兼之硬件因素涉及甚少,因此可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场的最宝贵的特征。美国TI公司认为,一个ASIC 80 %的功能可用IP芯核等现成逻辑合成。EDA专家预言,未来的大系统的FPGA 设计仅仅是各类再应用逻辑与IP芯核的拼装,其设计周期最少仅数分钟。(5).功能强大,应用广阔。目前,FPGA可供选择
15、范围很大,可根据不同的应用选用不同容量的芯片。利用它们可实现几乎任何形式的数字电路或数字系统的设计。随着这类器件的广泛应用和成本的大幅度下降,FPGA在系统中的直接应用率正直逼ASIC的开发。同时,FPGA设计方法也有其局限性。这主要体现在以下几点:(1).FPGA设计软件一般需要对电路进行逻辑综合优化(Logic Synthesis & Optimization),以得到易于实现的结果,因此,最终设计和原始设计之间在逻辑实现和时延方面具有一定的差异。从而使传统设计方法中经常采用的一些电路形式(特别是一些异步时序电路)在FPGA/CPLD设计方法中并不适用。这就要求设计人员更加了解FPGA/C
16、PLD设计软件的特点,才能得到优化的设计。(2).FPGA一般采用查找表(LUT)结构(Xilinx), AND-OR结构(Altera)或多路选择器结构(Actel),这些结构的优点是可编程性,缺点是时延过大,造成原始设计中同步信号之间发生时序偏移。同时,如果电路较大,需要经过划分才能实现,由于引出端的延迟时间,更加大了延迟时间和时序偏移。时延问题是 ASIC设计当中常见的问题,要精确地控制电路的时延是非常困难的,特别是在像FPGA/CPLD这样的可编程逻辑当中。(3).FPGA的容量和I/O数目都是有限的,因此,一个较大的电路必须经过逻辑划分(Logic Partition)才能用多个FP
17、GA芯片实现,划分算法的优劣直接影响设计的性能。(4).由于目标系统的PCB板的修改代价很高,用户一般希望能够在固定引出端分配的前提下对电路进行修改。但在芯片利用率提高,或者芯片I/O引出端很多的情况下,微小的修改往往会降低芯片的布通率。(5).早期的FPGA芯片不能实现内存、模拟电路等一些特殊形式的电路。最新的一些FPGA产品集成了通用的RAM结构。但这种结构要么利用率不高,要么不完全符合设计者的需要。这种矛盾来自于FPGA本身的结构局限性,短期内很难得到很好的解决。(6).尽管FPGA实现了ASIC设计的硬件仿真,但是由于FPGA和门阵列、标准单元等传统ASIC形式的延时特性不尽相同,在将
18、FPGA设计转向其它 ASIC设计时,仍然存在由于延时不匹配造成设计失败的可能性。针对这个问题,国际上出现了用FPGA数组对ASIC进行硬件仿真的系统(如Quickturn公司的硬件仿真系统)。这种专用的硬件仿真系统利用软硬件结合的方法,用 FPGA数组实现了ASIC快速原型,接入系统进行测试。该系统可以接受指定的测试点,在FPGA数组中可以直接观测(就像软件模拟中一样),所以大大提高了仿真的准确性和效率。2.2VHDL(硬件描述语言)VHDL是硬件描述语言的一种,对系统硬件的描述功能很强而语法又比较简单。因为VHDL具有强大的行为描述能力,使得设计者可以不懂硬件的结构,只需进行电子系统的设计
19、和性能优化3;方便逻辑仿真与调试。目前,VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域已经成为事实上通用硬件描述语言。VHDL语言与其它HDL语言相比有一些自己的特色,下面作一简要说明。(1)设计功能强、方法灵活、支持广泛。VDHL语言可以支持自上而下 ( Top_Down)的设计方法,它具有功能强大的语言结构,可用简洁明确的代码描述来进行复杂控制逻辑的设计,可以支持同步电路、异步电路、以及其它随机电路的设计5。其范围之广是其它HDL语言所不能比拟的。此外,VHDL语言可以自定义数据类型,这也给编程人员带来了较大的自由和方便。(2)系统硬件描述能力强。VH
20、DL语言具有多层次的设计描述功能,可以从系统的数学模型直到门级电路,支持设计库和可重复使用的组件生成,它支持阶层设计且提供模块设计的创建10。VHDL语言能进行系统级的硬件描述是它的一个最突出的优点。(3)可以进行与工艺无关编程。VHDL语言设计系统硬件时,没有嵌入描述与工艺相关的信息,不会因为工艺变化而使描述过时。与工艺技术有关的参数可通过VHDL提供的类属加以描述,工艺改变时,只需修改相应程序中的类属参数即可。(4)VHDL语言标准、规范,易于共享和复用12。VHDL既是IEEE承认的标准,故VHDL的设计描述可以被不同的EDA设计工具所支持。从一个仿真工具移植到另一个仿真工具,从一个综合
21、工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台去执行。这意味着同一个VHDL设计描述可以在不同的设计项目中采用,方便了设计成果的设计和交流。另外,VHDL语言的语法比较规范,从而其可读性比较好,给阅读和使用都带来了极大的好处。(5)方便ASIC移植。VHDL语言的效率之一,就是如果你的设计是被综合到一个 CPLD或FPGA的话,则可以使你设计的产品以最快速度上市。当产品的产量达到相当的数量时,采用VHDL进行的设计可以很容易转成用专用集成电路(ASIC)来实现,仅仅需要更换不同的库重新进行综合。由于VHDL是一个成熟的定义型语言,可以确保ASIC厂商交付优良质量的器件产品。此外,
22、由于工艺技术的进步,需要采用更先进的工艺时,仍可以采用原来的VHDL代码。2.3 EDA技术EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的4。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术是以计算机为工具完成数字系统的逻辑综合、
23、布局布线和设计仿真等工作。电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。利用EDA工具可以极大地提高设计效率15。利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是EDA设计方法的一个重要特征。EDA技术在现在使用时越来越广泛,学习EDA也是刻不容缓。2.4 Quartus IIQuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。QuartusII在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUSII的
24、更新换代产品,其界面友好,使用便捷。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成组合环境。QuartusII设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。QuartusII也可利用第三方的综合工具。同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外
25、,QuartusII与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发和数字通信模块的开发。QuartusII包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analsis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)、编辑数据接口(Compiler Database Interface)等。可以通过选择Start Compilation来运行所有的编译器模块,也可以
26、通过选择Start单独运行各个模块。还可以通过选择Compiler Tool(Tools菜单),在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,QuartusII还包含许多十分有用的LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可以与QuartusII普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可
27、以使用一些Altera特定器件的硬件功能,如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。QuartusII编译器支持的硬件描述语言有VHDL(支持VHDL87及VHDL97标准)、Verilog HDL及AHDL(Altera HDL)。QuartusII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,QuartusII的编译器将给出设计输入的错误报告。可以使用QuartusII带有的RTL Viewer观察综合后的RTL图。金陵科技学院学士学位
28、论文 第3章 系统整体设计3 系统整体设计 3.1 系统整体设计要求1、测试频率范围为:10Hz100MHz 的方波2、显示工作方式:a、用六位BCD七段数码管显示读数。 b、能够实现对高位无意义零的消隐。 3.2 系统设计原理【2】所谓“频率”,其实就是周期性信号在单位时间(1秒)内变化的次数。如果在一定的时间间隔T内计数,计算可得某周期性信号的重复变化次数为N,则该信号的频率可表达为:f = N / T .基于这一频率测量的原理我们可以使用某一单位时间内对被测信号脉冲频率进行计数的方法来求得对该信号的频率测量,并且要使测量结果尽量精确无误。具体的实现过程简述如下: 首先,我们要将被测信号(
29、方波)加到闸门的输入端。由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号去控制门控电路形成门控信号,门控信号的作用时间T是非常准确的(由石英振荡器决定)。门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲才能通过闸门成为被计数的脉冲由计数器计数。闸门开通的时间称为闸门时间,其长度等于门控信号作用时间T。比如,时间基准信号的重复周期为1S,加到闸门的门控信号作用时间T亦准确地等于1S,即闸门的开通时间“闸门时间”为1S。在这一段时间内,如果计数器计得N=100000个数,根据公式f = N / T,那么被测频率就是100000Hz。如果计数
30、式频率计的显示器单位为“KHz”,则显示100.000KHz,即小数点定位在第三位。不难设想,若将闸门时间设为T=0.1S,则计数值为10000,这时,显示器的小数点只要根据闸门时间T的改变也随之自动往右移动一位(自动定位),那么,显示的结果为100.00Khz。在计数式数字频率计中,通过选择不同的闸门时间,可以改变频率计的测量范围和测量精度。这就是我的数字频率计的设计原理。原来框图如下图所示。时基产生与测频时序控制电路待测信号脉冲计数电路锁存与译码显示电路ENCLRCLK1Kq0:23z10:6z20:6z30:6z40:6待测信号CLK标准时钟CLK IN IN图3.1 数字频率计的组成框
31、图3.3 系统单元模块划分1)分频器,分频器用于较高频率的时钟进行分频操作,得到较低频率的信号在该模块中我们要将输入信号分别分频到4个不同的频率段。即将产生用于计数控制的时钟分别为1HZ,10HZ,100HZ脉冲和1KHZ的用于七段显示数码管扫描显示的扫描信号。这是整个设计的基础模块,我们必须要完成这个模块的设计。2)闸门选择器,当上一个模块的信号输入后,用于选择不同的闸门时间以及产生后续的小数点的显示位置。这个模块的设计可以将该频率测量仪分成几个测量档,对不同频率范围的频率能够进行更精确的测量,使测量结果更加准确。3)门控电路,该模块可以产生用于计数的使能控制信号,清零信号以及锁存器锁存信号
32、。该模块与计数器模块和锁存器模块共同作用后,可以产生清零,计数,锁存等功能。这个模块的成功运行也对整个设计起着至关重要的作用。如果这个模块设计不好或出错,那么频率的测量就会产生很大的误差。4)计数器,该模块能够用于对输入的待测信号进行脉冲计数,使其能够将所测得的脉冲计数正确的输出。这是整个设计中必不可少的环节。5)锁存器,该模块能够用于对计数器输出数据的锁存,便于后续译码显示电路的对数据进行记忆显示,同时避免计数器清零信号对数据产生影响。对整个模块的设计也是非常重要。设计顶层模块时要将它与计数器模块相连接。6)译码显示,该模块能够用于产生使七段显示数码管的扫描数字显示、小数点显示的输出信号,同
33、时要能够对高位的无意义零进行消隐。是整个系统设计的最后环节。金陵科技学院学士学位论文 第4章 系统整体设计及波形仿真4 系统各个模块设计及波形仿真4.1 各个模块设计4.1.1分频器:将产生用于计数控制的时钟分别为1HZ,10HZ,100HZ脉冲和1KHZ的用于七段显示数码管扫描显示的扫描信号,该电路将产生四个不同频率的信号输出(是为了测量不同频率段的频率的测量),因为电路板上给出了一个48MHZ的晶振,所以我们只需要对48MHZ的信号进行适当分频即可得到我们所需的四个不同频率的信号输出,我们设计一个输入为48MHZ,有四个输出端分别为1HZ,10HZ和100HZ,1KHZ的分频器。这个模块的
34、主要作用就是将输入信号分频到四个不同频率的信号输出。这是实现不同频率测量档的一个步骤也是最基础的一个步骤。图4.1 分频器生成的器件图4.2 分频器模块功能仿真图图4.3 分频器模块时序仿真图 由图4.1可以看出该模块有有一个输入端CLK还有4个输出端口,分别是CLKOUT1,CLKOUT10,CLKOUT100,CLKOUT1k.由于分频太大无法显示仿真结果,若要看到仿真图则需要将它的分频减小。我将程序中clkout1, clkout10,clkout100 clkout1k,分别分频到8分频,6分频,4分频,2分频,由图可知clkout1, clkout10,clkout100 clkou
35、t1k的周期分别是clk的8倍,6倍,4倍,2倍。所以仿真波形正确。4.1.2闸门选择器:用于选择不同的闸门时间以及产生后续的小数点的显示位置,在这个模块中我们有四个输出端和六个输入端,其中四个输出端中有一个是频率输出端,是通过三个闸门选择开关输入和三个输入频率决定的,另外三个输出端则是用来后面的小数点控制的,而六个输入端中的三个是上面分频器的三个输出1HZ,10HZ和100HZ,另外三个是电路板上的拨动开关,用来选择闸门,控制输出。该模块主要是用来选择不同的闸门时间以及产生后续的小数点的显示位置。图4.4 闸门选择器模块生成的器件图4.5闸门选择器模块功能仿真图图4.6 闸门选择器模块时序仿
36、真图由以上仿真波形可知,当SE1,SE10,SE100,输入为100时,此时为频率测量的第一档,DP1,DP2,DP3分别为011,SE1,SE10,SE100,输入为010时,此时为频率测量的第二档,DP1,DP2,DP3分别为101,SE1, SE10, SE100,输入为001时,此时为频率测量的第三档,DP1,DP2,DP3分别为110。因为图中输入为010,所以FREF与F10HZ相同。该模块将频率的测量分为几个不同测量档,使其能够更准确的测量波形频率的大小。4.1.3门控电路:产生用于计数的使能控制信号,清零信号以及锁存器锁存信号,在此模块中有一个输入端和两个输出端,输入端为上面的
37、闸门选择器输出的频率,两个输出端分别为计数器是能控制信号(锁存器控制信号),和计数器清零信号。能够控制计数的开始和结束。在顶层模块中与下一个模块计数器模块相连接,实现其功能。该模块主要功能是产生用于计数的使能控制信号,清零信号以及锁存器锁存信号。与下一个模块连接可以产生清零信号以及锁存器锁存信号。图4.7 门控电路模块生成的器件图4.8 门控电路模块功能仿真图图4.9 门控电路模块时序仿真图由该模块的功能可知,当输入信号为FREF时,输出信号GAT是它的2分频(这个设计是为了让测量的时间控制地更加精准,使效果更加明显),当输出信号GAT输出波形后,如果输入信号 FREF,输入信号GAT的值都是
38、0时,输出的CLR信号则为1,即当使能信号为无效0同时时钟为0时,对计数器清0.在其余情况下,输出信号CLR输出都为0。由图4.9可知该模块仿真结果是正确的,能够实现其功能。4.1.4计数器:该模块用于对输入的待测信号进行脉冲计数,并将其计数输出,该模块实现的功能是对某一时间内的输入信号脉冲的计数,并且能够将正确的输出结果和溢出。该模块使用上面的门控信号产生的gat信号控制计数器的使能端,以实现计数器的定时计数。该模块是使用六个十进制计数器同步并联而成的,首先我们设计用于并联的十进制计数器。然后再将6个十进制计数器并联,产生该模块所需的计数器。如图4.10所示。该模块的主要功能是用于对输入的待
39、测信号进行脉冲计数,计数输出。图4.10.1 计数器模块器件内部结构图4.10.2 计数器模块生成的器件图4.11 计数器模块的功能仿真图图4.12 计数器模块的时序仿真图由该模块的功能及其仿真图可知,计数器中的数据应在0到9内循环,当数据未满9时,则进行加1计数。但是当数据计满后则重新回到0开始计数。而且当计数为9时(即计满时)能够产生进位信号,进位信号1有效。且当clr信号为1时数据清0.当XLXN-25产生进位信号时同步连接高位使能端,即XLXN-24开始循环计数。所以仿真结果可知该模块仿真是正确的。4.1.5锁存器:该模块主要用于对计数器输出数据的锁存,便于后续译码显示电路的对数据进行
40、记忆显示,同时避免计数器清零信号对数据产生影响。由于前面的计数器的输出为六组四位二进制数和一个溢出信号,所以我们使用的锁存器也使用六个四位锁存器和一个一位锁存器。锁存器使用下降沿锁存,即当计数器的使能信号变为无效的一瞬间我们令锁存器将数据锁存。主要功能是用于对计数器输出数据的锁存,便于后续译码显示电路的对数据进行记忆显示,同时避免计数器清零信号对数据产生影响。图4.13.1 锁存器模块器件内部结构图4.13.2 锁存器模块生成的器件图4.14 锁存器模块的功能仿真图图4.15 锁存器模块的时序仿真图由该模块的功能和仿真结果可知,在CLK下降沿到达时,DATAIN能够对XLXN21-25的信号进
41、行锁存。当XLXN21-25的输入为1111,0000,0000,0001,0000,0000时,DATAIN的输出为111100000000000100000000。且OVERIN为溢出信号,在CLK下降沿到来时,锁存器对OVERIN信号进行锁存。输出为OVEROUT信号。所以仿真正确,该模块能够实现对数据的锁存。4.1.6译码显示:该模块用于产生使七段显示数码管的扫描数字显示,小数点显示的输出信号,同时对高位的无意义零进行消隐,该模块实现的是对锁存器锁存的数据进行处理并显示输出,以及小数点的不同闸门的输出显示,以及电路板上七段显示译码管的扫描信号输出。其中对锁存数据的处理包括溢出有效时的数
42、据消除,和对高位无意义零的自动消隐。主要功能是用于产生使七段显示数码管的扫描数字显示,小数点显示的输出信号,同时对高位的无意义零进行消隐。图4.16.1译码显示模块器件内部结构图4.16.2译码显示模块生成的器件图4.17 译码显示模块功能仿真图图4.18 译码显示模块时序仿真图由该模块仿真图可知,当sel为011时为第一档时,令第四位的数码管的小数点点亮,其他的不亮。当sel为010时为第一档时,令第三位的数码管的小数点点亮,其他的不亮。当sel为001时为第一档时,令第二位的数码管的小数点点亮,其他的不亮。不符合这三项是无小数点。当接入1KHZ的时钟信号时, CNT进行循环计数,从000到
43、101循环计数,计满则清0,并将CNT赋值给SEL。未满时则加1计数。实现循环计数的功能。由该模块仿真图可知,该仿真结果正确,此时该模块能够显示我们所需的频率。4.2顶层文件:4.2.1 顶层文件原理图由该频率测量仪的功能要求,将以上六个模块连接成图4.19,以实现其频率测量及显示的功能。图4.19 顶层文件原理图4.2.2顶层文件仿真图图4.20 顶层文件功能仿真图图4.21 顶层文件时序仿真图由顶层文件的功能及其仿真结果可知,当输入信号sel0,sel1,sel2分别为1,0,1时且当sel 为010时,此时DP为0,即小数点点亮。因为信号NECT接地,所以一直为0。所以由此可知该顶层模块
44、的仿真波形正确,能够正确的显示测量的频率。金陵科技学院学士学位论文 结论 结论在本次的毕业设计中我对数字频率计进行了系统的设计。首先我介绍了频率测量的一般方法,着重介绍数字测频原理,利用该数字测频原理,通过FPGA运用VHDL编程,利用FPGA(现场可编程门阵列)芯片设计了一个8位数字式频率计,该频率计的测量范围为10HZ-100MHZ,利用QUARTUS 集成开发环境进行编辑、综合、波形仿真,并下载到硬件中,经实际电路测试,仿真和实验结果表明,该频率计有较高的实用性和可靠性,达到预期的结果。和传统的频率计相比,利用FPGA设计的频率计简化了电路板设计,提高了系统设计的实用性和可靠性,实现数字系统的软件化,这也是数字逻辑设计的趋势。在本次的毕业设计中,我学到了许多在课本上学不到知识,除了对相关的专业知识以及相关的实验操作进行了回顾,还有许多其他的意想不到的收获,而且在编写论文的过程中有的图示自己绘制的,这次学校的毕业设计