




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 基于等精度基于等精度测频测频原理的原理的频频率率计设计计设计 摘摘 要要 利用等精度测量原理 通过FPGA运用VHDL编程 利用FPGA 现场可编程门阵列 芯片设计了一个数字式等精度频率计 该频率计的测量范围为0 100MHZ 实现8位 数字频率计 并利用Max Plus 集成开发环境进行编辑 综合 波形仿真 并下载 到CPLD器件中 经实际电路测试 仿真和实验结果表明 该频率计有较高的实用 性和可靠性 数字频率计是一种基本的测量仪器 它被广泛应用与航天 电子 测控等领域 采用等精度频率测量方法具有测量精度保持恒定 不随所测信号的变化而变化 结 合现场可编程门阵列 FPGA 具有集成度高 高速和高可靠性的特点 使频率的测频 范围可达到 0 1 Hz 一 50MHz 测频全域相对误差恒为百万分之一 它的基本测量 原理是 首先让被测信号与标准信号一起通过一个闸门 然后用计数器计数信号脉 冲的个数 把标准时间内的计数的结果 用锁存器锁存起来 最后用显示译码器 把锁存的结果用 LED 数码显示管显示出来 关键词关键词 EDA VHDL 等精度数字频率计 仿真及下载 II Precision Frequency Measurement Based On Principles Such As The Frequency Of Gauge Design ABSTRACT For precision measurement of principle by use of programming fpga vhdl fpga the programmable the array chip design precision of a digital frequency the frequency of measuring range of 0 100mhz the implementation of eight digits frequency and with max plus ii of the integrated development environment comprehensive and wave emulation and download the cpld device practical testing simulations and electrical experiment results show that the frequencies are more practical and reliability Digital frequency as is a basic equipment it is widely applicable to aerospace and electronic tracking control and field etc the precision measurement method of frequency components remain constant measuring as measured of signal changes combination of the programmable and array fpga level of integration the door high speed and reliability of the frequency range of frequency is measured at 1 0 hz 50mhz a frequency domain the relative error to one millionth of a constant its basic principle is that the first measure is Keywords eda vhdl and precision the simulation and digital frequency download III 目 录 绪 论 1 1 总体设计 2 1 1 系统设计方案论证 2 1 2 概述 2 1 2 1 FPGA 及特点概述 2 1 2 2 VHDL 语言及优点概述 3 1 2 3 MAX PLUS II 简介 4 1 2 4 EP1K50 芯片概述 5 1 3 数字频率计工作原理概述 5 1 4 测频原理及误差分析 7 1 4 1 测频原理 7 1 4 2 误差分析 8 1 5 本章小结 9 2 软件设计及功能仿真 10 2 1 系统的总体设计 10 2 2 信号源模块 11 2 3 测频控制信号产生器 15 2 4 锁存器 18 2 5 十进制计数器 19 2 6 显示模块 21 2 6 1 显示电路 24 2 6 2 译码器 24 2 7 本章小结 25 总 结 26 致 谢 27 参考文献 28 附录 频率计顶成文件 29 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 对电路的行为进行描述 并进行仿真 和纠错 然后在系统一级进行验证 最后再用逻辑综合优化工具生成具体的门级逻辑电路的 网表 下载到具体的 FPGA 器件中去 从而实现 FPGA 的设计 本文用 VHDL 在 CPLD 器件上实现一种 8 位数字频率计测频系统 能够用十进制数码显 示被测信号的频率 不仅能够测量正弦波 方波和三角波等信号的频率 而且还能对其他多 种物理量进行测量 具有体积小 可靠性高 功耗低的特点 2 1 总体设计 1 1 系统设计方案论证 1 频率测量方案 方案一 采用周期法 需要有标准倍的频率 在待测信号的一个周期内 记录标准频率 的周期数 这种方法的计数值会产生 1 个脉冲误差 并且测试精度与计数器中的记录的数 值有关 为了保证测试精度 测周期法仅适用于低频信号的测量 方案二 采用测频法 测频法就是在确定的闸门时间内 记录被测信号的脉冲个数 这 种方法的计数值也会产生 1 个脉冲误差 并且测试精度与计数器中的记录的数值有关 不 便于高频信号的测量 方案三 采用等精度频率测量法 测量精度保持恒定 不随所测信号的变化而变化 在 快速测量的要求下 要保证较高精度的测频 必须采用较高的标准频率信号 单片机受本身 时钟频率和若干指令运算的限制 测频速度较慢 无法满足高速 高精度的测频要求 而采 用高集成度 高速的现场可编程门阵列 FPGA 为实现高速 高精度的测频提供了保证 因此选用第三种方案 2 显示部分设计方案 方案一 采用八位共阴极 LED 数码管进行显示 利用单片机串行口的移位寄存器工作方 式 外接 MAX7219 串行输入共阴极显示驱动器 每片可驱动 8 个 LED 数码管 方案二 采用点阵字符型 LCD 液晶显示 可以显示数字与阿拉伯字母等字符 随着半导 体技术的发展 LCD 的液晶显示越来越广泛的应用于各种显示场合 比较这两种方案 数码管显示驱动简单 但显示信息量少 功耗大 利用液晶显示可以 工作在低电压 低功耗下 显示界面友好 内容丰富 综合考虑 选用 LCD 来实现显示功能 1 2 概述 1 2 1 FPGA 及特点概述 FPGA 是 20 世纪 90 年代发展起来的大规模可编程逻辑器件 随着 EDA 电子设计自动 化 技术和微电子技术的进步 FPGA 的时钟延迟可达到 ns 级 结合其并行工作方式 在超 高速 实时测控方面有非常广阔的应用前景 并且 FPGA 具有高集成度 高可靠性 几乎可 将整个设计系统下载于同一芯片中 实现所谓片上系统 从而大大缩小其体积 整个测频系 统分为多个功能模块 如信号同步输入 控制部件 分频和计数部件 定时 脉冲宽度测量 数码显示 放大整形和标频信号等模块 除数码管 放大整形和标频信号外 其它模块可集 3 成于 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 和美国国防部确认为标准硬件描述语言 各 EDA 公司相继推出了自己的 VHDL 设计环境 或宣布自己的设计工具可以和 VHDL 接口 此 后 VHDL 在电子领域得到了广泛的接受 并逐步取代了原有的非标准硬件描述语言 1 9 VHDL 主要用于描述数字系统的结构 行为 功能和接口 除了含有许多具有硬件特征的 语句外 VHDL 的语言形式和描述风格与语句十分类似于一般的计算机高级语言 VHDL 的程 序结构的特点是将一项工程设计 或称设计实体分成外部和内部两部分 在对一个设计实体 定义了外部界面后 一旦其内部开发完成开发完成后 其他的设计就可以直接调用这个实体 这种将设计实体分成内 外部分的概念是 VHDL 系统设计的基本点 应用 VHDL 进行工程设计 的优点是多方面的 具体如下 1 与其他的硬件描述语言相比 VHDL 具有更强的行为描述能力 强大的行为描述能 力是避开具体的器件结构 从逻辑行为上描述和设计大规模电子系统的重要保证 就目前流 行的 EDA 工具和 VHDL 综合器而言 将基于抽象的行为描述风格的 VHDL 程序综合成为具体的 FPGA 和 CPLD 等目标器件的网表文件已不成问题 只是在综合与优化效率上略有差异 2 VHDL 具有丰富的仿真语句和库函数 使得在任何大系统的设计早期 就能查验设 计系统的功能可行性 随时可对系统进行仿真模拟 使设计者对整个工程的结构和功能可行 性做出判断 3 VHDL 语句的行为描述能力和程序结构 决定了它具有支持大规模设计的分解和已 有设计的再利用功能 高效 高速完成符合市场需求的大规模系统设计必须有多人甚至多个 4 开发组共同并行工作才能实现 VHDL 中设计实体的概念 程序包的概念 设计库的概念为 设计的分解和并行工作提工了有利的支持 4 用 VHDL 完成一个确定的设计 可以利用 EDA 工具进行逻辑综合和优化 并自动把 VHDL 描述设计转变成门级网表 这种方式突破了门级设计的瓶颈 极大地减少了电路设计 的时间和可能发生的错误 降低了开发成本 利用 EDA 工具的逻辑优化功能 可以自动地把 一个综合后的设计变成一个更小 更高速的电路系统 反过来 设计者换可以容易地从综 合和优化的电路获得设计信息 返回去修改 VHDL 设计描述 使之更加完善 5 VHDL 对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也不必管最终 设计的目标器件是什么 而进行独立的设计 正因为 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 功能 减少了设计时间 经过 5 校验的 HDL 网络表文件 使器件实现最优化的设计 MAX PLUS II 的使用包括一下几个方面 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 电路的要求 1 3 数字频率计工作原理概述 当系统正常工作时 由系统时钟提供的 100MHz 的输入信号 经过信号源模块 先通过 100 分频产生 1MHZ 的时钟信号 再将 1MHZ 的时钟信号分频产生多种频率输出 其中 1HZ 的 输出频率被作为控制模块的时钟输入 7812HZ 的输出频率被作为显示模块的时钟输入 由 6 控制模块产生的计数使能信号 testen 和清零信号 clr 对计数模块进行控制 而由其产生的 锁存信号 load 对锁存模块进行控制 一旦计数使能信号为高电平 并且时钟上升沿到来 计数器便开始正常计数 清零信号到来则计数清零 而当锁存信号为高电平时 数据便被锁 存器锁存 然后将锁存的数据输出到显示模块显示出来 数据锁存保证系统可以稳定显示数 据 显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以 显示的十进制结果 数字频率计的设计原理实际上是测量单位时间内的周期数 这种方法免去了实测以前的 预测 同时节省了划分频段的时间 克服了原来高频段采用测频模式而低频段采用测周期模 式的测量方法存在换挡速度慢的缺点 为克服低频段测量的不准确问题 采用门控信号和被测信号对计数器的使能信号进行双 重控制 大大提高了准确度 当门控信号为 1 时 使能信号并不为 1 只有被测信号的上升 沿到来时 使能端才开始发送有效信号 两个计数器同时开始计数 当门控信号变为 0 时 使能信号并不是立即改变 而是当被测信号的下一个上升沿到来时才变为 0 计数器停止计 数 因此测量的误差最多为一个标准时钟周期 当采用 100MHz 的信号作为标准信号时 误 差最大为 0 01 s 采用一个标准的基准时钟 在单位时间 1s 里对被测信号的脉冲数进行计数 即为信号 的频率 由于闸门的起始和结束时刻对于信号来说是随机的 将会有一个脉冲周期的量化误 差 进一步分析测量准确度 设待测信号脉冲周期为 Tx 频率为 Fx 当测量时间为 T 1s 时 测量准确度为 Tx T 1 Fx 由此可知直接测频法的测量准确度与信号的频率有关 当待测 信号频率较高时 测量准确度也较高 反之测量准确度也较低 因此直接测频法只适合测量 频率较高的信号 不能满足在整个测量频段内的测量精度保持不变的要求 本文的设计是采 用等精度测量的方法 所以可以得到整个频段内较高的准确度 数字频率计主要由 5 个模块组成 分别是 脉冲发生器电路 测频控制信号发生器电路 计 数模块电路 锁存器 译码驱动电路 当系统正常工作时 脉冲发生器提供的 1 Hz 的输入信号 经过测频控制信号发生器进 行信号的变换 产生计数信号 被测信号通过信号整形电路产生同频率的矩形波 送入计数 模块 计数模块对输入的矩形波进行计数 将计数结果送入锁存器中 保证系统可以稳定显 示数据 显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上 可以显示的十进制结果 在数码显示管上可以看到计数结果 计算每秒钟内待测信号脉冲个数 这就要求计数使能信号 TSTEN 能产生一个 1 秒脉宽 的周期信号 并对频率计的每一计数器 cnt10 的 ENA 使能端进行同步控制 当 TSTEN 为高电 平时 允许计数 低电平时 停止计数 并保持其所计的数 在停止计数期间 首先需要一 个锁存信号 LOAD 的上跳沿将计数器在前 1 秒钟的计数值锁存进 32 位锁存器 REG32B 中 并 由外部的七段译码器译出并稳定显示 锁存信号之后 必须由清零信号 CLR CNT 对计数器进 行清零 为下一秒钟的计数操作做准备 当系统正常工作时 脉冲发生器提供的 1 Hz 的输入信号 经过测频控制信号发生器进 7 行信号的变换 产生计数信号 被测信号通过信号整形电路产生同频率的矩形波 送入计数 模块 计数模块对输入的矩形波进行计数 将计数结果送入锁存器中 保证系统可以稳定显 示数据 显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上 可以显示的十进制结果 在数码显示管上可以看到计数结果 2 1 4 测频原理及误差分析 1 4 1 测频原理 等精度测频方法是在直接测频方法的基础上发展起来的 它的闸门时间不是固定的值 而是被测信号周期的整数倍 即与被测信号同步 因此 测除了对被测信号计数所产生 1 个字误差 并且达到了在整个测试频段的等精度测量 其测频原理如图 1 1 所示 在测量过 程中 有两个计数器分别对标准信号和被测信号同时计数 首先给出闸门开启信号 预置闸 门 上升沿 此时计数器并不开始计数 而是等到被测信号的上升沿到来时 计数器才真正开 始计数 然后预置闸门关闭信号 下降沿 到时 计数器并不立即停止计数 而是等到被测信 号的上升沿到来时才结束计数 完成一次测量过程 可以看出 实际闸门时间 与预置闸 门时间 1 并不严格相等 但差值不超过被测信号的一个周期 图 1 1 等精度测频原理波形图 等精度测频的实现方法可简化为图 1 2 所示 CNT1 和 CNT2 是两个可控计数器 标准频 率信号从 CNT1 的时钟输入端 CLK 输入 经整形后的被测信号从 CNT2 的时钟输入端 CLK 输入 当预置门控信号为高电平时 经整形后的被测信号的上升沿通过 D 触发器的 Q 端同时启动 CNT1 和 CNT2 CNT1 CNT2 同时对标准频率信号和经整形后的被测信号进行计数 分别为 NC 与 NX 当预置门信号为低电平的时候 后而来的被测信号的上升沿将使两个计数器同时关 8 闭 所测得的频率为 FC NC NX 则等精度测量方法测量精度与预置门宽度的标准频率有关 与被测信号的频率无关 在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况 下 等精度测量法的测量精度不变 图 1 2 等精度测频实现原理 1 4 2 误差分析 设在一次实际闸门时间 中计数器对被测信号的计数值为 Nx 对标准信号的计数值为 Ns 标准信号的频率为 fs 则被测信号的频率如式 1 1 fx Nx Ns fs 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 Ns 1 Ns 1 fs 1 4 由上式可以看出 测量频率的相对误差与被测信号频率的大小无关 仅与闸门时间和标 准信号频率有关 即实现了整个测试频段的等精度测量 闸门时间越长 标准频率越高 测 9 频的相对误差就越小 标准频率可由稳定度好 精度高的高频率晶体振荡器产生 在保证测 量精度不变的前提下 提高标准信号频率 可使闸门时间缩短 即提高测试速度 14 1 5 本章小结 本章从各个方面说明了频率计的初步构造 及各反面的原理 误差的分析和一些基本概述 对频率 计的实现 在理论上起到了作用 对 FPGA 的特点 VHDL 的优点加一详细的说明 对 MAX PLUS II 的各 个方面从各方面加以说明 对本设计的将要用到的 EP1K50 芯片也做了介绍 10 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 为七段译码显示驱动电路 可以将频率计数的结果译成能在数码管上显示相对 应的阿拉伯数字 便于读取测量的结果 11 图 2 1 数字频率计的原理框图 为了实现系统功能 测频控制信号发生器 TESTCTL 计数器 CNT10 锁存器 REG32B 存在一个工 作时序的问题 设计时需要综合考虑 2 2 信号源模块 信号源是为了产生1MHz 的门控信号和待测的定频信号 而对输入系统时钟 clk 50MHz 进行分频的模块 设计源代码PIN1MHZ VHD 对输入系统时钟clk 50MHz 进行分频产生1MHz 信号 PIN1MHZ的封装图如2 2所示 图中CLKIN为接入的100MHZ信号 图中CLKOUT为接 到CNT的CLK的1MHZ的信号 12 图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 clkin event THEN IF cnttemp 99 THEN cnttemp 0 ELSE IF cnttemp 50 THEN clkout 1 ELSE clkout 0 END IF cnttemp cnttemp 1 END IF END IF END PROCESS END A END A PIN1MHZ 的工作时序图如图 2 3 2 4 所示 由系统时钟提供的 100MHz 的输入信号 13 经过信号源模块 先通过 100 分频产生 1MHZ 的时钟信号 其中图 2 2 a 为 50 翻转 信号变 为低电平 图 2 2 b 为 100 翻转 信号变为高电平 图 2 3 PIN1MHZ 的时序仿真图 图 2 4 PIN1MHZ 的时序仿真图 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为输出给控制信号发 14 生器的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 输出 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 clk event and clk 1 then 15 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 CNT 的工作时序仿真图如图 2 6 图 2 7 当 1MHZ 频率波形输入后的多种仿真输出波形图 图 2 6 CNT 的时序仿真图 图 2 7 CNT 的时序仿真图 16 2 3 测频控制信号产生器 控制模块的作用是产生测频所需要的各种控制信号 控制信号的标准输入时钟为 1HZ 每两个时钟周期进行一次频率测量 该模块产生的 3 个控制信号 分别为 TSTEN LOAD CLR CNT CLR CNT 信号用于在每次测量开始时 对计数器进行复位 以清除上 次测量的结果 该复位信号高电平有效 持续半个时钟周期的时间 TSTEN 为计数允许信号 在 TSTEN 信号的上升沿时刻计数模块开始对输入信号的频率进行测量 测量时间恰为一个时 钟周期 正好为单位时间 1s 在此时间里被测信号的脉冲数进行计数 即为信号的频率 然后将值锁存 并送到数码管显示出来 设置锁存器的好处是使显示的数据稳定 不会由于 周期性的清零信号而不断闪烁 在每一次测量开始时 都必须重新对计数器清 0 9 测频控制产生器如图 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 17 SIGNAL CLR STD LOGIC SIGNAL loadcnt STD LOGIC BEGIN PROCESS CLK IS BEGIN IF CLK EVENT 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 可以用作闸门信号 此时 根 据测频的时序要求 可得出信号 LOAD 和 CLR CNT 的逻辑描述 由图可知 在计数完成后 计数使能信号 TETEN 在 1 秒钟的高电平后 利用其反相值的上跳沿产生一个锁存信号 LOAD 0 5S 后 CLR CNT 产生一个请零信号上跳沿 18 图2 9 TESTCTL的时序仿真图 2 4 锁存器 锁存器模块也是必不可少的 测量模块测量完成后 在load信号的上升沿时刻将测量值 锁存到寄存器中 然后输出到显示模块 锁存器是起数据保持的作用 它将会把数据保存到 下次触发或复位 主要是主从触发器组成的 用于存储数据来进行交换 使数据稳定下来保 持一段时间不变化 直到新的数据将其替换 锁存器REG32B的封装如图2 10 图中LOAD接控制测频产生器TESTCTL的LOAD 而 DIN 31 0 接计数器CNT10的CQ 3 0 DOUT 31 0 接显示器DISPLAY的IN端 图2 10 REG32B的封装图 32位锁存器的源程序REG32B VHD如下 LIBRARY IEEE 19 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 中可以明显的看出 锁存输出并不是立即进行的 而 是经历了一个短暂的延时 这是由于硬件引起的 图 2 11 REG32B 的时序仿镇图 2 5 十进制计数器 计数器模块是由 8 个带有一步清零端 进位信号输出的模为 10 的计数模块级连而成 通过 freq vhd 进行元件例化实现 此十进制计数器的特殊之处是 有一时钟使能输入端 ENA 用于锁定计数器 当高电平 计数允许 低电平时计数禁止 计数器模块用于对输入信号的脉冲进行计数 该模块必需有 计数允许 异步清 0 等端口 以便于控制模块对其进行控制 20 CNT10 的封装如图 2 12 图中为八个十进制计数器首尾相连 其中 CLR 为复位接 TESTCTL 的 CLR CNT 端 ENA 接 TESTCTL 的 TSTEN 端 CQ 3 0 接锁存器的 DOUT 31 0 端 图 2 12 CNT10 的封装图 有时钟使能的十进制计数器的源程序 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 INTEGER RANGE 0 TO 15 4位计数结果输出 CARRY OUT OUT STD LOGIC 计数进位 END CNT10 ARCHITECTURE ART OF CNT10 IS SIGNAL CQI INTEGER RANGE 0 TO 15 BEGIN PROCESS CLK CLR ENA IS BEGIN IF CLR 1 THEN CQI 0 计数器异步清零 ELSIF CLK EVENT AND CLK 1 THEN IF ENA 1 THEN IF CQI 10 THEN cqi 1 21 ELSE CQI cqi 1 END IF 等于9 则计数器清零 END IF END IF END PROCESS PROCESS CQI IS BEGIN IF CQI 10 THEN CARRY OUT 1 进位输出 ELSE CARRY OUT 0 END IF END PROCESS CQ CQI END ART 有时钟使能的十进制计数器CNT10的工作时序仿真如图2 13 此程序模块实现的功能是 带使能端的10进制计数 程序要求只有当使能端信号为高电平时计数器才能正常工作 每个 时钟的上升沿到来时计数器加1 因为这里要实现的是10进制计数 所以当计数到10时计数 器清零 同时产生进位信号 这里的进位信号仅为一个脉冲信号 一旦计数从10变为1 脉 冲信号立即变为低电平 同时该计数器也应带有清零信号 一旦清零信号为高电平 计数器 立即清零 其时序仿真如图2 13所示 图 2 13 CNT10 的时序仿真图 2 6 显示模块 LED的显示模块原理 LED有段码和位码之分 所谓段码就是让LED显示出8 的八位数据 一般情况下要通过一个译码电路 将输入的4位2进制数转换为与LED显示对应的8位段码 位 码也就是LED的显示使能端 对于共阴级的LED而言 低电平使能 在本实验箱中所有的LED 均位共阴级的 在本实验中设计了一个3位的循环计数器 将计数结果输入到译码器 22 74ls138 译码结果输出即可依次使能每个LED 例如 要让8个LED同时工作 显示数据 就 是要不停的循环扫描每一个LED 并在使能每一个LED的同时 输入所需显示的数据对应的8 位段码 虽然8个LED是依次显示 但是受视觉分辨率的影响 看到的现象是8个LED同时工作 display 模块的顶层图如下所示 CNT计数产生扫描信号 位码 LED模块用于查表产生 LED段码输出 图2 14位DISPLAY的封装图 图中IN接锁存器的DOUT 31 0 端 图 2 14 DISPLAY 的封装图 显示模块的源程序 display VHD library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity display is port in7 in6 in5 in4 in3 in2 in1 in0 in std logic vector 3 downto 0 lout7 out std logic vector 6 downto 0 SEL OUT STD LOGIC VECTOR 2 DOWNTO 0 clk in std logic end display architecture a of d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设部建筑设计协议书
- 可爱的小鸟150字(12篇)
- 名著导读:高一语文阅读理解教案
- 时间像小马车节奏课件
- 人教版四年级上册第二单元《公顷和平方千米》单元检测卷(含答案)
- 纪检业务知识培训课件前言
- 早教课程示范课完整课件
- 农民专业合作社种植联产合同
- 2025年日语J.TEST考试A-D级模拟试卷
- 初识化学实验探究课教案
- 烧山谅解协议书
- 城市地下管网施工质量、安全、进度和文明施工保证措施
- 全工程咨询管理办法
- 2025-2030中国重水市场运行态势与未来竞争力剖析报告
- 企业职工感恩教育
- 2025至2030全球及中国计算流体动力学(CFD)模拟工具行业发展趋势分析与未来投资战略咨询研究报告
- GB 17051-2025二次供水设施卫生规范
- 山西线上红娘培训课件
- 临沧市市级机关遴选真题2024
- 【物化生 高考西北卷】2025年高考招生考试真题物理+化学+生物试卷(适用陕西、山西、青海、宁夏四省)
- 2025年普通高等学校招生全国统一考试数学试题(天津卷)含答案
评论
0/150
提交评论