基于FPGA的多功能计数器的设计_第1页
基于FPGA的多功能计数器的设计_第2页
基于FPGA的多功能计数器的设计_第3页
基于FPGA的多功能计数器的设计_第4页
基于FPGA的多功能计数器的设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 本科毕业论文(设计)题 目: 基于 FPGA 的多功能计数器的设计 学 院: 自动化工程学院 专 业: 电子信息科学与技术 姓 名: # 指导教师: # 2010 年 6 月 8 日 基于 FPGA 的多功能计数器的设计The Design of Multi-function Counter Based on FPGA摘 要本文介绍了一种以大规模可编程逻辑芯片为设计载体,由顶层到底层设计的多功能数字频率计。该频率计采用单片机与频率测量技术相结合,大大提高了测量的精度。本文主要包括该频率计的设计基础和实现方法两部分内容, 描述了它的设计平台、工作原理和软硬件实现。在硬件上,利用Altera公司

2、的FPGA器件为主控器;在软件上,采用VHDL硬件描述语言编程,极大地减少了硬件资源的占用。该数字频率计具有频率测量、周期测量、脉宽测量和占空比测量等多种功能。仿真与分析结果表明,该数字频率计性能优异,软件设计语言灵活,硬件简单,速度快。关键词关键词 FPGA 等精度 频率计 VHDLAbstractThis article introduced one kind as designs the carrier take the large-scale programmable logic chip, the multi-purpose digital frequency meters whic

3、h designs from the top layer to the first floor. This frequency meter uses the monolithic integrated circuit and the frequency measurement technology unifies, increased the survey precision greatly. This article mainly includes this frequency meters design basis and realizes the method two partial c

4、ontents, described its design platform, the principle of work and the software and hardware realizes. On the hardware, uses Altera Corporations FPGA component is the master controller; On the software, uses the VHDL hardware description language programming, reduced hardware source occupancy enormou

5、sly. This digital frequency meter has the frequency measurement, the cyclical survey, the pulse width survey and the dutyfactor survey and so on many kinds of functions. The simulation and the analysis result indicated that this digital frequency meter performance is outstanding, the software design

6、 language is flexible, the hardware is simple, the speed is quick.Keywords FPGA Equal Precision Measurement Frequency meter VHDL目 录第一章 概述.11.1 多功能计数器现状.11.2 频率测量方法简介.2第二章 软件开发平台 VHDL 简介.32.1 VHDL 的发展.32.2 VHDL 的特点.32.3 VHDL 语言结构.42.3.1 实体(ENTITY) .42.3.2 结构体(ARCHITECTURE) .52.4 VHDL 软件设计简介.6第三章 硬件开发

7、平台现场可编程门阵列(FPGA)简介.73.1 可编程逻辑器件.73.2 现场可编程门阵列(FPGA).73.2.1 FPGA 的器件结构与工作原理.83.2.2 基于 EDA 平台的 FPGA 开发流程 .10第四章 多功能计数器的理论基础和总体设计方案.134.1 常用频率测量方法及其误差分析.134.1.1 直接测频法.134.1.2 测周法原理.154.1.3 等精度测频原理.154.2 脉冲宽度和占空比测量原理.174.3 总体设计.18第五章 多功能计数器的软件设计和硬件设计.205.1 软件设计.205.1.1 测频专用模块工作功能描述及 VHDL 程序.215.1.2 脉冲宽度

8、和占空比测量模块.235.1.3 GATE.265.1.4 测频/测周期实现.265.2 硬件设计.275.2.1 程控放大电路.285.2.2 过零比较电路.285.2.3 测频主系统实现.29总 结.31谢 辞.32参考文献.33第一章 概述在信息技术高速发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统到广泛地应用单片机,直至今天 FPGA/CPLD 在系统设计中的应用,电子设计技术已迈入了一个全新的阶段。FPGA/CPLD 不仅具有容量大、逻辑功能强的特点,而且兼有高速、高可靠性。同时使得硬件的设计可以如软件设计一样方便快捷,使电子设计的技术操作和系统

9、构成在整体上发生了质的飞跃。随着 FPGA/CPLD 器件的日益成熟和应用,在通信、国防、工业自动化、仪器仪表等领域的数字电子系统设计工作中,它们正在成为电子设计的主要角色。基于强大的 EDA 技术的支持,以 VHDL 为主要设计手段,充分开发利用 CPLD 芯片丰富而灵活的逻辑资源,成为当前数字系统设计的主要发展方向。1.1 多功能计数器现状多功能计数器是一种用十进制数字显示被测信号频率、周期、占空比的数字测量仪器,是在数字电路中的一个典型应用;实际的硬件设计的多功能计数器用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应

