基于FPGA的数字频率计设计报告

合集下载

基于FPGA的数字频率计的设计

基于FPGA的数字频率计的设计

沈 磊 , 善 化 ( 徽 理 工 大 学 电气 与信 息 工 程 学 院 , 徽 淮 南 2 2 0 ) 姚 安 安 3 0 1
S e e, o Sh n h a( e、 i I n fr t nE gn e igC l g , h i nv ri f h nLi Ya a — u El t dI omai n ie r ol e (r a a n o n e An u i s yo U e t
t n a t A of r ca f r Max pls Im a fc ur t a d i fa ED on s t o r wa e lto m + u I . nua t es i h r war lc r i uibo r。 wnla t e p o ed e t h P A s e ee ti cr t c c a d. do O ds “ f l r C ur o t e F G
现场 可 编 程 门 阵
图 1数 字频 率计 的原 理 框 图
片 F G (idPorm b a s Ⅱ 广 P AFe rga malG t a l e eA
列) 片上 , 个 系统 非 常 精 简 , 够 达 到 I 的 技术 指 标 。 芯 整 并能 川样 根
据 不 同 的需要 还 可以 重新 编 程 下载 , 行 升 级} 进 I 。
S in e& T c n l yAn u Hu ia 3 0 1 ce c e h oo . h i an n2 2 0 1 g
摘 要 : 硬件描 述语 言 V D 对 频率t 用 H L t 系统进 行设 计 , 此程序 在 E A软件平 台 M D pu I 上编 译仿 真后 , 作 lsI 制 出其 硬件 电路板 , 再将 程序 下载 到 F G P A模块 中实现 。 件设 计 中只需一 个下载 芯片 E 2 5 剩余 皆是输 入输 出部 硬 PC , 分, 包括 时钟 和数码 管驱动 以及发 光二檄 管 , 大大 地简化 了电 路结构 的复杂性 。 又提高 了电路 的稳 定性 。

基于FPGA的数字频率计实验报告(能测占空比)

基于FPGA的数字频率计实验报告(能测占空比)

基于FPGA的数字频率计设计学院:专业:班级:姓名:学号:审阅老师:评分:目录一、课程设计目的 (3)二、设计任务 (3)三、功能要求与技术指标 (3)四、数字频率计工作原理概述 (3)五.数字频率计实现方法 (4)六.结论与误差分析 (11)七.VHDL程序: (12)一、课程设计目的熟悉EDA工具,掌握用VHDL语言进行数字系统设计的基本方法和流程,提高工程实践能力。

二、设计任务设计一数字频率计,用VHDL语言描述,用QuartusII工具编译和综合,并在实验板上实现。

三、功能要求与技术指标1.基本功能要求(1)能够测量出方波的频率,其范围50Hz~50KHz。

(2)要求测量的频率绝对误差±5Hz。

(3)将测量出的频率以十进制格式在实验板上的4个数码管上显示。

(4)测量响应时间小于等于10秒。

以上(1)~(4)基本功能要求均需实现。

2.发挥部分(1)提高测量频率范围,如10Hz~100KHz或更高、更低频率,提高频率的测量绝对值误差,如达到±1Hz。

(2)可以设置量程分档显示,如X1档(显示范围1Hz~9999Hz),X10档(显示范围0.001KHz~9.999KHz),X100档(显示范围0.100KHz~999.9KHz)...可以自定义各档位的范围。

量程选择可以通过按键选择,也可以通过程序自动选择量程。

(3)若是方波能够测量方波的占空比,并通过数码管显示。

以上(1)~(3)发挥功能可选择实现其中的若干项。

四、数字频率计工作原理概述1.数字频率计简介在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

而数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。

2.常用频率测量方法:方案一采用周期法。

通过测量待测信号的周期并求其倒数,需要有标准倍的频率,在待测信号的一个周期内,记录标准频率的周期数,这种方法的计数值会产生最大为±1个脉冲误差,并且测试精度与计数器中记录的数值有关,为了保证测试精度,测周期法仅适用于低频信号的测量。

基于FPGA的数字频率计设计

基于FPGA的数字频率计设计

基于FPGA的数字频率计设计摘要数字频率计是一种常用的电子测量仪器,在工程领域中广泛应用。

与传统的模拟频率计相比,数字频率计具有精度高、响应快、体积小等优点,在现代电子技术领域中广泛应用。

本文将介绍如何使用FPGA设计数字频率计,并通过示例演示FPGA的应用。

介绍数字频率计是一种将输入信号的频率转换成计数信号输出的电子工具,它可以测量频率、周期和时间间隔等参数。

频率计通常采用数字进制计数方式,其测量精度取决于计数器的精度和时钟频率。

在电子电路测试、无线通信、音频、视频等领域中,数字频率计起着至关重要的作用。

FPGA(Field Programmable Gate Array)是一种具有灵活性、可编程性和高速性的逻辑芯片,适用于数字电路的设计和实现。

与ASIC(Application-Specific Integrated Circuit)相比,FPGA具有短设计周期、可重构、低成本等特点。

在数字系统中,FPGA作为计数器的电子部件,使得数字频率计的设计变得更加灵活和简便。

FPGA数字频率计设计系统框图FPGA数字频率计的系统框图如下:FPGA数字频率计系统框图FPGA数字频率计系统框图如图所示,FPGA数字频率计的输入端连接到待测信号,经过放大和滤波处理后送入计数器中进行计数,计数器输出的计数值存储在FPGA的存储器中并进行处理,最终形成数字频率读数并显示在数码管上。

输入端FPGA数字频率计的输入端通常使用低噪声前置放大器和有限带宽滤波器的组合,以保证待测信号的准确度和稳定性。

实际设计中应根据待测信号的具体情况选择合适的放大系数和滤波器参数。

计数器数字频率计的计数器是FPGA实现的核心部件。

计数器根据输入端计数触发信号进行计数,并将计数器输出的计数值存储在FPGA的存储器中。

计数器的计数值越大,频率读数的分辨率就越高。

在FPGA中,计数器可以采用累加计数器或移位寄存器计算,具体实现取决于设计者的需求和性能要求。

FPGA频率计实验报告

FPGA频率计实验报告

数字频率计实验报告数字频率计用VHDL语言设计实现基于FPGA的数字频率计学校:学院:姓名:学号:实验室:实验日期:摘要本文介绍了一种基于FPGA的数字频率的实现方法。

该设计采用硬件描述语言VHDL,在软件开发平台ISE上完成。

该设计的频率计有三种闸门选择,分别是1s、0.1s、0.01s,能较准确的测量频率在10Hz到10MHz之间的信号。

使用ModelSim仿真软件对各个模块的VHDL程序做了仿真,对各个模块的功能进行了测试,并完成了综合布局布线,最终下载到芯片上取得了良好测试效果。

关键词:VHDL、频率计、 FPGA、测量目录第一章引言 ..................................... 错误!未定义书签。

第二章基于FPGA的VHDL设计流程 . (3)2.1概述 (3)2.2VHDL语言和V ERILOG HDL介绍 (3)2.2.1 VHDL的特点 (4)2.3FPGA介绍 (5)第三章数字频率计的软件开发环境 ................. 错误!未定义书签。

3.1开发环境 (6)3.2M ODEL S IM介绍 (6)3.3ISE介绍 (5)第四章数字频率计的设计与实现 (7)4.1任务要求 (7)4.2测量原理................................... 错误!未定义书签。

4.3设计方案与系统需求 (7)4.4各模块的功能及实现 (9)4.4.1 分频器 (9)4.4.2 闸门选择器 (10)4.4.3 测频控制器............................. 错误!未定义书签。

4.4.4 计数器................................. 错误!未定义书签。

4.4.5 锁存器................................. 错误!未定义书签。

4.4.6 显示控制系统........................... 错误!未定义书签。

基于FPGA的频率计的设计【开题报告】

基于FPGA的频率计的设计【开题报告】

开题报告电子信息工程基于FPGA的频率计的设计一、课题研究意义及现状电子计数器(测量频率仪器)于20世纪50年代初期问世,它是出现最早,发展最快的一类数字式仪器。

今天的电子计数器与初期相比,面貌已焕然一新。

就功能而言,早已冲破了初期只能测量频率的范围,成为一机多能的仪器;就其所采用的元件而言,不但早已晶体管化,并且已经大量采用集成电路,特别是近几年来采用了大规模集成电路,使仪器在小型化,耗电,可靠性各方面都有了很大的改善。

目前,电子计数器已经完全取代了模拟式频率测量仪器。

电子计数器分为四大类:通用计数器,频率计数器,时间计数器,特种计数器。

通用计数器是具有多种测量功能,可以测量频率,周期,多周期平均,时间间隔等等功能,配上传感器,还可以测量长度,位移,重量,压力,温度等等。

频率计数器是专门用来测量高频和微波频率的计数器,功能只有测频率和计数,频率范围很宽。

时间计数器是以时间测量为基础的计数器,测量的准确度很高。

特种计数器具有特种功能[1]。

随着现代科学技术的发展,频率及时间的测量以及它们的控制技术在科学技术各领域,特别是在计量学、电子技术、信息科学、通信、天文和电子仪器等领域占有越来越重要的地位。

从国际发展的趋势上看,频率标准的准确度和稳定度提高得非常快,几乎是每隔6至8年就提高一个数量级。

本文采用VHDL来设计频率计。

VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。

相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。

基于FPGA的数字频率计设计

基于FPGA的数字频率计设计

攀枝花学院本科毕业设计(论文)基于FPGA的数字频率计设计学生姓名:学生学号:************院(系):电气信息工程学院年级专业:2006级测控技术与仪器指导教师:二〇一〇年六月摘要在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得十分重要。

数字频率计是数字电路中的典型应用,是电子测量与仪表技术最基础的电子仪器之一,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

与传统的频率计相比,数字频率计具有精度高、测量范围大、可靠性好等优点。

是频率测量的重要手段之一。

该论文研究基于FPGA的数字频率计的设计,在QuartusII环境中,运用VHDL语言完成数字频率计的设计,并对设计进行综合、编译、仿真。

通过仿真分析,证明该频率计测量结果的正确性。

本文的主要内容概括如下:①介绍了数字频率计的基本内容和重要性,并对数字频率计的国内外研究现状进行了总结;并概括了本次设计的主要任务和内容。

②介绍了数字频率计设计开发环境,并对FPGA、QuartusII、VHDL进行了详细介绍对开发流程详细说明。

③根据实际需要对数字频率计设计方法、方案进行了可行性比较,并对其实现的功能进行了具体要求,对设计模块进行了划分,并定义了每个模块所实现的功能。

④用VHDL语言编程,具体实现频率计各个模块的功能, 对数字频率计仿真并验证其功能。

关键词:FPGA,QuartusII ,VHDL,频率计ABSTRACTIn electronics,frequency is one of the most basic parameters.And it have a close relationship with many measurement program of electrical parameters and measurement results, so the measurement of frequency is very important.Digital frequency meter is a typical applications in digital circuit,and one of the most basic electronic devices in electronic measurement and instrumentation technology. Digital frequency meter is an indispensable measuring instruments for scientific research and production as computers, communications equipment, audio, video. Compared with the conventional frequency counter,digital frequency meter have a high accuracy, measurement range and a good reliability. It is one of important measure for frequency measurement:The thesis research in design of digital frequency meter,FPGA-based. VHDL language is used to complete the design of digital frequency meter in QuartusII,and completed thesis with composited, compiled, simulated. Through simulation and analysis, The results show that the accuracy of measure for the frequency. The main contents of this thesis are summarized as follows:Firstly,it introduced the importance and basic content of digital frequency meter, and current research is summarized .the main tasks and content of this design are summarized.Secondly,design and development environment of digital frequency meter are introduced. FPGA, QuartusII and VHDL are described in detail.Thirdly,according to the actual needs of the digital frequency meter, design method and design program are compared to achieve the functions of their specific requirements, and defines the functions of each module to achieve the function.Lastly,the functions of each module achieved with VHDL language programming, simulation and verify functionality of the digital frequency meterKey words FPGA,QuartusII ,VHDL,digital frequency mete1 绪论数字频率计(DFM)是电子测量与仪表技术最基础的电子仪表类别之一,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压表(DVM)必不可少的部件,因此,数字频率计的发展对整个电子产品的发展起着举足轻重的作用。

基于 fpga 的数字频率计的设计与实现

基于 fpga 的数字频率计的设计与实现

基于 FPGA 的数字频率计的设计与实现随着现代科技的不断发展,我们对数字信号处理的需求也越来越高。

数字频率计作为一种用来测量信号频率的仪器,在许多领域有着广泛的应用,包括无线通信、雷达系统、声音处理等。

在这些应用中,精确、高速的频率测量常常是至关重要的。

而基于 FPGA 的数字频率计正是利用了 FPGA 高速并行处理的特点,能够实现高速、精确的频率计算,因此受到了广泛关注。

本文将从设计思路、硬件实现和软件调试三个方面,对基于 FPGA 的数字频率计的设计与实现进行详细讲解。

一、设计思路1.1 频率计原理数字频率计的基本原理是通过对信号进行数字化,然后用计数器来记录单位时间内信号的周期数,最后根据计数器的数值和单位时间来计算信号的频率。

在 FPGA 中,可以通过硬件逻辑来实现这一过程,从而实现高速的频率计算。

1.2 FPGA 的优势FPGA 作为一种可编程逻辑器件,具有并行处理能力强、时钟频率高、资源丰富等优点。

这些特点使得 FPGA 在数字频率计的实现中具有天然的优势,能够实现高速、精确的频率测量。

1.3 设计方案在设计数字频率计时,可以采用过采样的方法,即对输入信号进行过取样,得到更高精度的测量结果。

还可以结合 PLL 锁相环等技术,对输入信号进行同步、滤波处理,提高频率测量的准确性和稳定性。

二、硬件实现2.1 信号采集在 FPGA 中,通常采用外部 ADC 转换芯片来对输入信号进行模数转换。

通过合理的采样率和分辨率设置,可以保证对输入信号进行精确的数字化处理。

2.2 计数器设计频率计最关键的部分就是计数器的设计。

在 FPGA 中,可以利用计数器模块对输入信号进行计数,并将计数结果送入逻辑单元进行进一步的处理。

2.3 频率计算通过对计数结果进行适当的处理和归一化,可以得到最终的信号频率。

在这一过程中,需要注意处理溢出、误差校正等问题,以保证频率测量的准确性和稳定性。

三、软件调试3.1 FPGA 开发环境在进行基于 FPGA 的数字频率计设计时,可以选择常见的开发工具,例如 Xilinx Vivado 或 Quartus II 等。

基于FPGA的数字频率计

基于FPGA的数字频率计
方案二:
2.3 方案选择
3单元模块电路设计
3.1电路设计总体框图
本设计主要由8个部分组成,以CPLD芯片部分为核心展开,待测信号输入,由外部电源,复位电路,单片机电路,液晶显示,标准时钟以及JTAG下载各个单元配合起来实现测试频率并在液晶显示屏上实时显示出数字频率信号。
图3.1 电路设计总体框图
3.2标准时钟(100MHz)产生部分
3.7电源部分
CPLD芯片工作电压在3.3V,单片机工作电压为5V。所以,在要求进行电压转换时,用到芯片LM1117进行5V电压到3.3V电压。
3.8单片机部分
3.8.1STC12_LQFP芯片介绍
如图3.8.1所示,STC12系列单片机为增强型8051芯片,1T,单时钟/机器周期,指令代码完全兼容传统8051单片机。通用I/O口(27/23/15个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片,EEPROM功能,看门狗定时器内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路)。时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器
表2-1显示了每个设备的行和列数,以及行和列毗邻地区的快闪记忆体数量的EPM570,EPM1270和EPM2210器件。长排满行延长从一排I/ O块到其他。简短的行毗邻超滤膜块,其长度是在列的宽度显示。
每一个LAB包括驱动控制信号LES的专用逻辑。控制信号包括两个时钟,两个时钟使能,两个异步清除,1同步清除,异步预置/负载,同步载荷,加/减控制信号,提供了一次10个控制信号最大。虽然同步负载和清除的信号通常用于执行时计数,也可以用于其他功能。

基于FPGA的数字式频率计设计报告

基于FPGA的数字式频率计设计报告

湖南大学电气与信息工程学院本科生课程设计题目:数字频率计课程:电子技术综合设计专业:电子信息工程班级:1703指导老师:设计时间:目录一、选题 (1)二、要求 (1)三、方案原理 (3)四、框图 (4)五、单元电路说明 (6)1分频模块 (6)2 显示模块六、参考资料 (21)一、选题数字式频率计的VERILOG设计二、要求对输入FPGA开发板的一定频率的输入信号的频率进行测量,并通过LCD进行显示,并使可测量范围尽可能大,精度尽可能高三、方案原理(1)L CD显示原理本次设计中使用的是基于HD44780的LCD1602。

管脚定义图如下:要实现液晶显示功能有如下关键步骤:1.确定字符显示位置:要在液晶上的某个位置上显示某个字符,就是要向DDRAM的某个地址写入要显示的数据代码。

屏幕物理位置与DDRAM地址的对应关系如下:2.确定显示字符的内容:液晶要显示某个字符时,实质上就是显示该字符的字模, ,即向DDRAM里写数,数据与字模对照表如下:3.将数据写入LCD:执行以下步骤:清屏指令->功能设置指令->进入模式设置指令->显示开关控制指令->设定DDRAM地址指令->数据写入DDRAM指令,相关指令如下:液晶读数据时序:把数据写入液晶时序:由上图可知要保证液晶能正常显示,在E的下降沿时,数据要有效。

(2)频率测量原理利用分频模块获得一个1HZ的clk脉冲,同时设定一个计数脉冲,clk 脉冲作为时基,同时设定一个计数脉冲,每当clk脉冲跳变时,将计数寄存器中的数据送至显示寄存器,同时清零计数寄存器,并显示寄存器中的内容送至LCD显示模块,即可完成频率测量功能模块例化思路分频模块产生多种频率的信号供不同模块使用顶层文件脉冲计数count门控信号二-十进制转换模块LCD1602模块显示频率(最小单位1Hz)和占空比(最小单位0.1%)Clk_In,sysclkClk_GateClk_500Cnt7~Cnt0countClk_500。

基于FPGA的高精度频率计设计实验报告.doc

基于FPGA的高精度频率计设计实验报告.doc

基于FPGA的高精度频率计设计实验一.实验目的1.熟悉数字存储示波器基本工作原理。

2.掌握硬件测频和测周的基本原理。

3.掌握在现有综合实践平台上开发DSO硬件频率U•模块的方案及流程。

二.实验内容1.结合数据采集、存储和触发模块的FPGA代码,理解DSO的基本工作原理。

2.编写FPGA代码完善DSO的频率计模块,实现高精度测频和测周功能。

三.预备知识1.了解综合实践平台硬件结构。

2.熟悉Xilinx ISE Design Suite 13.2开发环境使用方法。

3.熟悉Verilog HDL硬件描述语言的语法及运用。

四.实验设备与工具硬件:测试技术与嵌入式系统综合实践平台,PC机Pentium 100以上,XILINX USB调试下载器。

软件:PC机Win XP操作系统,Xilinx ISE Design Suite 13.2 开发环境五.实验步骤1.打开工程文件SYPT_FPGA.xise2.打开freq_measure.v和period_measure.v文件,先根据定义好的模块端口输入输山信号,结合测频和测周的原理,在提示添加代码处补充代码:a.测频模块(freq_measure.v)测频模块的基本功能是测量闸门吋间内被测信号的脉冲个数。

实现过程如下:(1)由标准时钟计数产生一个预设闸门信号,然后用被测信号同步预设闸门信号产生实际闸门信号;要求:预设闸门时间可根据用户选择信号(select_parameter)在50ms、100ms、Is、10s屮切换。

具体代码如下阁//select gate value: CNT_GATA_VALUEalways @(posedge clkin)begincase (select_parauceter [1:0])2*b00: CNT_GATA_VALUE = 500000; //gate 50ms2*b01: CNT:GATA:VALUE = 1000000; //gate 100ms2*bl0: CNT:GATA:VALUE = 10000000; //gate Is2^11: CNT:GATA:VALUE = 100000000; //gate 10sendcaseend(2)标准时钟和被测信号在实际闸门内计数。

基于fpga的数字频率计设计

基于fpga的数字频率计设计

基于FPGA的数字频率计设计随着科学技术的不断进步,数字电子技术在各个领域都得到了广泛的应用。

其中,FPGA(现场可编程门阵列)作为一种灵活、可编程、可重构的数字电路设备,具有较高的性能和灵活性,被广泛应用于数字信号处理、通信、图像处理等各个领域。

本篇文章将介绍基于FPGA的数字频率计设计。

一、概述数字频率计是一种用于测量信号频率的设备,可以方便快速地获取信号的频率信息。

传统的数字频率计通常采用微处理器或专用集成电路来实现,但是这些方案在某些应用场景下存在着局限性。

使用FPGA来设计数字频率计,既可以充分利用FPGA的灵活性和并行性,又可以实现高性能和低功耗的设计。

二、基于FPGA的数字频率计设计原理基于FPGA的数字频率计主要通过计数器和时钟信号来实现。

其设计原理可以分为以下几个步骤:1. 时钟信号同步:通过FPGA内部的PLL(锁相环)模块,可以实现时钟信号的同步和稳定。

2. 信号输入:将待测信号输入FPGA,可以通过外部接口或模拟输入模块实现。

3. 计数器设计:利用FPGA内部的计数器模块,对输入信号进行计数,从而获取信号的频率信息。

4. 频率计算:根据计数器的计数值和时钟信号的周期,可以计算出输入信号的频率信息。

三、基于FPGA的数字频率计设计实现基于上述原理,可以利用FPGA内部的逻辑资源,设计出一个高性能的数字频率计。

具体实现步骤如下:1. 确定输入信号的接口:选择适合的输入接口,可以是数字信号接口、模拟信号接口或者通用IO口。

2. 设计计数器模块:根据待测信号的频率范围和精度要求,设计合适的计数器模块,可以结合FPGA的时钟管理模块实现高精度计数。

3. 编写频率计算算法:根据计数器得到的计数值和时钟信号的周期,设计频率计算算法,可以采用移位运算、累加运算等实现高效的频率计算。

4. 实现显示与输出:设计合适的显示模块和输出接口,将测得的频率信息在显示屏或者外部设备上进行输出。

四、基于FPGA的数字频率计设计应用基于FPGA的数字频率计设计可以广泛应用于各种领域,如通信、测控、仪器仪表等。

《FPGA系统设计》实验报告》数字频率计

《FPGA系统设计》实验报告》数字频率计

《FPGA系统设计》实验报告》数字频率计
一、设计任务
设计数字频率计,测量频率在1MHz以内,显示四位十进制输出结果。

可根据大小,自动切换量程,量程分为三档,最大读数为9.99kHz到999.9kHz。

当被测信号频率大于999.9kHz时,为超过量程状态,数码管提示溢出,同时报警指示灯闪烁。

二、设计过程
1.技术模式
(1)编写程序
(2)波形仿真
(3)模块图
2.译码模块(1)编写程序
(2)波形仿真
(3)模块图
3.分频模块(1)编写程序
(2)波形仿真
(3)模块图
4.锁存模块(1)编写程序
(2)波形仿真
(3)模块图
5.扫描模块(1)编码程序
(2)波形仿真
(3)模块图
(1)模块图
(2)波形仿真
(3)引脚分配
四、总结
经过这次的实验课程设计,我学到了如何将多个程序绑在一起使用并构成一个完整的系统。

在老师的指导下、在我们实验设计小组的共同努力下、在其他同学的热情帮助下,我们完整滴完成了《数字频率计》的设计、组装,并做了些创新。

虽然实验成功,我们同样在实验过程中遇到了一些问题,刚开始时候的设计是每组组员做一部分,但是问题就是有些系数不能同一。

因此造成了一开始实验进展缓慢。

在实验过程中,器材的问题也被我们遇到了。

因此也得到了些经验:要对自己的实验成果由信心,不要一出问题就从程序中找问题。

可能对你最大的阻碍就是你没有考虑到的器材问题。

在最后仿真时候,导线的顺序也是常出问题的地方。

由于没有及时发现问题的所在,我们小组花费了整整一节课的时间在改程序,浪费了许多宝贵时间。

在FPGA上用VHDL实现数字频率计 实验报告

在FPGA上用VHDL实现数字频率计 实验报告

数字系统设计实验报告一、设计要求:1、(1)频率测量范围10Hz~1MHz(2)量程自动转换,量程分为10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三档。

转换规则如下:当读数大于9999时,频率计处于超量程状态,下一次测量时,量程自动增大一档;当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档(3)数据采用记忆显示方式,即计数过程中不显示数据,待计数过程结束以后,显示计数结果,并将此显示结果保持到下一次计数结束。

(4)用发光二极管显示量程二、方案选则1测量原理:当预置门控信号为高电平时,启动计数器,被测信号(频率为fx) 计数当预置门控信号为低电平时,关闭计数器设在一次预置门控时间Tg内对被测信号计数值为Nx,则fx= Nx / Tg2具体方案:本设计中将2MHz的时钟分三次频,分别作为防抖电路的周期信号、显示模块片选信号、计数及锁存模块闸门信号。

防抖电路滤去窄波,显示模块用模4计数器来分别输出四位测量结果。

计数器通过在0.1s内对输入信号的高电平(发生期)进行计数来得出结果,并且为了达到换挡目的,测量时计六位数,通过结果选择档位进行输出。

二、原理图三、总体电路图四、流程图五、设计清单1、防抖电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY debounce ISPORT(key,cp: IN STD_LOGIC; --复位键imp:OUT STD_LOGIC); --去掉窄波后输出END debounce;ARCHITECTURE base OF debounce ISSIGNAL ql,q2:STD_LOGIC;BEGINPROCESS(cp)BEGINIF cp'event AND cp='1'THENq2<=ql; ql<=key;END IF;END PROCESS;imp<=ql AND NOT q2;END base;时序仿真波形:2、分频电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY dividefre4 ISPORT(cp_2m:IN STD_LOGIC; --2MHzcpl:OUT STD_LOGIC; --200Hzcp2:OUT STD_LOGIC; --25Hzcp3:OUT STD_LOGIC); --5HzEND dividefre4;ARCHITECTURE behavior OF dividefre4 IS SIGNAL tout:INTEGER RANGE 0 TO 4999; --5000分频SIGNAL toutl:INTEGER RANGE 0 TO 7; --8分频SIGNAL tout2:INTEGER RANGE 0 TO 39; --40分频SIGNAL cp_1:STD_LOGIC;SIGNAL cp_2:STD_LOGIC;SIGNAL cp_3:STD_LOGIC;SIGNAL cp:STD_LOGIC;BEGINPROCESS(cp_2m) –分出400Hz时钟BEGINIF(cp_2m'event AND cp_2m='1')THENIF tout=4999 THENtout<=0;ELSE tout<=tout+1;END IF;IF tout=2499 THENcp<='0';ELSE cp<='1';END IF;END IF;END PROCESS;PROCESS(cp) --200Hz时钟BEGINIF(cp'event AND cp='1')THENcp_1<=NOT cp_1;END IF;END PROCESS;PROCESS(cp_1) --25Hz时钟和5HzBEGINIF(cp_1'event AND cp_1='1')THENIF toutl=7 THEN toutl<=0;ELSE toutl<=toutl+1;END IF;IF toutl=3 THENcp_2<='1';ELSIF toutl=7 THEN cp_2<='0'; --8分频得25Hz END IF;IF tout2=39 THEN tout2<=0; --40分频得5HzELSE tout2<=tout2+1;END IF;IF tout2=39 THENcp_3<='1';ELSIF tout2=19 THEN cp_3<='0';END IF;END IF;END PROCESS;cpl<=cp_1;cp2<=cp_2;cp3<=cp_3;END behavior;仿真波形:(因原程序所分频倍数太大,所以这里将5000倍分频降至50倍)3、计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY fretest ISPORT(enable:IN STD_LOGIC; --使能cp3:IN STD_LOGIC; --闸门INput:IN STD_LOGIC; --被测信号reset:IN STD_LOGIC; --复位信号overflow:OUT STD_LOGIC; --大于1000kHzPlay0,playl,play2,play3:OUT INTEGER RANGE 0 TO 9;decimal:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--小数点,即档位END fretest;ARCHITECTURE behavior OF fretest ISSIGNAL r0_1,r1_1,r2_1,r3_1,r4_1,r5_1:INTEGER RANGE 0 TO 9;BEGINPROCESS(INput,enable,reset,cp3)BEGINIF enable='0'THEN NULL; --不测量ELSIF(input'event AND input='1')THEN --检测被测信号IF reset='1'THEN --同步复位,高电平有效overflow<='0';r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0;r4_1<=0;r5_1<=0;ELSIF cp3='0'THEN --闸门为0时清零Overflow<='0';r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0;r4_1<=0;r5_1<=0;ELSE --闸门为高电平计数r0_1<=r0_1+1;IF r0_1=9 THEN r1_1<=r1_1+1;r0_1<=0;IF(r1_1=9)THEN r2_1<=r2_1+1;r1_1<=0;IF(r2_1=9)THEN r3_1<=r3_1+1;r2_1<=0;IF(r3_1=9)THEN r4_1<=r4_1+1;r3_1<=0;IF(r4_1=9)THEN r5_1<=r5_1+1;r4_1<=0;IF(r5_1=9)THEN r5_1<=0;overflow<='1'; --大于1000kHz END IF;END IF;END IF;END IF;END IF;END IF;END IF;END IF;END PROCESS;PROCESS(r5_1,r4_1)BEGINIF r5_1=0 AND r4_1=0 THEN --为小于9999Hz时play0<=r0_1;playl<=r1_1;play2<=r2_1;play3<=r3_1;decimal<="100";ELSIF r5_1=0 THEN --为几十kHz时play0<=r1_1;playl<=r2_1;play2<=r3_1;play3<=r4_1;decimal<="010";ELSE --为几百kHz时play0<=r2_1;playl<=r3_1;play2<=r4_1;play3<=r5_1;decimal<="001";END IF;END PROCESS;END behavior;仿真波形4、锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY frelatch ISPORT(reset:IN STD_LOGIC; --复位cp3:IN STD_LOGIC; --时钟Overflow: IN STD_LOGIC; --大于1000kHz表示play0,playl,play2,play3:IN INTEGER RANGE 0 TO 9;decimal:IN STD_LOGIC_VECTOR(2 DOWNTO 0);--小数点overlatch:OUT STD_LOGIC; --大于1000kHzp0latch,pllatch,p21atch,p31atch:OUT INTEGER RANGE 0 TO 9; delatch:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--小数点END frelatch;ARCHITECTURE behavior OF frelatch ISBEGINPROCESS(cp3,reset)BEGINIF reset='1'THENoverlatch<='0';p0latch<=0;pllatch<=0;p21atch<=0;p31atch<=0;delatch<=decimal;ELSIF cp3'event AND cp3='0'THENoverlatch<=overflow;p0latch<=play0;pllatch<=playl;p21atch<=play2;p31atch<=play3;delatch<=decimal;END IF;END PROCESS;END behavior;仿真波形5、显示模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY display ISPORT( cpl:IN STD_LOGIC; --时钟overflow:IN STD_LOGIC; --高于1000kHz标志p0,p1,p2,p3:IN INTEGER RANGE 0 TO 9;--BCD码输入 show:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--7段码输出 sel:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--位扫描码END dISplay;ARCHITECTURE behavior OF display ISSIGNAL count: INTEGER RANGE 0 TO 3;SIGNAL sel_1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(cpl)BEGINIF(cpl'event AND cpl='1') THENIF count=3 THEN count<=0;ELSEcount<=count+1;END IF;END IF;END PROCESS;PROCESS(count)BEGINCASE count ISWHEN 0=>sel_1<="1110"; --第0位WHEN 1=>sel_1<="1101"; --第1位WHEN 2=>sel_1<="1011"; --第2位WHEN 3=>sel_1<="0111"; --第3位END CASE;END PROCESS;PROCESS(overflow,sel_1)BEGINIF(overflow='1')THENshow<="0110111"; --高于1000kHz,显示HELSIF(sel_1(0)='0')THEN --第0位数码管译码CASE p0 ISWHEN 0=>show<="1111110";--显示0,a-gWHEN 1=>show<="0110000";--1WHEN 2=>show<="1101101";--2WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(1)='0')THEN --第1位译码 CASE p1 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111"; WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(2)= '0')THEN --第2位译码 CASE p2 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;ELSIF(sel_1(3)='0')THEN --第3位译码 CASE p3 ISWHEN 0=>show<="1111110";WHEN 1=>show<="0110000";WHEN 2=>show<="1101101";WHEN 3=>show<="1111001";WHEN 4=>show<="0110011";WHEN 5=>show<="1011011";WHEN 6=>show<="0011111";WHEN 7=>show<="1110000";WHEN 8=>show<="1111111";WHEN 9=>show<="1110011";END CASE;END IF;END PROCESS; sel<=sel_1; END behavior; 仿真波形。

基于fpga的数字频率计的设计

基于fpga的数字频率计的设计

基于fpga的数字频率计的设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于FPGA的数字频率计的设计摘要本文介绍了一种基于FPGA的数字频率计的设计方法。

基于FPGA的数字频率计的设计

基于FPGA的数字频率计的设计

基于FPGA的数字频率计的设计摘要:数字频率计(FREQ)是一种用于计算信号频率的设备。

本文提出了一种基于FPGA的数字频率计的设计方案,使用Verilog HDL实现了数字频率计,可以实现输入信号频率的测量和显示。

该数字频率计的设计具有快速响应、低延迟、高精度的特点,并且适用于各种频率范围的输入信号。

关键词:数字频率计;FPGA;Verilog HDL;测量;显示;精度1. 简介数字频率计是一种用于测量信号频率的设备,广泛应用于电子、通信、计算机等领域。

传统的频率计一般采用模拟电路实现,但其精度和速度有限,且易受到噪声和温度等因素的影响,难以应用于高精度和高速测量。

随着FPGA技术的不断发展,基于FPGA的数字频率计逐渐成为一种新的解决方案。

2. 设计方案本文提出了一种基于FPGA的数字频率计的设计方案,使用Verilog HDL实现了数字频率计,可以实现输入信号频率的测量和显示。

数字频率计的核心是计数器,通过计数器来测量输入信号的周期,并计算出信号的频率。

本设计方案采用了高速计数器的设计思路,具体步骤如下:(1) 输入信号经过芯片引脚电路,进入FPGA芯片。

(2) FPGA内置的输入输出模块将输入信号进行采样和滤波处理,得到纯净的数字信号。

(3) 数字信号经过计数器进行计数,计数值存储在计数器的寄存器中。

(4) 计数值经过时钟分频和计算,得到输入信号的周期和频率。

(5) 输入信号的频率通过显示模块在数码管或LCD显示屏上显示,同时可以通过按键或旋转编码器进行设置和控制。

3. 实验结果本设计方案采用ALTERA CYCLONE III系列FPGA芯片,频率范围从1Hz到50MHz,精度为0.01Hz。

实验结果表明,数字频率计响应速度快,延迟较低(约为100ns),精度高(误差小于0.1%),同时可以适应各种信号频率范围的测量。

4. 总结本文提出了一种基于FPGA的数字频率计的设计方案,采用了高速计数器的设计思路,具有快速响应、低延迟、高精度的特点,并且适用于各种频率范围的输入信号。

基于FPGA的等精度频率计的设计

基于FPGA的等精度频率计的设计

基于FPGA的等精度频率计的设计一、引言频率计是一种广泛应用于电子领域的仪器设备,用于测量信号的频率。

常见的频率计有软件频率计和硬件频率计两种。

软件频率计主要基于计算机软件,通过采集到的信号数据来计算频率。

硬件频率计则是基于专用的硬件电路,直接对信号进行采样和处理,具有实时性强、准确度高的优点。

本文将基于FPGA设计一种等精度频率计,旨在实现高精度、高稳定性的频率测量。

二、设计原理本设计采用基于FPGA的硬件频率计方案,其主要原理是通过对输入信号的时间计数,并结合固定参考值,计算出信号的频率。

具体流程如下:1.信号输入:将待测量的信号输入至FPGA芯片,输入信号的幅度应符合输入电平范围。

2.信号计数:利用FPGA芯片内部的计数器,对输入信号进行计数,并记录计数器的数值。

计数器的值与输入信号的频率成反比,即计数器值越大,信号频率越低。

3.定时器触发:通过定时器产生一个固定的参考信号,用于触发计数器的复位操作。

定时器的频率应足够高,以保证计数器能够实时精确计数。

4.数据处理:计数器值与定时器触发的时间周期共同决定了输入信号的频率。

通过计算参考值与计数器值的比例,可以得到准确的频率值。

5.结果输出:将计算得到的频率值输出至显示屏或其他外部设备,以便用户进行查看。

三、设计方案1.FPGA选型:选择一款适合频率计设计的FPGA芯片,要求其具有较高的计数能力、较大的存储空间和丰富的外设接口。

2.输入电路设计:设计一个合适的输入电路,将待测信号进行电平调整和滤波处理,以确保输入信号的稳定性和合适的幅度范围。

3.计数器设计:利用FPGA内部的计数器模块,进行计数操作。

根据需要选择适当的计数器位宽,以满足待测频率范围的要求。

4.定时器设计:通过FPGA内部的时钟源和计时器模块,设计一个精确的定时器,用于触发计数器的复位操作。

定时器的频率要足够高,以保证计数的准确性。

5.数据处理设计:利用FPGA内部的算数逻辑单元(ALU)对计数器值进行处理,计算得到准确的频率值。

EDA实训:基于FPGA的数字频率计课程报告

EDA实训:基于FPGA的数字频率计课程报告

EDA课程设计报告题目:基于FPGA的数字频率计专业班级:姓名:乱弹的枇杷时间:2014.11.05~2014.12.24 指导教师:廖老师完成日期:2014年12月26日基于FPGA数字频率计的设计任务书1.设计任务与要求设计一个基于FPGA数字频率计,要认真并准确地理解有关要求,完成系统设计。

设计要求:(1)频率测量:频率10Hz~9999Hz方波信号;(2)周期测量:频率10Hz~9999Hz方波信号;(3)四位数码管显示频率、周期;(4)能产生频率1KHz的方波信号,进行频率计自校;(5)对两种不同的测量用两种发光LED指示;2.设计内容(1)设计VHDL代码源文件;(2)编译综合;(3)下载程序,片上测试;3.编写设计报告写出设计的全过程,附上有关资料和程序,有心得体会。

题目:基于FPGA的数字频率计一、设计目的在生产实践和科学实验中,经常需要测量信号的频率和周期。

数字频率计图1 数字频率计系统总体设计框图系统功能描述:本次设计基于FPGA开发板Storm_I_1C3_V1.0使用Altera 公司的器件Cyclone系列1P1C3T144C8,晶振频率50MHz来设计一个数字频率计,能测量并用四位数码管显示频率为10Hz~9999Hz方波信号的频率和周期且对两种不同LED灯指示,还能自身产生1KHz方波信号并进行频率自校。

因为时间和个人能力的限制,我们组没能完成周期测量部分。

我们所完成的数字频率计具有4位显示,能自动根据7位十进制计数的结果自动选择有效数据的高4位进行动态显示的功能,其中小数点表示单位为KHz。

由于目前频率测量的方法很多,但在设计中考虑各种因素,我们采用数字电路中最广泛使用的直接测频法,即在确定的闸门信号内记录被测信号的脉冲个数。

包括分频模块、计数模块、数据处理模块、数码管译码显示模块等模块。

2. 分频模块设计在设计时我们可利用FPGA开发板上固定时钟信号50MHz分频产生我们所需要的脉冲信号,若所需脉冲信号频率为f,则需对其进行N分频,其中50=。

基于FPGA的简易数字频率计

基于FPGA的简易数字频率计

基于FPGA的简易数字频率计第一篇:基于FPGA的简易数字频率计EDA 简易数字频计设计性实验 2008112020327 ** 电子信息科学与技术物电电工电子中心2009年5月绘制2008.6.10 湖北师范学院电工电子实验教学省级示范中心电子版实验报告简易数字频率计设计一.任务解析通过对选择题的分析,认为该简易数字频率计应该能达到以下要求:1.准确测出所给的方波信号的频率(1HZ以上的信号)。

2.在显示环节上,应能实现高位清零功能。

3.另外还有一个总的清零按键。

二.方案论证本实验中所做的频率计的原理图如上图所示。

即在一个1HZ时钟信号的控制下,在每个时钟的上升沿将计数器的数据送到缓冲器中保存起来,再送数码管中显示出来。

第2页,共11页湖北师范学院电工电子实验教学省级示范中心电子版实验报告在本实验中,用到过几中不同的方案,主要是在1HZ时钟信号的选择和计数器清零环节上:1.在实验设计过程中,考滤到两种1HZ时钟信号其波形如下图所对于上术的两种波形,可以调整各项参数来产生两种1HZ时钟信号。

最后通过实验的验证发现第二种波形对于控制缓冲器获得数据和控制计数器清零更易实现。

并且,用第二种波形做为时钟信号,可以在很短的高电平时间内对计数器清零,在低电平时间内让计数器计数,从面提高测量的精度。

而用第一种波形则不易实现这个过程。

2.在计数器的清零过程中,也有两个方案,分别是能通过缓冲器反回一个清零信号,另一个是在时钟的控制下进行清零。

最终通过实验发现,用时钟进行清零更易实现。

因为如果用缓冲器反回一个清零信号,有一个清零信号归位问题,即当缓冲器反回一个低电平清零信号时,计数器实现清零,但不好控制让缓器冲的清零信号又回到高电平,否则计数器就一直处于清零状态面不能正常计数了。

三.实验步骤通过上分析后,实验分为以下几步:1.1HZ时钟信号的产生(产生该信号的模块如下):module ones(clk,clkout);input clk;output clkout;parameter parameter N=24000000;n=24;第3页,共11页湖北师范学院电工电子实验教学省级示范中心电子版实验报告reg [n:0]cnt;reg clkout;always @(posedge clk)begin if(cnt==N)else end endmodule begin cnt=0;clkout=1;clkout=0;endend begin cnt=cnt+1;最终产生的信号的波形:2.计数模块。

FPGA简易数字频率计课程设计报告

FPGA简易数字频率计课程设计报告

FPGA简易数字频率计课程设计报告The Design Of Simple Digital Frequency Meter Base On FPGAABSTRACTThe design is based on FPGA digital frequency of a simple plan, use Verilog hardware design realized the frequency of internal function module, the accuracy of the measurement method, etc NIOS and FPGA, soft nuclear CPU embedded systems, using the SOPC constitute NIOS soft check data management man-machine floating point calculations, exchange, with real-time display interface chip traditional FPGA + MCU solutions, system is much more flexible than small volume and low consumption, have advantages of hardware and software systems in programmable functions.This design method of measuring frequency by measuring method is compared with direct frequency measurement method, and the measuring accuracy of ZhouFaYou characteristics. Front-end signal input by AD811 amplifier to recuperate broadband amplification, weak s ignal by comparator plastic, after using measurements on FPGA, system of good real-time, high precision.Key words:Equal precision Frequency counter FPGA NIOS Verilog摘要:本设计是基于FPGA的一个简易数字频率计,利用Verilog 硬件描述语言设计实现了频率计内部功能模块,采用了等精度测量的方法,并结合NIOS软核CPU嵌入FPGA,构成SOPC系统,利用NIOS软核对数据浮点运算处理,管理人机交换界面实时显示,跟传统FPGA+单片机的多芯片系统方案相比更加灵活,系统体积小和功耗小等优势,具备软硬件在系统可编程的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子技术综合试验实验报告班级:测控一班学号:**********姓名:***指导老师:***基于FPGA的数字频率计设计报告一、系统整体设计设计要求:1、被测输入信号:方波2、测试频率范围为:10Hz~100MHz3、量程分为三档:第一档:闸门时间为1S时,最大读数为999.999KHz第二档:闸门时间为0.1S时,最大读数为9999.99KHz第三档:闸门时间为0.01S时,最大读数为99999.9KHz。

4、显示工作方式:a、用六位BCD七段数码管显示读数。

b、采用记忆显示方法c、实现对高位无意义零的消隐。

系统设计原理:所谓“频率”,就是周期性信号在单位时间(1秒)内变化的次数。

若在一定的时间间隔T内计数,计得某周期性信号的重复变化次数为N,则该信号的频率可表达为:f = N / T .基于这一原理我们可以使用单位时间内对被测信号进行计数的方法求得对该信号的频率测量,具体实现过程简述如下:首先,将被测信号①(方波)加到闸门的输入端。

由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发生器,它输出时间基准(或频率基准)信号③去控制门控电路形成门控信号④,门控信号的作用时间T是非常准确的(由石英振荡器决定)。

门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲②才能通过闸门成为被计数的脉冲⑤由计数器计数。

闸门开通的时间称为闸门时间,其长度等于门控信号作用时间T。

比如,时间基准信号的重复周期为1S,加到闸门的门控信号作用时间T亦准确地等于1S,即闸门的开通时间——“闸门时间”为1S。

在这一段时间内,若计数器计得N=100000个数,根据公式f = N / T,那么被测频率就是100000Hz。

如果计数式频率计的显示器单位为“KHz”,则显示100.000KHz,即小数点定位在第三位。

不难设想,若将闸门时间设为T=0.1S,则计数值为10000,这时,显示器的小数点只要根据闸门时间T的改变也随之自动往右移动一位(自动定位),那么,显示的结果为100.00Khz。

在计数式数字频率计中,通过选择不同的闸门时间,可以改变频率计的测量范围和测量精度。

系统单元模块划分:1)分频器,将产生用于计数控制的时钟分别为1HZ,10HZ,100HZ脉冲和1KHZ的用于七段显示数码管扫描显示的扫描信号。

2)闸门选择器,用于选择不同的闸门时间以及产生后续的小数点的显示位置。

3)门控电路,产生用于计数的使能控制信号,清零信号以及锁存器锁存信号。

4)计数器,用于对输入的待测信号进行脉冲计数,计数输出。

