基于FPGA的等精度数字频率计设计_第1页
基于FPGA的等精度数字频率计设计_第2页
基于FPGA的等精度数字频率计设计_第3页
基于FPGA的等精度数字频率计设计_第4页
基于FPGA的等精度数字频率计设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、2014-2015 学年第学年第 1 学期学期课程设计课程设计 题目:题目:基于基于 FPGAFPGA 的等精度数字频率计设计的等精度数字频率计设计 姓名:姓名:*学号:学号:201295014220201295014220 班级:班级:电气六班电气六班 摘摘 要要伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。电子设计自动化是一种实现电系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。数字频率计是一种基本

2、的测量仪器。它被广泛应用与航天、电子、测控等领域。采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化的特点。本文首先综述了 EDA 技术的发展概况,FPGA/CPLD 开发的涵义、优缺点,VHDL 语言的历史及其优点,概述了 EDA 软件平台QUARTUS;然后介绍了频率测量的一般原理,利用等精度测量原理,通过 FPGA 运用 VHDL 编程,利用 FPGA(现场可编程门阵列)芯片设计了一个 8 位数字式等精度频率计,该频率计的测量范围为 0-100MHZ,利用 QUARTUS 集成开发环境进行编辑、综合、波形仿真,并下载到 CPLD 器件中,I经实际电路测试,仿真和实验结果

3、表明,该频率计有较高的实用性和可靠性。 关键词关键词:电子设计自动化;VHDL 语言;频率测量;数字频率计 目目 录录摘 要.I目 录.III1. 绪 论.11.2 基于 EDA 的 FPGA/ CPLD 开发.2 1.3 硬件描述语言(HDL) .3VHDL 语言简介 .31.4 QuartusII概述.42. 频率测量.62.1 数字频率计工作原理概述.6 2.2 采用等精度测量本章小结.83. 数字频率计的系统设计与功能仿真.83.1 系统的总体设计.83.2 信号源模块.9 3.3 锁存器 .123.4 十进制计数器 .13II3.5显示模块.143.5.1 显示模块设计.143.52

4、 显示电路.153.5.3 译码器.15本章小结.16结 论.16 附录:频率计顶层文件.18 信号源模块源程序.19 32 位锁存器源程序.19 有时钟使能的十进制计数器的源程序.20 显示模块源程序.2101. . 绪绪 论论21 世纪人类将全面进入信息化社会,对微电子信息技术和微电子 VLSI 基础技术将不断提出更高的发展要求,微电子技术仍将继续是 21 世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着 IC 技术的发展,电子设计自动化(Electronic Design Automation, EDA)己经逐渐成为重要设计手段

5、,其广泛应用于模拟与数字电路系统等许多领域。EDA 是指以计算机大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术1。VHDL(超高速集成电路硬件描述语言)是由美国国防部开发的一种快速设计电路的工具,目前已经成为 IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言