10、用,以 EDA 工具作为开发手段,运用 VHDL 语言,将使整个系统大大简化,提高整体的性能和可靠性。它是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。当今 VLSI 的发展日新月异,FPGA 的容量和速度成倍地增长,而价格却逐年下降,这将使得基于 FPGA 设计的多功能计数器优势更加明显。采用 VHDL 编程设计实现的多功能计数器,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片 FPGA 芯片上实现,具有体积小、可靠性高、功耗低的特点;整个系统非常精简,且具有灵活的现场可更改性。通过改装,可以测量脉冲宽度,做成数字脉宽测量仪;可以测量电容做成数字电容测量仪;

11、在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此多功能计数器在测量物理量方面及航天、电子、测控、仪器仪表、通信等领域应用广泛。 近年来,高精度频率测量仪器广泛应用在晶体或晶体振荡器等需求量大和要求高精度的行业、越来越多的电子产品要求具备高性能和低功耗的特点,通常一块印刷电路板会布置多个晶体或晶体振荡器、一般精度的频率测量仪不能满足对其测量要求,而满足测量要求的仪器又都是作为频率计量基准,应用于国家科研院所。这此仪器设计复杂、体积庞大、价格昂贵,很难在短期内推广。因此,设计一款测量精度高、成木较低的频率测量仪显得十分必要。 这里介绍的计数器设计精良,操作简便,精确度高,测量范围广, LC

12、D 荧幕全功能显示,兼具备测频、测周期功能,且成本较低.并具有良好的市场前景及经济效益。1.2 频率测量方法简介根据测频工作原理可将频率测量方法分成以下几类:1)是利用电路的某种频率响应特性来测量频率,谐振测频法和电桥测频法是这类 测量方法的典型代表:前者常用于低频段的测量,后者主要用于高频或微波频段的测量。谐振法的优点是体积小、重要轻、不要求电源等,目前仍获得广泛应用。2)是利用标准频率与被测频率进行比较来测量频率,采用比较法测量频率,其准确度取决于标准频率的准确度。拍频法、示波器法以及差频法等均属此类方法。拍频法和示波器法主要用于低频段的测量,差频法则用于高频段的频率测量,它的显著优点是测

13、试灵敏度高1。以上两种方法适合于模拟电路中实现,但是模拟电路没有数字电路稳定,因此数字电路出现后,马上就出现了数字频率计。目前广泛使用的计数测频法则适合于数字电路实现。该方法是根据频率的定义,记下单位时间内周期信号的重复次数,因此又称为电子计数器测频法。常用数字频率测量方法有 M 法,T 法和TM法。M 法是在给定的闸门时间内,测量被测信号的脉冲个数再进行换算得出被测信号的频率,其测量精度取决于闸门时间的准确度和被测信号频率。当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。T 法是通过测量被测信号的周期,然后换算得出被测信号的频率。其测量精度取决于被测信号的周期和计时精度,测信号频率

14、较高时,对计时精度的要求就很高。TM法具有以上 2 种方法的优点,它通过测量被测信号数个周期的时间,然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度。但是,M 法,T 法和TM法都存在1计数误差问题。M 法在规定闸门时间内存在1个被测信号的脉冲计数误差,T 法或TM法也存在1个字的计时误差。这个问题成为限制测量精度提高的一个重要原因。本设计在研究总结上述方法的基础上,得出了一种新的频率测量方法,该方法利用等精度测频方法消除限制测量精度提高的1个数字误差问题,从而使频率测量的精度和性能大为改善。然而一种新的方法的实际应用比提出来更难,要考虑各种可能的问题,首先就是由于采用的新的设

15、计方法使得电路的复杂程度成倍增加,因此如果还采用传统数字电路来实现则将使 PCB 板面积变得异常庞大与复杂。信号走线长,导致系统误差增大,难以提高系统的工作频率,此外,PCB 板的集成度不高还将导致高频信号容易受到外界的干扰,反而可能降低测频精度。由于可编程逻辑器件能很好地克服了以上缺点,大大提高系统时钟,因此本设计将介绍由现场可编程门阵列(FPGA) 来实现等精度频率计。第二章 软件开发平台 VHDL 简介2.1 VHDL 的发展VHDL 诞生于 1982 年。在 1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言 。自 IEEE 公布了 VHDL 的标准版本,IEE

16、E-1076(简称 87 版)之后,各 EDA公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。而 Verilog HDL 是由 GDA(Gateway Design Automation)公司的 PhilMoorby 在 1983 年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985 年 Moorby 推出它的第三个商用仿真器 Verilog XL,获得了巨大的成功,从而使得 Verilog HDL 迅速得到推广应用。198

17、9 年 CADENCE 公司收购了 GDA 公司,使得 Verilog HDL 成为了该公司的独家专利。1990 年 CADENCE 公司公开发表了 Verilog HDL,并成立 LVI 组织以促进 Verilog HDL 成为 IEEE 标准,即 IEEE Standard 1364-1995。 2.2 VHDL 的特点VHDL 语言主要用于描述数字系统的结构、行为、功能和接口,与其他硬件描述语言相比,VHDL 语言有如下优越之处2:1)VHDL 语言支持自上而下(Top Down)和基于库(Library Base )的设计方法,还支持同步电路、异步电路、FPGA 以及其他随机电路的设计

