频率计,VHDL

合集下载

基于VHDL语言的数字频率计的设计方案

基于VHDL语言的数字频率计的设计方案

基于VHDL语言的数字频率计的设计方案
1.引言数字频率计是通讯设备、计算机、电子产品等生产领域不
可缺少的测量仪器。

由于硬件设计的器件增加,使设计更加复杂,可靠性变差,延迟增加,测量误差变大。

通过使用EDA技术对系统功能进行描述,运用VHDL语言,使系统简化,提高整体的性能和可靠性。

采用VHDL编程设计的数字频率计,除了被测信号的整形部分,键输入和数码显示以外,其他都在一片FPGA上实现,从而让整个系统非常精简,让其具有灵活的现场更改性,在不改变硬件电路的基础上,进一步改进提高系统的性能,使数字频率计具有高速,精确度高,可靠性强,抗干扰等优点,为数字系统进一步的集成创造了条件。

2.数字频率计的工作原理
频率测量方法中,常用的有直接测频法、倍频法和等精度测频法。

中直接测频法是依据频率的含义把被测频率信号加到闸门的输入端,只有在闸门开通时间T(以ls计)内,被测(计数)的脉冲送到十进制计数器进行计数。

直接测频法比其他两个方案更加简单方便可行,直接测频法虽然在低频段测量时误差较大,但在低频段我们可以采用直接测周法加测量,这样就可以提高测量精度了。

直接周期测量法是用被测周期信号直接控制计数门控电路,使主门开放时间等于Tx,时标为Ts的脉冲在主门开放时间进入计数器。

设在Tx期间计数值为N,可以根据Tx=N乘以Ts来算得被测信号周期。

因此本文采用低频测周,高频测频的方法来提高精度,减小误差。

3.主要功能模块的实现
该系统设计的控制器是由状态机实现,通过在不同测量档位,选择合理的时基信号频率降低误差,确定各状态转移条件和状态名,采用低频档位测周,。

基于VHDL设计的频率计

基于VHDL设计的频率计

基于VHDL设计的频率计专业:信息工程学号:姓名:一、实验任务及要求1、设计一个可测频率的数字式频率计,测量范围为1Hz~12MHz。

该频率计的逻辑图如图所示。

2、用层次化设计方法设计该电路,编写各个功能模块的程序。

3、仿真各功能模块,通过观察有关波形确认电路设计是否正确。

4、完成电路设计后,用实验系统下载验证设计的正确性。

二、设计说明与提示由上图可知8位十进制数字频率计,由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。

1、测频控制信号发生器设计要求。

频率测量的基本原理是计算每秒种内待测信号的脉冲个数。

这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同不控制。

当TSTEN高电平时允许计数、低电平时停止计数,并保持其所计的数。

在停止计数期间,首先需要一个锁存信号Load的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。

设置锁存器的好处是为了显示的数据稳定,不会由于周期性的清零信号而不断闪烁。

锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作做准备。

测频控制信号发生器的工作时序如下图。

为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时使其值翻转。

其中控制信号时钟CLK的频率1Hz,那么信号TSTEN的脉宽恰好为1秒,可以用作闸门信号。

然后根据测频的时序要求,可得出信号Load和CLR_CNT 的逻辑描述。

由图可见,在计数完成后,即计数使能信号TSTEN在1秒的高电平后,利用其反相值的上跳沿产生一个锁存信号Load,0.5秒后,CLR_CNT产生一个清零信号上跳沿。

高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真(TIMING SIMULATION),防止可能产生的毛剌。

基于VHDL语言的数字频率计设计

基于VHDL语言的数字频率计设计

数 码 管显示 ,最 大 读 数分 别 为 9 9 Hz 9 9k 、 . 9k 、9 . Hz 9 9k , 9 Hz 小数 点 随量 程 变 换 自动 移 位 ) ,量 程 自动 转
换 规则 :
硬件 描述语 言对 高层 次的 系统行 为进 行描述 ,在 系统