6、。相比传统的电路系统的设计方法,VHDL 具有多层次描述系统硬件功能的能力,支持自顶向下(Top_Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用 VHDL 对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的 CPLD 器件中去,从而实现可编程的专用集成电路(ASIC)的设计。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差,可靠性差。

7、随着复杂可编程逻辑器件(CPLD)的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 语言。将使整个系统大大简化。提高整体的性能和可靠性。数字频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用VHDL 编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分外,其余全部在一片 FPGA 芯片上实现。整个系统非常精简,且具有灵活的现场可更改性。本文用 VHDL 在 CPLD 器件上实现一种 8 位数字频率计测频系统,能够用十进制1数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且能对其他多种频率信号进行测量。具有体积小、可靠性高、功耗低

8、的特点。1.2 基于基于 EDA 的的 FPGA/ CPLD 开发开发我国的电子设计技术发展到今天,将面临一次更大意义的突破,即 FPGA/CPLD ( Field Programmable Gate Array,现场可编程门阵列/Complex Programmable Logic Device,复杂可编程逻辑器件)在 EDA 基础上的广泛应用。从某种意义上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构,但却是一种更高层次的循环,它在更高层次上容纳了过去数字技术的优秀部分,对(Micro Chip Unit ) MCU 系统是一种扬弃,在电子设计的技术操作和系统构成的整体上发生了

9、质的飞跃。如果说 MCU 在逻辑的实现上是无限的话,那么 FPGA/CPLD 不但包括了 MCU 这一特点,而且可以触及硅片电路线度的物理极限,并兼有串、并行工作方式,高速、高可靠性以及宽口径适用性等诸多方面的特点。不但如此,随着 EDA 技术的发展和 FPGA/CPLD 在深亚微米领域的进军,它们与 MCU, MPU, DSP, A/D, D/A, RAM 和 ROM 等独立器件间的物理与功能界限已日趋模糊。特别是软/硬 IP 芯核(知识产权芯核;Intelligence Property Core,一种已注册产权的电路设计)产业的迅猛发展,嵌入式通用及标准 FPGA 器件的呼之欲出,片上系

10、统(SOC)已经近在咫尺。FPGA/CPLD 以其不可替代的地位及伴随而来的极具知识经济特征的 IP 芯核产业的崛起,正越来越受到业内人士的密切关注。FPGA/CPLDFPGA/CPLD 简介简介FPGA 和 CPLD 都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。复杂可编程逻辑器件CPLD 是由 PAL ( Programmable Array Logic,可编程数组逻辑)或 GAL ( Generic Array Logic,通用数组逻辑)发展而来的。它采用全局金属互连导线,因而具有较大的延时可预测性,易于控制时序逻辑;但功耗

11、比较大。现场可编程门阵列(FPGA)是由掩膜可编程门阵列(MPGA)和可编程逻辑器件二者演变而来的,并将它们的特性结合在一起,因此FPGA 既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。FPGA 通常由布线资源分隔的可编程逻辑单元(或宏单元)构成数组,又由可编程 I/O 单元围绕数组构成整个芯片。其内部资源是分段互联的,因而延时不可预测,只有编程完毕后才能实际测量。CPLD 和 FPGA 建立内部可编程逻辑连接关系的编程技术有三种:基于反熔丝技术的器件只允许对器件编程一次,编程后不能修改。其优点是集成度、工作频率和可靠2性都很高,适用于电磁辐射干扰较强的恶劣环境。基于 E

12、EPROM 内存技术的可编程逻辑芯片能够重复编程 100 次以上,系统掉电后编程信息也不会丢失。编程方法分为在编程器上编程和用下载电缆编程。用下载电缆编程的器件,只要先将器件装焊在印刷电路板上,通过 PC, SUN 工作站、ATE(自动测试仪)或嵌入式微处理器系统,就能产生编程所用的标准 5V, 3.3V 或 2.5V 逻辑电平信号,也称为 ISP ( In System Programmable)方式编程,其调试和维修也很方便。基于 SRAM 技术的器件编程数据存储于器件的 RAM 区中,使之具有用户设计的功能。在系统不加电时,编程数据存储在EPROM、硬盘、或软盘中。系统加电时将这些编程数

13、据实时写入可编程器件,从而实现板级或系统级的动态配置。1.3 硬件描述语言硬件描述语言(HDL)(HDL)硬件描述语言(HDL)是相对于一般的计算机软件语言如 C , Pascal 而言的。 HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用 HDL 程序来描述所希望的电路系统,规定其结构特征和电路的行为方式;然后利用综合器和适配器将此程序变成能控制 FPGA 和 CPLD 内部结构、并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。硬件描述语言具有以下几个优点:a.设计技术齐全,方法灵活,支持广泛。b.加快了硬件电路的设计周期,降低

14、了硬件电路的设计难度。 c.采用系统早期仿真,在系统设计早期就可发现并排除存在的问题。d.语言设计与工艺技术无关。e.语言标准,规范,易与共享和复用。就FPGA/CPLD 开发来说,VHDL 语言是最常用和流行的硬件描述语言之一。本次设计选用的就是 VHDL 语言,下面将主要对 VHDL 语言进行介绍。VHDLVHDL 语言简介语言简介VHDL 是超高速集成电路硬件描述语言的英文字头缩写简称,其英文全名是 Very-High -Speed Integrated Circuit Hardware Description Language。它是在 70 80 年代中由美国国防部资助的 VHSIC(

15、超高速集成电路)项目开发的产品,诞生于 1982 年。1987 年底,VHDL 被 IEEE(The Institute of Electrical and Electronics Engineers)确认为标准硬件描述语言。自 IEEE 公布了 VHDL 的标准版本(IEEE std 1076-1987 标准)之后,各 EDA公司相继推出了自己的 VHDL 设计环境。此后,VHDL 在电子设计领域受到了广泛的接受,并逐步取代了原有的非标准 HDL。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即3ANSI/

16、IEEE std 1076-1993 版本。1996 年 IEEE 1076.3 成为 VHDL 综合标准。VHDL 主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。与其它的 HDL 相比,VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的 EDA 工具和 VHDL 综合器而言,将基于抽象的行为描述风格的 VHDL 程序综合成为具体的FPGA 和 CPLD 等目标器件的网表文件己不成问题。VHDL 语言在硬件设计领域的作用将与 C

17、 和 C+在软件设计领域的作用一样,在大规模数字系统的设计中,它将逐步取代如逻辑状态表和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编程逻辑器件的结合作为一种强有力的设计方式,将为设计者的产品上市带来创纪录的速度。1.4 QuartusII 概述概述QuartusII 是 Altera 提供的 FPGA/CPLD 开发集成环境,Altera 是世界上最大的可编程逻辑器件供应商之一。QuartusII 在 21 世纪初推出,是 Altera 前一代 FPGA/CPLD 集成开发环境 MAX+PLUSII

18、 的更新换代产品,其界面友好,使用便捷。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera 的 QuartusII 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和 SOPC 开发的基本设计工具,并为 Altera DSP 开发包进行系统模型设计提供了集成组合环境。QuartusII 设计工具完全支持 VHDL、Verilog 的设计流程,其内部嵌有 VHDL、Verilog 逻辑综合器。QuartusII也可利用第三方的综合工具。同样,QuartusII 具备仿真功能,同时也支持第三方的仿真

19、工具,如 ModelSim。此外,QuartusII 与 MATLAB 和 DSP Builder 结合,可以进行基于 FPGA 的 DSP 系统开发和数字通信模块的开发。QuartusII 包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analsis & Synthesis) 、适配器(Fitter) 、装配器(Assembler) 、时序分析器(Timing Analyzer) 、设计辅助模块(Design Assistant) 、EDA 网表文件生成器(EDA Netlist Writer) 、编辑数据接口(Compiler Database Interface)等。可