18、;2)VHDL 语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的 RTL 描述和结构描述混合使用,还可以自定义数据 类型,给编程人员带来较大的自由和方便;3)VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么;4)VHDL 具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验;5)VHDL 语言可以与工艺无关编程;6)VHDL 语言标准、规范,易于共享和复用。

19、2.3 VHDL 语言结构 图 2.1 VHDL 程序结构框图3图 2.1 中是 VHDL 的全部结构,但实际上并不需要全部的结构,就像在许多设计项目中,大部分工程师只用到 VHDL 其中的 30%的语法;通常图 2.2 的结构才是基本和必需的。USE 定义区 ENTITY 定义区 ARCHITECTURE 定义区 图 2.2 VHDL 程序基本结构2.3.1 实体(ENTITY)实体作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述,它是设计实体的表层设计单元;实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外一个通信界面。就一个设计实体面言,外界所看

20、到的仅仅是它的界面上的各种接口。它可以拥有一个或多个结构体,用于描述此设计实体的逻辑结构和逻辑功能,对于外界来主,这一部分是不可见的。不同逻辑功能的实体可以拥有相同的实体描述,这是因为实体类似于原理图中的一个部件符号,而其的逻辑功能是由设计实体中结构体的描述确定的。实体是 VHDL 的基本设计单元,它可以对一个门电路、一个芯片、一块电路板乃至整个系统进行接口描述。其结构:ENTITY 实体名 IS4 GENERIC(常数名:数据类型:设定值 ;常数名:数据类型:设定值 ) ; PORT(端口名:端口模式 数据类型;端口名:端口模式 数据类型) ;END ENTITY 实体名;2.3.2 结构体

21、(ARCHITECTURE)结构体是实体所定义的设计实体中的一个组成部分。结构体描述设计实体的内部结构和实体端口间的逻辑关系。结构体由两大部分组成5:对数据类型、常数、信号、子程序和元件等元素的说明部分;描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句,它们包括各种形式的顺序描述语句和并行描述语句。其语句格式如下:ARCHITECTURE 结构体名; 说明语句BEGIN 功能描述语句END ARCHITECTURE 结构体名;图 2.3 中的五种语句结构的基本组成和功能分别是:块语句是由一个系列并行执行语句构成的组成体,它的功能是将结构中的并行语句组成一个或多个模块。进程语句定义顺序

22、语句模块,用以将从外部获得的信号值,或内部的运算数据向其它的信号进行赋值。信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。子程序调用语句用以调用过程或者函数,并将此元件的端口与其它的元件、信号或高层次实体的界面端口进行连接。图 2.3 结构体构造图2.4 VHDL 软件设计简介系统电路的软件设计可采用工具软件 MAX+PLUS,用该工具软件所支持的语言硬件描述语言 VHDL,以文本的方式进行编程输入。在编程时分别对控制、计数、锁存、译码等电路模块进行 VHDL 文本描述,使每个电路模块以及器件都以文本的形式出现,然后通过编译、波形分析、仿真、调试来完善每个器件的功能。单个器件

23、制作完成后,然后将它们生成库文件,并产生相应的符号,最后用语言将各个已生成库文件的器件的各个端口连接在一起,从而形成了系统主电路的软件结构。在连接器件时,也可以采用图形输入方式,即在图形输入界面中调出先制作好的库文件器件符号,再将每个器件符号的各端口直接连线,从而构成系统主电路。在上述工作的基础上,再进行波形分析、仿真调试便完成整个软件设计6。 说明语句 结构体(ARCHITECTURE) 块语句(BLOCK) 进行语句(PROCESS) 信号赋值语句 子程序调用语句 元件例化语句 功能描述语句结构 第三章 硬件开发平台现场可编程门阵列(FPGA)简介3.1 可编程逻辑器件可编程逻辑器件(PL

24、D-Programmable Logic Devices)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生于 20 世纪 70 年代,在 20 世纪 80 年代以后,随着集成电路技术和计算机技术的发展而迅速发展起来的。可编程逻辑器件自问世以来,PLD 经历了从 PROM、PLA、PAL、GAL 到 FPGA、ispLSI 等高密度 PLD 的发展过程。在此期间,PLD 的集成度、速度不断提高,功能不断增强,结构趋于更合理,使用变得更灵活方便。PLD 的出现打破了由中小型通用型集成电路和大规模专用集成电路垄断的局面。与中小规模通用型集成电路相比,用 PLD 实现数字系统,有研制周期短、先