5)锁存器,用于对计数器输出数据的锁存,便于后续译码显示电路的对数据进行记忆显示,同时避免计数器清零信号对数据产生影响。

6)译码显示,用于产生使七段显示数码管的扫描数字显示,小数点显示的输出信号,同时对高位的无意义零进行消隐。

二、单元电路设计1、分频器:该电路将产生四个不同频率的信号输出,因为电路板上给出了一个48MHZ的晶振,所以我们只需要对48MHZ的信号进行适当分频即可得到我们所需的四个不同频率的信号输出,我们设计一个输入为48MHZ,有四个输出端分别为1HZ,10HZ和100HZ,1KHZ的分频器,原程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpinqi isPort ( clk : in STD_LOGIC;clkout1 : out STD_LOGIC;clkout10 : out STD_LOGIC;clkout100 : out STD_LOGIC;clkout1K : out STD_LOGIC);end fenpinqi;architecture Behavioral of fenpinqi issignal cnt1:integer range 1 to 24000000;signal cnt10:integer range 1 to 2400000;signal cnt100:integer range 1 to 240000;signal cnt1K:integer range 1 to 24000;signal c1:std_logic;signal c2:std_logic;signal c3:std_logic;signal c4:std_logic;beginprocess(clk)isbeginif clk'event and clk='1' thenif cnt1<24000000 then --对cnt1进行计数,当cnt1未计满后对其进行加1cnt1<=cnt1+1;elsif cnt1=24000000 then --cnt1计满后对其进行赋一,并且令c1进行翻转,然后将c1的值赋给clkout1 c1<=not c1; --由于48MHZ的的信号,前一半的时候c1为0,则后一半是为1,就完成了对信号进行分频,产生了1HZ的信号 cnt1<=1;end if;end if;end process;process(clk)isbeginif clk'event and clk='1' then --方法同上if cnt10<2400000 thencnt10<=cnt10+1;elsif cnt10=2400000 thenc2<=not c2;cnt10<=1;end if;end if;end process;process(clk)isbeginif clk'event and clk='1' then --方法同上if cnt100<240000 thencnt100<=cnt100+1;elsif cnt100=240000 thenc3<=not c3;cnt100<=1;end if;end if;end process;process(clk)isbeginif clk'event and clk='1' then --方法同上if cnt1K<24000000 thencnt1K<=cnt1K+1;elsif cnt1=24000 thenc4<=not c4;cnt1K<=1;end if;end if;end process;clkout1<=c1;clkout10<=c2;clkout100<=c3;clkout1K<=c4;end Behavioral;源文件编写成功后编译并生成图形文件符号如图:仿真文件编写如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY tbb_vhd ISEND tbb_vhd;ARCHITECTURE behavior OF tbb_vhd ISCOMPONENT fenpinqiPORT(clk : IN std_logic;clkout1 : OUT std_logic;clkout10 : OUT std_logic;clkout100 : OUT std_logic;clkout1K : OUT std_logic);END COMPONENT;SIGNAL clk : std_logic := '0';SIGNAL clkout1 : std_logic;SIGNAL clkout10 : std_logic;SIGNAL clkout100 : std_logic;SIGNAL clkout1K : std_logic;BEGINuut: fenpinqi PORT MAP(clk => clk,clkout1 => clkout1,clkout10 => clkout10,clkout100 => clkout100,clkout1K => clkout1K);tb : PROCESSBEGINclk<='0';wait for 10 ps;clk<='1';wait for 10 ps;END PROCESS;END;对该模块进行仿真结果如下:有上图可知分频器工作正常,产生的个信号也没有毛刺,结果十分理想。

