基于EDA的八位数字频率计的设计_第1页
基于EDA的八位数字频率计的设计_第2页
基于EDA的八位数字频率计的设计_第3页
基于EDA的八位数字频率计的设计_第4页
基于EDA的八位数字频率计的设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、基于eda的八位数字频率计的设计摘 要频率是电子技术领域内的一个基本参数,同时也是一个非常重要的参数。 稳定的时钟在高性能电子系统中有着举足轻重的作用,直接决定系统性能的优劣。伴随着集成电路(ic)技术的发展,电子设计自动化(eda)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。eda的一个重要特征就是使用硬件描述语言(hdl)来完成的设计文件,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展,在电子设计领域受到了广泛的接受。本文首先综述了eda技术的发展概况,fpga/cpld开发的流程、优

2、缺点,vhdl语言,max+plus ii简介;然后介绍了频率测量的一般原理,接着使用eda技术,用vhdl语言完成了数字频率计系统的软件、硬件设计工作;最后介绍了eda技术的前沿发展趋势及其展望。关键词:电子设计自动化(eda);gw48 eda系统;fpga/cpld;vhdl语言;数字频率计;频率测量;数码管扫描显示;波形仿真 abstract frequency is a basic parameter of electronics field,meanwhile.its a very important parameter.stable clock is very important

3、 in high performance electronics system,determining the syetem performance directly. follows the integrated circuit (ic) technology development, the electronic design automation (eda) is becoming the important design method gradually.the key character of eda uses the design document which hardware d

4、escription language (hdl) completes, has received widespread acceptance in the electronic design domain. this article first summarized the eda technology development survey, the fpga/cpld development flow, the good and bad points, the vhdl language history, development step and merit.then uses the e

5、da technology, has completed the digital frequency meter systems project work with the vhdl language; finally briefed in the eda technology front trend of development and system development several experiences.keywords: electronic design automation (eda);gw48 eda system;fpga/cpld; vhdl language; dig

6、ital cymometer; frequency measurement;nixietube scanning demonstration;profile simulation;目录引 言1第1章、eda的发展历程及其应用21.1电子设计自动化(eda)发展概述21.1.1什么是电子设计自动化(eda)21.1.2 eda的发展阶段及特点21.1.3、eda的应用31.2基于eda的fpga/cpld的开发41.2.1 fpga/cpld的介绍41.2.2基于eda工具的fpga/cpld开发流程41.2.3用fpga/cpld开发的优缺点51.3 vhdl语言51.4 max+plus i

7、i介绍6第2章、数字频率计的设计82.1频率计设计背影82.2频率计设计原理82.2.1直接测频法82.2.2多周期同步测频法92.3频率计发展现状102.4频率计的设计实现11第3章、基于eda的数字频率计软件设计123.1系统顶层模块设计123.2各模块设计及源程序133.2.1测频控制信号模块testctl:143.2.2十进制计数模块 cnt10 :153.2.3 32位锁存模块reg32b:163.2.4数码显示电路173.3各系统仿真时序波形图18第四章、基于eda的数字频率计硬件设计204.1硬件实现204.2实验结果分析21第五章 结论22第六章 展望23参 考 文 献24谢辞

8、2525引 言在电子设计领域中,eda 技术是以大规模可编程逻辑器件为设计载体 ,以硬件语言为系统逻辑描述的主要方式 ,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为 设计工具 ,通过有关的开发软件 ,自动完成用软件设计的电子系统到硬件系统的设计 ,最终形成集成电子系统或专用集成芯片的一门新技术 。其设计的灵活性使得 eda 技术得以快速发展和广泛应用。本文以 max + plus 软件为设计平台 ,采用vhdl 语言实现数字频率计的整体设计本文介绍了使用vhdl语言设计数字频率计的方法,并下载到cpld中组成实际电路,这样可以简化硬件的开发和制造过程,而且使硬件体积大大缩小,并提高

9、了系统的可靠性。同时在基本电路模块基础上,不必修改硬件电路,通过修改vhdl源程序,增加一些新功能,满足不同用户的需要,实现数字系统硬件的软件化,下面进行一下详细介绍。第1章、eda的发展历程及其应用1.1电子设计自动化(eda)发展概述1.1.1什么是电子设计自动化(eda)在电子设计技术领域,可编程逻辑器件(如pld)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结