级 进行验 证 ,最 后再 用逻 辑综合 优 化工具 生成 具体
摘 要 介 绍 了 VHD L语 言在 数 字频 率 计 设 计 中的 具 体 应 甩 ,说 明 了 实现 电子 电路 设 计 的 自动 化 ( A)过 程 和 ED
E A 技 术在 现 代 数 字 系统 设 计 中的 重要 地 位 和 作 用 。 D 关 键 词 VH E A 自下 至上 自上 至 下 综 合 编 程 下载 DL D
M od f M u tme a ds or li di Pr s nt ton e e a i wih t U S r e
[ ] 94 2 7 23 C ,1 9 , 5 ~ 7
5 Pr b k r n,B, gh v n, a ha a a Ra a a S V.Sy hr nia i n nc o z to
的 门级逻辑 电路 的 网表 ,其 对应 的物理 实 现是专 用集 成 电路 ( I 。 AS C)
( )读数 大 于 9 9时 ( 1 9 不考虑 小数 点 ,下同 ) ,频 率计 处 于超 量程 状态 ,此时显 示器 发 出溢 出指示 ( 显
示 F F ,下次 测量 ,量 程 自动增 大一档 。 F )
设 计一个 3位 十进 制 数字 频率 计 ,其 测量范 围 为
1MH , 程分 1 Hz 0 Hz z三档 ( 位 z量 0k 、1 0k 、1MH 3

vhdl课程设计频率计

vhdl课程设计频率计

vhdl课程设计频率计一、课程目标知识目标:1. 掌握VHDL语言的基本语法和程序结构;2. 了解频率计的工作原理和设计方法;3. 学会使用VHDL语言设计简单的数字电路系统。

技能目标:1. 能够运用VHDL语言编写简单的程序代码;2. 能够运用所学知识设计并实现一个功能完整的频率计;3. 能够运用仿真工具对所设计的频率计进行测试和验证。

情感态度价值观目标:1. 培养学生对电子设计领域的兴趣和热情;2. 培养学生的团队协作意识和解决问题的能力;3. 培养学生严谨的科学态度和良好的工程素养。

课程性质:本课程为电子技术专业课程,旨在培养学生的硬件描述语言编程能力和电子系统设计能力。

学生特点:学生已具备一定的电子技术基础和编程能力,对数字电路和VHDL 语言有一定了解。

教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重理论与实践相结合,提高学生的实际操作能力。

在教学过程中,注重引导学生主动探究、积极实践,培养学生的创新意识和实际工程能力。

二、教学内容1. VHDL语言基础:- 数据类型、运算符和表达式;- 顺序语句和并行语句;- 进程语句和敏感列表;- 子程序和包的使用。

2. 频率计原理:- 频率计的基本工作原理;- 数字频率计的计数方法;- 频率计的误差分析和改进措施。

3. VHDL设计频率计:- 设计流程和需求分析;- 模块划分和接口设计;- 代码编写和调试;- 仿真测试和验证。

4. 教学内容的安排和进度:- 第一周:VHDL语言基础学习;- 第二周:频率计原理学习;- 第三周:VHDL设计频率计实践;- 第四周:代码调试、仿真测试和课程总结。

教材章节关联:1. VHDL语言基础:参考教材第3章;2. 频率计原理:参考教材第5章;3. VHDL设计频率计:参考教材第6章。

教学内容注重理论与实践相结合,按照教学大纲逐步推进,使学生能够系统地掌握VHDL语言和频率计的设计方法。

在教学过程中,结合实例进行分析和讲解,提高学生的实际操作能力。

用VHDL语言设计频率计

用VHDL语言设计频率计

模块设计 分频器 由于设计的需要,我们进行三种分频的设 计:10分频、100分频、1000分频。这三 种分频对500Hz的信号进行分频,得到的是 50Hz、5Hz、0.5Hz的信号,将它们作为计 数闸门。
图4 分频器模块
闸门 闸门选择电路实际就是3选1电路,相对简 单,分频所得信号一起送入闸门,在控制 器的控制下,选出其中一路信号作为计数 闸门送入计数器。
图5 闸门模块
计数器 我们采用的是直接测频法,所以计数器就是在闸 门信号有效期间对被测信号进行计数。直接测频 法
图6 计数器模块
锁存器 锁存器用于将计数器的计数结果锁存,以 便于较稳定的显示测量结果。计数器完成 计数后,计数结果要立即锁存,在闸门低 电平期间,即计数器停止工作期间,计数 的结果要在锁存器中保持,直到新的计数 结果产生为止。
用VHDL语言设计数字频率计
付宝成 2006年6月
第一部分 设计要Байду номын сангаас及意义
一、设计的意义 频率测量是电子测量领域最基本的测量之一。随 着数字电子技术的发展,频率测量成为一项越来 越普遍的工作,测频原理及测频方法受到越来越 多的关注。 具有50多年发展历史的频率计是数字电路中的典 型仪器。它是实验室中常用的仪器之一,同时也 是计算机、通讯设备、音频视频等科研领域不可 缺少的测量仪器,是一种典型的数字化、自动化 的测量仪器,并越来越趋于小型化。
二、设计要求 测量方波信号的频率 测量的频率范围是1~100KHz 测量结果用十进制数显示 具有自动校验和测量两种功能 具有超量程报警功能,在超出测量范围 时,发出指示信号
第二部分 设计的内容
频率测量一般有测频法与测周期法两种基 本方法,其原理如下: 测频法:由标准时钟分频产生一门控信号, 在门控信号下对输入的被测信号周期进行 计数,也叫直接测频法。如图1所示。 设输入信号频率为Fx,门控信号有效电平 时间为T,在此有效电平时间内的计数值为 N,则输入信号的频率为:Fx=N/T。

等精度频率计设计VHDL程序

等精度频率计设计VHDL程序

等精度频率计设计VHDL程序下面是一个基于VHDL的精度频率计设计程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.NUMERIC_STD.ALL;entity Frequency_Counter isgenericTOLERANCE : integer := 1; --容差范围REF_FREQ : natural := 100; --参考频率BIT_WIDTH : integer := 16 --输出频率计数器宽度portclk : in std_logic;reset : in std_logic;frequency : out std_logic_vector(BIT_WIDTH - 1 downto 0) --计数器输出值end entity Frequency_Counter;architecture Behavioral of Frequency_Counter issignal count : unsigned(BIT_WIDTH - 1 downto 0); --计数器signal count_enable : std_logic; --计数使能信号signal ref_counter : unsigned(ceil(log2(real(REF_FREQ * CLK_FREQ) / TOLERANCE)) - 1 downto 0); --参考计数器beginprocess(clk, reset)beginif reset = '1' thencount <= (others => '0'); --复位为0count_enable <= '0';ref_counter <= (others => '0');elsif rising_edge(clk) thencount <= count + 1; --计数信号递增end if;if ref_counter = REF_FREQ - 1 thenelseref_counter <= ref_counter + 1; --参考计数器递增end if;end if;end process;process(clk, reset)beginif reset = '1' thencount_enable <= '0';elsif rising_edge(clk) thencount_enable <= '1'; --参考频率达到后启用计数信号elsecount_enable <= '0';end if;end if;end process;frequency <= std_logic_vector(count);end architecture Behavioral;在此设计中,我们定义了一个Frequency_Counter实体,它有几个泛型参数,包括CLK_FREQ(输入时钟频率),TOLERANCE(容差范围),REF_FREQ(参考频率)和BIT_WIDTH(输出频率计数器的宽度)。

VHDL语言设计数字频率计

VHDL语言设计数字频率计

数字频率计的设计一、频率计实现的功能要设计的频率计的测量范围为1MHz。

为了提高测量的精度,量程分为三档,分别是:10kHz、100kHz、1MHz。

并要求在测量频率大于或小于选择的量程时,频率计自动换档。

1、当读数大于999时,频率计处于超量程状态,下一次测量时,量程自动增加一档。

2、当读数小于009时,频率计处于欠量程状态,下一次测量时,量程自动减小一档。

3、当超出测量范围时,显示错误。

4、在计数时不显示数据,计数完成后只显示测量结果。

5、小数点位置要自动移位。

二、频率计各部分的分析在这个设计中,需要用计数器来进行计数,而且计数器在各个档位要被重复使用,在测量的过程中,计数允许时钟信号还要进行调整,故将计数器设计成一个单独的模块,提供计数值的输出。

显示结果包括数值显示,档位显示及溢出标志显示。

其中数值显示要用到三个数码管,实验箱上连在一起的三个数码管中,只有两个数码管内部接有译码器,因此我们自己还要在程序中为那个没有译码器的数码管再加一段七段译码器程序来显示结果。

档位标志由三个LED灯来显示,代替数码管上的小数点的功能。

溢出标志由两个LED灯来显示,其中一个显示结果溢出,另一个显示输入信号在测量范围之内。

该频率计的顶层逻辑电路原理图如图(1)所示:图(1)三、频率计各部分的设计和实现从上面的分析可以知道,频率计可以由三个模块来组成。

下面对各个模块的设计方法和实现方法进行详细说明。

1、时基进程的设计和实现在实际使用时,输入的信号是随意的,没有办法预知输入的频率。

因此选取频率计的时基是非常重要的。

在设计要求中,将量程分为三档,在某一档进行测量时,需要提供该档的时基。

在10kHz档,该档最大读数为9.99kHz,最小读数为0.01 kHz,所以要提供的时基是频率为0.01 kHz的脉冲。

同理,在100 kHz档上,要提供的时基应该是频率为0.1 kHz的脉冲。

在1 MHz档上,要提供的时基是频率为1 kHz的脉冲。

数字频率计设计VHDL

数字频率计设计VHDL

实验十八数字频率计实验目的在MagicSOPC 实验箱上实现8位十进制频率计的设计。

被测信号从CLOCK0(数字信号时钟源)输入,经过检测后测得的频率值用数码管1~8显示。

实验器材1、SOPC实验箱2、计算机(装有Quartus II 7.0软件)实验预习1、了解数字频率计设计原理各主要模块的设计方法。

2、提前预习,编写好主模块的VHDL程序。

实验原理频率即信号1s内振动次数,因此测定信号的频率必须有一个脉宽为1秒的输入信号作为计数允许的信号;1 秒计数结束后,计数值锁入锁存器,并为下一测频计数周期作准备的计数器清零。

数字频率计框图如图18.1所示。

由控制、计数、锁存、译码显示四部分组成。

工作原理为:控制信号产生电路对系统时钟分频后产生0.5Hz的门控信号gate,锁存允许信号LE,清零信号MR。

当gate为高电平时,计数器对被测信号cin进行计数;1s后gate变为低电平,计数器停止计数;当gate为低电平、LE上升沿这两个条件同时满足时,锁存电路将32位计数结果锁存送译码显示电路;当gate为低电平、MR上升沿这两个条件同时满足时,计数器清零,为下一次计数做准备。

各信号之间的时序关系见图18.2所示。

图18.1 数字频率计框图1、控制信号产生电路:根据选定的输入时钟信号设定分频系数,要求输出0.5Hz门控信号gate、1Hz锁存允许信号LE和1Hz清零信号MR。

这几个信号控制整个系统的工作,非常关键,要求先锁存后清零,否则计数结果可能丢失,参考时序图18.2所示。

2、计数模块:定义十进制计数器元件,有cp(时钟输入)、MR(清零输入,上升沿有效)、gate(门控信号)三个个输入引脚,Q0~Q3、co(进位)5个输出引脚。

功能定义为gate为高电平时在cp上升沿计数;gate为低MR为高时清零。

利用元件调用的方法组成8位十进制计数器3、锁存电路:设计一32位锁存器,定义gate(门控信号)、LE(锁存允许,上升沿有效)d0~d31共34个输入引脚;Q0~Q31共32个输出引脚。

基于VHDL的数字显示频率计的设计

基于VHDL的数字显示频率计的设计

EDA 课程设计报告书课题名称 基于VHDL 的数字显示频率计的设计 姓 名 学 号 院 系 专 业 指导教师※※※※※※※※※ ※※ ※※ ※※EDA 课程设计基于VHDL的数字显示频率计的设计1设计目的通过EDA的试验设计,加深我们对FPGA的了解,熟悉FPGA的工作原理和试验环境,知道FPGA的开发流程,熟悉各种软件如Quartus II 6.0的使用。

通过设计小型试验项目学会仿真和硬件测试的基本方法。

2设计的主要内容和要求在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。

通过运用VHDL语言,实现4位数字频率计,并利用Quartus II 6.0集成开发环境进行编辑、综合、波形仿真,并下载到FPGA器件中,经实际电路测试,该系统性能可靠。

3 整体设计方案3.1四位十进制数据显示频率计设计在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。

测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。

数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。

直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。

数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。

数字频率计的VHDL设计

数字频率计的VHDL设计

课程设计题目、内容、要求目录1 课程设计题目、内容与要求……………………………………1.1 设计内容……………………………………………………1.2 具体要求……………………………………………………2 系统设计…………………………………………………………2.1 设计思路……………………………………………………2.2 系统原理与设计说明3 系统实现…………………………………………………………4 系统仿真…………………………………………………………5 硬件验证(操作)说明…………………………………………6 总结……………………………………………………………7 参考书目………………………………………………………1 课程设计题目、内容与要求1.1课程设计的题目:数字频率计设计1.2课程设计内容:(1)设计一个能测量方波信号的频率计;(2)测量范围是0-999999Hz;(3)结果用十进制数显示。

2 系统设计2.1设计思路:2.1.1 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。

本数字频率计采用自顶向下的设计思想,通过闸门提供的1s闸门时间对被测信号进行计数及测出的被测信号的频率,测出的频率再通过译码器译码后输出给显示器显示。

根据系统设计的要求,数字频率计的电路原理框图如下:数字频率计电路原理框图2.2 系统原理与设计说明系统各个模块的功能如下:2.2.1标准时钟发生电路模块借用实验板上标准时钟发生电路,为计数闸门控制电路提供一个标准8Hz信号。

2.2.2 计数器闸门控制电路模块计数器闸门控制电路就是产生三个控制信号,即计数器复位信号、4位十进制计数器允许计数信号、锁存信号。

2.2.3锁存电路模块锁存电路就是为了让LED数码管在信号来临之前保持计数值不变。

2.2.4计数器复位电路模块计数器复位电路是让频率计恢复到计数初始态。

2.2.5 LED数码管驱动电路模块LED数码管驱动电路就是为LED数码管提供驱动电压。

论文 基于vhdl语言直接测频法频率计设计(原创)

论文  基于vhdl语言直接测频法频率计设计(原创)

基于vhdl语言直接测频法频率计设计一.设计原理频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。

测频法就是在确定的闸门时间Tw内,记录被测信号的脉冲个数Nx ,则被是信号的频率为fx=Nx/Tw。

通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。

闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。

闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。

一般取1 s作为闸门时间。

原理图:原理图设计框图:设计框图二.系统分析1.顶层文件。

用于集成各个模块的进程,定义输入输出端口。

2.控制模块。

控制十进制计数器的计数及锁存器的工作,当计数器停止计数,则锁存器接收计数器的计数数据。

3.计数器。

由于需要使用数码管显示频率,所以采用的是十进制可清零、具有使能功能的计数器模块。

4.锁存模块。

接受七个计数器信号中的四个进行锁存。

5.译码显示模块。

因为每个数码管有八个段(包括小数点),所以需要八个段选输出,另外有四个位选输出控制四位数码管的亮灭。

二.程序设计(1)十进制计数器模块计数器模块是对输入脉冲信号的频率进行测量,由4个十进制加法器组成,其中EN为计数器选通控制信号,START为计数清零信号。

在计数清零信号清零后,当计数使能信号EN有效时,开始对待测信号进行计数。

本程序计数使能信号EN的宽度为1s(与闸门信号同宽),计数结果为待测信号的频率。

(2)4位锁存器模块当锁存信号上升沿到来时,将计数器的计数值锁存,这样可由外部的八段译码器译码并在数码管上显示。

设置锁存器的好处是显示的数据稳定。

复位后,锁存器里面的内容将清零。

另外程序设定开关s3用于将低四位送锁存器,当按下时显示低四位,用于测量大于9999Hz的信号时显示低四位。

(3)控制模块根据频率的定义和测量的基本原理,测量信号的频率必须有一个脉宽为1秒的对输入信号脉冲计数允许(EN)的信号,1秒计数结束后,计数值锁入锁存器的锁存信号。

VHDL数字频率计设计课件

VHDL数字频率计设计课件
CQ=>DIN (23 DOWNTO 20),CARRY_OUT=>CARRY6); U7:CNT10 PORT MAP(CLK=>CARRY6,CLR=>CLR_CNT,ENA=>TSTEN,
CQ=>DIN (27 DOWNTO 24),CARRY_OUT=>CARRY7); U8:CNT10 PORT MAP(CLK=>CARRY7,CLR=>CLR_CNT,ENA=>TSTEN,
3) 测频控制信号发生器的源程序TESTCTL.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
--测频控制信号发生器
USE IEEE.STD_LOGIC_UNSIGNED.ALL
ENTITY TESTCTL IS
PORT (CLK:IN STD_LOGIC;
PORT(CLK,CLR,ENA:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC);
END COMPONENT; COMPONENT REG32B --待调用的32位锁存器端口定义
...
COMPONENT TESTCTL --待调用的测频控制信号发生器端口定义 ...
CQ=>DIN (31 DOWNTO 28),CARRY_OUT=>CARRY8); U9:REG32B PORT MAP(LOAD=>LOAD,DIN=>DIN(31 DOWNTO 0),DOUT=>DOUT); END ART;
3. 硬件逻辑验证
选择实验电路结构图NO.0,由5.2节的实验电路结构图NO.0 和图6.5确定引脚的锁定,测频控制器时钟信号CLK(1 Hz)可接 CLOCK1,待测频FSIN可接CLOCK0,8位数码显示输出 DOUT[31..0]接PIO47~PIO16。