20、以通过选择 Start Compilation 来运行所有的编译器模块,也可以通过选择 Start 单独运行各个模块。还可以通过选择 Compiler Tool(Tools 菜单) ,在 Compiler Tool 窗口中运行该模块来启动编译器模块。在4Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,QuartusII 还包含许多十分有用的 LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在 SOPC 设计中被大量使用,也可以与 QuartusII 普通设计文件一起使用。A

21、ltera 提供的 LPM 函数均基于 Altera 器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些 Altera特定器件的硬件功能,如各类片上存储器、DSP 模块、LVDS 驱动器、PLL 以及SERDES 和 DDIO 电路模块等。QuartusII 编译器支持的硬件描述语言有 VHDL(支持 VHDL87 及 VHDL97 标准)、Verilog HDL 及 AHDL(Altera HDL)。QuartusII 支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与 HDL 混合输入设计的问题。在设计输

22、入之后,QuartusII 的编译器将给出设计输入的错误报告。可以使用 QuartusII带有的 RTL Viewer 观察综合后的 RTL 图。QuartusII 作为目前 CPLD/FPGA 开发工具理想的综合、仿真软件,具有许多优良的特性。(1)继承了 MAX+PLUSII 的优点图形输入依然形象,图形符号与 MAX+PLUSII 一样符合数字电路的特点,大量 74系列器件符号使能初学者在较短的时间里利用图形编辑设计出需要的电路。文本输入几乎和 MAX+PLUSII 相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。低层编辑仍然采用 Chipview 方式,引脚排列位置映射了

23、实际器件引脚,只要简单地鼠标拖放即可完成低层编辑。(2)支持的器件更多除了支持 MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K 等MAX+PLUSII 已经支持的器件外,还支持PEX20K、APEX20KE、AREXII、EXCALIBUR-ARM、Mercury、Stratix 等MAX+PLUSII 下无法支持的大容量高性能的器件。(3)增加了网络编辑功能QuartusII 支持一个工作组环境下的设计要求,包括支持基于 Internet 的协作设计,与 Cadence、ExemplarLogi、MentorGraphics、Synopsys 和 Synpl