2、闸门选择器:在这个模块中我们有四个输出端和六个输入端,其中四个输出端中有一个是频率输出端,是通过三个闸门选择开关输入和三个输入频率决定的,另外三个输出端则是用来后面的小数点控制的,而六个输入端中的三个是上面分频器的三个输出1HZ,10HZ和100HZ,另外三个是电路板上的拨动开关,用来选择闸门,控制输出。

其原程序和分析如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity SELE isPort ( SE1 : in STD_LOGIC;SE10 : in STD_LOGIC;SE100 : in STD_LOGIC;F1HZ : IN STD_LOGIC;F10HZ : IN STD_LOGIC;F100HZ :IN STD_LOGIC;FREF : out STD_LOGIC;DP1 : out STD_LOGIC;DP2 : out STD_LOGIC;DP3 : out STD_LOGIC);end SELE;architecture Behavioral of SELE isbeginPROCESS(SE1,SE10,SE100) ISBEGINIF SE1='1' AND SE10='0' AND SE100='0' THENFREF<=F1HZ; --当闸门控制在第一档的时候,令输出端输出1HZ输入端的输入,小数点控制dp1有效,dp2,dp3无效DP1<='0';DP2<='1';DP3<='1';END IF;IF SE1='0' AND SE10='1' AND SE100='0' THENFREF<=F10HZ; --第二档,输出为10HZ,dp2有效DP1<='1';DP2<='0';DP3<='1';END IF;IF SE1='0' AND SE10='0' AND SE100='1' THENFREF<=F100HZ; --第三档,输出为100HZ,dp3有效DP1<='1';DP2<='1';DP3<='0';END IF;END PROCESS;end Behavioral;源代码编写完成后保存并生成图形文件符号如图:仿真文件编写如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY TTB_vhd ISEND TTB_vhd;ARCHITECTURE behavior OF TTB_vhd ISCOMPONENT SELEPORT(SE1 : IN std_logic;SE10 : IN std_logic;SE100 : IN std_logic;F1HZ : IN std_logic;F10HZ : IN std_logic;F100HZ : IN std_logic;FREF : OUT std_logic;DP1 : OUT std_logic;DP2 : OUT std_logic;DP3 : OUT std_logic);END COMPONENT;SIGNAL SE1 : std_logic := '1';SIGNAL SE10 : std_logic := '0';SIGNAL SE100 : std_logic := '0';SIGNAL F1HZ : std_logic := '0';SIGNAL F10HZ : std_logic := '0';SIGNAL F100HZ : std_logic := '0';SIGNAL FREF : std_logic;SIGNAL DP1 : std_logic;SIGNAL DP2 : std_logic;SIGNAL DP3 : std_logic; BEGINuut: SELE PORT MAP(SE1 => SE1,SE10 => SE10,SE100 => SE100,F1HZ => F1HZ,F10HZ => F10HZ,F100HZ => F100HZ,FREF => FREF,DP1 => DP1,DP2 => DP2,DP3 => DP3);tb : PROCESSBEGINF1HZ<='0';FREF<='0';wait for 100 ns;F1HZ<='1';FREF<='1';WAIT FOR 100 NS;END PROCESS;END;仿真结果如图:有仿真结果可知闸门选择器工作正常,能够准确输出我们所需的信号。

相关文档
最新文档