基于VHDL语言的全同步数字频率计的设计与研究的开题报告

基于VHDL语言的全同步数字频率计的设计与研究的开题报告

基于VHDL语言的全同步数字频率计的设计与研究的开题报告一、题目基于VHDL语言的全同步数字频率计的设计与研究二、研究背景和意义数字频率计广泛应用于各种信号的频率测量,具有准确度高、稳定性好、适用范围广等优点。

目前市面上的数字频率计大多采用片上计数器实现,而片上计数器的精度受到芯片工艺和设计的限制,难以满足高精度应用的需求。

因此,本课题旨在研究一种基于VHDL语言的全同步数字频率计,通过FPGA实现,此方案将大幅提高精度,减小误差,提高计数范围。

三、研究内容和目标本课题拟研究的内容包括:1.通过对数字频率计功能和原理的分析,确定设计思路和参数。

2.根据设计思路和参数,完成数字频率计模块的设计与仿真,并验证其正确性和合理性。

3.使用VHDL语言完成数字频率计的程序设计。

4.将程序下载到FPGA中,实现数字频率计的硬件设计。

5.对硬件设计进行测试与调试,验证数字频率计的性能指标。

本课题的目标是:1.设计出一款精度高、误差小、计数范围广、应用范围广的全同步数字频率计。