24、icity 等 EDA 供应商的5开发工具相兼容。(4)提升了调试能力QuartusII 增加了一个新的快速适配编译选项,可保留最佳性能的设置,加快了编译过程,可缩短 50%的编译时间,对设计性能的影响小。(5)不足之处软件结构庞大,使用复杂,不如 MAX+PLUSII 简单、易学易用。2. . 频率测量频率测量2.1 数字频率计工作原理概述数字频率计工作原理概述数字频率计的设计原理实际上是测量单位时间内的周期数。 这种方法免去了实测以前的预测,同时节省了划分频段的时间,克服了原来高频段采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。采用一个标准的基准时钟,在单位时间(1s)

25、里对被测信号的脉冲数进行计数,即为信号的频率。由于闸门的起始和结束时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。进一步分析测量准确度:设待测信号脉冲周期为 Tx,频率为 Fx,当测量时间为 T=1s 时,测量准确度为=Tx/T=1/Fx。由此可知直接测频法的测量准确度与信号的频率有关:当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。 为克服低频段测量的不准确问题,采用门控信号和被测信号对计数器的使能信号进行双重控制,大大提高了准确度。当门控信号为 1 时,使能信号并不为 1,只有被

26、测信号的上升沿到来时,使能端才开始发送有效信号,两个计数器同时开始计数。当门控信号变为 0 时,使能信号并不是立即改变,而是当被测信号的下一个上升沿到来时6才变为 0,计数器停止计数。因此测量的误差最多为一个标准时钟周期。当采用100MHz 的信号作为标准信号时,误差最大为 0.01s。计算每秒钟内待测信号脉冲个数。这就要求计数使能信号 TSTEN 能产生一个 1 秒脉宽的周期信号,并对频率计的每一计数器 cnt10 的 ENA 使能端进行同步控制。当TSTEN 为高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号 LOAD 的上跳沿将计数器在前 1

27、 秒钟的计数值锁存进32 位锁存器 REG32B 中,并由外部的译码器译出并稳定显示。锁存信号之后,必须由清零信号 CLR_CNT 对计数器进行清零,为下一秒钟的计数操作做准备。当系统正常工作时,脉冲发生器提供的 1 Hz 的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果3。频率测量方案采用等精度频率测量法,测量精度保持恒

28、定,不随所测信号的变化而变化。在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信号。单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求;而采用高集成度、高速的现场可编程门阵列 FPGA 为实现高速、高精度的测频提供了保证。2.3.2 等精度测频原理等精度测频原理等精度测频方法是在直接测频方法的基础上发展起来的。它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,避除了对被测信号计数所产生1 个字误差,并且达到了在整个测试频段的等精度测量。其测频原理如图2.1 所示。在测量过程中,有两个计数器分别对标准信号和被测信号同时

29、计数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。可以看出,实际闸门时间 t 与预置闸门时间 t1 并不严格相等,但差值不超过被测信号的一个周期4。7图 2.1 等精度测频原理波形图等精度测频的实现方法可简化为图 2.2 所示。CNT1 和 CNT2 是两个可控计数器,标准频率信号从 CNT1 的时钟输入端 CLK 输入;经整形后的被测信号从 CNT2 的时钟输入端 CLK 输入。当预置门控信号为高电平

30、时,经整形后的被测信号的上升沿通过 D触发器的 Q 端同时启动 CNT1 和 CNT2。CNT1、CNT2 同时对标准频率信号和经整形后的被测信号进行计数,分别为 NS与 NX。当预置门信号为低电平的时候,后而来的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(FS/NS)*NX。则等精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变。图 2.2 等精度测频实现原理图本章小结本章小结本章从各个方面说明了频率计的工作原理,对等精度频率计的实现,在理论上起到了作用。 3. 数字频率计

31、的系统设计与功能仿真3.1 系统的总体设计系统的总体设计当系统正常工作时,由系统时钟提供的 100MHz 的输入信号,经过信号源模块,8先通过 100 分频产生 1MHZ 的时钟信号,再将 1MHZ 的时钟信号分频产生多种频率输出,其中 1HZ 的输出频率被作为控制模块的时钟输入,7812HZ 的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号 testen 和清零信号 clr 对计数模块进行控制,而由其产生的锁存信号 load 对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁

32、存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图 3.1 所示。主要由 5 个模块组成,分别是:信号源模块、控制模块、计数模块、锁存器模块和显示器模块6。图 3.1 数字频率计的原理框图根据数字频率计的系统原理,cnt 控制信号发生器。testctl 的计数使能信号 testen能产生一个 1 s 宽的周期信号,并对频率计的每一计数器 Cnt10 的 ENA 使能端进行同步控制:当 testen 高电平时允许计数、低电平