25、期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。随着可编程逻辑器件性能价格比的不断提高,EDA 开发软件的不断完善,现代电子系统的设计将越来越多地使用可编程逻辑器件,特别是大规模可编程逻辑器件。如果说一个电子系统可以像积木堆积起来的话,那么现在构成许多电子系统仅仅需要 3 种标准的积木块微处理器、存储器和可编程逻辑器件,甚至只需一块大规模可编程逻辑器件。PAL ( Programmable Array Logic)器件是 20 世纪 70 年代末期出现的一种低密度、一次性可编程逻辑器件。GAL(Generic Array Logic)器件是继 PAL 器件之后,在 20 世纪 80

26、 年代中期推出的一种低密度可编程逻辑器件。它在结构上采用了输出逻辑宏单元(OLMC-Output Logic Macro Cell )结构形式,在工艺上吸收 EEPROM 的浮栅技术,从而使 GAL 器件具有可擦除、可重新编程、数据可长期保存的结构特点。CPLD(Complex Programmable Logic Device)是万门以上的复杂可编程逻辑器件,采用 CMOS EPROM、EEPROM、快闪存储器和 SRAM 等编程技术,从而构成高密度、高速度和低功耗的可编程逻辑器件7。3.2 现场可编程门阵列(FPGA)FPGA 是现场可编程门阵列(Field Programmable Ga

27、te Array)的简称。FPGA 器件及其开发系统是开发大规模数字集成电路的新技术。它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置 FPGA 器件的数据文件,对 FPGA 器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。FPGA 是一种半定制的集成电路,其特点是直接面向用户,具有极大的灵活性和通用性,开发效率高,硬件测试和实现快捷,工作可靠性好而且技术维护简单。FPGA 相对于 CPLD 而言,其结构特点在于 FPG

28、A 是基于查找表 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.1 FPGA 的器件结构与工作原理FPGA(Field P

29、rogrammable Gate Array)即现场可编程逻辑阵列,是大规模可编程集成电路的主流器件。FPGA 一般由三种可编程电路和一个用于存放编程数据的 SRAM(静态随机存储器)组成,这三种可编程电路是:可编程逻辑阵列 LAB(Logic Array Block),输入输出模块 IOB (I/O Block)和互连资源 IR(Interconnect Resource)。FPGA 可编程逻辑形成的方法是基于查找表 LUT (Look Up Table)结构的,LUT 是可编程的最小逻辑构成单元4。下面将以 Altera 公司的 ACEX 系列芯片为例对 FPGA 器件的结构原理作个简要的

30、阐述。ACEK 系列芯片除了具备上述三种常规的可编程电路,还有其特有的结构即嵌入式阵列块 EAB(Embedded Array Block)。FPGA 的内部结构示意图如图 3.2 示。FPGA 的内部连线是分布在 CLB 周围,而且编程的种类和编程点很多,使得布线相当灵活,因此在系统速度方面低于 CPLD 的速度。芯片逻辑利用率:由于 FPGA 的 CLB 规模小,可分为两个独立的电路,又有丰富的连线,所以系统综合时可进行充分的优化,以达到逻辑最高的利用。芯片功耗:高密度可编程逻辑器件 HDPLD 的功耗一般在 0.5W2.5W 之间,而FPGA 芯片功耗 0.25mW5mW,静态时几乎没有

31、功耗,所以称 FPGA 为零功耗器件。图 3.2 FPGA 结构示意图1.可编程逻辑阵列 LAB可编程逻辑阵列是由一系列相邻的逻辑单元 LE (Logic Element)构成的,每个 LAB 包括八个逻辑单元 LE、相连的进位链和级联链,LAB 控制信号和 LAB 局部互连。LAB 的构成、ACEK 系列芯片的“粗粒度(coarse-grained )结构,有利于 EDA 软件进行布局布线,优化器件的利用进而提高整个数字系统的性。其中的逻辑单元 LE 是一种基于查找表的函数发生器。它能够实现 4 输入 1 输出的任意逻辑函数。每个 LE 包含一个 4 输入的查找表、一个带有同步使能的可编程触

32、发器、一个进位链和一个级联链。每个 LE 有两个输出分别可以驱动局部互连和快速通道互连。LE有两个输出驱动内部互连,一个是驱动局部互连输出,另一个驱动行或列的快速通道 Fast Track 的互连输出,这两个输出可以单独控制。因此在一个逻辑单元 LE 中的触发器和查找表能够用来完成不相关的功能,从而提高 LE 的资源利用率。在 ACEK 系列芯片的结构中还提供了两种专用的高速数据通道,用于连接相邻的LE,但不占用局部互连通路,它们是进位链和级联链。进位链用来支持高速计数器和加法器,它提供了 LE 之间的决速向前进位功能。来自低位的进位信号经进位链向前直接送到高位,同时馈入查找表和进位链的下一段