2.通过实验验证数字频率计的功能和性能指标,并与市面上的数字频率计进行比较,证明本方案的优越性。

四、研究方法和技术路线本课题的研究方法和技术路线如下:1.文献调研通过查阅相关文献和资料,了解数字频率计的基本原理、设计思路、参数要求等内容,为后续的研究工作提供理论依据。

2.模块设计根据数字频率计的功能和参数要求,对数字频率计的各个模块进行设计,包括时钟模块、预分频器模块、计数器模块、显示模块等。

3.模块仿真通过VHDL语言进行数字频率计模块的仿真,验证模块的电路实现是否符合设计要求,进一步完善设计。

4.程序设计根据模块设计的结果,将各个模块的功能用VHDL语言进行程序设计。

5.硬件设计将程序下载到FPGA中,实现数字频率计的硬件设计,完成外围电路和显示模块的设计.6.测试与调试对数字频率计的设计进行测试和调试,记录其性能指标和实验结果,并对不足之处进行改进和提升。

数字频率计设计(使用VHDL语言)

数字频率计设计(使用VHDL语言)

实验报告\
一、实验目的
设计数字频率计,学习较复杂数字系统设计方法。

二、实验内容
设计八位数码显示频率计P228
三、实验环境
计算机、QuartusII软件
四、实验步骤
1、子模块FTCTRL(用于产生控制信号) (1)程序代码
(2)仿真结果
2
、子模块COUNTER32B (用于计数)
(1)程序代码
(2)仿真结果
(3)结果分析
当使能信号ENABLE=‘1’时,允许计数。