10、构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算机辅助设计技术的提高,在现代电子系统设计领域中的eda便应运而生了。传统的数字电路设计模式,如利用卡诺图的逻辑化简手段以及难懂的布尔方程表达方式和相应的ttl或4000系列小规模集成芯片的堆砌技术正在迅速地退出历史舞台。电子设计自动化(eda)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,根据硬件描述语言hdl

11、完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在eda工具的帮助下和应用相应的fpga/cpld器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。1.1.2 eda的发展阶段及特点eda技术的发展始于70年代,至今经历了三个阶段。电子线路的cad(计算机辅助设计)是eda发展的初级阶段,是高级eda系统的重要组成部分。它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电

12、路板和集成电路板图,采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。80年代初期,eda技术开始技术设计过程的分析,推出了以仿真(逻辑模拟、定时分析和故障仿真)和自动布局与布线为核心的eda产品,这一阶段的eda已把三维图形技术、窗口技术、计算机操作系统、网络数据交换、数据库与进程管理等一系列计算机学科的最新成果引入电子设计,形成了cae计算机辅助工程。也就是所谓的eda技术中级阶段。其

13、主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的esda(电子系统设计自动化),即高级eda阶段,也就是目前常说的eda。过去传统的电子系统电子产品的设计方法是采用自底而上的程式,设计者先对系统结构分块,直接进行电路级的设计。eda技术高级阶段采用一种新的设计概念:自顶而下的设计程式和并行工程的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,eda系统去完成电子产品的系统级至物理级的设计。此阶段eda技术的主要特征是支持高级语言对系统进行描述,高层次综合(high level synthesis

14、)理论得到了巨大的发展,可进行系统级的仿真和综合。图1-1给出了上述eda发展阶段的示意图。图1-1 eda发展阶段示意图1.1.3、eda的应用随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,eda技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于eda技术的应用。即使是普通的电子产品的开发,eda技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,eda技术将迅速成为电子设计领域中的极其重要的组成部分。 电子设计专家认为,单片机时代已经

15、结束,未来将是eda的时代,这是极具深刻洞察力的明世之言。随着微电子技术的飞速进步,电子学进入了一个崭新的时代。其特征是电子技术的应用以空前规模和速度渗透到各行各业。各行业对自己专用集成电路(asic)的设计要求日趋迫切,现场可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的asic提供了技术和物质条件。与单片机系统开发相比,利用eda技术对fpga/cpld的开发,通常是一种借助于软件方式的纯硬件开发,可以通过这种途径进行专用asic开发,而最终的asic芯片,可以是fpga/cpld,也可以是专制的门阵列掩模芯片,fpga/ cpld起到了硬件仿真asic芯片的作用。1

16、.2基于eda的fpga/cpld的开发1.2.1 fpga/cpld的介绍我国的电子设计技术发展到今天,将面临一次更大意义的突破,即fpga/cpld ( field programmable gate array,现场可编程门阵列/complexprogrammable logic device,复杂可编程逻辑器件)在eda基础上的广泛应用。fpga和cpld都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。cpld是由pal ( programmable array logic,可编程阵列逻辑)或gal ( generic ar

17、ray logic,通用阵列逻辑)发展而来的。它采用全局金属互连导线,因而具有较大的延时可预测性,易于控制时序逻辑;但功耗比较大。fpga是由掩膜可编程门阵列(mpga)和可编程逻辑器件二者演变而来的,并将它们的特性结合在一起,因此fpga既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。fpga通常由布线资源分隔的可编程逻辑单元(或宏单元)构成阵列,又由可编程单元围绕阵列构成整个芯片。其内部资源是分段互联的,因而延时不可预测,只有编程完毕后才能实际测量。 cpld和fpga建立内部可编程逻辑连接关系的编程技术有三种:基于反熔丝技术的器件只允许对器件编程一次,编程后不能修改。