33、。这种特点使得 ACEK 结构能够实现高速计数器、加法器和宽位比较器。级联链可以用来实现多输入数的逻辑函数。相邻的查找表并行地完成部分逻辑功能,级联链把中间结果拼接起来。进位链和级联链的使用有利于提高器件的工作速度,但是大量使用进位链和级联链会限制布局布线的灵活性,导致资源的浪费。因此在设计过程应该权衡考虑,在 FPGA 芯片资源利用和工作速度之间寻求平衡。2.输入/输出模块 IOBACEK 器件的 I/O 引脚是由一些 I/O 单元驱动的。IOE (I/O Element)位于快速通道的行和列末端,包含一个双向的缓冲器和一个寄存器。这个寄存器可以用作需要快速建立时间的外部数据输入寄存器,也可

34、以作为需要快速“时钟到输出”性能的数据输出寄存器。IOE 可以配置成输入、输出或双向口。ACEK 器件中的 IOE 具有许多特性,支持 JTAG 编程、三态缓冲和漏极开路输出等等。每个 IOE 的时钟、清零、时钟使能和输出使能的控制均由 I/O 控制信号网络提供,采用高速驱动以减小通过器件的时间偏差。此外,ACEK 器件还提供了若干专用输入引脚,这些引脚用来驱动 IOE 寄存器的控制端,使用了专用的布线通道,以便具有比快速通道更短的延迟和更小的偏差。3.互连资源 IR可编程的互连资源包括各种长度的金属连线线段和一些可编程的连线开关,它们将各个逻辑阵列之间、及其与 IO 模块之间互相连接起来,构

35、成各种功能复杂的系统。在 ACEK 中互连结构是通过快速通道(Fast Track)实现的。Fast Track 遍布于整个ACEK 器件,是一系列水平和垂直走向的连续式布线通道。每一行的 LAB 都有一个专用的“行互连” , “行互连”可以驱动。I/O 引脚或馈送到器件中的其 LAB;“列互连”连接各行,也能驱动 I/O 引脚。这种布线结构能够有效提高布线效率,使得即使非常复杂的设计也能够测定其延时性。4.嵌人式阵列块 EAB嵌人式阵列块 EAB 是在输入输出口上带有寄存器的灵活的 RAM 块,是由一系列嵌人式 RAM 单元组成的。EAB 的逻辑功能是在配置期间,用只读模式对 EAB 编程产

36、生一个大型查找表来实现的。采用查找表实现组合逻辑比一般算法快,EAB 的快速时间通道使得这一先进性能进一步得到加强。当要实现存储器功能时,每个 EAB 提供 2048 比特位,每一个 EAB 是一个独立的结构,它具有共同的输入、互连和控制信号。每个 EAB含有一个行互连馈入端,EAB 的输出能够同时驱动行互连通道和列互连通道。这一特性增加了 EAB 的可利用布线资源。因此,EAB 可以非常方便地用于实现一些规模不大的RAM, ROM, FIFO 等功能模块;同时在实现地址译码器、状态机、微控制器等复杂逻辑时也具备了一定优势5。3.2.2 基于 EDA 平台的 FPGA 开发流程一个完整、典型的

37、 EDA 设计流程67即是自顶向下设计方法的具体实施过程,也是EDA 软件本身的组成结构。在实践中进一步了解支持这一个设计流程的诸多设计工具,有利于排解设计中的具体问题,提高设计质量。1.设计输入基于 EDA 软件平台的 FPGA 开发流程,一般有两种设计输入方式:图形输入和硬件描述语言文本输入。下面将重点介绍采用 VHDL 硬件描述语言进行设计输入方法,这是笔者在设计开发过程中采用的主要方法。VHDL 作为电子工程主流硬件描述语言,是EDA 技术的重要组成部分。它于 1983 年由美国国防部创建,由 IEEE 协会进一步发展并在 1987 年成为 IEEE 国际标准。自 IEEE 协会公布了

38、 VHDL 标准版本(IEEE Std 1076)之后,各大 EDA 公司相继推出支持 VHDL 语言的开发环境。从此 VHDL 作为硬件描述语言的业界标准之一,在电子设计领域得到广泛应用,并逐步成为事实上的通用硬件描述语言。VHDL 语言具有很强的电路建模能力,具有良好的电路行为描述和系统描述的能力,能从多个层次对数字系统进行建模和描述;VHDL 语言还具有与硬件电路无关和设计平台无关的特性,并且在语言易读性和层次化结构化设计方面表现了强大的生命力和应用潜力。这些特性使得 VHDL 语言在支持自顶向下的 EDA 设计流程方面显得游刃有余。因此,采用 VHDL 进行电子系统设计可以让设计者专心

39、致力于其功能的实现,而不需要对不影响功能的与工艺相关的问题花费过多的时间和精力,从而大大简化了设计任务,提高了设计效率和可靠性。采用 VHDL 文本设计输入与传统的计算机软件语言编辑输入基本上一样,就是使用VHDL 描述数字系统的功能,进行文本编辑输入。事实上,纯粹的 VHDL 设计输入方法仍然是最基本、最有效和最普遍的设计输入方法。2.设计综合在电子设计领域“综合”的概念可以表示为:将行为和功能层次表达的电子系统转化为低层次的便于具体实现的模块组合装配而成的过程。事实上,设计过程通常从高层次的行为描述开始,直到最底层的结构描述结束,每一个步骤都是上一个层次的综合转换。在 FPGA 设计开发过