当CLR=‘1’时重新计数
3、子模块REG32B(输出数据)
(1)程序代码
(2)仿真结果
(3)结果分析
当LK=’1’时,输出当前数据DIN,否则不做处理。

4、子模块SHOW
(1)程序代码
(2)仿真结果
(3)结果分析
当S=‘0’时,载入数据DATA,否则将数据DATA左移4位。

每次上升沿,SHOW1输出数据的高四位。

综合模块:
五、实验结果与讨论
这个实验花了比较多的时间,在做计数器的时候由于没有考虑到最后使用的是二进制显示的,所以在转换的时候遇到了不少的问题,最后
新亏有老师帮我想了办法解决。

频率计VHDL程序与仿真

频率计VHDL程序与仿真

数字频率计VHDL程序与仿真一、功能:频率计。

具有4位显示,能自动根据7位十进制计数旳成果,自动选择有效数据旳高4位进行动态显示。

小数点表达是千位,即KHz。

二、源程序及各模块和重要语句旳功能libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity plj isport(start:instd_logic;--复位信号clk :in std_logic; --系统时钟clk1:in std_logic; --被测信号yy1:out std_logic_vector(7 downto 0);--八段码w1 :out std_logic_vector(3 downto 0));--数码管位选信号endplj;architecturebehavofPLj issignalb1,b2,b3,b4,b5,b6,b7:std_logic_vector(3 downto0);--十进制计数器signalbcd:std_logic_vector(3 downto0); --BCD码寄存器signal q:integer range 0to 49999999;--秒分频系数signal qq : integer range0 to499999; --动态扫描分频系数signal en,bclk:std_logic; --使能信号,有效被测信号signal sss:std_logic_vector(3downto 0); --小数点signal bcd0,bcd1,bcd2,bcd3 :std_logic_vector(3 downto0);--寄存7位十位计数器中有效旳高4位数据beginsecond:process(clk) --此进程产生一种持续时间为一秒旳旳闸门信号beginif start='1' then q<=0;elsif clk'event and clk='1' thenif q<49999999 then q<=q+1;else q<=49999999;end if;end if;ifq<49999999 and start='0' then en<='1';else en<='0';end if;end process;and2:process(en,clk1) --此进程得到7位十进制计数器旳计数脉冲beginbclk<=clk1 anden;endprocess;com:process(start,bclk) --此进程完毕对被测信号计脉冲数beginifstart='1' then--复位b1<="0000";b2<="0000";b3<="0000";b4<="0000";b5<="0000";b6<="0000";b7<="0000";elsif bclk'event andbclk='1' thenifb1="1001"then b1<="0000"; --此IF语句完毕个位十进制计数ifb2="1001"then b2<="0000"; --此IF语句完毕百位十进制计数if b3="1001" thenb3<="0000"; --此IF语句完毕千位十进制计数ifb4="1001" then b4<="0000";--此IF语句完毕万位十进制计数if b5="1001" THENb5<="0000"; --此IF语句完毕十万位十进制计数if b6="1001" thenb6<="0000"; --此IF语句完毕百万位十进制计数if b7="1001" then b7<="0000"; --此IF语句完毕千万位十进制计数elseb7<=b7+1;endif;else b6<=b6+1;end if;else b5<=b5+1;endif;else b4<=b4+1;end if;else b3<=b3+1;end if;elseb2<=b2+1;endif;else b1<=b1+1;end if;endif;end process;process(clk) --此进程把7位十进制计数器有效旳高4位数据送入bcd0~3;并得到小数点信息beginif rising_edge(clk)thenif en='0' thenif b7>"0000" then bcd3<=b7;bcd2<=b 6; bcd1<=b5;bcd0<=b4; sss<="1110";elsif b6>"0000" thenbcd3<=b6; bcd2<=b5;bcd1<=b4;bcd0<=b3; sss<="1101";elsifb5>"0000"thenbcd3<=b5;bcd2<=b4; bcd1<=b3;bcd0<=b2;sss<="1011";ﻩelse bcd3<=b4; bcd2<=b3; bcd1<=b2; bcd0<=b1; sss<="1111";end if;end if;end if;end process;weixuan:process(clk) --此进程完毕数据旳动态显示beginif clk'event and clk='1' thenif qq< 99999 then qq<=qq+1;bcd<=bcd3; w1<="0111";ﻩif sss="0111" thenyy1(0)<='0';ﻩelseyy1(0)<='1';ﻩﻩend if;elsif qq<199999 then qq<=qq+1;bcd<=bcd2; w1<="1011";ﻩif sss="1011" then yy1(0)<='0';ﻩelseyy1(0)<='1';ﻩend if;elsifqq<299999then qq<=qq+1;bcd<=bcd1; w1<="1101";ﻩif sss="1101"then yy1(0)<='0';ﻩelse yy1(0)<='1';end if;elsif qq<399999 thenqq<=qq+1;bcd<=b cd0; w1<="1110";ifsss="1110" thenyy1(0)<='0';else yy1(0)<='1';end if;else qq<=0;end if;end if;end process;m0:process(bcd) --译码begincasebcd iswhen"0000"=>yy1(7 downto1)<="0000001";when "0001"=>yy1(7 downto1)<="1001111";when"0010"=>yy1(7 downto1)<="0010010";when "0011"=>yy1(7 downto 1)<="0000110";when "0100"=>yy1(7 downto 1)<="1001100";when "0101"=>yy1(7downto1)<="0100100";when "0110"=>yy1(7 downto 1)<="1100000";when "0111"=>yy1(7 downto1)<="0001111";when"1000"=>yy1(7downto 1)<="0000000";when "1001"=>yy1(7 downto 1)<="0001100";when others=>yy1(7 downto1)<="1111111";end case;endprocess;end behav;三、程序仿真图注:仿真中秒分频为50000,动态显示旳分频系数也相应调小。