18、其优点是集成度、工作频率和可靠性都很高,适用于电磁辐射干扰较强的恶劣环境。基于eeprom存储器技术的可编程逻辑芯片能够重复编程100次以上,系统掉电后编程信息也不会丢失。编程方法分为在编程器上编程和用下载电缆编程。基于sram技术的器件编程数据存储于器件的ram区中,使之具有用户设计的功能。在系统不加电时,编程数据存储在eprom、硬盘、或软盘中。系统加电时将这些编程数据即时写入可编程器件,从而实现板级或系统级的动态配置。1.2.2基于eda工具的fpga/cpld开发流程fpga/cpld的开发流程:设计开始首先利用eda工具的文本或图形编辑器将设计者的设计意图用文本方式(如vhdl, v

19、erilog-hdl程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合作准备。如果编译后形成的文件是标准vhdl文件,在综合前即可以对所描述的内容进行仿真,称为行为仿真。即将设计源程序直接送到vhdl仿真器中仿真。因为此时的仿真只是根据vhdl的语义进行的,与具体电路没有关系。在仿真中,可以充分发挥vhdl中的适用于仿真控制的语句,对于大型电路系统的设计,这一仿真过程是十分必要的,但一般情况下,可以略去这一步骤。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是将软件转化为硬件电路的关键步骤。综合器对源文件的综合是针

20、对某一fpga/cpld供应商的产品系列的,因此,综合后的结果具有硬件可实现性。在综合后,hdl综合器一般可生成edif, xnf或vhdl等格式的网表文件,它们从门级描述了最基本的门电路结构。综合通过后必须利用fpga/cpld布局/布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配完成后,eda软件将产生针对此项设计的多项结果:1适配报告;时序仿真用网表文件;下载文件;4适配错误报告等。将适配器产生的配置/下载文件通过fpga/cpld编程器或下载电缆载入目标芯片fpga或cpld中,然后进入最后一个步骤:硬件仿真或

21、测试,以便在更真实的环境中检验设计的运行情况。这里所谓的硬件仿真,是针对asic设计而言的。在asic设计中,比较常用的方法是利用fpga对系统的设计进行功能检测,通过后再将其vhdl设计以asic形式实现;而硬件测试则是针对fpga或cpld直接用于电路系统的检测而言的。1.2.3用fpga/cpld开发的优缺点基于eda技术的fpga/cpld器件的开发应用可以从根本上解决mcu所遇到的问题。与mcu相比,fpga/cpld的优势是多方面的和根本性的,如编程方式简便、先进,高速,高可靠性,开发工具和设计语言的标准化,开发周期短,功能强大,应用广阔等,使fpga/cpld以其不可替代的地位及

22、伴随而来的极具知识经济特征的ip芯核产业的崛起,正越来越受到业内人士的密切关注。fpga/cpld设计方法也有其局限性,如fpga/cpld设计软件一般需要对电路进行逻辑综合优化,以得到易于实现的结果,这使最终设计和原始设计之间在逻辑实现和时延方面具有一定的差异。从而使传统设计方法中经常采用的一些电路形式(特别是一些异步时序电路)在fpga/cpld设计方法中并不适用。这就要求设计人员更加了解fpga/cpld设计软件的特点,才能得到优化的设计。同时fpga/cpld的容量和i/o数目都是有限的,因此,一个较大的电路必须经过逻辑划分才能用多个fpga/cpld芯片实现。早期的fpga芯片不能实

23、现存储器、模拟电路等一些特殊形式的电路。最新的一些fpga产品集成了通用的ram结构。但这种结构要么利用率不高,要么不完全符合设计者的需要。总之,多方面的缺点来自于fpga本身的结构局限性,短期内很难得到很好的解决。1.3 vhdl语言vhdl是超高速集成电路硬件描述语言的英文字头缩写简称,其英文全名是very-high -speed integrated circuit hardware description language。它是由美国国防部开发的一种快速设计电路的工具,目前已经成为ieee的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,vhdl 具有多层次描述系统硬件功能的能

24、力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。vhdl主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有 硬件特征的语句外,vhdl的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。vhdl的程序结构特点是将一项工程设计,或称设计实体分成外部和内部。在对一个设计实体定义了外部界面后,一旦其内部开发完成后, 其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 vhdl系统设计的基本点。应用vhdl进行工程设计的优点是多方面的。 (1)与其他的硬件描述语言相比,vhdl具有更强的行为描述能力,从而决定 了他成为系统设计领域最佳的硬件描

25、述语言。强大的行为描述能力是避开具体的 器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)vhdl丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验 设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)vhdl语句的行为描述能力和程序结构决定了他具有支持大规模设计的分 解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须 有多人甚至多个代发组共同并行工作才能实现。 (4)对于用vhdl完成的一个确定的设计,可以利用eda工具进行逻辑综合和优 化,并自动的把vhdl描述设计转变成门级网表。 (5)vhdl对设计的描述具有相对独立性,设计者可以不懂硬件