40、程中,整个综合过程就是设计者在 EDA 软件平台上编辑输入VHDL 文本,依据给定电路结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。因此设计综合的过程就是将软件设计的 VHDL 描述文本与硬件结构挂钩,是软件描述转化为硬件电路的关键步骤,是文本描述与硬件实现之间的一座桥梁。3.结构适配适配器也称为结构综合器,它的功能是将综合器产生的网表文件配置于指定的 FPGA目标器件中,使之产生最终的下载文件。适配过程中所选定的 FPGA 目标器件必须属于综合器原来指定的目标器件系列,这是因为适配器的适配对象是直接与器件的结构细节相对应的。逻辑综合通过后必须

41、利用适配器将综合后的网表文件针对某一具体目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、逻辑布局布线操作。适配完成后可以利用适配所产生的仿真文件作精确的时序仿真,同时产生可用于编程下载文件。4.功能仿真和时序仿真在编程下载前必须利用 EDA 工具对配置生成的结果进行模拟分析,这就是所谓的仿真。仿真的过程就是让计算机根据一定的算法和一定的仿真库对 EDA 设计进行模拟,以验证设计,排除错误。仿真包括功能仿真和时序仿真。功能仿真:不经过综合和适配阶段,在设计项目编译后直接进入门级仿真器进行模拟测试。主要用于测试设计项目的逻辑功能,用以了解其实现的功能是否满足设计要求,在功能仿真

42、的过程不涉及任何具体器件的硬件特性。时序仿真:当设计项目通过功能仿真初步确定满足设计要求后,需要绑定具体器件进行时序仿真。时序仿真就是接近真实器件运行特性的仿真,仿真文件包含了器件硬件特性参数,因而仿真精度高。但时序仿真的仿真文件必须来自针对具体器件的综合器和适配器。综合所得的 EDIF 网表文件通常作为 FPGA 适配器的输入文件,产生的仿真网表文件包含了器件精确的延时信息。5.编程下载把适配后生成的下载或配置文件,通过编程器或编程电缆向 FPGA 进行下载,以便进行硬件调试和验证,从而实现满足设计要求的电子系统8。第四章 多功能计数器的理论基础和总体设计方案 4.1 常用频率测量方法及其误

43、差分析4.1.1 直接测频法直接测频法是最简单的、也是最基本的测量频率的方法。其原理就是在给定的闸门信号中填入脉冲,并通过一定的计数线路,得到所填充的脉冲的个数,从而算出待测信号的频率或者周期。其测量原理如图 4.1 所示:在测量的过程中,按照信号频率高低的不同,其测量方法分为两种:(1) 被测信号频率较高时此时,通常选用频率较低的一个标准频率信号作为闸门信号,而将被测信号作为填充脉冲,在固定的闸门时间内对其计数。设闸门宽度为 T,计数值为 N,则这种测量方法的频率测量值为:= (4-1)fxTN测量误差主要决定于闸门时间 T 和计数器计数的数的准确度,因此,总的误差可以采用分项误差绝对值线性

44、相加来表示,即 (4-2)fcfcTfxfxfx1其中Tfx1是最大量化误差的相对值,TfxNNN11,NN的产生是由于在测频时,闸门的开启时刻与计数脉冲之间的时间关系不相关造成的,即在相同的主门开启时间内,计数器所得的数不一定相同,当主门开启时间 T 接近甚至等于被测信号周期 Tx 的整数倍时,量化的误差最大,最大量化误差为1NN个数。fcfc为标准频率的准确度,在数值上等于石英晶体振荡器所提供的标准频率的准确度,也是闸门时间的相对误差闸门时间TT的准确度,即: (4-3)fcfcTT式中负号表示有所引起的闸门时间的误差为。fcT通常情况下,对标准频率的准确度的要求是根据所要求的测频准确度而

45、提出fcfc来的。因此,为了使标准频率误差不对测量结果产生影响,标准频率的准确度应高于被测信号准确度至少一个数量级。因此,在较高的信号频率测量时,若一定,则闸门时fx间 T 越长,测量的准确度越高,当 T 选定后,越高,1 个数字误差对测量结果减小,fx测量准确度越高。输入 Fx脉冲整形与 门计 数 器锁 存 器译码电路显示电路控制电路锁存脉冲信号清零脉冲信号闸门控制信号图 4.1 直接测频法测频原理图(2) 被测信号频率较低时此时,通常选用被测信号作为闸门信号,而将频率较高的标准频率信号作为填充脉冲,进行计数。设计数值为 N,标准频率信号的频率为,周期为。则这种测量方法0f0T的频率测量值为