33、时停止计数。reg32b 为锁存器。在信号 load 的上升沿时,立即对模块的输入口的数据锁存到reg32b 的内部,并由 reg32b 的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。 Cnt10 为十进制计数器。有一时钟使能输入端 ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。将八个十进制计数器 Cnt10 级联起来实现 8 位十进制计数功能2,7 。9 disply 为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。为了实现系统功能,测频控制

34、信号发生器 testctl、计数器 Cnt10、锁存器 reg32b 存在一个工作时序的问题,设计时需要综合考虑。8位数字频率计的顶层框图(endfreq.bdf),设计实现包括信号源模块(F1MHZ、CNT)、频率计模块(FREQ)和显示模块(display)三大模块。下面分别介绍三个模块的结构和实现方法。 3.2 信号源模块信号源模块信号源是为了产生 1MHz 的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块,设计源代码 PIN1MHZ.VHD 对输入系统时钟clk(50MHz)进行分频产生 1MHz 信号。PIN1MHZ 的封装图如 3.2 所示,图中 CL

35、KIN 为接入的 100MHZ 信号,图中CLKOUT 为接到 CNT 的 CLK 的 1MHZ 的信号。clkin clkoutPIN1MHZ_1inst图3.2 PIN1MHZ封装图PIN1MHZ 的工作时序仿真图如图 3.3 所示。图 3.3 信号源模块仿真图从 PIN1MHZ 的工作时序仿真图可以看出:由系统时钟提供的 100MHz 的输入信号,经过信号源模块,通过 100 分频产生 1MHZ 的时钟信号,达到了设计所需的预期效果。3.3 分频器分频器此程序要求将1MHZ的输入频率分别进行21分频(产生500KHZ的输出频freq500k)、23分频(产生125 KHZ的输出频率fre

36、q125k)、25 分频(产生31250HZ的输出频freq31250)、1027分频(产生7812HZ的输出频率freq7812)、29分频(产生1953HZ的输出频率freq1953)、211分频(产生488HZ的输出频率freq488)、213分频(产生1HZ的输出频率freq1)。 CNT的封装图如图3.4,图中CLK为PIN1MHZ输入的1MHZ信号,freq1为输出给控制信号发生器的1HZ信号,7812HZ的输出频率freq7812被作为显示模块的时钟输入,freq 488、freq1953、freq31250、freq125K、freq500K作为待测信号。clkfreq1fre

37、q488freq1953freq7812freq31250freq125kfreq500kcntinst图3.4CNT封装图CNT 的工作时序仿真图如图 3.5 所示。图 3.5 CNT 的时序仿真图当 1MHZ 频率波形输入后,分别产生了设计所需要的 500KHZ 的输出频freq500k,125 KHZ 的输出频率 freq125k,31250HZ 的输出频 freq31250,7812HZ 的输出频率 freq7812,1953HZ 的输出频率 freq1953,488HZ 的输出频率 freq488,1HZ 的输出频率 freq1。3.4 测频控制信号产生器测频控制信号产生器控制模块的

38、作用是产生测频所需要的各种控制信号。控制信号的标准输入时钟为1HZ,每两个时钟周期进行一次频率测量。该模块产生的 3 个控制信号,分别为TSTEN,LOAD,CLR_CNT.CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,11以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。TSTEN为计数允许信号,在 TSTEN 信号的上升沿时刻计数模块开始对输入信号的频率进行测量,测量时间恰为一个时钟周期(正好为单位时间 1s),在此时间里被测信号的脉冲数进行计数,即为信号的频率。然后将值锁存,并送到数码管显示出来。设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号

39、而不断闪烁。在每一次测量开始时,都必须重新对计数器清 07。测频控制产生器如图 3.6,图中 CLK 接 CNT 的 FREQ1 的 1HZ 的信号,TSTEN 为计数允许信号,接计数器 CNT10 的 ENA,CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,接计数器 CNT10 的 CLR,LOAD 接锁存器的 LOAD。CLKTSTENCLR_CNTLOADTESTCTLinst图 3.6 TESTCTL 的封装图测频控制信号发生器 TESTCTL 的工作时序图,控制模块的几个控制信号的时序关系图如图 3.7 所示。图3.7 TESTCTL的时序仿真图从图中可看出,计数使能信号