VHDL——频率计

VHDL——频率计

频率计实验报告系别:电气工程系班级:应用电子081学生姓名:潘秀梅学号:860706027序号:27指导教师:张江伟完成时间:2010年5月25日数字频率计的设计前言数字频率计是一种应用很广泛的仪器。

数字频率计是数字电路中的一个典型应用,实际硬件设计采用的器件较多,连线复杂,而且会产生较大延时,造成测量误差且可靠性差。

随着复杂可编程逻辑器件的广泛应用,以EDA工具为开发手段,运用VHDL语言,从而大大简化系统设计,提高整体的性能和可靠性。

本次实验采用VHDL语言,运用自顶向下(Top To Down)的方法,使用Isp Expert集成开发环境进行编译、综合、波形仿真,并下载到CPLD器件中,设计并实现了四位数字频率计。

关键词EDA;VHDL;数字频率计;波形仿真;CPLD前言 (1)关键字 (2)一、设计目的 (3)二、设计要求 (4)三、实验环境 (5)四、设计原理 (6)五、各功能实现原理 (7)六、各模块介绍 (8)七、总连接图 (9)八、设计体会 (10)数字频率计一、设计目的1、了解数字频率计测量频率与测量周期的基本原理;2、熟练掌握数字频率计的设计与调试方法;3、掌握多个数码管显示的原理与方法;4、掌握使用VHDL语言的设计思想;5、对整个系统的设计有一个的了解。