46、: (4-4)01NTfx 误差主要为对标准频率信号计数产生的1 个字误差,在忽略闸门信号自身误差的情况下,测量精度为: (4-5)0ffxfxfx直接测频方法的优点是:测量比较方便、读数直接,在比较宽的频率范围内能够获得较高的测量精度。这种测频方法的主要缺点是:测量误差主要来自于被测信号和标准频率信号,由于标准频率信号的计数器总存在个计数误差,难以同时兼顾低频和高频以实1现等精度测量,所以测量的精度较低。但是,通过提高测量频率可以提高测量的精度,如果测量的频率一定时,尽可能的在比较长的闸门时间下测频,可以提高测量精度。但对于较低的被测频率来说,测频的精度是不高的9。4.1.2 测周法原理如下

47、图所示: 图 4.2 周期测量原理图当间隔信号第一个脉冲上升沿到来时,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 无法对后面到来的脉冲信号计数

48、,从而保证计数器只对前两个脉冲计数。将输出的计数值 N 经由单片机计算即可得出时间间隔值 Tx。计算公式如下:=N TsTx (4-6)Tx 为待测时间间隔值,N 为标准信号的计数值,Ts 为标准信号的周期。当输入信号为周期信号时,由于采用双 T 触发器控制计数,所以只对周期信号前两次脉冲上升沿计数,测出的时间间隔 T 即为输入周期信号的周期。经换算即可得到其频率值。4.1.3 等精度测频原理标准频率BCLK与门CNT计数器模块输出计数值N单片机计算T 触发器 2读出时间间隔反相器T 触发器 1待测时间间隔触发使能图 4.3 测频原理框图2如图 4.3 预置门控信号是宽度为 Tpr 的一个脉冲

49、,cnt1、cnt2 是两个可控计数器,标准频率信号从 cnt1 的时钟输入端 clk 输入,其频率为 Fs;经整形后的被测信号从 cnt2 时钟输入端 clk 输入,设其实际频率为 Fxe,测量频率为 Fx.当门控信号为高电平时,被测信号的上沿通过 D 触发器的 Q 端同时启动计数器CNT1 和 CNT2。对被测信号 Fx 和标准频率信号 Fs 同时计数。当门控信号为低电平时,随后而至的被测信号的上沿将使这两个计数器同时关闭。设在一次门控时间 Tpr 中对被测信号计数值为 Nx。对标准频率信号的计数值为 Ns。则:NsFsNxFx就可以得到被测信号的频率值为: (4-7)NxNsFsFx误差

50、分析如下:在一次测量中,由于 Fx 计数的起停时间都是由该信号的上升沿触发的,在 Tpr 时间内对 Fx 的计数 Nx 无误差;在此时间内 Fs 的计数 Ns 最多相差一个脉冲,即,则1et下式成立: (4-8)NsFsNxFx (4-9)etNsFsNxFxe所以有: (4-10)NxNsFsFx (4-11)NxetNsFsFxe清零信号 标 准 频 率被测信号 D Q CNT1 CLKEN CLK OUT CLR CNT2 CLKEN CLK OUT CLR 预置门控信根据相对误差公式有: (4-12)FxeFxFxeFxeFxe代入整理得: (4-13)FxeetFxeFxe又因为:

51、(4-14)1et所以: (4-15)NsNset1即: (4-16)NsFxeFxe1其中: (4-17)FsTprNs由以上推导结果可得出下面结论:1) 相对测量误差与频率无关。2) 增大 Tpr 或提高 Fs,可以增大 Ns,减少测量误差,提高测量精度。3) 标准频率误差为FsFs,由于晶体的稳定度很高,标准频率误差可以进行校准。4) 等精度测频方法测量精度与预置门宽度和标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度在整个测量范围内保持恒定不变,而常规的直接测频法(在低频时用测周法,高频时用测频法),其精度会随着被

52、测信号频率的下降而下降11。4.2 脉冲宽度和占空比测量原理根据脉宽测量原理,设计如图 4.4 的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号的 50%幅度时上沿和下沿信号。被测信号从 FIN 端输入,CLR为初始化信号,SRART 为工作使能信号,图中 CONRTL2 的 PUL 端与 GATE 的输入端PUL 相连。其测量脉冲宽度的工作步骤是:1)向 CONTRL2 的 CLR 端送一个脉冲以便进行电路的工作状态初始化。2)将 GATE 的 CNL 置高电平,表示开始脉冲宽度测量,这时 CONT2 的输入信号为 FSD。3)在被测脉冲的上沿到来时,CONTRT2 的 P

