已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘 要 利用等精度测量原理,通过FPGA运用VHDL编程,利用FPGA(现场可编程门阵列) 芯片设计了一个数字式等精度频率计,该频率计的测量范围为0-100MHZ。实现8位 数字频率计,并利用Max-Plus集成开发环境进行编辑、综合、波形仿真,并下载 到CPLD器件中,经实际电路测试,仿真和实验结果表明,该频率计有较高的实用 性和可靠性。 数字频率计是一种基本的测量仪器。它被广泛应用与航天、电子、测控等领域。 采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化;结 合现场可编程门阵列 FPGA,具有集成度高、高速和高可靠性的特点,使频率的测频 范围可达到 01 Hz 一 50MHz,测频全域相对误差恒为百万分之一。它的基本测量 原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉 冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器, 把锁存的结果用 LED 数码显示管显示出来。 关键词:EDA VHDL 等精度数字频率计 仿真及下载 II 目 录 摘 要 .I Abstract.II 绪 论 .1 1 总体设计 .3 1.1 系统设计方案论证.3 1.2 概述.4 1.2.1 FPGA 及特点概述.4 1.2.2 VHDL 语言及优点概述.4 1.2.3 MAX+PLUS II 简介.6 1.2.4 EP1K50 芯片概述.7 1.3 数字频率计工作原理概述.8 1.4 测频原理及误差分析 .9 1.4.1 测频原理.9 1.4.2 误差分析.11 1.5 本章小结 .12 2 软件设计及功能仿真 .13 2.1 系统的总体设计.13 2.2 信号源模块.14 2.3 测频控制信号产生器.19 2.4 锁存器 .22 2.5 十进制计数器 .24 2.6 显示模块 .26 2.6.1 显示电路 .30 III 2.6.2 译码器 .30 2.7 本章小结.31 总 结 .32 致 谢 .33 参考文献 .34 附录 频率计顶成文件 .35 IV 1 绪 论 EDA 是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描 述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统 为设计工具,通过有关开发软件,自动完成用软件方式设计的电子系统到硬件系统 的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真, 直至对于特定目标芯片的适配编译、逻辑应射、编程下载等工作,最终形成集成电 子系统或专用集成芯片的一门技术。 VHDL(超高速集成电路硬件描述语言)是由美国国防部开发的一种快速设计 电路的工具,目前已经成为 IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法, VHDL 具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于 库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。从系统设 计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用 VHDL 对电路 的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综 合优化工具生成具体的门级逻辑电路的网表,下载到具体的 CPLD 器件中去,从而 实现可编程的专用集成电路(ASIC)的设计。 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多, 连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可 编程逻辑器件(CPLD)的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 语 言。将使整个系统大大简化。提高整体的性能和可靠性。 数字频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用 Verilog HDL 编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和 数码显示部分外,其余全部在一片 FPGA 芯片上实现。整个系统非常精简,且具有 灵活的现场可更改性。 相比传统的电路系统设计方法,EDA 技术采用 VHDL 语言描述电路系统,包括电 路的结构、行为方式、逻辑功能及接口。Verilog HDL 具有多层次描述系统硬件功 能的能力,支持自顶向下的设计特点。设计者可不必了解硬件结构。从系统设计入 手,在顶层进行系统方框图的划分和结构设计,在方框图一级用 Ver-ilog HDL 对 2 电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻 辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的 FPGA 器件中去, 从而实现 FPGA 的设计。 本文用 VHDL 在 CPLD 器件上实现一种 8 位数字频率计测频系统,能够用十 进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率, 而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。 3 1 总体设计 1.1 系统设计方案论证 1)频率测量方案 方案一:采用周期法。需要有标准倍的频率,在待测信号的一个周期内,记录 标准频率的周期数,这种方法的计数值会产生1 个脉冲误差,并且测试精度与计 数器中的记录的数值有关,为了保证测试精度,测周期法仅适用于低频信号的测量。 方案二:采用测频法。测频法就是在确定的闸门时间内,记录被测信号的脉冲 个数。这种方法的计数值也会产生1 个脉冲误差,并且测试精度与计数器中的记 录的数值有关,不便于高频信号的测量。 方案三:采用等精度频率测量法,测量精度保持恒定,不随所测信号的变化而 变化。在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信 号。单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、 高精度的测频要求;而采用高集成度、高速的现场可编程门阵列 FPGA 为实现高速、 高精度的测频提供了保证。 因此选用第三种方案。 2) 显示部分设计方案 方案一:采用八位共阴极 LED 数码管进行显示,利用单片机串行口的移位寄 存器工作方式,外接 MAX7219 串行输入共阴极显示驱动器,每片可驱动 8 个 LED 数码管。 方案二:采用点阵字符型 LCD 液晶显示,可以显示数字与阿拉伯字母等字符, 随着半导体技术的发展,LCD 的液晶显示越来越广泛的应用于各种显示场合。 比较这两种方案,数码管显示驱动简单,但显示信息量少,功耗大;利用液晶 显示可以工作在低电压、低功耗下,显示界面友好、内容丰富,综合考虑,选用 LCD 来实现显示功能。 4 1.2 概述 1.2.1 FPGA 及特点概述 FPGA 是 20 世纪 90 年代发展起来的大规模可编程逻辑器件,随着 EDA(电子 设计自动化)技术和微电子技术的进步,FPGA 的时钟延迟可达到 ns 级,结合其并 行工作方式,在超高速、实时测控方面有非常广阔的应用前景;并且 FPGA 具有高 集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,实现所谓片上系统, 从而大大缩小其体积。整个测频系统分为多个功能模块,如信号同步输入、控制部 件、分频和计数部件、定时、脉冲宽度测量、数码显示、放大整形和标频信号等模 块。除数码管、放大整形和标频信号外,其它模块可集成于 FPGA 芯片中,并且各 逻辑模块用硬件描述语言 HDL 来描述其功能,如用 VHDL 或 AHDL 来对各功能模块进 行逻辑描述。然后通过 EDA 开发平台,对设计文件自动地完成逻辑编译、逻辑化简、 综合及优化、逻辑布局布线、逻辑仿真,最后对 FPGA 芯片进行编程,以实现系统 的设计要求1。 FPGA 是现在可编程门列阵的简称。FPGA 器件及其开发系统是开发大规模数字 集成电路的新技术。它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑 布尔方程或用硬件描述语言等方式作为设计输出;然后经一系列转换程序、自动布 局布线、模拟仿真的过程;最后生成配置 FPGA 器件的数据文件,对 FPGA 器件初始 化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行 研制和自行生产集成电路的目的。 概括地说, FPGA 具有下列特点:高密度、高速率、系列化、标准化、小型化、 多功能、低功耗、低成本、设计灵活方便,可无限次反复编程,并可现场模拟调试 验证。使用 FPGA 器件,一般可在几天到几周完成一个电子系统的设计和制作,可 以缩短研制周期,达到快速上市和进一步降低成本的要求。 1.2.2 VHDL 语言及优点概述 VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年,1987 年底,VHDL 被 IEEE 和美国国防部确 5 认为标准硬件描述语言。各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自 己的设计工具可以和 VHDL 接口。此后,VHDL 在电子领域得到了广泛的接受,并逐 步取代了原有的非标准硬件描述语言1.9。 VHDL 主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬 件特征的语句外,VHDL 的语言形式和描述风格与语句十分类似于一般的计算机高级 语言。VHDL 的程序结构的特点是将一项工程设计,或称设计实体分成外部和内部两 部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成开发完成后,其 他的设计就可以直接调用这个实体。这种将设计实体分成内、外部分的概念是 VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的,具体如下: (1)与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力。强大的行为 描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要 保证。就目前流行的 EDA 工具和 VHDL 综合器而言,将基于抽象的行为描述风格的 VHDL 程序综合成为具体的 FPGA 和 CPLD 等目标器件的网表文件已不成问题,只是在 综合与优化效率上略有差异。 (2)VHDL 具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能 查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的 结构和功能可行性做出判断。 (3)VHDL 语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分 解和已有设计的再利用功能。高效、高速完成符合市场需求的大规模系统设计必须 有多人甚至多个开发组共同并行工作才能实现。VHDL 中设计实体的概念、程序包的 概念、设计库的概念为设计的分解和并行工作提工了有利的支持。 (4)用 VHDL 完成一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化, 并自动把 VHDL 描述设计转变成门级网表。这种方式突破了门级设计的瓶颈,极大 地减少了电路设计的时间和可能发生的错误,降低了开发成本。利用 EDA 工具的逻 辑优化功能,可以自动地把一个综合后的设计变成一个更小、 更高速的电路系统。 反过来,设计者换可以容易地从综合和优化的电路获得设计信息,返回去修改 VHDL 设计描述,使之更加完善。 (5) VHDL 对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必 6 管最终设计的目标器件是什么,而进行独立的设计。正因为 VHDL 的硬件描述与具 体工艺技术和硬件结构无关,所以 VHDL 设计程序的硬件实现目标器件有广阔的选 择范围,其中包括各种系列的 CPLD、FGGA 及各种门列器件 (6)VHDL 具有类属描述语句和子程序调用功能,对于完成的设计,在不改变源 程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构1。 1.2.3 MAX+PLUS II 简介 Max-Plus是 Altera 公司开发的一个完全集成化、易学易用的的可编程逻辑设 计环境,可以在多个平台上运行。 MAX+PLUS II 的特点包括一下几点1.3: (1)MAX+PLUS II 软件可在多种平台下运行。可基于 Windows NT3.51、Windows NT4.0、Windows98 和 Windows2000 操作系统下运行,也可在 Sun SPAC Station、HP9000Series 700/800 和 IBM RISC System/6000 工作站运行。 (2)MAX+PLUS II 提供了与结构无关的设计环境。支持 MAX、FLEX 及 Classic 系列器件,MAX+PLUS II 的设计输入、处理与校验功能全部集成在统一的开发环境 下,这样可以加快动态调试,缩短开发周期。 (3)MAX+PLUS II 软件可以与其他工业标准的 EDA 设计工具想连接。 (4)MAX+PLUS II 提供丰富的库单元供使用着调用,以减轻设计人员的工作量, 也可成倍的缩短设计周期。其中包括 74 系列的全部器件和多种特殊的逻辑宏功能 模块库以及新型的参数化的兆功能库。 (5)MAX+PLUS II 软件支持硬件描述语言 VHDL 和其他 HDL 设计输入选项,包 括 VerilogHDL 和 AHDL。 (6)使用 MAX+PLUS II,设计人员可以从各种设计输入、处理和校验选项中进 行选择从而使设计环境用户化,必要时,还可根据需要添加新功能。MAX+PLUS II 软件具有核开放的功能,它允许设计人员增添自己的宏函数。 (7)MAX+PLUS II 为复杂的系统级设计提供了 Megacore 功能,减少了设计时 间。经过校验的 HDL 网络表文件,使器件实现最优化的设计。 MAX+PLUS II 的使用包括一下几个方面: 7 (1)MAX+PLUS II 支持的设计方法有:用图形编辑法创建图形设计文件;用 MAX+PLUS II 文本编辑器,使用 AHDL 语言,创建文本设计文件;使用 VHDL 语言, 创建文本设计文件;使用 VerilogHDL 语言,创建文本设计文件;还可以通过波形 编辑器,创建波形设计文件等。 (2)通过 MAX+PLUS II 编辑器可完成:设计项目的规则检查、逻辑综合与适 配、多器件划分、自动错误定位、定时驱动编辑和开放核环境等,同时产生报告文 件、编程文件和用于时序仿真的输出文件。 (3)MAX+PLUS II 的设计项目校验包括:功能仿真、时序仿真、波形分析、定 时分析。 (4)MAX+PLUS II 提供了器件编程和配置及在线帮助。 1.2.4 EP1K50 芯片概述 ACEX 1K50 是 Altera 公司着眼于通信、音频处理及类似场合的应用而推出的 FPGA 器件芯片系列,总的来看将会逐步取代 FLEX 10K 系列,成为首选的中规模器 件产品。它具有如下特点15: (1)ACEX 1K 采用查找表(LUT)和 EAB(嵌入式阵列块)相结合的结构,特 别适用于实现复杂逻辑功能存储器功能,例如通信中应用的数字信号处理、多通道 数据处理、数据传递和微控制等。 (2)典型门数为 1 万到 10 万门,有多达 49152 位的 RAM(每个 EAB 有 4096 位 RAM)。 (3)器件内核采用 2.5V 电压,功耗低,能够提供高达 250MHz 的双向 I/O 功 能,完全支持 33MHz 和 66MHz 的 PCI 局部总线标准。 (4)具有快速连续式延时可预测的快速通道互连(Fast Track);具有实现 快速加法器、计数器、乘法器和比较器等算术功能的专用进位链和实现高速多扇入 逻辑功能的专用级连接。 ACEX EP1K50 具有典型门数 50000 门,逻辑单元 2880 个,嵌入系统块 10 个, 完全符合单片实现 DDS 电路的要求。 8 1.3 数字频率计工作原理概述 当系统正常工作时,由系统时钟提供的 100MHz 的输入信号,经过信号源模块, 先通过 100 分频产生 1MHZ 的时钟信号,再将 1MHZ 的时钟信号分频产生多种频率输 出,其中 1HZ 的输出频率被作为控制模块的时钟输入,7812HZ 的输出频率被作为显 示模块的时钟输入,由控制模块产生的计数使能信号 testen 和清零信号 clr 对计 数模块进行控制,而由其产生的锁存信号 load 对锁存模块进行控制,一旦计数使 能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则 计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输 出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路 将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制 结果。 数字频率计的设计原理实际上是测量单位时间内的周期数。这种方法免去了实 测以前的预测,同时节省了划分频段的时间,克服了原来高频段采用测频模式而低 频段采用测周期模式的测量方法存在换挡速度慢的缺点。 为克服低频段测量的不准确问题,采用门控信号和被测信号对计数器的使能信 号进行双重控制,大大提高了准确度。当门控信号为 1 时,使能信号并不为 1,只 有被测信号的上升沿到来时,使能端才开始发送有效信号,两个计数器同时开始计 数。当门控信号变为 0 时,使能信号并不是立即改变,而是当被测信号的下一个上 升沿到来时才变为 0,计数器停止计数。因此测量的误差最多为一个标准时钟周期。 当采用 100MHz 的信号作为标准信号时,误差最大为 0.01s。 采用一个标准的基准时钟,在单位时间(1s)里对被测信号的脉冲数进行计数, 即为信号的频率。由于闸门的起始和结束时刻对于信号来说是随机的,将会有一个 脉冲周期的量化误差。进一步分析测量准确度:设待测信号脉冲周期为 Tx,频率为 Fx,当测量时间为 T=1s 时,测量准确度为=Tx/T=1/Fx。由此可知直接测频法的 测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之 测量准确度也较低。因此直接测频法只适合测量频率较高的信号,不能满足在整个 测量频段内的测量精度保持不变的要求。本文的设计是采用等精度测量的方法,所 以可以得到整个频段内较高的准确度。 9 数字频率计主要由 5 个模块组成,分别是:脉冲发生器电路、测频控制信号发生器 电路、计数模块电路、锁存器、译码驱动电路。 当系统正常工作时,脉冲发生器提供的 1 Hz 的输入信号,经过测频控制信号 发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的 矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存 器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转 换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以 看到计数结果。 计算每秒钟内待测信号脉冲个数。这就要求计数使能信号 TSTEN 能产生一个 1 秒脉宽的周期信号,并对频率计的每一计数器 cnt10 的 ENA 使能端进行同步控制。 当 TSTEN 为高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停 止计数期间,首先需要一个锁存信号 LOAD 的上跳沿将计数器在前 1 秒钟的计数值 锁存进 32 位锁存器 REG32B 中,并由外部的七段译码器译出并稳定显示。锁存信号 之后,必须由清零信号 CLR_CNT 对计数器进行清零,为下一秒钟的计数操作做准备。 当系统正常工作时,脉冲发生器提供的 1 Hz 的输入信号,经过测频控制信号 发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的 矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存 器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转 换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以 看到计数结果2。 1.4 测频原理及误差分析 1.4.1 测频原理 等精度测频方法是在直接测频方法的基础上发展起来的。它的闸门时间不是固 定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,测除了对被测信 号计数所产生1 个字误差,并且达到了在整个测试频段的等精度测量。其测频原 理如图 1-1 所示。在测量过程中,有两个计数器分别对标准信号和被测信号同时计 10 数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等 到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下 降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束 计数,完成一次测量过程。可以看出,实际闸门时间 与预置闸门时间 1 并不 严格相等,但差值不超过被测信号的一个周期。 图 1-1 等精度测频原理波形图 等精度测频的实现方法可简化为图 1-3 所示。CNT1 和 CNT2 是两个可控计数器, 标准频率信号从 CNT1 的时钟输入端 CLK 输入;经整形后的被测信号从 CNT2 的时钟 输入端 CLK 输入。当预置门控信号为高电平时,经整形后的被测信号的上升沿通过 D 触发器的 Q 端同时启动 CNT1 和 CNT2。CNT1、CNT2 同时对标准频率信号和经整形 后的被测信号进行计数,分别为 NC 与 NX。当预置门信号为低电平的时候,后而来 的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(FC/NC)*NX。则等 精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。在 预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法 的测量精度不变。 11 图 1-3 等精度测频实现原理 1.4.2 误差分析 设在一次实际闸门时间 中计数器对被测信号的计数值为 Nx,对标准信号的 计数值为 Ns。标准信号的频率为 fs,则被测信号的频率如式(1-1): fx=Nx/Nsfs (1-1) 由式 1-1 可知,若忽略标频 fs 的误差,则等精度测频可能产生的相对误差如 式(1-2): =(|fxc-fx|/fxe)100% (1-2) 其中 fxe 为被测信号频率的准确值。 在测量中,由于 fx 计数的起停时间都是由该信号的上升测触发的,在闸门时 间 内对 fx 的计数 Nx 无误差(=NxTx);对 fs 的计数 Ns 最多相差一个数的误差, 即|Ns|1,其测量频率如式(1-3): fxe=Nx/(Ns+Ns)/fs (1-3) 将式(1-1)和(1-3)代入式(1-2),并整理如式(1-4): =|Ns|/Ns1/Ns=1/(fs) (1-4) 由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门 时间和标准信号频率有关,即实现了整个测试频段的等精度测量。闸门时间越长, 标准频率越高,测频的相对误差就越小。标准频率可由稳定度好、精度高的高频率 12 晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时 间缩短,即提高测试速度14。 1.5 本章小结 本章从各个方面说明了频率计的初步构造,及各反面的原理,误差的分析和一 些基本概述,对频率计的实现,在理论上起到了作用。对 FPGA 的特点 VHDL 的优 点加一详细的说明,对 MAX+PLUS II 的各个方面从各方面加以说明,对本设计的将 要用到的 EP1K50 芯片也做了介绍, 13 2 软件设计及功能仿真 2.1 系统的总体设计 当系统正常工作时,由系统时钟提供的 100MHz 的输入信号,经过信号源模块, 先通过 100 分频产生 1MHZ 的时钟信号,再将 1MHZ 的时钟信号分频产生多种频率输 出,其中 1HZ 的输出频率被作为控制模块的时钟输入,7812HZ 的输出频率被作为显 示模块的时钟输入,由控制模块产生的计数使能信号 testen 和清零信号 clr 对计 数模块进行控制,而由其产生的锁存信号 load 对锁存模块进行控制,一旦计数使 能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则 计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输 出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路 将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制 结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图 2-1 所示。 他主要由 5 个模块组成,分别是:信号源模块、控制模块、计数模块、锁存器模块 和显示器模块13。 根据数字频率计的系统原理,CNT 控制信号发生器。TESTCTL 的计数使能信号 TSTEN 能产生一个 1 s 宽的周期信号,并对频率计的每一计数器 CNT10 的 ENA 使能 端进行同步控制:当 TSTEN 高电平时允许计数、低电平时停止计数。 REG32B 为锁存器。在信号 Load 的上升沿时,立即对模块的输入口的数据锁存 到 REG32B 的内部,并由 REG32B 的输出端输出,然后,七段译码器可以译码输出。 在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不 断闪烁。 CNT10 为十进制计数器。有一时钟使能输入端 ENA,用于锁定计数值。当高电 平时允许计数,低电平时禁止计数。将八个十进制计数器 CNT10 级联起来实现 8 位 十进制计数功能1.7。 disply 为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显 示相对应的阿拉伯数字,便于读取测量的结果。 14 图 2-1 数字频率计的原理框图 为了实现系统功能,测频控制信号发生器 TESTCTL、计数器 CNT10、锁存器 REG32B 存在一个工作时序的问题,设计时需要综合考虑。 8位数字频率计的顶层框图(endfreq.bdf),设计实现包括信号源模块 (F1MHZ、CNT)、频率计模块(FREQ)和显示模块(display)三大模块。下面 分别介绍三个模块的结构和实现方法。 2.2 信号源模块 信号源是为了产生1MHz 的门控信号和待测的定频信号,而对输入系统时钟 clk(50MHz)进行分频的模块,设计源代码PIN1MHZ.VHD 对输入系统时钟 clk(50MHz)进行分频产生1MHz 信号。 PIN1MHZ的封装图如2-2所示,图中CLKIN为接入的100MHZ信号,图中 CLKOUT为接到CNT的CLK的1MHZ的信号。 15 图2-2 PIN1MHZ封装图 PIN1MHZ.VHD 对输入系统时钟clk(100MHz)进行分频产生1MHz 信号。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PIN1MHZ_1 IS PORT (clkin : IN STD_LOGIC; clkout : OUT STD_LOGIC); END PIN1MHZ_1; ARCHITECTURE A OF PIN1MHZ_1 IS BEGIN PROCESS(clkin) variable cnttemp : INTEGER RANGE 0 TO 99; BEGIN IF clkin=1 AND clkinevent THEN IF cnttemp=99 THEN cnttemp:=0; ELSE IF cnttemp50 THEN clkout=1; ELSE clkout=0; END IF; cnttemp:=cnttemp+1; 16 END IF; END IF; END PROCESS; END A; END A; PIN1MHZ 的工作时序图如图 2-3、2-4 所示,由系统时钟提供的 100MHz 的输入 信号,经过信号源模块,先通过 100 分频产生 1MHZ 的时钟信号,其中图 2-2(a)为 50 翻转,信号变为低电平,图 2-2(b)为 100 翻转,信号变为高电平。 图 2-3 PIN1MHZ 的时序仿真图 图 2-4 PIN1MHZ 的时序仿真图 17 2.3 分频器 各种频率输出。此程序的功能很简单,程序要求将1MHZ的输入频率分别进行21 分频(产生500KHZ的输出频率freq500k)、23分频(产生125 KHZ的输出频率freq125k)、 25 分频(产生31250HZ的输出频率freq31250)、27分频(产生7812HZ的输出频率 freq7812)、29分频(产生1953HZ的输出频率freq1953)、211分频(产生488HZ的输出 频率freq488)、213分频(产生1HZ的输出频率freq1)。 CNT的封装图如图2-5,图中CLK为PIN1MHZ输入的1MHZ信号,FREQ1为输出 给控制信号发生器的1HZ信号, FREQ488、FREQ1953、FREQ7812、FREQ31250、FREQ125K、FREQ500K为待测 信号。 图2-5 CNT封装图 CNT.VHD的源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt is port(clk : in std_logic; -1MHz 输入 freq1 : out std_logic; -1Hz 输出 18 freq488 : out std_logic; -488Hz 输出 freq1953 : out std_logic; -1953Hz 输出 freq7812 : out std_logic; -7812Hz 输出 freq31250: out std_logic; -31250Hz 输出 freq125k : out std_logic; -125KHz 输出 freq500k : out std_logic ); -500KHz 输出 end cnt; architecture behv of cnt is signal temp: std_logic_vector(19 downto 0); begin process(clk) begin if clkevent and clk =1 then if temp=11110100001000111111 then temp=00000000000000000000; else temp=temp+1; end if; end if; end process; freq1=temp(19); freq488=temp(10); freq1953=temp(8); freq7812=temp(6); freq31250=temp(4); freq125k=temp(2); freq500k=temp(0); end behv; 19 CNT 的工作时序仿真图如图 2-6、图 2-7,当 1MHZ 频率波形输入后的多种仿真输出 波形图。 图 2-6 CNT 的时序仿真图 图 2-7 CNT 的时序仿真图 2.3 测频控制信号产生器 控制模块的作用是产生测频所需要的各种控制信号。控制信号的标准输入时钟 为 1HZ,每两个时钟周期进行一次频率测量。该模块产生的 3 个控制信号,分别为 TSTEN,LOAD,CLR_CNT.CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,以 清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。TSTEN 为计数允许信号,在 TSTEN 信号的上升沿时刻计数模块开始对输入信号的频率进行 测量,测量时间恰为一个时钟周期(正好为单位时间 1s),在此时间里被测信号的脉 冲数进行计数,即为信号的频率。然后将值锁存,并送到数码管显示出来。设置锁 20 存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。在每一 次测量开始时,都必须重新对计数器清 09。 测频控制产生器如图 2-8,图中 CLK 接 CNT 的 FREQ1 的 1HZ 的信号,TSTEN 为 计数允许信号,接计数器 CNT10 的 ENA,CLR_CNT 信号用于在每次测量开始时,对 计数器进行复位,接计数器 CNT10 的 CLR,LOAD 接锁存器的 LOAD。 图 2-8 TESTCTL 的封装图 测频控制信号发生器的源程序 TESTCTL.VHD 如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TESTCTL IS PORT ( CLK: IN STD_LOGIC; -1 Hz 测频控制时钟 TSTEN: OUT STD_LOGIC; -计数器时钟使能 CLR_CNT: OUT STD_LOGIC; -计数器清零 LOAD: OUT STD_LOGIC); -输出锁存信号 END TESTCTL; ARCHITECTURE ART OF TESTCTL IS SIGNAL DIV2CLK :STD_LOGIC; SIGNAL CLR :STD_LOGIC; SIGNAL loadcnt :STD_LOGIC; 21 BEGIN PROCESS ( CLK ) IS BEGIN IF CLKEVENT AND CLK= 1 -1 HZ 时钟二分频 THEN DIV2CLK=NOT DIV2CLK; END IF ; END PROCESS; PROCESS ( CLK,DIV2CLK ) BEGIN IF CLK= 0 AND DIV2CLK = 0 THEN -产生计数器清零信号 CLR= 1; ELSE CLR= 0 ; END IF; -if clr=0 and div2clk=0 then -loadcnt=1; -else loadcnt=0; -end if; END PROCESS; LOAD=not div2clk; TSTEN=DIV2CLK;CLR_CNT=CLR; END ARCHITECTURE ART; 高质量的测频控制信号发生器的设计十分重要,在设计中要对其进行仔细的实 时仿真,防止可能产生的毛刺。 测频控制信号发生器 TESTCTL 的工作时序图,控制模块的几个控制信号的时序 关系图如图 2-9 所示。从图中可看出,计数使能信号 TSTEN 在 1s 的高电平后,利 用其反相值的上跳沿产生一个锁存信号 LOAD,随后产生清 0 信号上跳沿 CLR_CNT。 为了产生这个时序图需首先建立一个由 D 触发器构成的二分频器,在每次时钟 CLK 上升沿到来时令其翻转。其中,控制信号时钟 clk 的频率取 1HZ,而信号 TSTEN 的 脉宽恰好为 1s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号 22 LOAD 和 CLR_CNT 的逻辑描述。由图可知,在计数完成后,计数使能信号 TETEN 在 1 秒钟的高电平后,利用其反相值的上跳沿产生一个锁存信号 LOAD,0.5S 后, CLR_CNT 产生一个请零信号上跳沿。 图2-9 TESTCTL的时序仿真图 2.4 锁存器 锁存器模块也是必不可少的,测量模块测量完成后,在load信号的上升沿时刻 将测量值锁存到寄存器中,然后输出到显示模块。锁存器是起数据保持的作用,它 将会把数据保存到下次触发或复位。主要是主从触发器组成的。用于存储数据来进 行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。 锁存器REG32B的封装如图2-10,图中LOAD接控制测频产生器TESTCTL的LOAD, 而DIN31.0接计数器CNT10的CQ3.0,DOUT31.0接显示器DISPLAY的IN端。 23 图2-10 REG32B的封装图 32位锁存器的源程序REG32B.VHD如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG32B IS PORT(LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0); END ENTITY REG32B; ARCHITECTURE ART OF REG32B IS BEGIN PROCESS ( LOAD, DIN ) IS BEGIN IF LOAD EVENT AND LOAD= 1 THEN DOUT=DIN; -锁存输入数据 END IF; END PROCESS; END ART; 32 位锁存器 REG32B 的工作时序图如图 2-11,本程序是用来实现锁存器模块的 功能,但它的程序相当简单,在锁存信号 load 的上升沿到来时,锁存器将测量值 锁存到寄存器,然后输出到显示模块。但从仿真图 2-11 中可以明显的看出,锁存 输出并不是立即进行的,而是经历了一个短暂的延时,这是由于硬件引起的。 24 图 2-11 REG32B 的时序仿镇图 2.5 十进制计数器 计数器模块是由 8 个带有一步清零端,进位信号输出的模为 10 的计数模块级 连而成。通过(freq.vhd)进行元件例化实现。 此十进制计数器的特殊之处是,有一时钟使能输入端 ENA,用于锁定计数器。 当高电平计数允许,低电平时计数禁止。计数器模块用于对输入信号的脉冲进行计 数,该模块必需有计数允许、异步清 0 等端口,以便于控制模块对其进行控制。 CNT10 的封装如图 2-12,图中为八个十进制计数器首尾相连,其中 CLR 为复位 接 TESTCTL 的 CLR_CNT 端,ENA 接 TESTCTL 的 TSTEN 端,CQ3.0接锁存器的 DOUT31.0端。 图 2-12 CNT10 的封装图 25 有时钟使能的十进制计数器的源程序 CNT10.VHD 如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT (CLK:IN STD_LOGIC; -计数时钟信号 CLR:IN STD_LOGIC; -清零信号 ENA:IN STD_LOGIC; -计数使能信号 CQ :OUT INT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预备队员工不安全行为汇编
- 人工智能图像识别在蛋面分级标准化中的应用困境与突破
- AI驱动配方优化在芦荟啫喱水研发降本增效中的实证分析
- 2026年漳州卫生职业学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年湖南幼儿师范高等专科学校高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2026年湖南体育职业学院高职单招笔试语文试题库含答案解析2套试卷
- 2026年湖北住院医师-湖北住院医师妇产科历年参考题库含答案解析
- 2026年浙江邮电职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年泉州海洋职业学院高职单招笔试英语试题库含答案解析3套试卷
- 2026年河北能源职业技术学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年秋季开学小学心理健康开学第一课
- 2026新华报业传媒集团招聘笔试题库附参考答案详解【完整版】
- 2026-2031年中国蜂产品行业市场深度分析及投资机会研究报告
- (2026年秋)人教版四年级上册数学教案
- 军用关键软硬件自主可控产品名录(2025年v1版)
- 教育心理学课件
- 家长会课件:高一新生入学家长会课件
- 人力资源管理专业
- 蓝莓叶黄素背景调查-课件
- 名赋百篇评注
- 公司订单评审表
评论
0/150
提交评论