已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文(设计)题 目: 基于的频率计设计 专业代码: 作者姓名: 学 号: 单 位: 物理科学与信息工程学院 指导教师: 目录 引 言11 EDA 技术发展概况11.1 VHDL 软件设计简介11.2 VHDL的开发流程31.3 MAX+PLUS 开发工具概述42设计实现52.1数字频率计概述52.2数字频率计的基本设计原理72.3测频专用模块功能描述及VHDL程序102.3.1基准脉冲信号产生模块102.3.2 测频时序控制电路模块132.3.3计数模块152.3.4锁存器模块182.3.5七段显示译码器202.3.6动态扫描显示模块222.3.7顶层文件设计253总结274致谢285参考文献296附录30聊城大学本科毕业论文(设计)摘 要 随着计算机技术超大规模集成电路EDA(Electronics Design Automation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具器件已远远落后于当今信息技术的发展。基于EDA技术和硬件描述语言的自上而下的设计技术正在承担起越来越多的数字系统设计任务。在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。本论文采用自上向下的设计方法,基于VHDL硬件描述语言设计了一种数字频率计,并在Max+plus平台上进行了仿真。 关键词:EDA;VHDL;数字频率计;CPLDAbstract With the development of computer,VHDL and EDA and the application of programmable logic devices,the traditional bottom-up design method, tools and devices have been far behind the development of information technology. The top-down design method based on the EDA technology and VHDL is used to design the digital system. Be one of the most fundamental parameter in electron technology medium frequency, parameter measurement scheme, measurement result all have very close something to do with a lot of electricity and, the frequency measurement looks like being more important therefore right away. The method measuring frequency has various, among them the electronic counter measures frequency having accuracy height, usage is convenient, measurement is prompt, easy to realize measurement process automation waits for merit and, counter measures frequency having two kinds way: sure frequency law first directly ,be to measure the pulse number the signal is measured within certain sluice gate time; Two is indirect measure frequency law, if the period measures frequency law, Measure frequency law directly applying to the high frequency signals.In this paper,a digital cymometer is designed using the top-down method based on VHDL and then simulated on Max+plusplatform. Key words:EDA;VHDL;Digital Frequency Count;CPLD 3基于VHDL 的频率计设计引 言 频率是电子测量中一个最为基本的参量,在信号发生器以及振荡器、各种倍频和分频电路的输出信号中,都要进行频率的测量。作为用十进制数字显示被测信号频率的数字频率计,是计算机、通讯设备、音频视频等科研生产领域不可缺少的电子测量仪器。与传统的频率计相比,数字频率计具有精度高、测量范围大、可靠性好等优点。传统的数字频率计是由中大规模集成电路构成,但这类频率计会产生比较大的延时,测量范围较小,精度不高,可靠性差且电路复杂。随着集成电路技术的发展,可以将整个系统集成到一个块上,实现所谓的片上系(SOC)。片上系统的实现将大大减小系统的体积,降低系统的成本,提高系统的处理速度和可靠性。随着可编程逻辑器件(CPLD)的广泛应用,以EDA工具为开发平台,利用VHDL(Very High Speed Integrated Circuit Hardware Description Language)工业标准硬件描述语言,采用自顶向下(Top to Down)和基于库(Library-based的设计,设计者不但可以不必了解硬件结构设计,而且将使系统大大简化。提高整体的性能和可靠性。本文用VHDL在CPLD器件上实现一种能够用十进制数码管显示被测信号的频率数字频率计测频系统,它不仅能测量频率,还测量其他多种物理量,具有体积小、可靠性高、功耗低的特点。 1 EDA 技术发展概况 1.1 VHDL 软件设计简介 VHDL全名Very High Speed Integrated Circuit Hardware Description Language ,VHDL语言是一种在80年代的后期出现用于电路设计的高级语言,最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。系统电路的软件设计可采用工具软件Maxplus II,Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。用该工具软件所支持的语言-硬件描述语言VHDL,以文本的方式进行编程输入。在编程时分别对控制、计数、锁存、译码、动态扫描等电路模块进行VHDL文本描述, 使每个电路模块以及器件都以文本的形式出现,然后通过编译、波形仿真、调试来完善每个器件的功能。单个器件制作完成后,然后将它们生成库文件,并产生相应的符号,最后用语言将各个已生成库文件的器件的各个端口连接在一起,从而形成了系统主电路的软件结构。在连接器件时,也可以采用图形输入方式,即在图形输入界面中调出先制作好的库文件器件符号,再将每个器件符号的各个端口直接连线,从而构成系统主电路。在上述工作的基础上,在进行波形分析,仿真调试便完成整个软件设计。 VHDL语言优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决 定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.2 VHDL的开发流程 VHDL作为一种标准化的硬件描述语言,在对硬件电路进行描述的过程中应该遵循一定的流程,主要包括以下几步: 在进行硬件电路系统设计之前,首先作出总体设计方案;然后给出相应的硬件电路系统设计指标;最后将总体方案中的各个部分电路设计任务及设计要求给相应的设计部门。 具体电路功能。接受相应的电路设计任务后,首先要对电路的设计任务和设计要求进行具体分析,确定设计电路所要实现的具体功能。 划分模块、编写程序。利用VHDL设计硬件电路通常采用自顶向下的设计方法。这种设计方法的总体思路是:首先确定顶层模块并进行顶层模块的设计;然后将顶层模块中的逻辑功能划分为不同的功能模块,再进行功能模块的详细设计。 VHDL程序模拟。在设计过程中,往往先采用模拟器(或称为仿真器)对VHDL程序进行模拟(或称为仿真)。这样做的目的是可以在设计的早期发现电路设计上的缺陷和错误,从而节省电路设计的时间,缩短开发周期。 综合、优化和布局布线。综合是将电路设计的VHDL描述转换成底层电路表示;优化是将电路设计的时延缩到最小和有效利用资源;布局布线是将通过综合和优化所得到的逻辑,安防到一个逻辑器件之中的过程。 布局布线后的程序模拟。与VHDL程序模拟不同,只是对设计的逻辑功能进行模拟, 生成器件编程文件。生成器件编程文件的作用是将VHDL描述经过模拟、综合、优化和布局布线的结果,经过一定的映射转换成一个器件编程所用的数据文件格式。 进行器件编程。1.3 MAX+PLUS 开发工具概述 MAX+PLUS(Multiple Array and Programming Logic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。Altera公司在推出各种CPLD的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代MAX+PLUS发展到第三代MAX+PLUS和第四代Quartus。使用MAX+PLUS软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,MAX+PLUS就会自动将设计转换成目标文件下载到器件中去。MAX+PLUS开发系统具有以下特点: (1) 多平台。MAX+PLUS软件可以在基于PC机的操作系统如Windows95、Windows98、Windows2000、Windows NT下运行,也可以在Sun SPAC station等工作站上运行。 (2) 开放的界面。MAX+PLUS提供了与其他设计输入、综合和校验工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等标准。目前MAX+PLUS所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。 (3) 模块组合式工具软件。MAX+PLUS具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验和下载编程4个模块,设计者可以按设计流程选择工作模块。 (4) 与结构无关。MAX+PLUS开发系统的核心Compiler(编译器)能够自动完成逻辑综合和优化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可编程器件系列,提供一个与结构无关的PLD开发环境。 (5) 支持硬件描述语言。MAX+PLUS支持各种HDL设计输入语言,包括VHDL、Verilog-HDL和Altera的硬件描述语言AHDL。 (6) 丰富的设计库。MAX+PLUS提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元,74系列的器件和多种特定功能的宏功能模块以及参数化的兆功能模块。调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。数字频率计是数字电路中的一个典型应用,传统的数字频率计一般由分离元件搭接而成,实际的硬件设计用到的器件较多,连线比较复杂,其测量范围、测量精度和测量速度都受到很大的限制。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成于一个单个器件中,根据不同的需要所提供的门数可以从几百万到上百万门,不但集成度远远超过了以往的数字频率计,而且在基准频率及精度等外部条件的允许下,根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,用较少的器件来实现系统的功能,从而降低系统的整体造价。 此外,系统芯片(SOC)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。本设计实现的数字频率计,除被测信号以外,只需要一个标准时基信号,其余全部在一片FPGA芯片上实现,系统各功能模块的实现全部采用VHDL语言编写。本设计通过用VHDL语言实现数字频率计,用设计实例说明如何采用层次化的设计方法实现较大的数字系统,并强化了使用VHDL语言来实现数字系统设计的能力。接下来,在后续的章节会介绍硬件描语言VHDL语言的详细情况。2设计实现2.1 数字频率计概述 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的基本功能是测量正弦信号、方波信号、尖脉冲信号及其他各种单位时间内变化的物理量。当今数字频率计不仅是作为电压表、计算机、天线电广播通讯设备、工艺过程自动化装置。集成数字频率计由于所用元件少、投资少、体积小、功耗低、且可靠性高、功能强、易于设计和研发,使得它具有技术上的实用性和应用的广泛性。不论从彩色电视机、电冰箱、DVD,还是现在家庭常用到的数字电压表、数字万用表等都包含有频率计。在智能化、数字化科技发展的今天,数字频率计已成为频率计发展的方向,与传统的频率计相比,数字频率计具有测量速度快、精度高、量程大、设计简单、读数方便等优点。因此数字频率计的发展对整个电子产品的发展起着举足轻重的作用。 随着社会和科技的发展,信息传输和处理的要求的提高,对频率的测量精度也提出了更高的要求,需要更高准确度的时频基准和更精密的测量技术。而频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设备和测量方法。频率测量技术的发展非常快。一方面是追求新的更高稳定度和准确度的新型频标;另一方面是提供便于工业,科研应用的商品化频标,如小铯钟,新型高稳定度晶体振荡器等这些工作多在计量研究与工业部门进行。在频率测量的研究上,改进,创造新的测频原理,方法和仪器,以便以更高的精度,速度,自动进行测量和数据处理,并向多功能,小型化,高性价比发展是其主要的发展方向。目前国内外使用的测频的方法有很多,如直接测频法,内插法,游标法,时间电压变化法,多周期同步法,频率倍增法,频差倍增法以及相位比较法等测频方法。直接测频的方法较简单,但精度不高。内插法和游标法都是采用模拟的方法,而且多用于测量时间间隔,从而进行转换得出,虽然精度提高了,但是电路设计却很复杂。时间电压变化法是利用电容的充放电时间进行测量,由于经过A/D转换,速度较慢,且抗干扰能力较弱,多周期同步法其方法是:首先由控制线路给出闸门开启信号,此时计数器并不开始计数,而是等到被测信号的上升沿到来时,才真正开始计数。然后,两组计数器分别对被测信号和标准信号进行计数,要等到被测信号下降沿到来时才真正结束计数,完成一次测量过程。计数器的开闭与被测信号是完全同步的。为了进一步的提高精度,通常采用模拟内插法或游标法与多周期同步法结合使用,虽然精度有了进一步的提高,但始终未解决士1的计数误差,而且这些方法设备复杂,不利于推广。频率误差倍增法就是使用2个标称值一样的频标信号,通过多次倍频,混频,滤波以及放大把2个频标信号的频差加以放大的方法。它的优点是把差频放大后,便于使用简单的仪器来获得测量精度的测量结果。但是用这种方法来提高测量精度是有限的。在结合前面多种方法的基础上做了改进,等精度测量不但有很高的测量精度。且在整个频率区域能保持恒定的测量精度。数字频率计的设计手段也是多种多样的。大体上分为利用数字电路设计,单片机设计,DSP进行设计和硬件描述语言的设计。采用数字电路的频率计因其电路极为复杂,抗干扰能力和稳定性较差,因此使用较少。 采用单片机设计具有一定的优势,如以AT89C51单片机和MSP430F449单片机的频率计设计,总体来看,这些具有结构简单,功能齐全,使用方便的特点。但其在电路硬件级的描述上不足,使得其更适合做控制方面,结合硬件描述进行设计,采用TMS320F2812DSP 芯片为控制单元,在无需任何门控器件控制的情况下,利用DSP2812丰富的软件资源可以实现等精度测量。它根据每个门闸时间内高频标准脉冲的个数与已知被测信号的个数,求的被测信号的频率,再通过多次平均得到最终结果。但由于DSP定时器在计数时存在计数饱和的情况,因此在实现该精度测量时存在上限,即当被测测信号频率填充脉冲的频率时,该方法就不能实现等精度了,采用硬件描述语言进行设计是目前最多也是最好的设计方法。 近年来,我国在数字频率计研究领域发展迅速。目前,数字频率计的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下的逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。 2.2数字频率计的基本设计原理 所谓频率,就是周期信号在单位时间1s里变化的次数。常用的直接测频法有两种:一种是测周期法;一种是测频率法。测周期法需要有基准系统时钟频率Fs,在待测信号一个周期Tx内,记录基准系统时钟频率的周期数Ns,则被测频率可表示为: Fx=Fs/Ns 。 测频率法就是在一定时间间隔Tw(该时间定义为闸门时间)内,测得这个周期性信号的重复变换次数为Nx,则其频率可表示为: Fx=Nx/Tw 。 这两种方法的计数值会产生正负一个字的误差,并且被测精度与计数器中记录的数值Nx有关,为保证测试精度,一般对于低频信号采用测周期法,对于高频信号采用测频率法。 直接测频法的一般思路是:在精确规定计数允许周期T内使能计数器,对被测信号的周期(脉冲)数进行计数,计数允许周期T的长度决定了被测信号频率的范围。较长的计数允许周期T对低频信号而言有利于改善测量精度,但对于高频信号来说,则会产生溢出;较短的计数允许周期T对低频信号的测量,虽然精度降低,但能测量的最大频率较高,且不会产生溢出。在本设计中,用一个频率稳定度高的频率源作为基准时钟,通过对来临的待测信号的上升沿在设定的计数允许周期T内计数,这个计数允许周期T就是所谓的阀门。闸门时间可以根据需要取值大于或小于1 s都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。通常情况下计算每秒内待测信号的脉冲个数即闸门时间为1s。基于此思路,可得到数字式频率计系统组成框图如图2.0。图2.0数字式频率计的原理方框图系统设计采用自顶向下的设计方法,包括脉冲发生器电路模块与测频控制信号发生器电路模块 ,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。该数字式频率计的精度取决于系统基准时钟,实际设计可采用石英晶体振荡器电路,以便为闸门控制电路产生精确的系统基准时钟。并且分别用VHDL硬件描述语言对其编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。根据数字频率计的系统原理方框图(图2.0)设计系统的顶层电路图如图2.1所示,A模块为基准脉冲信号产生模块,B模块为测频时序控制电路模块,C模块为计数模块,D模块为40位锁存器模块,E模块为七段译码显示模块,F模块为动态扫描模块。图2.1十位十进制频率计顶层原理图2.3测频专用模块功能描述及VHDL程序2.3.1基准脉冲信号产生模块当系统正常工作时,脉冲发生器提供标准1HZ的输入信号,经过测频时序控制信号发生器进行信号的变换,产生计数信号。测量信号时,将被测信号送入计数模块。先使计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,然后将计数结果送入动态扫描电路进行选择输出,输出结果由显示译码驱动电路将计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果,在七段数码显示管可以看到计数结果。图2.2基准脉冲信号产生模块 基准脉冲信号产生模块的工作过程为:由外部时钟提供的10MHZ 标准脉冲信号,经分频器两次分频以后得到1HZ 基准脉冲信号。在CLK10M模块,输入为由外部时钟提供的CLK脉冲信号,频率为10MHZ ,经过10000分频,输出为信号CLK500,频率为500HZ,该时钟信号可作为动态扫描显示模块的扫描时钟信号,时钟信号CLK500经过CLKGEN模块,经过250分频,输出为基准脉冲信号NECLK ,频率为1HZ.CLK10M模块的源程序为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLK10M ISPORT( CLK :IN STD_LOGIC ; 外部时钟提供的10MHZ标准脉冲信号 CLK500: OUT STD_LOGIC); 10000分频后的时钟信号END CLK10M;ARCHITECTURE ART OF CLK10M IS SIGNAL CNTER:STD_LOGIC_VECTOR(24 DOWNTO 0); SIGNAL CNTEER:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN IF CNTER=9999 THEN CNTER=0000000000000000000000000; CNTEER=NOT CNTEER; ELSE CNTER=CNTER+1; END IF ; END IF ; END PROCESS; CLK500=CNTEER; END ART;CLKGEN模块的源程序为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLKGEN ISPORT( CLK :IN STD_LOGIC ; NEWCLK: OUT STD_LOGIC);END CLKGEN;ARCHITECTURE ART OF CLKGEN IS SIGNAL CNTER:STD_LOGIC_VECTOR(24 DOWNTO 0); SIGNAL CNTEER:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN IF CNTER=249 THEN CNTER=0000000000000000000000000; CNTEER=NOT CNTEER; ELSE CNTER=CNTER+1; END IF ; END IF ; END PROCESS; NEWCLK=CNTEER; END ART;仿真后得到的波形图如图2.3所示:仿真分析:输入信号CLK 的频率为10MHZ,输出信号CLK500的频率为500HZ。图2.3CLK500分频模块仿真波形图2. 4CLKGEN 分频模块仿真波形仿真分析:输入信号CLK的频率为500HZ,输出NEWCLK的频率为1HZ。2.3.2 测频时序控制电路模块图2.5测频时序控制电路模块框图测频时序控制电路模块框图如图2.5所示,CLK为由基准脉冲信号产生模块产生的频率为1HZ的标准时钟信号NEWCLK,测频时,将频率为1HZ的标准时钟信号NEWCLK送入控制电路输入端CLK,输出端包括一个计数使能输出端TSTEN,一个是清零信号输入端CLR_CNT和一个数据锁存输出端LOAD。使能信号TSTEN对频率计中10个十进制计数器的使能端ENA进行同步控制,当TSTEN为高电平时允许计数,低电平时停止计数,停止计数期间,测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿,将计数值锁存到REG40B锁存器中。测频控制模块TESTCTL的CLR_CNT端产生一个上升沿,对计数器进行清零。为下一秒的计数操作做准备。图2.6测频时序模块波形图为了实现系统功能,测频时序控制模块TESTCTL,计数器CNT10,以及锁存器REG40B存在一个工作时序的问题,设计时需要综合考虑。为了产生如图2.6所示的时序图,首先要有一个D触发器构成二分频器,在每次时钟CLK上升沿到来使其值翻转。触发器的输出高电平正好是1S,即测频时序控制模块TESTCTL的TSTEN端时钟脉冲信号的脉宽为1S,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。而LOAD信号正好是TSTEN端信号的翻转。在计数结束后半个CLK周期,CLK与TSTEN都为低电平,这时CLR_CNT产生一个上升沿作为清零信号。 图2.7测频时序模块仿真波形 测频时序控制电路模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL ISPORT(CLK:IN STD_LOGIC;TSTEN:OUT STD_LOGIC;CLR_CNT:OUT STD_LOGIC;LOAD: OUT STD_LOGIC);END TESTCTL;ARCHITECTURE ART OF TESTCTL ISSIGNAL Div2CLK:STD_LOGIC;BEGINPROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Div2CLK=NOT Div2CLK; END IF;END PROCESS;PROCESS(CLK,Div2CLK)BEGIN IF CLK=0AND Div2CLK=0THEN CLR_CNT=1; ELSE CLR_CNT=0; END IF ;END PROCESS;LOAD=NOT Div2clk;TSTEN=Div2CLK;END ART;2.3.3计数模块 该计数模块主要有10个十进制计数器CNT10级联而成,具有复位和使能控制功能,主要是在阀门时间内对被测信号FSIN频率进行计数。图2.8计数模块框图测频时, 测频时序控制电路模块TESTCTL的TSTEN端时钟脉冲信号的脉宽为1S,并对频率计的如图2.8的计数模块每一计数器CNT10的ENA使能端进行同步控制,TSTEN高电平期间允许各个计数器工作,低电平期间停止计数并保持计数值。测频控制模块TESTCTL的CLR_CNT端产生一个上升沿,并对频率计的每一计数器CNT10的CLR端进行同步控制,对计数器进行清零。当测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿时,将计数值DIN(39 DOWNTO 0)锁存到REG40B锁存器中.此计数器从个位开始到高位分别计数,使低位计数器CNT10的CARRY_OUT端与高位计数器CNT10的输入时钟位CLK相连。首个计数器CNT10的CLK端外接被测信号FSIN,该计数模块的输出信号为有低位到高位的10组4位二进制表示的十进制数,用来分别表示被测信号的个、十、百、千等位的数值。位数越高频率测量的范围也越宽,此测量范围由计数电路内部的十进制计数器的个数来决定。 图2.9具有同步使能端的十进制计数器 元件符号图 具有同步使能端的十进制计数器如图2.9所示,CARRY_OUT 是计数器进位输出;COUNT10(3 DOWNTO 0)是计数器的状态输出;CLK是时钟输入端;ENA是使能控制输入端,当ENA=1时,计数器计数,当ENA=0时,计数器保持状态不变。 具有同步使能端的十进制计数器源程序为: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT( CLK:IN STD_LOGIC; 计数时钟信号 CLR:IN STD_LOGIC; 清零信号 ENA:IN STD_LOGIC; 计数使能信号 COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); 4位计数结果输出 CARRY_OUT:OUT STD_LOGIC 计数进位 ); END CNT10; ARCHITECTURE ART OF CNT10 IS SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,CLR,ENA) BEGIN IF CLR=1THEN CQI=0000; 计数器异步清零 ELSIF CLKEVENT AND CLK=1THEN IF ENA=1THEN IF CQI=1001THEN CQI=0000; 等于9,则计数器清零 ELSE CQI=CQI+1; END IF; END IF; END IF; END PROCESS; PROCESS(CQI) BEGIN IF CQI=1001THEN CARRY_OUT=1; 进位输出 ELSE CARRY_OUT=0; END IF; END PROCESS; COUNT10=CQI; END ART;图2.10具有使能端的十进制计数器的仿真波形仿真分析:在使能端ENA高电平期间,清零信号CLR为低电平时,CNT10计数器以十进制计数,计数到9后,进位CARRY_OUT输出为高电平,在下一个时钟信号CLK上升沿到来时,计数器清零。在使能端ENA为低电平时,计数器不能启动。当清零信号CLR为高电平时,计数器清零。2.3.4 锁存器模块 图2.11锁存器元件符号锁存器模块元件符号如图2.11所示,主要作用为锁存计数器的计数值。设置锁存器可以使数据显示稳定可靠,不会由于周期性的清零信号而使数码管不断闪烁。测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿,将计数值锁存到REG40B锁存器中,并由REG40B的输出端输出。锁存器模块的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG40B ISPORT( LOAD :IN STD_LOGIC; 锁存信号时钟 DIN: IN STD_LOGIC_VECTOR(39 DOWNTO 0); 锁存器输入信号 DOUT: OUT STD_LOGIC_VECTOR(39 DOWNTO 0) 锁存器输出信号 );END REG40B;ARCHITECTURE ART OF REG40B ISBEGINPROCESS(LOAD,DIN)BEGINIF LOADEVENT AND LOAD=1 THEN DOUT=DIN; LOAD上升沿到来后END IF; 锁存END PROCESS; END ART;图2.12REG40B 波形仿真REG40B波形仿真分析:输入信号DIN为40位数据0000 0000 0000 0000 0000 0000 0000 0000 0001 1000,测频时序控制模块TESTCTL的锁存信号LOAD端输出上升沿时,将计数值锁存到REG40B锁存器中,输出信号DOUT为40位数据0000 0000 0000 0000 0000 0000 0000 0000 0001 1000.2.3.5七段显示译码器数字逻辑系统中常用的显示器件是数码管,半导体数码管的外形和等效电路如图2.13所示,每一个字段都是一个发光二极管,因而也称之为LED数码管或LED显示器。LED数码管用七段发光二极管(带小数点时为8段)来显示数字,每一段都是一个发光二极管,一般把所有段的相同的一端相连,连接到地(共阴极接法)或者是连接到电源(共阳极接法)。共阴极LED数码管的公共端连接到地,另一端分别接一个限流电阻后再接到控制电路的信号端,当信号端为高电平时,该段即被点亮,否则不亮。共阳极接法则相反,公共端连接到电源,另一端分别接一个限流电阻后再接到控制电路的信号端,只有信号端为低电平时才被点亮,否则不亮。 图2.13数码管的外形和等效电路在数字逻辑电路中,数码管可以用TTL或CMOS集成电路来直接驱动,其驱动方式有BCD码驱动和直接驱动。BCD码驱动方式是用74LS48(共阳极七段显示驱动器)、74LS49(共阴极七段显示驱动器)译码驱动电路来控制数码管显示。直接驱动方式是直接对数码管相应的字段给出驱动电平,以显示电平。 74LS48是一种实现码型转换的译码芯片。码型转化就是将一种编码的输入转换为另一种编码输出。74LS48就是将BCD码转换成为7段数码管显示编码。它是共阴极驱动芯片,也就是在输出高电平时,该芯片具有较强的电流输出能力。 图2.14七段显示译码器模块元件符号七段显示译码模块将锁存器送过来的4位BCD数字符译成七段码。频率测量中,共要10个七段显示译码模块BCD。锁存器模块输出的40位数据,从低位到高位以4位二进制数据为一组分别送入显示译码模块的输入端口BCD(3 DOWNTO 0)。每个显示译码模块的输出端LED(6 DOWNTO 0)从低位高位送入动态扫描模块的10个7位数据输入端口。七段显示译码模块的源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BCD7 IS PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 输入的4位BCD 数字符 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); 输出七段码END; ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0000 ELSE 0 LED 为共阴极 0000110 WHEN BCD=0001 ELSE 1 1011011 WHEN BCD=0010 ELSE 2 1001111 WHEN BCD=0011 ELSE 3 1100110 WHEN BCD=0100 ELSE 4 1101101 WHEN BCD=0101 ELSE 5 1111101 WHEN BCD=0110 ELSE 6 0000111 WHEN BCD=0111 ELSE 7 1111111 WHEN BCD=1000 ELSE 8 1101111 WHEN BCD=1001 ELSE 9 0000000; END ART; 图2.15七段显示译码器模块仿真波形仿真波形分析:在七段显示译码器模块仿真中,输入信号BCD的值为 0001时,输出信号LED 的值为0000110,当输入信号BCD的值为1110时,输出信号LED的值为0000000。因为该数字频率计要求的为10进制计数,则该七段显示译码器只对0到9的二进制数进行译码,输入其他的二进制数时,译码输出为0000000。2.3.6动态扫描显示模块 在CPLD或FPGA验证设计结果时,数码管的两种驱动方式BCD码驱动和直接驱动两种方法均可采用,10个LED数码管以静态方式显示时,需要用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论