版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VHDL语言的数字频率计设计 摘 要在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。本设计结合采用测频法与测周期法这两种频率测量方法,可以大大提高数字频率计的频带以及测量精度。本设计采用模块化思想,将频率计的实现按功能分割成基准时间产生模块、高频计数模块、低频计数模块、数据处理模块、中央控制模块。其中,中央控制模块是整个系统的控制部分:高频信号采用测频法,直接在中央控制器显示输出;
2、低频信号采用测周期法,由基准时间产生模块提供的计数时钟信号,再经过数据处理模块处理,在中央控制器模块上显示输出。各部分模块都采用超高速集成电路硬件描述语言(VHDL)来实现,所以尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。关键词:电子设计自动化;硬件描述语言;数字频率计Design of a Digital Cymometer Based on VHDLAbstractIn electronics, the frequency is one of the most basic parameters, and with many electrical paramete
3、rs of the measurement program, measurement consequence of a very close relationship, so the frequency of measurement becomes very important. Measuring frequency of means, including electronic counter measuring frequency with high precision, easy to use, fast measurement and easy to realize the advan
4、tages of automated measurement process is an important means of frequency measurement. The design combination of frequency measurement method and the measurement cycle the two frequency measurement method can greatly enhance the digital frequency meter band and the measurement accuracy.The modular d
5、esign ideas, the realization of the frequency counter divided by function into a reference time generator module, high frequency count module, low frequency count module, data processing module, the central control module. Among them, the central control module is part of the whole system of control
6、: high-frequency signal with frequency measurement method, the direct display output in the central controller; low frequency signal by measuring cycle method, produced by the reference time clock module provides the count, and then through the data processing module processing, the central controll
7、er module display output. The part of the module is ultra high speed integrated circuit hardware description language (VHDL) to implement, so even though the target system hardware, but the whole process of design and modification of software design as complete as easy and efficient.Key words: EDA;V
8、HDL; Digital Cymometer目录1绪论11.1电子设计自动化(EDA)发展概述1EDA的发展历史1EDA的应用21.2选题背景及意义31.3论文的研究内容和结构安排32硬件描述语言HDL52.1VHDL语言简介52.2VHDL语言的结构模型和设计方法6VHDL的结构模型6VHDL语言设计方法72.3利用VHDL语言开发的优点83基于VHDL语言的数字频率计设计103.1用FPGA实现数字频率计103.2数字频率计的系统设计11数字频率计的测频原理11数字频率计系统功能分割123.3数字频率计系统模块的VHDL语言实现15中央控制模块(Center)15基准时间产生模块(Cloc
9、kGen)18高频计数模块(HFCounter)20低频计数模块(LFCounter)21数据处理模块(Divid)233.4设计实现243.5本设计的数字频率计的特点253.6数字频率计各模块的仿真波形26结 论33致 谢34参考文献351 绪论21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若千年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着IC技术的发展,电子设计自动化(Electronic Design Automation)EDA己经逐渐成为重要设计手段
10、,其广泛应用于模拟与数字电路系统等许多领域。1.1 电子设计自动化(EDA)发展概述 随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流迅猛发展的引擎就是日趋进步和完善的设计技术。目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下的逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计过程几乎都可以用计算机来自动地完成,也就是说做到了电子设计自动化(EDA)。这样做可以大大地缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求,提高产品的竞争能力1。1.1.1
11、 EDA的发展历史EDA技术的发展始于70年代,至今经历了三个阶段。电子线路的CAD(计算机辅助设计)是 EDA发展的初级阶段,是高级 EDA系统的重要组成部分。它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图;采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。80年代初期,EDA技术开始技术设计过程的分析,推出了以仿真(逻辑模拟、定时分析
12、和故障仿真)和自动布局与布线为核心的EDA产品,这一阶段的EDA己把三维图形技术、窗口技术、计算机操作系统、网络数据交换、数据库与进程管理等一系列计算机学科的最新成果引入电子设计,形成了CAE(计算机辅助工程)。也就是所谓的EDA技术中级阶段。其主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。其作用已不仅仅是辅助设计,而且可以代替人进行某种思维。CAE这种以原理图为基础的EDA系统,虽然直观,且易于理解,但对复杂的电子设计很难达到要求,也不宜于设计的优化。所以,90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(电子系统设计自动化),即高级 EDA
13、阶段,也就是目前常说的EDA。过去传统的电子系统电子产品的设计方法是采用自底而上(Bottom-Up)的程式,设计者先对系统结构分块,直接进行电路级的设计。这种设计方式使设计者不能预测下一阶段的问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使整个系统达到既定的功能和指标,不能保证设计一举成功。EDA技术高级阶段采用一种新的设计概念:自顶而下(Top-Down)的设计程式和并行工程(Concurrent engineering)的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。此阶段EDA技术的主要特
14、征是支持高级语言对系统进行描述,高层次综合(High Level Synthesis)理论得到了巨大的发展,可进行系统级的仿真和综合2。图1.1给出了上述三个阶段的示意图。行为设计结构设计逻辑设计电路设计版图设计设计层次1970 1975 1980 1985 1990 1995 2000 年代CADCAEEDA图1.1 EDA发展阶段示意图1.1.2 EDA的应用随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,电子类的高新技术项目的开发也逾益依赖于EDA 技术的应用。即使
15、是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA 技术将迅速成为电子设计领域中的极其重要的组成部分3。随着微电子技术的飞速进步,电子学进入了一个崭新的时代。其特征是电子技术的应用以空前规模和速度渗透到各行各业。各行业对自己专用集成电路(ASIC)的设计要求日趋迫切,现场可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的 ASIC提供了技术和物质条件。利用EDA技术对FPGACPLD的开发,通常是一种借助于软件方式的纯硬件开发,可以通过这种途径进行专用ASIC开发,而最终的ASIC芯片,
16、可以是FPGACPLD,也可以是专制的门阵列掩膜芯片,FPGACPLD起到了硬件仿真ASIC芯片的作用。1.2 选题背景及意义频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以测频方法的研究是电子测量领域的重要内容。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。数字频率计是数字电路中的一个典型应用,传统的数字频率计一般由分离元件搭接而成,实际的硬件设计用到的器件较多,连线比较复杂,其测量范围、测量精度和测量速度都受到很大的限制。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成于一个单个器件中,根据不同的需要所提供的门数可以从几百门到上百万门,
17、不但集成度远远超过了以往的数字频率计,而且在基准频率及精度等外部条件的允许下,根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,用较少的器件来实现系统的功能,从而降低系统的整体造价。 此外,系统芯片(SOC)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。本设计实现的数字频率计,除被测信号以外,只需要一个标准时基信号,其余全部在一片FPGA 芯片上实现,系统各功能模块的实现全部采用VHDL语言编写。本设计通过用VHDL语言实现数字频率计,用设计实例说明如何采用层次化的设计方法来实现较大的数字系统,并强化了使用VHDL语言来实
18、现数字系统设计的能力。接下来,在后续的章节会介绍硬件描述语言VHDL语言的详细情况。1.3 论文的研究内容和结构安排本设计采用 EDA (Electronic Design Automation) 的方法来完成数字频率计的设计,即通过VHDL(Very High Speed Integrated Circuit Hardware Description Language)硬件描述语言来完成的设计,用 FPGA (Field Programmable Gate Array) 来实现。本设计主要完成的工作有:1根据数字频率计的测频原理,对整个数字频率计进行系统划分并合理的设计各模块的接口;2应用V
19、HDL语言完成了数字频率计各模块功能的设计实现,说明了各模块和系统输入输出信号的功用;3运用实验系统的软件系统开发环境MAX+PLUS进行编辑、综合、波形仿真。本设计共分为三章,论文结构安排及各章的内容安排如下:第二章介绍了VHDL语言的结构模型和设计方法以及VHDL语言的优点;第三章首先介绍了数字频率计测频的基本原理,接着完成了数字频率计的系统设计,把数字频率计按功能划分为5个模块,并用VHDL语言完成了数字频率计各模块的设计,并着重说明了各模块输入输出信号的功用,简述了本设计数字频率计的优点,最后给出了各模块的仿真波形图。2 硬件描述语言HDL硬件描述语言(HDL)是相对于一般的计算机软件
20、语言如C,Pascal而言的。HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用 HDL程序来描述所希望的电路系统,规定其结构特征和电路的行为方式;然后利用综合器和适配器将此程序变成能控制FPGA和CPLD内部结构、并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。硬件描述语言具有以下几个优点:(1)设计技术齐全,方法灵活,支持广泛。(2)加快了硬件电路的设计周期,降低了硬件电路的设计难度。(3)采用系统早期仿真,在系统设计早期就可发现并排除存在的问题。(4)语言设计可与工艺技术无关。(5)语言标准,规范,易与共享和复用。就FPGA/
21、CPLD开发来说,VHDL语言是最常用和流行的硬件描述语言之一。本次设计选用的就是 VHDL语言,下面将主要对 VHDL语言进行介绍。2.1 VHDL语言简介VHDL是超高速集成电路硬件描述语言的英文字头缩写简称,其英文全名是Very High Speed Integrated Circuit Hardware Description Language。它是在70-80年代中由美国国防部资助的VHSIC(超高速集成电路)项目开发的产品,诞生于1982年。1985年在美国国防部的支持下正式推出了超高速集成电路硬件描述语言(VHDL),它是目前世界上标准化程度最高的一种硬件描述语言。它源于美国国防
22、部提出的超高速集成电路计划,最初的目的是为了在各个承担国防部订货的集成电路厂商之间建立一个统一的设计数据和文档交换格式。由于美国国防部是财力集中、范围广泛的特殊用户,因此它的要求很快得到了响应。1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本(IEEE std 1076-1987标准)之后,各EDA公司相继推出了自己的VHDL设计环境。此后,VHDL在电子设计领域受到了广泛的接受,并逐步取代了原有的非标准HDL。1993年,IEEE对VHDL进
23、行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL的内容,公布了新版本的VHDL,即ANSI/IEEE std 1076-1993版本。1996年IEEE 10763成为VHDL综合标准。VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。与其它的 HDL相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的 EDA工具和 VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器
24、件的网表文件己不成问题。VHDL语言在硬件设计领域的作用将与 C和 C+在软件设计领域的作用一样,在大规模数字系统的设计中,它将逐步取代如逻辑状态表和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编程逻辑器件的结合作为一种强有力的设计方式,将为设计者的产品上市带来创纪录的速度。2.2 VHDL语言的结构模型和设计方法VHDL是标准化的硬件描述语言,用于数字电路系统设计,可以在各种级别上进行逻辑设计,并对设计进行仿真验证,时序分析、逻辑综合。VHDL有非常丰富的数据类型,它的结构模型是层次化的,利用这些丰
25、富的数据类型和层次化的结构模型,对复杂的数字系统进行逻辑设计并用计算机仿真,逐步完善后进行自动综合生成符合要求的、在电路结构上可实现的数字逻辑,再下载到可编程逻辑器件中,完成设计任务4。2.2.1 VHDL的结构模型VHDL的结构模型包括五个部分:实体(Entity),结构体 (Architecture),配置(Configuration) ,程序包(Package),库(Library)。各模块的功能描述如下:实体:设计实体是VHDL中的基本单元和最重要的抽象,它可以代表整个系统、一块电路板、一个芯片或一个门电路。它可以代表像微处理器那样复杂的电路,也可以代表像单个逻辑门那样的电路,对于设计
26、实体可以代表什么几乎没有限制。实体说明定义了器件的端口特性和端口模式,设立了实体与外部进行通信的环境。在VHDL层次化设计中引用低层次的设计实体,就好象结构图中调用基本符号并把它们连接起来。实体中可以有一个或多个输入、输出端口(port)的定义,端口的作用类似于逻辑符号的引脚。信息通过端口在实体之间流动。结构体:结构体是VHDL设计中最重要的部分,可以单独编译并放入库中。结构体描述一个设计的结构或行为,把一个设计的输入与输出之间的逻辑关系建立起来。如果把实体想象为结构图中的功能符号,则结构体描述该功能块的内部情形。结构体中包含着并行语句和顺序语句。请注意,允许一个实体有多个结构体。在某一特定情
27、况下,该实体到底和哪一个结构体“绑定”在一起,可以使用配置说明语句(configuration declaration)来指定。结构体分为两部分:说明部分和描述部分。配置:大型设计一般采用层次化的设计方法,高层设计实体需要将低层实体作为元件加以利用,这就要用到配置指定或配置说明。配置指定用于把例化元件和相应的实体结构体“绑定”起来,配置说明为大型设计提供配置管理的手段。利用配置技术,可以选取不同的结构体,这样就可以对同一设计任务进行多种配置的性能实验,从而选取性能最优的逻辑实现。程序包:程序包是一个可编译的VHDL源设计单元,建立一个程序包的目的是将公用的子程序,数据类型、常数以及编译过的设计
28、接口综合起来,以备顶层调用。如果已经在程序包中作了定义,并且在VHDL的设计的其他部分中想使用它们,就必须使用library和use语句使它们成为可能。库:库用来存放编译结果,包括实体、结构体、配置、程序包,以便模拟时使用或被其它设计调用,达到资源共享的目的。2.2.2 VHDL语言设计方法层次化的设计方法是软件工程中的重要方法,VHDL将其引入到硬件描述中,这就是自顶向下的设计(Top-Down)。自顶向下的设计是从系统级开始,将整个系统划分为子模块,然后对这些子模块再进行进一步的划分,一直这样做下去,直到可以直接用库中的元件来实现为止,如图2.1所示 。系统.逻辑块111逻辑块21逻辑块1
29、m逻辑块12逻辑块11子功能块n子功能块2子功能块1 图2.1自顶向下的设计方法目前,专用集成电路(ASIC的复杂度越来越高,这样复杂的电路已不再是简单的个人劳动,需要多人的分工协作) 这种自顶向下的设计方法,使一个大型的系统设计分解为若干个可操作的模块,并且可以对这些模块分别进行模拟仿真,由于设计的主要模拟仿真是在高层上实现的,所以能及早地发现系统中的错误并改正,提高设计的一次成功率,使得几十万甚至几百万门规模的大型数字系统的设计成为可能。2.3 利用VHDL语言开发的优点VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来
30、 ,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大 , 设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现, 这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描
31、述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4)
32、VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计 , 而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块, 将这些模块存放在
33、库中 , 就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享, 从而减小硬件电路设计的工作量, 缩短开发周期。3 基于VHDL语言的数字频率计设计本设计通过用VHDL语言实现数字频率计,用设计实例具体说明如何采用层次化的设计方法来实现较大的数字系统,并强化了使用VHDL语言来实现数字系统设计的能力。该频率计的设计要求是:频率测量范围为 0.01Hz16MHz;输入信号为符合TTL和CMOS电平要求的脉冲信号。整个设计在ALTERA公司的FPGA上实现。3.1 用FPGA实现数字频率
34、计传统的数字频率计一般是由分离元件搭接而成。实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差。FPGA是新型的可编程逻辑器件,能够将大量的逻辑功能集成于一个单个器件中,它所提供的门数从几百门到上百万门,可以满足不同的需要。因此用FPGA来实现数字频率计与以往的数字频率计相比,有如下优点:(1)集成度高。这是最显著也是最重要的一个特点。很明显,在一片FPGA里实现了数字频率计的绝大部分功能,它的集成度远远超过了以往的数字频率计。这对于系统的集成化很有益处。(2)易于升级、换代,灵活适用于各种场合。由于数字频率计最初的实现形式是用硬件描述语言写成的程序,所以在外在的
35、条件(如基准频率的提高,基准频率精度的提高)的允许下,只需对原程序作很小的改动,可以使数字频率计的精度提高几个数量级。同时对于频率精度要求不高的场合,可以修改原程序,使之可以用较小的器件实现,从而降低系统的整体造价。这些都不需要变动系统硬件,只需修改原程序,选用相应的器件就可以实现。这是以往的数字频率计(由分离元件搭接而成的)所无法实现的。(3)符合系统芯片 (SOC,System On A Chip)的发展要求。系统芯片是21世纪微电子技术发展的重点,它从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路直至器件的设计紧密结合起来,在单个(或少数几个)芯片上完成整个系统的功能。由
36、于SOC设计能够综合并全盘考虑整个系统的各种情况,因此可以在同样的工艺技术条件下实现更高性能的系统指标。若一个包含频率测量的系统要想实现 SOC,则首先要保证频率测量系统要可以集成化,所以用FPGA实现数字频率计是实现系统芯片的前提条件。3.2 数字频率计的系统设计3.2.1 数字频率计的测频原理频率是周期信号在单位时间内的重复次数。可以对一个周期信号发生的次数进行记数。频率测量一般有测频法与测周期法两种基本方式:(1)测频法:是由标准时钟分频产生一门控信号,在门控信号下对输人信号进行计数,如图3.1所示。设输人信号频率为Fx,门控信号有效电平时间为T,在此有效电平时间内的计数值为N,则输人信
37、号的频率为:Fx=N/ T 。(2)测周期法:是将输人信号作为门控信号,在此门控信号下,对标准时钟进行计数,如图3.2所示。设输人信号频率为Fx,标准时钟频率为F,在门控信号(输人信号)下的计数值为N,测得输人信号的频率为:Fx=F/N 。输入信号闸门图3.1 测频法原理输入信号时钟图3.2 测周期法原理从上述原理可以看出,测频法适合于测量频率较高的信号的频率,而测周期法用来测量低频信号的频率误差较小,综合采用这两种方法可以有效地拓宽测量的频带,并大幅度提高测量精度。所以本设计采取的方法是高频测频率,低频测周期。为了保证测量精度,把整个量程分为4 段:40Hz16MHz为高频段,1Hz40Hz
38、 为中频段,0.1Hz1Hz 为低频段,0.01Hz0.1Hz 为超低频段。除高频段用直接计数的方法测量并提供8位整数外,其余各频段均采用测量周期并倒数的方法测量,提供3位有效数字,用浮点数字显示。3.2.2 数字频率计系统功能分割由于FPGA 只能实现数字电路,因此输入信号的处理部分不能用 FPGA来实现,所以整形电路需另外实现外加。本设计考虑的处理方法是对输入信号经预处理及整形电路后整形为方波信号,预处理电路用来完成信号衰减或放大和滤波;整形电路是一个过零比较电路,将外部的模拟信号转换为方波信号。假定本设计 FPGA接受的都是经过整形电路整形、变换后的规则的方波信号,电压幅值为0-5V。
39、根据频率计的测频原理,可以把数字频率计划分为三个模块:控制模块、基准时间产生模块和计数模块,考虑到不同频段采用不同的测量方法,本设计又把计数模块分为高频计数和低频计数两个模块,然后加上进行求周期倒数及转换为BCD码的数据处理模块,这样整个数字频率计系统根据各自功能和控制关系共分为五个模块:高频计数模块、低频计数模块、基准时间产生模块、数据处理模块和中央控制模块,实现这个频率计的结构原理框图如图3.3所示。中央控制器显示输出小数点采样指示10Hz 低频计数高频计数基准时间产生10Hz100Hz1000Hzcount1MHz时钟1sdigitalHF数据处理digitalLF被测信号图3.3频率计
40、结构原理框图基准时间产生模块为低频计数模块提供计数的时钟信号,并产生中央控制模块内部逻辑的时钟信号。中央控制模块是整个系统的控制部分,它控制着系统的复位、测频的开始,测频结果的选择输出等。控制模块接受从基准时间模块产生的内部控制逻辑的时钟信号,从而产生系统内的复位信号去复位其他模块。中央控制模块控制着高频计数模块的运作,从而控制着测频的开始,它还控制着数据处理模块的运作,从而控制着低频计数模块将计数的结果转换为周期的倒数。高频计数模块和低频计数模块是整个测频系统核心,它们接受中央控制单元产生的复位信号,清除上一次计数结果,以便进行下一次计数。高频计数模块把计数的结果直接送到中央控制模块用于显示
41、输出。低频计数模块接受基准时间模块产生的三个不同频率的信号,用作低频计数器里的时钟信号,进行低频计数。数据处理模块接受中央控制模块产生的置位信号,把从低频计数模块转化的结果送到中央控制模块用于显示。本设计中将数字频率计系统分为5个功能模块,全部使用VHDL进行设计,各模块功能描述如下:(1)基准时间产生(ClockGen)模块基准时间产生ClockGen(Clock Genetater) 模块利用输入1MHz标准时基信号分频得到1000Hz信号clk1k, 100Hz信号clk100和10Hz信号clk10。这三个信号用作测量低频信号周期的时钟信号,以实现不同量程的需要。同时10Hz信号也用作
42、内部控制逻辑的时钟信号。在数字电路设计中,分频器实际上就是一个加法器,cnt1000为1000进制计数器,cnt为10进制计数器。具体实现模块如图3.4所示。cnt1000cnt100cnt101MHz1000Hz100Hz10HzClk100Clk1kClk10 图3.4分频的具体实现(2)低频计数(LowCnt)模块低频计数LowCnt(Low frequency Counter)模块是测量输入信号单个周期长度的计时电路。其基本结构由3个相同的1000进制计数器构成。这三个计数器分别接1000Hz,100Hz和10Hz的时钟信号。在每一个测量周期里,第一次出现的被测信号使这三个计数器同时开
43、始计数,下一个被测脉冲信号使计数停止。这样,计数器的计数值代表了被测信号的一个周期的长度。如果被测信号的频率低于1Hz(即周期大于1s),则第一个计数器会发生溢出,并将ov1信号置1。同样如果被测信号的频率低于0.1Hz(即周期大于10s),则第二个计数器会发生溢出,并将ov2信号置1。利用计数器的溢出信号可以判断当前被测频率在哪个范围之内,从而选择适当的计数值作为输出count的值,并设置相应的标志位。fr-high,fr-low和fr-vlow代表了当前被测频率所处的频率范围,也代表了小数点的位置。fr-high为1代表被测频率大于1Hz,小数点在个位和十位之间(至于是否大于40Hz,还要
44、通过HiCnt的输出判断);fr-low为1代表被测频率在0.1Hz1Hz之间,小数点在十位和百位之间;fr-vlow为1代表被测频率小于0.1Hz0.01Hz之间,小数点在百位和千位之间。具体实现模块与高频计数模块思想相同,不同的是三个计数器之间是一起执行计数操作的,相互之间是独立的。(3)高频计数(HiCnt)模块高频计数HiCnt(High frequency Counter)模块是直接测量输入信号每秒脉冲个数的电路,适用于40Hz以上信号的测量。本模块频率测量采用测频法,由中央控制模块提供的长为1s的时钟信号作为输入被测脉冲信号计数的使能信号,在此使能信号的控制下对输入信号的频率进行测
45、量。这个电路由8个十进制BCD码同步计数器级联组成,输出就是这8个计数器的计数值。具体实现模块如图3.5所示。clk cycnt10en clrclk cycnt10en clrclk cycnt10en clr q0 q1 q7被测信号使能信号清零信号图3.5高频计数的具体实现(4)数据处理(Divide)模块数据处理模块在采用测频法的高频计数模块工作时对数据不做处理而直接输出(因为高频计数模块由8个十进制BCD码同步计数器级联组成),在采用测周期法的低频计数模块工作时完成求倒数及BCD码转换的运算。这个模块主要完成除法运算(即求周期的倒数),然后进行再处理后转换为BCD码,结果输出到dig
46、ital端。数据处理模块采用减法器来完成,10000作减数与低频计数模块测量得到的值N相减,并设计一个计数器对减法次数进行计数,直到最后的余数小于N,这样就完成了除法运算。具体措施为:数据处理单元从低频计数模块获得计数值,此时的计数值的数据类型为std-logic,vhdl语言的程序包中提供了一些转换函数,在具体编程实现时,可以先把该计数值变成整型,用10000作被除数,得到的商可根据显示要求的有效值位数,再转换成std-logic的数据类型。(5)中央控制 (Center)模块中央控制模块Center:这个模块产生所有的控制信号,并对被测信号选择合适的测量方法和量程。在每一个测量周期中,各控
47、制信号的情况是这样的:由一个计数器对10Hz的时钟信号计数,在前十个时钟周期(1s)内,置计数使能信号ce为1,使高频计数器HiCnt进行计数,同时低频计数器也在进行计数。在第11个时钟周期的上升沿检测被测信号的频率范围,如果被测信号频率高于40Hz,则置内部标志位high为1,在第13个时钟周期将计数值送到显示输出display。如果被测信号频率低于40Hz, 则置内部标志位high为0,在以后的时钟周期里,中央控制模块进入等待周期,等待低频计数器完成计数。低频计数器完成计数后,将busy置0,使中央控制模块脱离等待状态,进入第12个时钟周期,产生置位信号set,使数据处理模块对低频计数模块
48、产生的计数值求倒数并转换成BCD码。在第13个时钟周期结果输出到display。最后,在第14个时钟周期,清零信号clr 置1,使所有电路清零并复位,从而完成一个测量周期,并开始下一个测量周期。3.3 数字频率计系统模块的VHDL语言实现 数字频率计系统总共划分为五个模块:中央控制模块、基准时间产生模块、高频计数模块、低频计数模块、数据处理模块。下面依次介绍各模块输入输出信号的作用及VHDL语言的实现。3.3.1 中央控制模块(Center)中央控制模块是整个数字频率计系统的控制部分,它控制着其他四个模块的工作。图3.6是中央控制模块的模块图。图3.6中央控制器模块的模块图中央控制模块的输入信
49、号有: clk10为内部控制逻辑的时钟信号。它是由基准时间产生模块分频后产生的。 digitalHF31:0为高频段频率测频结果(用十进制BCD码表示)。它来自于高频计数模块。在第11个时钟周期上升沿来时,通过判断该值与40Hz的大小,给内部标志位high置1或0。若被测信号频率高于40Hz,则high=1, 若被测信号频率低于40Hz,则high=0。根据high的值可以判断被测信号是在高频段还是中频段,就可以判断出低频计数模块的标志信号fr_high=1时小数点的位置。 digitalLF11:0 为低频段频率测频结果(此时为周期的倒数)。它来自数据处理模块,此结果为3位有效数字。 bus
50、y为低频计数模块工作标志信号。它来自低频计数器模块,当低频计数器完成计数后,将 busy置0,中央控制模块接受到此信号后,使Center进入脱离等待状态。 fr_high,fr_low和fr_vlow通过这三个标志位的值可以判断被测频率小数点的位置。它们是从低频计数器获得的。输出信号有: display31:0为数字频率计系统测得的被测信号的频率值。它通过外接数码管显示出来。当被测频率为高频段时(量程的的划分在前面已经介绍),输出为8位整数;当被测频率为中频段、低频段、超低频段时,输出为3位浮点小数。 dp2:0用于确定被测频率信号小数点的位置。它由fr_high,fr_low和fr_vlow
51、的值确定(dp<=fr_high&fr_low&fr_vlow)。 ce为计数使能信号。在每一个测量周期中,由一个十进制计数器对时钟信号clk10(10Hz)计数,在前十个时钟周期(1s)内,置ce=1,送入高频计数模块作为使能信号。当enable=1时,使高频计数器开始计数。 set为允许数据处理模块工作置位信号。在第12个时钟上升沿来时,产生置位信号set。当set=1时,使数据处理模块对低频计数模块产生的计数值求倒数并转换为BCD码。 clr为数字频率计系统的清零信号。在第14个时钟周期,将清零信号clr置1,主要用于高频计数模块和低频计数模块的清零和复位。在数字频
52、率计系统各模块VHDL实现过程中,多次用到加法器等功能模块,现在以10进制加法器为例,写出完整的编写程序并给出详细解释,其他各模块按照前述各自功能,很容易写出。在后面模块具体实现时,只给出功能实现的主要编写部分。library ieee;use ieee.std_logic_1164.all; /使该库中的资源在实体描述中可以使用use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity counter10 is /十进制计数器counter10port(clk,enable,clr:in std_logic;/分别为
53、计数时钟/使能/清零信号cy:out std_logic; /计数进位q:out std_logic_vector(3 downto 0); /四位计数结果输出end counter10;architecture counter_arch of counter10 isbeginprocess(clk,clr,enable)variable tmp:integer; /内部变量定义begin if(clr='1') then tmp:=0; /清零 elsif(enable= 1) then if(clk'event and clk='1') then
54、/开始计数 if(tmp=9) then /进位 tmp:=0; cy=1; else tmp:=tmp+1; cy=1;end if; end if; end if; end process;q<=conv_std_logic_vector(tmp,4); /将整形转化为四位二进制数 end counter_arch;3.3.2 基准时间产生模块(ClockGen)基准时间产生模块主要用来产生频率测量和内部控制逻辑所需的时钟信号。图3.7是基准时间产生模块的模块图。图3.7基准时间产生模块的模块图基准时间产生模块的输入信号有: Clock是标准的时钟信号。由EDA实验箱上的标准频率提供
55、,标准的时钟信号分频后产生三个不同频率的信号:1000Hz信号clk1k,100Hz信号clk100和10Hz信号clk10。同时标准的时钟信号还用作数据处理模块的触发脉冲信号,上升沿时有效。输出信号有:clk1k,clk100,clk10是由标准的时基信号分频得到的。这三个信号可用作测量低频计数模块三个计数器的时钟信号,同时clk10还可作为中央控制模块的内部逻辑时钟信号。该模块的VHDL逻辑描述如下:beginprocess(clkhf)begin if(clkhf'event and clkhf='1') then / 对标准的时钟信号分频,有效电平为高电平 if
56、(t1=“1111100111”) then / 计到1000清零t1<=“0000000000”; else t1<=t1+1; / 计数 end if; end if; end process; s1<=t1(9); / 得到分频后的时钟信号1000Hz process(s1)beginif(s1event and s1=1) then /对标准的时钟信号分频,有效电平为高电平if(t2="1001") then / 计到10清零t2<="0000" else t2<=t2+'1' /计数 end if; end if; end process; s2<=t2(3); / 得到分频后的时钟信号100Hzprocess(s2)beginif(s2'event and s2='1') then / 对标准的时钟信号分频,有效电平为高电平 if(t3="1001") then / 计到10清零t3<="0000" else t3<=t3+'1' / 计数 end i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑电气配电线路保护配合计算方法选择原则制定方法
- 医疗保障基金使用监督管理条例
- 0-3岁婴幼儿营养与保健及家庭安全防护
- 肠梗阻术后护理规范
- 猫居住空间设计
- 普外科腹部疝手术后护理计划
- 老年胃镜检查科普
- 品牌设计核心要素总结
- 全科医学科高血压慢性病管理手册
- 设计部年度总结与明年计划
- 2026年山东定期医师考核题库及答案
- 2026内蒙古乌海市国创数字产业发展有限责任公司招聘15人考试备考题库及答案解析
- 2026年济南商标审查协作中心招聘(10名)考试参考试题及答案解析
- 2026年高一历史学业水平考试知识点归纳总结(复习必背)
- 2026年华远国际陆港集团校园招聘(122人)笔试参考题库及答案解析
- 2026年广东教师公需课《人工智能赋能制造业高质量发展》习题及答案
- 北京2025年国家艺术基金管理中心招聘应届毕业生笔试历年参考题库附带答案详解(5卷)
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
- 警察岗位调动申请书模板
- 斗轮堆取料机培训教材
- 水泵购销合同模板
评论
0/150
提交评论