《基于FPGA的多功能计数器的设计知识讲解.doc》由会员分享,可在线阅读,更多相关《基于FPGA的多功能计数器的设计知识讲解.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。基于FPGA的多功能计数器的设计-本科毕业论文(设计)题目:基于FPGA的多功能计数器的设计学院:自动化工程学院专业:电子信息科学与技术姓名:#指导教师:#2010年6月8日-基于FPGA的多功能计数器的设计TheDesignofMulti-functionCounterBasedonFPGA摘要本文介绍了一种以大规模可编程逻辑芯片为设计载体,由顶层到底层设计的多功能数字频率计。该频率计采用单片机与频率测量技术相结合,大大提高了测量的精度。本文主要包括该频率计的设计基础和实现方法两部分内容,描述了它的设
2、计平台、工作原理和软硬件实现。在硬件上,利用Altera公司的FPGA器件为主控器;在软件上,采用VHDL硬件描述语言编程,极大地减少了硬件资源的占用。该数字频率计具有频率测量、周期测量、脉宽测量和占空比测量等多种功能。仿真与分析结果表明,该数字频率计性能优异,软件设计语言灵活,硬件简单,速度快。关键词FPGA等精度频率计VHDLAbstractThisarticleintroducedonekindasdesignsthecarriertakethelarge-scaleprogrammablelogicchip,themulti-purposedigitalfrequencymetersw
3、hichdesignsfromthetoplayertothefirstfloor.Thisfrequencymeterusesthemonolithicintegratedcircuitandthefrequencymeasurementtechnologyunifies,increasedthesurveyprecisiongreatly.Thisarticlemainlyincludesthisfrequencymetersdesignbasisandrealizesthemethodtwopartialcontents,describeditsdesignplatform,thepri
4、ncipleofworkandthesoftwareandhardwarerealizes.Onthehardware,usesAlteraCorporationsFPGAcomponentisthemastercontroller;Onthesoftware,usestheVHDLhardwaredescriptionlanguageprogramming,reducedhardwaresourceoccupancyenormously.Thisdigitalfrequencymeterhasthefrequencymeasurement,thecyclicalsurvey,thepulse
5、widthsurveyandthedutyfactorsurveyandsoonmanykindsoffunctions.Thesimulationandtheanalysisresultindicatedthatthisdigitalfrequencymeterperformanceisoutstanding,thesoftwaredesignlanguageisflexible,thehardwareissimple,thespeedisquick.KeywordsFPGAEqualPrecisionMeasurementFrequencymeterVHDL目录第一章概述11.1多功能计数
6、器现状11.2频率测量方法简介2第二章软件开发平台VHDL简介32.1VHDL的发展32.2VHDL的特点32.3VHDL语言结构42.3.1实体(ENTITY)42.3.2结构体(ARCHITECTURE)52.4VHDL软件设计简介6第三章硬件开发平台现场可编程门阵列(FPGA)简介73.1可编程逻辑器件73.2现场可编程门阵列(FPGA)73.2.1FPGA的器件结构与工作原理83.2.2基于EDA平台的FPGA开发流程10第四章多功能计数器的理论基础和总体设计方案134.1常用频率测量方法及其误差分析134.1.1直接测频法134.1.2测周法原理154.1.3等精度测频原理154.2
7、脉冲宽度和占空比测量原理174.3总体设计18第五章多功能计数器的软件设计和硬件设计205.1软件设计205.1.1测频专用模块工作功能描述及VHDL程序215.1.2脉冲宽度和占空比测量模块235.1.3GATE265.1.4测频/测周期实现265.2硬件设计275.2.1程控放大电路285.2.2过零比较电路285.2.3测频主系统实现29总结31谢辞32参考文献33第一章概述在信息技术高速发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统到广泛地应用单片机,直至今天FPGA/CPLD在系统设计中的应用,电子设计技术已迈入了一个全新的阶段。FPGA/CPL
8、D不仅具有容量大、逻辑功能强的特点,而且兼有高速、高可靠性。同时使得硬件的设计可以如软件设计一样方便快捷,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。随着FPGA/CPLD器件的日益成熟和应用,在通信、国防、工业自动化、仪器仪表等领域的数字电子系统设计工作中,它们正在成为电子设计的主要角色。基于强大的EDA技术的支持,以VHDL为主要设计手段,充分开发利用CPLD芯片丰富而灵活的逻辑资源,成为当前数字系统设计的主要发展方向。1.1多功能计数器现状多功能计数器是一种用十进制数字显示被测信号频率、周期、占空比的数字测量仪器,是在数字电路中的一个典型应用;实际的硬件设计的多功能计数器用到的
9、器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性。它是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。当今VLSI的发展日新月异,FPGA的容量和速度成倍地增长,而价格却逐年下降,这将使得基于FPGA设计的多功能计数器优势更加明显。采用VHDL编程设计实现的多功能计数器,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,具有体积小、可靠性高、功耗低的特点;整个系统非常精简,且具有灵活的现场可
10、更改性。通过改装,可以测量脉冲宽度,做成数字脉宽测量仪;可以测量电容做成数字电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此多功能计数器在测量物理量方面及航天、电子、测控、仪器仪表、通信等领域应用广泛。近年来,高精度频率测量仪器广泛应用在晶体或晶体振荡器等需求量大和要求高精度的行业、越来越多的电子产品要求具备高性能和低功耗的特点,通常一块印刷电路板会布置多个晶体或晶体振荡器、一般精度的频率测量仪不能满足对其测量要求,而满足测量要求的仪器又都是作为频率计量基准,应用于国家科研院所。这此仪器设计复杂、体积庞大、价格昂贵,很难在短期内推广。因此,设计一款测量精度高、成木较低的频率
11、测量仪显得十分必要。这里介绍的计数器设计精良,操作简便,精确度高,测量范围广,LCD荧幕全功能显示,兼具备测频、测周期功能,且成本较低.并具有良好的市场前景及经济效益。1.2频率测量方法简介根据测频工作原理可将频率测量方法分成以下几类:1) 是利用电路的某种频率响应特性来测量频率,谐振测频法和电桥测频法是这类测量方法的典型代表:前者常用于低频段的测量,后者主要用于高频或微波频段的测量。谐振法的优点是体积小、重要轻、不要求电源等,目前仍获得广泛应用。2) 是利用标准频率与被测频率进行比较来测量频率,采用比较法测量频率,其准确度取决于标准频率的准确度。拍频法、示波器法以及差频法等均属此类方法。拍频
12、法和示波器法主要用于低频段的测量,差频法则用于高频段的频率测量,它的显著优点是测试灵敏度高1。以上两种方法适合于模拟电路中实现,但是模拟电路没有数字电路稳定,因此数字电路出现后,马上就出现了数字频率计。目前广泛使用的计数测频法则适合于数字电路实现。该方法是根据频率的定义,记下单位时间内周期信号的重复次数,因此又称为电子计数器测频法。常用数字频率测量方法有M法,T法和法。M法是在给定的闸门时间内,测量被测信号的脉冲个数再进行换算得出被测信号的频率,其测量精度取决于闸门时间的准确度和被测信号频率。当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。T法是通过测量被测信号的周期,然后换算得出被
13、测信号的频率。其测量精度取决于被测信号的周期和计时精度,测信号频率较高时,对计时精度的要求就很高。法具有以上2种方法的优点,它通过测量被测信号数个周期的时间,然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度。但是,M法,T法和法都存在计数误差问题。M法在规定闸门时间内存在个被测信号的脉冲计数误差,T法或法也存在个字的计时误差。这个问题成为限制测量精度提高的一个重要原因。本设计在研究总结上述方法的基础上,得出了一种新的频率测量方法,该方法利用等精度测频方法消除限制测量精度提高的个数字误差问题,从而使频率测量的精度和性能大为改善。然而一种新的方法的实际应用比提出来更难,要考虑各种可
14、能的问题,首先就是由于采用的新的设计方法使得电路的复杂程度成倍增加,因此如果还采用传统数字电路来实现则将使PCB板面积变得异常庞大与复杂。信号走线长,导致系统误差增大,难以提高系统的工作频率,此外,PCB板的集成度不高还将导致高频信号容易受到外界的干扰,反而可能降低测频精度。由于可编程逻辑器件能很好地克服了以上缺点,大大提高系统时钟,因此本设计将介绍由现场可编程门阵列(FPGA)来实现等精度频率计。第二章软件开发平台VHDL简介2.1VHDL的发展VHDL诞生于1982年。在1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-107
15、6(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。而VerilogHDL是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器VerilogXL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VerilogHDL
16、成为了该公司的独家专利。1990年CADENCE公司公开发表了VerilogHDL,并成立LVI组织以促进VerilogHDL成为IEEE标准,即IEEEStandard1364-1995。2.2VHDL的特点VHDL语言主要用于描述数字系统的结构、行为、功能和接口,与其他硬件描述语言相比,VHDL语言有如下优越之处2:1) VHDL语言支持自上而下(TopDown)和基于库(LibraryBase)的设计方法,还支持同步电路、异步电路、FPGA以及其他随机电路的设计;2) VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的RTL描
17、述和结构描述混合使用,还可以自定义数据类型,给编程人员带来较大的自由和方便;3) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么;4) VHDL具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验;5) VHDL语言可以与工艺无关编程;VHDL语言标准、规范,易于共享和复用。2.3VHDL语言结构图2.1VHDL程序结构框图3图2.1中是VHDL的全部结构,但实际上并不需要全部的结构,就像在许多设计项目中,大部分
18、工程师只用到VHDL其中的30%的语法;通常图2.2的结构才是基本和必需的。图2.2VHDL程序基本结构2.3.1实体(ENTITY)实体作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述,它是设计实体的表层设计单元;实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外一个通信界面。就一个设计实体面言,外界所看到的仅仅是它的界面上的各种接口。它可以拥有一个或多个结构体,用于描述此设计实体的逻辑结构和逻辑功能,对于外界来主,这一部分是不可见的。不同逻辑功能的实体可以拥有相同的实体描述,这是因为实体类似于原理图中的一个部件符号,而其的逻辑功能是由设计实体中结构
19、体的描述确定的。实体是VHDL的基本设计单元,它可以对一个门电路、一个芯片、一块电路板乃至整个系统进行接口描述。其结构:ENTITY实体名IS4GENERIC(常数名:数据类型:设定值;常数名:数据类型:设定值);PORT(端口名:端口模式数据类型;端口名:端口模式数据类型);ENDENTITY实体名;2.3.2结构体(ARCHITECTURE)结构体是实体所定义的设计实体中的一个组成部分。结构体描述设计实体的内部结构和实体端口间的逻辑关系。结构体由两大部分组成5:对数据类型、常数、信号、子程序和元件等元素的说明部分;描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句,它们包括各种形式
20、的顺序描述语句和并行描述语句。其语句格式如下:ARCHITECTURE结构体名;说明语句BEGIN功能描述语句ENDARCHITECTURE结构体名;图2.3中的五种语句结构的基本组成和功能分别是:块语句是由一个系列并行执行语句构成的组成体,它的功能是将结构中的并行语句组成一个或多个模块。进程语句定义顺序语句模块,用以将从外部获得的信号值,或内部的运算数据向其它的信号进行赋值。信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。子程序调用语句用以调用过程或者函数,并将此元件的端口与其它的元件、信号或高层次实体的界面端口进行连接。图2.3结构体构造图2.4VHDL软件设计简介系统电
21、路的软件设计可采用工具软件MAX+PLUS,用该工具软件所支持的语言硬件描述语言VHDL,以文本的方式进行编程输入。在编程时分别对控制、计数、锁存、译码等电路模块进行VHDL文本描述,使每个电路模块以及器件都以文本的形式出现,然后通过编译、波形分析、仿真、调试来完善每个器件的功能。单个器件制作完成后,然后将它们生成库文件,并产生相应的符号,最后用语言将各个已生成库文件的器件的各个端口连接在一起,从而形成了系统主电路的软件结构。在连接器件时,也可以采用图形输入方式,即在图形输入界面中调出先制作好的库文件器件符号,再将每个器件符号的各端口直接连线,从而构成系统主电路。在上述工作的基础上,再进行波形
22、分析、仿真调试便完成整个软件设计6。第三章硬件开发平台现场可编程门阵列(FPGA)简介3.1可编程逻辑器件可编程逻辑器件(PLD-ProgrammableLogicDevices)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生于20世纪70年代,在20世纪80年代以后,随着集成电路技术和计算机技术的发展而迅速发展起来的。可编程逻辑器件自问世以来,PLD经历了从PROM、PLA、PAL、GAL到FPGA、ispLSI等高密度PLD的发展过程。在此期间,PLD的集成度、速度不断提高,功能不断增强,结构趋于更合理,使用变得更灵活方便。PLD的出现打破了由中小型通用型集成电路和大规模专用集成
23、电路垄断的局面。与中小规模通用型集成电路相比,用PLD实现数字系统,有研制周期短、先期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。随着可编程逻辑器件性能价格比的不断提高,EDA开发软件的不断完善,现代电子系统的设计将越来越多地使用可编程逻辑器件,特别是大规模可编程逻辑器件。如果说一个电子系统可以像积木堆积起来的话,那么现在构成许多电子系统仅仅需要3种标准的积木块微处理器、存储器和可编程逻辑器件,甚至只需一块大规模可编程逻辑器件。PAL(ProgrammableArrayLogic)器件是20世纪70年代末期出现的一种低密度、一次性可编程逻辑器件。GAL(GenericArrayL
24、ogic)器件是继PAL器件之后,在20世纪80年代中期推出的一种低密度可编程逻辑器件。它在结构上采用了输出逻辑宏单元(OLMC-OutputLogicMacroCell)结构形式,在工艺上吸收EEPROM的浮栅技术,从而使GAL器件具有可擦除、可重新编程、数据可长期保存的结构特点。CPLD(ComplexProgrammableLogicDevice)是万门以上的复杂可编程逻辑器件,采用CMOSEPROM、EEPROM、快闪存储器和SRAM等编程技术,从而构成高密度、高速度和低功耗的可编程逻辑器件7。3.2现场可编程门阵列(FPGA)FPGA是现场可编程门阵列(FieldProgrammab
25、leGateArray)的简称。FPGA器件及其开发系统是开发大规模数字集成电路的新技术。它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置FPGA器件的数据文件,对FPGA器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。FPGA是一种半定制的集成电路,其特点是直接面向用户,具有极大的灵活性和通用性,开发效率高,硬件测试和实现快捷,工作可靠性好而且技术维护简单。FPGA相对于CPLD而言,其结构特点在于FPGA是基于查找表
26、look-up-table的。查找表(look-up-table)简称为LUT,LUT本质上是一个RAM。FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面是一个4输入与门的例子。图3.1输入与门3.2.1FPGA的器件结构与工作原理FPGA(FieldProgrammableGateArray)即现场可编程逻辑阵列,是大规
27、模可编程集成电路的主流器件。FPGA一般由三种可编程电路和一个用于存放编程数据的SRAM(静态随机存储器)组成,这三种可编程电路是:可编程逻辑阵列LAB(LogicArrayBlock),输入输出模块IOB(I/OBlock)和互连资源IR(InterconnectResource)。FPGA可编程逻辑形成的方法是基于查找表LUT(LookUpTable)结构的,LUT是可编程的最小逻辑构成单元4。下面将以Altera公司的ACEX系列芯片为例对FPGA器件的结构原理作个简要的阐述。ACEK系列芯片除了具备上述三种常规的可编程电路,还有其特有的结构即嵌入式阵列块EAB(EmbeddedArra
28、yBlock)。FPGA的内部结构示意图如图3.2示。FPGA的内部连线是分布在CLB周围,而且编程的种类和编程点很多,使得布线相当灵活,因此在系统速度方面低于CPLD的速度。芯片逻辑利用率:由于FPGA的CLB规模小,可分为两个独立的电路,又有丰富的连线,所以系统综合时可进行充分的优化,以达到逻辑最高的利用。芯片功耗:高密度可编程逻辑器件HDPLD的功耗一般在0.5W2.5W之间,而FPGA芯片功耗0.25mW5mW,静态时几乎没有功耗,所以称FPGA为零功耗器件。图3.2FPGA结构示意图1.可编程逻辑阵列LAB可编程逻辑阵列是由一系列相邻的逻辑单元LE(LogicElement)构成的,
29、每个LAB包括八个逻辑单元LE、相连的进位链和级联链,LAB控制信号和LAB局部互连。LAB的构成、ACEK系列芯片的“粗粒度(coarse-grained)结构,有利于EDA软件进行布局布线,优化器件的利用进而提高整个数字系统的性。其中的逻辑单元LE是一种基于查找表的函数发生器。它能够实现4输入1输出的任意逻辑函数。每个LE包含一个4输入的查找表、一个带有同步使能的可编程触发器、一个进位链和一个级联链。每个LE有两个输出分别可以驱动局部互连和快速通道互连。LE有两个输出驱动内部互连,一个是驱动局部互连输出,另一个驱动行或列的快速通道FastTrack的互连输出,这两个输出可以单独控制。因此在
30、一个逻辑单元LE中的触发器和查找表能够用来完成不相关的功能,从而提高LE的资源利用率。在ACEK系列芯片的结构中还提供了两种专用的高速数据通道,用于连接相邻的LE,但不占用局部互连通路,它们是进位链和级联链。进位链用来支持高速计数器和加法器,它提供了LE之间的决速向前进位功能。来自低位的进位信号经进位链向前直接送到高位,同时馈入查找表和进位链的下一段。这种特点使得ACEK结构能够实现高速计数器、加法器和宽位比较器。级联链可以用来实现多输入数的逻辑函数。相邻的查找表并行地完成部分逻辑功能,级联链把中间结果拼接起来。进位链和级联链的使用有利于提高器件的工作速度,但是大量使用进位链和级联链会限制布局
31、布线的灵活性,导致资源的浪费。因此在设计过程应该权衡考虑,在FPGA芯片资源利用和工作速度之间寻求平衡。2.输入/输出模块IOBACEK器件的I/O引脚是由一些I/O单元驱动的。IOE(I/OElement)位于快速通道的行和列末端,包含一个双向的缓冲器和一个寄存器。这个寄存器可以用作需要快速建立时间的外部数据输入寄存器,也可以作为需要快速“时钟到输出”性能的数据输出寄存器。IOE可以配置成输入、输出或双向口。ACEK器件中的IOE具有许多特性,支持JTAG编程、三态缓冲和漏极开路输出等等。每个IOE的时钟、清零、时钟使能和输出使能的控制均由I/O控制信号网络提供,采用高速驱动以减小通过器件的
32、时间偏差。此外,ACEK器件还提供了若干专用输入引脚,这些引脚用来驱动IOE寄存器的控制端,使用了专用的布线通道,以便具有比快速通道更短的延迟和更小的偏差。3.互连资源IR可编程的互连资源包括各种长度的金属连线线段和一些可编程的连线开关,它们将各个逻辑阵列之间、及其与IO模块之间互相连接起来,构成各种功能复杂的系统。在ACEK中互连结构是通过快速通道(FastTrack)实现的。FastTrack遍布于整个ACEK器件,是一系列水平和垂直走向的连续式布线通道。每一行的LAB都有一个专用的“行互连”,“行互连”可以驱动。I/O引脚或馈送到器件中的其LAB;“列互连”连接各行,也能驱动I/O引脚。
33、这种布线结构能够有效提高布线效率,使得即使非常复杂的设计也能够测定其延时性。4.嵌人式阵列块EAB嵌人式阵列块EAB是在输入输出口上带有寄存器的灵活的RAM块,是由一系列嵌人式RAM单元组成的。EAB的逻辑功能是在配置期间,用只读模式对EAB编程产生一个大型查找表来实现的。采用查找表实现组合逻辑比一般算法快,EAB的快速时间通道使得这一先进性能进一步得到加强。当要实现存储器功能时,每个EAB提供2048比特位,每一个EAB是一个独立的结构,它具有共同的输入、互连和控制信号。每个EAB含有一个行互连馈入端,EAB的输出能够同时驱动行互连通道和列互连通道。这一特性增加了EAB的可利用布线资源。因此
34、,EAB可以非常方便地用于实现一些规模不大的RAM,ROM,FIFO等功能模块;同时在实现地址译码器、状态机、微控制器等复杂逻辑时也具备了一定优势5。3.2.2基于EDA平台的FPGA开发流程一个完整、典型的EDA设计流程67即是自顶向下设计方法的具体实施过程,也是EDA软件本身的组成结构。在实践中进一步了解支持这一个设计流程的诸多设计工具,有利于排解设计中的具体问题,提高设计质量。1.设计输入基于EDA软件平台的FPGA开发流程,一般有两种设计输入方式:图形输入和硬件描述语言文本输入。下面将重点介绍采用VHDL硬件描述语言进行设计输入方法,这是笔者在设计开发过程中采用的主要方法。VHDL作为
35、电子工程主流硬件描述语言,是EDA技术的重要组成部分。它于1983年由美国国防部创建,由IEEE协会进一步发展并在1987年成为IEEE国际标准。自IEEE协会公布了VHDL标准版本(IEEEStd1076)之后,各大EDA公司相继推出支持VHDL语言的开发环境。从此VHDL作为硬件描述语言的业界标准之一,在电子设计领域得到广泛应用,并逐步成为事实上的通用硬件描述语言。VHDL语言具有很强的电路建模能力,具有良好的电路行为描述和系统描述的能力,能从多个层次对数字系统进行建模和描述;VHDL语言还具有与硬件电路无关和设计平台无关的特性,并且在语言易读性和层次化结构化设计方面表现了强大的生命力和应
36、用潜力。这些特性使得VHDL语言在支持自顶向下的EDA设计流程方面显得游刃有余。因此,采用VHDL进行电子系统设计可以让设计者专心致力于其功能的实现,而不需要对不影响功能的与工艺相关的问题花费过多的时间和精力,从而大大简化了设计任务,提高了设计效率和可靠性。采用VHDL文本设计输入与传统的计算机软件语言编辑输入基本上一样,就是使用VHDL描述数字系统的功能,进行文本编辑输入。事实上,纯粹的VHDL设计输入方法仍然是最基本、最有效和最普遍的设计输入方法。2.设计综合在电子设计领域“综合”的概念可以表示为:将行为和功能层次表达的电子系统转化为低层次的便于具体实现的模块组合装配而成的过程。事实上,设
37、计过程通常从高层次的行为描述开始,直到最底层的结构描述结束,每一个步骤都是上一个层次的综合转换。在FPGA设计开发过程中,整个综合过程就是设计者在EDA软件平台上编辑输入VHDL文本,依据给定电路结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。因此设计综合的过程就是将软件设计的VHDL描述文本与硬件结构挂钩,是软件描述转化为硬件电路的关键步骤,是文本描述与硬件实现之间的一座桥梁。3.结构适配适配器也称为结构综合器,它的功能是将综合器产生的网表文件配置于指定的FPGA目标器件中,使之产生最终的下载文件。适配过程中所选定的FPGA目标器件必须属于综合
38、器原来指定的目标器件系列,这是因为适配器的适配对象是直接与器件的结构细节相对应的。逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、逻辑布局布线操作。适配完成后可以利用适配所产生的仿真文件作精确的时序仿真,同时产生可用于编程下载文件。4.功能仿真和时序仿真在编程下载前必须利用EDA工具对配置生成的结果进行模拟分析,这就是所谓的仿真。仿真的过程就是让计算机根据一定的算法和一定的仿真库对EDA设计进行模拟,以验证设计,排除错误。仿真包括功能仿真和时序仿真。功能仿真:不经过综合和适配阶段,在设计项目编译后直接进入门级仿真器进
39、行模拟测试。主要用于测试设计项目的逻辑功能,用以了解其实现的功能是否满足设计要求,在功能仿真的过程不涉及任何具体器件的硬件特性。时序仿真:当设计项目通过功能仿真初步确定满足设计要求后,需要绑定具体器件进行时序仿真。时序仿真就是接近真实器件运行特性的仿真,仿真文件包含了器件硬件特性参数,因而仿真精度高。但时序仿真的仿真文件必须来自针对具体器件的综合器和适配器。综合所得的EDIF网表文件通常作为FPGA适配器的输入文件,产生的仿真网表文件包含了器件精确的延时信息。5.编程下载把适配后生成的下载或配置文件,通过编程器或编程电缆向FPGA进行下载,以便进行硬件调试和验证,从而实现满足设计要求的电子系统
40、8。第四章多功能计数器的理论基础和总体设计方案4.1常用频率测量方法及其误差分析4.1.1直接测频法直接测频法是最简单的、也是最基本的测量频率的方法。其原理就是在给定的闸门信号中填入脉冲,并通过一定的计数线路,得到所填充的脉冲的个数,从而算出待测信号的频率或者周期。其测量原理如图4.1所示:在测量的过程中,按照信号频率高低的不同,其测量方法分为两种:(1)被测信号频率较高时此时,通常选用频率较低的一个标准频率信号作为闸门信号,而将被测信号作为填充脉冲,在固定的闸门时间内对其计数。设闸门宽度为T,计数值为N,则这种测量方法的频率测量值为:=(4-1)测量误差主要决定于闸门时间T和计数器计数的数的
41、准确度,因此,总的误差可以采用分项误差绝对值线性相加来表示,即(4-2)其中是最大量化误差的相对值,的产生是由于在测频时,闸门的开启时刻与计数脉冲之间的时间关系不相关造成的,即在相同的主门开启时间内,计数器所得的数不一定相同,当主门开启时间T接近甚至等于被测信号周期Tx的整数倍时,量化的误差最大,最大量化误差为个数。为标准频率的准确度,在数值上等于石英晶体振荡器所提供的标准频率的准确度,也是闸门时间的相对误差闸门时间的准确度,即:(4-3)式中负号表示有所引起的闸门时间的误差为。通常情况下,对标准频率的准确度的要求是根据所要求的测频准确度而提出来的。因此,为了使标准频率误差不对测量结果产生影响
42、,标准频率的准确度应高于被测信号准确度至少一个数量级。因此,在较高的信号频率测量时,若一定,则闸门时间T越长,测量的准确度越高,当T选定后,越高,1个数字误差对测量结果减小,测量准确度越高。输入Fx脉冲整形与门计数器锁存器译码电路显示电路控制电路锁存脉冲信号清零脉冲信号闸门控制信号图4.1直接测频法测频原理图(2)被测信号频率较低时此时,通常选用被测信号作为闸门信号,而将频率较高的标准频率信号作为填充脉冲,进行计数。设计数值为N,标准频率信号的频率为,周期为。则这种测量方法的频率测量值为:(4-4)误差主要为对标准频率信号计数产生的1个字误差,在忽略闸门信号自身误差的情况下,测量精度为:(4-
43、5)直接测频方法的优点是:测量比较方便、读数直接,在比较宽的频率范围内能够获得较高的测量精度。这种测频方法的主要缺点是:测量误差主要来自于被测信号和标准频率信号,由于标准频率信号的计数器总存在个计数误差,难以同时兼顾低频和高频以实现等精度测量,所以测量的精度较低。但是,通过提高测量频率可以提高测量的精度,如果测量的频率一定时,尽可能的在比较长的闸门时间下测频,可以提高测量精度。但对于较低的被测频率来说,测频的精度是不高的9。4.1.2测周法原理如下图所示:标准频率BCLK与门CNT计数器模块输出计数值N单片机计算T触发器2读出时间间隔反相器T触发器1待测时间间隔触发使能图4.2周期测量原理图当
44、间隔信号第一个脉冲上升沿到来时,T触发器1输出产生翻转,输出信号由0跳变为1,后接的与门打开,计数器CNT开始对标准频率BCLK计数。同时T触发器2接受到的输入信号由1跳变为0,触发器输出状态不变。当时间间隔信号第二个脉冲上升沿到来时,T触发器1产生翻转,T触发器1输出由1跳变为0,与门关闭,计数器CNT计数停止。同时T触发器2接受到的输入信号由1跳变为0,其输出产生翻转,输出信号由1跳变为0。由于T触发器1的触发使能端被置为0,T触发器1无法对后面到来的脉冲信号计数,从而保证计数器只对前两个脉冲计数。将输出的计数值N经由单片机计算即可得出时间间隔值Tx。计算公式如下:(4-6)Tx为待测时间
45、间隔值,N为标准信号的计数值,Ts为标准信号的周期。当输入信号为周期信号时,由于采用双T触发器控制计数,所以只对周期信号前两次脉冲上升沿计数,测出的时间间隔T即为输入周期信号的周期。经换算即可得到其频率值。4.1.3等精度测频原理清零信号图4.3测频原理框图2如图4.3预置门控信号是宽度为Tpr的一个脉冲,cnt1、cnt2是两个可控计数器,标准频率信号从cnt1的时钟输入端clk输入,其频率为Fs;经整形后的被测信号从cnt2时钟输入端clk输入,设其实际频率为Fxe,测量频率为Fx.当门控信号为高电平时,被测信号的上沿通过D触发器的Q端同时启动计数器CNT1和CNT2。对被测信号Fx和标准
46、频率信号Fs同时计数。当门控信号为低电平时,随后而至的被测信号的上沿将使这两个计数器同时关闭。设在一次门控时间Tpr中对被测信号计数值为Nx。对标准频率信号的计数值为Ns。则:就可以得到被测信号的频率值为:(4-7)误差分析如下:在一次测量中,由于Fx计数的起停时间都是由该信号的上升沿触发的,在Tpr时间内对Fx的计数Nx无误差;在此时间内Fs的计数Ns最多相差一个脉冲,即,则下式成立:(4-8)(4-9)所以有:(4-10)(4-11)根据相对误差公式有:(4-12)代入整理得:(4-13)又因为:(4-14)所以:(4-15)即:(4-16)其中:(4-17)由以上推导结果可得出下面结论:
47、1)相对测量误差与频率无关。2)增大Tpr或提高Fs,可以增大Ns,减少测量误差,提高测量精度。3)标准频率误差为,由于晶体的稳定度很高,标准频率误差可以进行校准。4)等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度在整个测量范围内保持恒定不变,而常规的直接测频法(在低频时用测周法,高频时用测频法),其精度会随着被测信号频率的下降而下降11。4.2脉冲宽度和占空比测量原理根据脉宽测量原理,设计如图4.4的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号的50%幅度时上沿和下沿信号。被测信号从FIN端输入,CLR为初始化信号,SRART为工作使能信号,图中CONRTL2的PUL端与GATE的输入端PUL相连。其测量脉冲宽度的工作步骤是:1) 向CONTRL2的CLR端送一个脉冲以便进行电路的工作状态初始化。2) 将GATE的CNL置高电平,表示开始脉