26、的结构,也不 必管理最终设计实现的目标器件是什么,而进行独立的设计。vhdl语言在硬件设计领域的作用将与c和c+在软件设计领域的作用一样,在大规模数字系统的设计中,它将逐步取代如逻辑状态表和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。vhd和可编程逻辑器件的结合作为一种强有力的设计方式,将为设计者的产品上市带来创纪录的速度。1.4 max+plus ii介绍本次设计选用的开发环境为美国altera公司自行设计开发的eda工具max+plus ii,其全称为multiple array matrix and pro

27、grammable logic usersystems。它具有运行速度快,界面统一,功能集中,易学易用等特点。它的器件系列从最初的max系列到最新的flexiok系列,从500门到10万门提供了满足各种条件需要的一系列器件max+plus ii结合各种系列器件的物理结构,提供了各种的优化措施,以在提高工作速度和资源利用率之间给以平衡。 max+plus ii提供了原理图输入、文本输入和波形输入等多种输入手段,并可以任意组合使用。利用该工具所配备的编辑、编译、仿真、综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如fpga芯片),做成asic芯片。用户首

28、先对所做项目进行设计,明确设计目的、设计要求;然后利用原理图输入方式或文本输入方式进行设计输入;输入完成后,进行编译,若编译过程中发现错误,则检查设计输入,修改错误,直至没有错误发生;编译完成后,就可以进行仿真,检查设计是否达到设计要求,否则的话,还需重新检查设计输入;仿真结果达到要求后,就可以进行烧录,把设计程序下载到目的芯片中;最后把芯片放到实际系统中进行验证、测试。图1-2给出了用max+plus ii进行fpga开发的流程。图1-2用max+plus ii开发fpga的流程示意图max+plus ii借助edif网表文件,sram目标文件(.sof) , lpm, veriloghdl

29、和vhdl能与candence, mentor graphics, orcad, synopsys, synplicity和viewlogi等公司提供的其它多种eda工具接口。max+plus ii编译器可以在pc机及各种工作站平台上运行,这使max+plus ii成为工业界中唯一与平台和结构无关的可编程逻辑设计环境。第2章、数字频率计的设计2.1频率计设计背影随着数字电路应用越来越广泛,传统的通用数字集成电路芯片已经很难满足 系统功能的要求,而且随着系统复杂程度的不断增加,所需通用集成电路的数量呈爆炸性增长,使得电路板的体积迅速膨胀,系统可靠性难以保证。此外,现代电子产品的生命周期都很短,一

30、个电路可能要在很短的时间内作改进以满足新的功能要求,对于通用集成电路来说则意味着重新设计和重新布线。而可编程逻辑 器件克服了上述缺点,它把通用集成电路通过编程集成到一块尺寸很小的硅片上,成倍缩小了电路的体积,同时由于走线短,减少了干扰,提高了系统的可靠性,又由于vhdl语言和 verilog 语言易于掌握与使用,设计相当灵活,极大地缩短了 产品的开发周期。22频率计设计原理频率是电子技术领域永恒的话题,电子技术领域离不开频率,一旦离开频率 电子技术的发展是不可想象的,就像现在的人离不开电一样。为了得到性能更好 的电子系统,科研人员在不断地研究着频率,cpu 就是用频率的高低来评价其性能好坏,可

31、见频率在电子系统中是多么重要。如何才能知道频率的数值呢?当然是用频率计来测量。为了准确的测出频率的多少,人们研究出了很多测频率的方法。2.2.1直接测频法直接测频法是最简单的,也是最基本的频率测量方法,在测量过程中,依据信号频率高低的不同,测量方法也可以分为两种:一、 被测信号频率较高时(m 法) 通常选用一个频率较低的标准频率信号作为闸门信号,而将被测信号作为 充脉冲,在固定闸门时间内对其计数。设闸门宽度为 t,计数值为 n,则这种测 量方法的频率测量值为:测量误差主要决定于闸门时间 t 和计数和计数器计得的数的准确度,因此, 总误差可以采用分项误差绝对值线性相加来表示,即:其中, 是最大量