二、设计要求1、对所有设计的小系统能够正确分析;2、基于VHDL语言描述系统的功能;3、在quartus 2环境中编译通过;4、仿真通过并得到正确的波形;5、给出相应的设计报告。

三、实验环境1、软件环境:Quartus II 6.02、硬件环境:实验箱四、设计原理数字频率计的原理框图如图3所示。

他主要由5个模块组成,分别是:脉冲发生器电路、测频控制信号发生器电路、计数模块电路、锁存器、译码驱动电路。

当系统正常工作时,脉冲发生器提供的5 Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。

.VHDL数字频率计(一)

.VHDL数字频率计(一)

VHDL数字频率计数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。

随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。

将使整个系统大大简化。

提高整体的性能和可靠性。

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

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

从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。

数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。

它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。

经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。

因此数字频率计在测量物理量方面应用广泛。

本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。

VHDL四种频率输出的频率计

VHDL四种频率输出的频率计
end spl;
architecture one of spl is
signal clk_1k : std_logic; signal clk0 : std_logic; signal clk1 : std_logic; signal clk2 : std_logic; signal clk3 : std_logic; signal clk4 : std_logic;
设计要求:
设计一个四种频率输不同的频率,再通过一个彩灯显示出来设计效果。
实现分频的操作电路:
1、二进制译码器输出端位 2N 个,并对应于输入代码每种频率。
2、要熟练掌握:case 语句和 if 语句有关知识 表--1
拨码开关 00 01 10 11
输出频率 Clk1 Clk2 Clk3 Clk4
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
四种频率输出的频率计 报告
学号:
04
班级: 10电子(2)班
姓名:
组别:
7
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
begin
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
-------------------------------1kHz、10Hz、5Hz、1Hz、0.5Hz 分频-------------------------------process ( clk ) variable cnt1 : integer range 0 to 25000; variable cnt2 : integer range 0 to 100; variable cnt3 : integer range 0 to 2; variable cnt4 : integer range 0 to 5; variable cnt5 : integer range 0 to 2; begin if rising_edge ( clk ) then if cnt1 = 25000 then cnt1 := 0; clk_1k <= not clk_1k; ---------------------1kHz if cnt2=100 then cnt2 := 0; clk1<=not clk1; -------------------------10Hz if cnt3=2 then cnt3 := 0; clk2 <= not clk2; ---------------5Hz if cnt4=5 then cnt4 := 0; clk3 <= not clk3; ---------1Hz if cnt5=2 then cnt5 := 0; clk4 <= not clk4; ----0.5Hz else cnt5 := cnt5 + 1; end if; else cnt4 := cnt4 + 1; end if; else cnt3 := cnt3 + 1; end if; else cnt2 := cnt2 + 1; end if; else cnt1 := cnt1 + 1; end if; end if; end process;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档