40、 TSTEN 在 1s 的高电平后,利用其反相值的上跳沿产生一个锁存信号 LOAD,随后产生清 0 信号上跳沿 CLR_CNT。为了产生这个时序图需首先建立一个由 D 触发器构成的二分频器,在每次时钟 CLK 上升沿到来时令其翻转。其中,控制信号时钟 clk 的频率取 1HZ,而信号 TSTEN 的脉宽恰好为 1s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号 LOAD 和 CLR_CNT 的逻辑描述。由图可知,在计数完成后,计数使能信号 TETEN 在 1s 的高电平后,利用其反相值的上跳沿产生一个锁存信号 LOAD,0.5s 后,CLR_CNT 产生一个请零信号上跳沿。123.5

41、 锁存器锁存器锁存器模块也是必不可少的,测量模块测量完成后,在load信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。锁存器是起数据保持的作用,它将会把数据保存到下次触发或复位。主要是主从触发器组成的。用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。锁存器REG32B的封装如图3.8,图中LOAD接控制测频产生器TESTCTL的LOAD,而DIN31.0接计数器CNT10的CQ3.0,DOUT31.0接显示器display的in端。LOADDIN31.0DOUT31.0REG32Binst图3.8 REG32B的封装图32 位锁存器 REG32B 的

42、工作时序图如图 3.9。图 3.9 REG32B 的时序仿真图本程序是用来实现锁存器模块的功能,但它的程序相当简单,在锁存信号 load 的上升沿到来时,锁存器将测量值锁存到寄存器,然后输出到显示模块。但从仿真图 3.9中可以明显的看出,锁存输出并不是立即进行的,而是经历了一个短暂的延时,这是由于硬件引起的。3.6 十进制十进制计数器计数器计数器模块是由 8 个带有异步清零端,进位信号输出的模为 10 的计数模块级连而成。通过(freq.vhd)进行元件例化实现。此十进制计数器的特殊之处是,有一时钟使能输入端 ENA,用于锁定计数器。当高电平计数允许,低电平时计数禁止。计数器模块用于对输入信号

43、的脉冲进行计数,该模块必须有计数允许、异步清零等端口,以便于控制模块对其进行控制。CNT10 的封装如图 3.10,其中 CLR 为复位接 TESTCTL 的 CLR_CNT 端,ENA接 TESTCTL 的 TSTEN 端,CQ3.0接锁存器的 DOUT31.0端。13CLKCLRENACQ3.0CARRY_OUTCNT10inst图 3.10 CNT10 的封装图有时钟使能的十进制计数器CNT10的工作时序仿真如图3.11。图 3.11 CNT10 的时序仿真图此程序模块实现的功能是带使能端的 10 进制计数。程序要求只有当使能端信号为高电平时计数器才能正常工作,每个时钟的上升沿到来时计数

44、器加 1,因为这里要实现的是 10 进制计数,所以当计数到 10 时计数器清零,同时产生进位信号,这里的进位信号仅为一个脉冲信号,一旦计数从 10 变为 1,脉冲信号立即变为低电平。同时该计数器也应带有清零信号,一旦清零信号为高电平,计数器立即清零。3.7显示模块显示模块3.7.1 显示模块设计显示模块设计LED有段码和位码之分,所谓段码就是让LED显示出八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阴级的LED而言,低电平使能,在本设计中设计了一个3位的循环计数器,将计数结果输入到译码器,译码结果输出即可依次

45、使能每个LED。例如:要让8个LED同时工作显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。display 模块的顶层图如下所示。CNT计数产生扫描信号(位码),LED模块用于查表产生LED段码输出。图3.12位display的封装图。图中in0in7接锁存器的DOUT31.0端。14in73.0in63.0in53.0in43.0in33.0in23.0in13.0in03.0clklout76.0SEL2.0displayinst图3.12 displ

46、ay的封装图display 工作时序图如下图 3.13。图 3.13 disply 工作时序图用 8 个 LED 将待测频率显示出来,将通过十进制计数器的时钟信号 CLK,输出为时钟信号计数译码后的显示驱动端,在八段 LED 译码为对应的八段二进制编码,并由数码显示器显示出来。图 3.13 中为相应二进制编码与相对应的屏显数字。3.7.2 显示电路显示电路图 3.14 display 硬件结构图15此部分如图 3.14,图中主要由 07 循环累加器、3-8 译码器、BCD-7 段显示译码器、8 选 1 多路数据开关和 8 个 LED 显示器组成的扫描数码显示器。3.7.3 译码器译码器7413