32、化误差的相对值,的产生是由于测频时,闸门的开启时刻与计数脉冲之间的时间关系不相关造成的,即在相同的主门开启时间内,计数器所得的数并不一定相同。当主门开启时间t接近甚至等于被测信号周期 tx 的整数倍时,量化误差最大,最大量化误差为n = 1个数。 为标准频率的准确度,在数值上石英晶体振荡器所提供的。标准频率的准确度等于闸门时间的相对误差的准确度,即:式中负号表示由f0引起的闸门时间的误差为-t 。测量较高的信号频率时,若 f0 一定,闸门时间 t 越长,测量准确度越高,当 t 选定后,f0越高,1个数字误 差对测量结果影响减小,测量准确度越高。 二、被测信号频率较低时(t 法) 通常被测信号被

33、选作闸门信号,而将频率较高的标频信号作为填充脉冲, 进行计数,设计数值为 n,标准频率信号的频率为 f0,周期为 t0,则有:使用这种方法测频的误差主要是对标频信号计数产生的1个数字误差,在忽略 标准频率信号自身误差的情况下,测量精度为:由上可知:直接测频方法的优点是:测量方便,读数直接,在比较宽的频 率范围内能够获得较高的测量精度。它的缺点是:由于被测信号1个数字误差 的存在,难以兼顾低频和高频实现等精度测量,所以测量精度较低。2.2.2多周期同步测频法多周期同步测频是在直接测频基础上发展起来的,在目前的测频系统中得 到了越来越广泛的应用。它在测频时,闸门时间不是固定的,而是被测信号的 整数

34、倍,即与被测信号保持同步,因此消除了对被测信号计数所产生的1个数 字误差,使测量精度大为提高,测量原理框图如图2-1,测量原理的波形如图2-2所示。图2-1 多周期同步测频原理框图 图2-2 多周期同步测频原理波形图测量时,首先预置闸门开启信号,此时计数器并不计数,等被测信号上升沿 到来时,触发器输出计数允许信号(实际闸门信号),计数器1对标准信号计数, 计数器2对被测信号计数,预置闸门关闭时,计数器并不立即结束计数,而是等 到被测信号上升沿到来时才停止计数,完成测量过程。若计数器1对标准信号的计数值为nc,计数器2对被测信号的计数值nx,则被测信号频率为:运算器对式(2.6)进行运算,由显示

35、器显示运算结果,即为被测信号的频率值。多周期同步测频法还是没能够是时基信号与被测信号以及闸门信号三者同步,从而产生的时基信号的1个字的量化 误差还没有消除。2.3频率计发展现状由于社会发展和科技发展的需要,信息传输和处理的要求的提高,对频率的测 量精度也提出了更高的要求,需要更高准确度的时频基准和更精密的测量技术。而 频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设 备和测量方法。目前,国内外使用的测频的方法有很多,有直接测频法、内插法、游标法、时间电压变化法、多周期同步法、频率倍增法、频差倍增法以及相位比 较法等等。直接测频的方法较简单,但精度不高。内插法和游标法都是

36、采用模拟的 方法,虽然精度提高了,但是电路设计却很复杂。时间电压变化法是利用电容的 充放电时间进行测量,由于经过a/d转换,速度较慢,且抗干扰能力较弱。多周期 同步法精度较高的一种。为了进一步的提高精度,通常采用模拟内插法或游标法与 多周期同步法结合使用,虽然精度有了进一步的提高,但始终未解决1 个字的计 数误差,而且这些方法设备复杂,不利于推广。 总之,频率(时间)测量技术发展非常快。在频标方面,一方面是追求新的更 高稳定度和准确度的新型频标。 另一方面是提供便于工业、科研应用的商品化频标。大量的工作人员在改进、创造 新的测频原理、方法和仪器,以便以更高的精度、速度,自动进行测量和数据处理,

37、 并向多功能、小型化、高性价比方向发展。在提高测频精度方面,值得特别提出的 有全同步取样技术和可校准通用电子计数器技术,它们使测频精度提高到一个新的水平。2.4频率计的设计实现本设计采用了直接测量法,在一定闸门时间内测量被测信号的脉冲个数。首先为了把模拟信号转换成数字信号,在我们的课程学习过程中,采用施密特触发器作a/d转换是最简单的方法,然后采用程序编制的形式在cpld芯片内部设置了计数器,锁存器等部件作为该电路的基础。在方案考虑方面,因为内部计数器的个数决定了频率计的总量程,故在内部设置了八个计数器作为频率计测量的单位,并用八个数码管显示出来。 数字频率计的原理框图如图2-3所示,它们主要