53、UL 端输出高电平,标准频率信号进入计数器 CONT2。4)在被测脉冲的下沿到来时,CONTRL2 的 PUL 端输出低电平,计数器 CONT2 被关断。5)由单片机读出计数器 CONT2 的结果,并通过上述测量原理公式计算出脉冲宽度。图 4.4 脉冲宽度测量原理图CONTRL2 子模块的主要特点是:电路的设计保证了只有 CONTRL2 被初始化过后才能工作,否则 PUL 输出始终为零。只有在先检测到上沿后 PUL 才为高电平,然后在检测到下沿时,PUL 输出为低电平时;ENDD 输出高电平以便通知单片机测量计数已经结束;如果先检测到下沿,PUL 并无变化;在检测到上沿并紧接一个下沿后,CON

54、TRL2 不再发生变化直到下一个初始化信号到来。占空比的测量方法是通过测量脉冲宽度记录 CONT2 的计数值 N1,然后将输入信号反相,再测量其脉冲宽度,测得 CONT2 计数值 N2,则可以计算出:占空比=N1/N1+N2.4.3 总体设计多功能数字计数器基本测量原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用 LED 数码显示管显示出来。根据多功能数字计数器的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个多功能数字计数器系统分为分频模块、计数模块、锁存器模块和显示

55、模块等几个单元,并且分别用 VHDL 硬件描述语言对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等,并在 EDA(电子设计自动化)工具的帮助下,用大规模可编程器件(FPGA)实现多功能数字计数器的设计原理及相关程序。图 4.5 系统总框图图 4.6 系统电路模块结构框图 输入电路 闸门 A 计数器 A 控制电路 运算器 时基 闸门 B 计数器 B 显示 计数电路 锁存电路 译码显示控制电路 被测信号 第五章 多功能计数器的软件设计和硬件设计5.1 软件设计测频时信号经峰值检波,AD 采样后送入 FPGA,选择模拟开关对不同幅度段的信号进行程控放大。放大后的信号分别经两路比较器整

56、形,然后送往 FPGA 内分别计数,高频时采用经高频比较器整形后的计数值,低频时采用经低频比较器整形后的计数值,准确测得信号频率。程序流程如图 5.1 所示。图 5.1 流程图由于多功能计数器是一个需对数字信号进行测量和显示的系统,因此它需要设置控制电路、计数电路、锁存电路和译码显示电路等。控制电路的功能是对计数电路、锁存电路和译码显示电路进行工作和时序的控制。其控制要求为:先使计数电路在 1s 内进行计数,接着在下一个 1s 内锁存计数的结果,然后再将锁存的数据进行译码和显示。在第一个测量显示周期结束后,控制电路将再次发出控制信号,先对功能电路清零,然后使系统开始第二个测量周期的工作。计数电

57、路是对被测频率信号进行频率计数测量的主功能电路。由于被测信号频率是未知的,因此用计数电路测量时,一般使用多个输出为 4 位2 进制数的数字十进制计数器。此计数器从个位开始到高位分别进行计数,使低位计数器的溢出位与高位计数器的输入时钟位相连。从计数器电路结构可知,该电路输出信号是由低位到高位的多组 4 位 2 进制表示的十进制数,用来分别表示被测信号的个、十、百、千等位的数值。位数越高频率测量的范围也越宽,此测量范围由计数电路内部的十进制计数器的个数来决定。锁存电路的主要功能是对计数器计数输出的数据进行锁定保存。即使在前级计数电路的计数器清零以后,锁存器依然有保存的数据存在,不会造成数据的丢失。

58、锁存电路中的锁存器是对单个十进制计数器数据进行保存,因此锁存器的个数由前一级计数电路的十进制计数器的个数决定。译码显示电路由译码器和显示器构成。译码器的功能是,将锁存器保存并输出的 4 位 2 进制代码表示的十进制数进行译码转换,将其转换为能直接驱动数码管显示与其对应的十进制数字字符的输出信号。显示器由数码管电路构成。由于被测信号可能具有多个位数的频率,因此需要多个数码管对其进行显示。数码管的个数可根据被测信号频率的位数来决定。若采用动态显示模式驱动数码管,则可使数码管依次显示个、十、百、千等位的数字。若显示的循环频率足够高,则看到的依然是多个数码管同时显示。采用动态显示模式可大量减少单个数码

59、管的工作时间,亦可将动态显示电路和译码电路结合在一起,减小系统译码电路的规模。5.1.1 测频专用模块工作功能描述及 VHDL 程序1. FCHLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FIN IS5PORT( CHKF,FIN,CHOIS: IN STD_LOGIC; FOUT: OUT STD_LOGIC);END FIN;ARCHITECTURE rt1 OF FIN ISBEGINFOUT=(FIN AND CHOIS)OR(CHKF AND CHOIS);END rt1;2 .计数器模块(CNT1/CNT2)LIBRARY IEE

60、E;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT IS PORT(A,B,CLK,CLR: IN STD_LOGIC; OO: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); Q: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END CNT;ARCHITECTURE behav OF CNT IS SIGNAL CNT: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL SEL: STD_LOGIC_VECTOR(1 DOWNT

温馨提示

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

评论

0/150

提交评论