47、8 译码器作为数据分配器的功能表如表 1 所示。表 1 74LS138 编码器作为数据分配器的功能表输入输出EN1 EN2B EN2A C B AY0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 0 0 X X X X 1 1 1 1 1 1 1 1 1 0 D 0 0 0 D 1 1 1 1 1 1 1 1 0 D 0 0 1 1 D 1 1 1 1 1 1 1 0 D 0 1 0 1 1 D 1 1 1 1 1 1 0 D 0 1 1 1 1 1 D 1 1 1 1 1 0 D 1 0 0 1 1 1 1 D 1 1 1 1 0 D 1 0 1 1 1 1 1 1 D 1 1 1 0 D 1

48、 1 0 1 1 1 1 1 1 D 1 1 0 D 1 1 1 1 1 1 1 1 1 1 D 74LS138 的 3 个译码输入 C、B、A 用做数据分配器的地址输入,8 个输出 Y0Y7用做 8 路数据输出,3 个输入控制端中的 EN2A用做数据输入端,EN2B接地,EN1 用做使能端6。当 EN1=1,允许数据分配,若需要将输入数据转送至输出端 Y2,地址输入应为 CBA=010,由功能表可得: (3-1)21222()ABAYGGGCBAG而其余输出端均为高电平。因此,当地址 CBA=010 时,只有输出端 Y2 得到与输入相同的数据波形。 本章小结本章小结本章介绍了频率计的各个软件

49、组成模块,通过运用 QUARTUS 集成开发环境对各功能模块进行编辑、综合、波形仿真,对各功能模块的的仿真图,及其仿真功能做了基本讲解,对本设计的实现起到了主要作用。16结结 论论本设计对等精度频率计进行了系统的设计。首先介绍了频率测量的一般方法,着重介绍等精度测频原理并进行了误差分析,利用等精度测量原理,通过 FPGA 运用VHDL 编程,利用 FPGA(现场可编程门阵列)芯片设计了一个 8 位数字式等精度频率计,该频率计的测量范围为 0-100MHZ,利用 QUARTUS 集成开发环境进行编辑、综合、波形仿真,并下载到 CPLD 器件中,经实际电路测试,仿真和实验结果表明,该频率计有较高的

50、实用性和可靠性,达到预期的结果。和传统的频率计相比,利用FPGA 设计的频率计简化了电路板设计,提高了系统设计的实用性和可靠性,实现数字系统的软件化,这也是数字逻辑设计的趋势。本次毕业设计中,我除了对相关的专业知识以及相关的实验操作进行了回顾,还有许多其他的收获,比如在绘制论文中所需要的相关的电路图的过程中,我还学会使用word绘图,这次毕业设计不但让我对本专业的相关基础知识进行了很好的复习,还对原由书本上的知识进行了拓展和延伸,毕业设计不但锻炼了我的动手能力,也锻炼了我处理问题的能力,并且学会了许多新的知识。17 附录: 频率计顶层文件clkfreq1freq488freq1953freq7

51、812freq31250freq125kfreq500kcntinstCLKCLRENACQ3.0CARRY_OUTCNT10inst1CLKCLRENACQ3.0CARRY_OUTCNT10inst2CLKCLRENACQ3.0CARRY_OUTCNT10inst3CLKCLRENACQ3.0CARRY_OUTCNT10inst4CLKCLRENACQ3.0CARRY_OUTCNT10inst5CLKCLRENACQ3.0CARRY_OUTCNT10inst6CLKCLRENACQ3.0CARRY_OUTCNT10inst7CLKCLRENACQ3.0CARRY_OUTCNT10inst8i

52、n73.0in63.0in53.0in43.0in33.0in23.0in13.0in03.0clklout76.0SEL2.0displayinst9clkin clkoutPIN1MHZ_1inst10LOADDIN31.0DOUT31.0REG32Binst11CLKTSTENCLR_CNTLOADTESTCTLinst12VCCclkINPUTlout76.0OUTPUTsel2.0OUTPUTSD3.0SD7.4SD11.8SD19.16SD23.20SD27.24SD31.28SD15.12sd31.0dout31.018 信号源模块源程序信号源模块源程序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 cl

温馨提示

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

最新文档

评论

0/150

提交评论