38、由5个模块组成的,它们分别是1hz分频器电路、测频控制信号发生器电路、含有时钟使能及进位扩展输出的8位十进制计数模块电路、锁存器、数码显示电路。分频器电路测频控制信号发生器电路计数模块电路锁存器数码显示电路1hz脉冲输入信号 图2-3 数字频率计的基本原理框图当系统正常工作时,由脉冲发生器clock2提供1hz的标准时钟信号,进入分频器电路,而外界信号由clock0输入,经过测频控制信号发生器进行信号的变换,产生计数信号,送入计数模块,计数模块对输入的信号进行计数,将计数结果送入锁存器中,以保证系统可以稳定显示数;显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示的十进制结果

39、。第3章、基于eda的数字频率计软件设计3.1系统顶层模块设计根据数字频率计的系统原理框图2-3,分别设计出相应模块及系统的顶层模块设计源程序。其中testctl为测频控制信号发生器模块,如图3-1所示。testctl的计数使能信号tsten能产生一个1 s宽的周期信号,load端产生一个上升沿,将计数器在前1 s的计数值锁存进32位锁存器reg32b中,如图3-2中clk是由图2-3中脉冲发生器产生的频率为1 hz的标准时钟信号的时序图。testctl并能对频率计的每一计数器cnt10的ena使能端进行同步控制:当tsten高电平时允许计数、低电平时停止计数。 图3-1 测频控制信号发生器模

40、块图图3-2 测频控制信号发生器电路时序图 reg32b为锁存器模块。在信号load的上升沿时,立即对模块的输入口的数据锁存到reg32b的内部,并由reg32b的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。cnt10为十进制计数器模块。有一时钟使能输入端ena,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。将8个十进制计数器cnt10级联起来实现8 b十进制计数功能。为了实现系统功能,测频控制信号发生器testctl、计数器cnt10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。顶层电路模

41、块freqtest:library ieee;use ieee.std_logic_1164.all;entity freqtest is port ( clk : in std_logic; fsin : in std_logic; coutt: out std_logic; dout : out std_logic_vector(31 downto 0) );end freqtest;architecture struc of freqtest iscomponent testctl port ( clk : in std_logic; tsten : out std_logic; clr

42、_cnt : out std_logic; load : out std_logic );end component;component cnt10 port ( clk : in std_logic; clr : in std_logic; ena : in std_logic; cq : out std_logic_vector(3 downto 0); carry_out : out std_logic );end component;component reg32b port ( load : in std_logic; din : in std_logic_vector(3 down

43、to 0); dout : out std_logic_vector(3 downto 0) );end component; signal tsten1 : std_logic; signal clr_cnt1 : std_logic; signal load1 : std_logic; signal outy1,outy2,outy3,outy4,outy5,outy6,outy7,outy8: std_logic_vector(3 downto 0); signal cout1,cout2,cout3,cout4,cout5,cout6,cout7 : std_logic;begin u

44、1 : testctl port map(clk,tsten1,clr_cnt1,load1); u2: cnt10 port map(fsin,clr_cnt1,tsten1,outy1,cout1); u3: cnt10 port map(cout1,clr_cnt1,tsten1,outy2,cout2); u4: cnt10 port map(cout2,clr_cnt1,tsten1,outy3,cout3); u5: cnt10 port map(cout3,clr_cnt1,tsten1,outy4,cout4); u6: cnt10 port map(cout4,clr_cnt

45、1,tsten1,outy5,cout5); u7: cnt10 port map(cout5,clr_cnt1,tsten1,outy6,cout6); u8: cnt10 port map(cout6,clr_cnt1,tsten1,outy7,cout7); u9: cnt10 port map(cout7,clr_cnt1,tsten1,outy8,coutt); u10 : reg32b port map(load1,outy1,dout(3 downto 0); u11 : reg32b port map(load1,outy2,dout(7 downto 4); u12 : re

46、g32b port map(load1,outy3,dout(11 downto 8); u13 : reg32b port map(load1,outy4,dout(15 downto 12); u14 : reg32b port map(load1,outy5,dout(19 downto 16); u15 : reg32b port map(load1,outy6,dout(23 downto 20); u16 : reg32b port map(load1,outy7,dout(27 downto 24); u17 : reg32b port map(load1,outy8,dout(

47、31 downto 28);end struc;3.2各模块设计及源程序采用vhdl描述数字频率计的电路时,根据数字频率计系统框图,按照自顶向下的设计思路,编写各个模块的vhdl源程序,最后再对各个模块进行组合。根据编写的顶层描述的vhdl源程序,各个模块的vhdl源程序编写较为简单,可以根据各自的功能,相应地写出。根据8位数字频率计的顶层模块描述各模块vhdl源程序为:3.2.1测频控制信号模块testctl:脉冲同步检测电路是本设计中提高测量精度的关键电路,如果把它集成在 fpga器件中,很难达到测频精度的要求,因此本模块电路的设计采用74sxx的高 速器件来进行设计,可以使相检误差控制在

48、几个ns。 脉冲同步检测电路设计原理图如图3-3所示。u1u8为74sxx系列与非门,同步 检测电路利用门电路的延时来构成。当被测信号及标准时钟都处在低电平时,u1、 u2输出为高电平,u3、u4的输出为高电平,u5、u6输出为低电平,则u8输出为低电平。当被测信号(fx)及标准时钟的上升沿同时到来时,由于门电路具有延时特 性,因此u1 、u2并不马上变为低电平,而是要经过一个延时才变为低电平。于是 u3、u4的输入端都是高电平,则u3、u4输出为低电平,u5、u6的输出为高电平,则 u8输出为高电平。这样以来,使测量精度得到大大的改善。 74sxx系列与非门的延时最小为4ns,最大为15ns

49、,因此最大误差为11ns。根据公式(3.1)得: 当t0为1s时,其精度可达到10-8,再减小相位重合误差,则可提高频率计的精确度。图3-3 脉冲同步检测电路测频控制信号模块testctl源程序为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testctl is port (clk : in std_logic; - 1hz tsten : out std_logic; - 计数器时钟使能 clr_cnt : out std_logic; - 计数器清零 load : out s

50、td_logic ); - 输出锁存信号 end testctl;architecture behav of testctl is signal div2clk : std_logic;begin process( clk ) begin if clkevent and clk = 1 then - 1hz时钟2分频 div2clk = not div2clk; end if; end process; process (clk, div2clk) begin if clk = 0 and div2clk = 0 then - 产生计数器清零信号 clr_cnt = 1; else clr_c

51、nt = 0; end if; end process; load = not div2clk; tsten = div2clk;end behav;3.2.2十进制计数模块 cnt10 :此计数器为32位二进制,其模块图如3-4所示,实现对标准频率信号和被测频率信号进行计数。它具有计数使能端(ena)、异步清零端(clr)、时钟输入端(clk)、进位输出端(ov) 等。当异步清零端(clr)为高电平时,不管计数使能端是否有效,时钟上升沿是 否到来,计数器都立即清零,即q=0。只有异步清零端(clr)为低电平,并且计数使能端为高电平,有上升沿到来时,计数器才开始计数,当计数器计满时,进位输出为

52、高电平。计数器vhdl程序仿真图如图3-5所示。从仿真图上可知:此计数器具有良好的控制和计数功能。图3-4 计数模块的模块图图3-5 计数器仿真图十进制计数模块 cnt10源程序为: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; - 计数使能信号 cq : out std_logic_vector(3 dow

53、nto 0); - 计数结果 carry_out : out std_logic ); - 计数进位 end cnt10;architecture behav of cnt10 is signal cqi : std_logic_vector(3 downto 0);begin process(clk, clr, ena) begin if clr = 1 then cqi = 0000; - 清零 elsif clkevent and clk = 1 then if ena = 1 then if cqi 1001 then cqi = cqi + 1; else cqi = 0000; -

54、 等于9,则回转 end if; end if; end if; end process; process(cqi) begin if cqi = 1001 then carry_out = 1; else carry_out = 0; end if; end process; cq = cqi;end behav;3.2.3 32位锁存模块reg32b:锁存器的作用就是当时钟上升沿到来时将计数值锁存到触发器中。锁存器工作时序如下:当同步信号(clk)上升沿到来时,计数使能信号(cp) 立即变成高电平,锁存信号(creg)及清零信号(clr)变成低电平,同步信号 (clk)的上升沿再次到来时,除清零信号(clr)外,其余信号均取反,当同步 信号(clk)的下降沿到来时,清零信号(clr)变成高电平。当同步信号又到来 时,重复上述过程,其仿真结果如图3-6所示。 图3-6 锁存器仿真图32位锁存模块reg32b源程序为:library ieee;use ieee.std_logic_1164.all;entity reg32b is port ( load : in

温馨提示

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

评论

0/150

提交评论