quartus频率计 时钟设置_简易数字频率计(verilog HDL设计)(2020维护版本)

  • 前言
  • 简易数字频率计原理
    • 顶层
    • 控制模块:
    • 计数模块:
    • 锁存模块
    • 测试文件
  • 结语

前言

这篇博客大概是2017年写的,目前已经是2020年8月不到,今天维护了一下但是并未保存,很受伤,不得不重新在维护一次。

最近看到很多评论,说程序有问题,于是我就对这个程序进行一次测试。

并更新博文程序与其他部分内容。 个人博客以及知乎:李锐博恩 个人微信公众号:FPGA LAB

简易数字频率计原理

原理:数字频率计的原理十分简单,简单的就是一句话和一幅图而已。

一句话:测量被测信号的频率,要清楚频率的定义,一言以蔽之,就是1s中信号的周期数。

根据频率的定义,我们测量被测信号1s中变化的次数即可,即1s中的周期数。

首先我们设置一个基准时钟信号,频率为1Hz,从第一个上升沿开始计数(被测信号的上升沿数),直到下一个上升沿到达时停止计数,对数据进行锁存,再到达下一个上升沿时,对计数器进行清零,准备下一次的测量。

根据以上描述,得到相关信号的关系:

一幅图:

我尝试使用wavedrom画了这个图:

b6697d9520cb7076a46c65ac375cb494.png

本图是简易频率计的工作时序图,从图中 可以看出:

基准信号的第一个上升沿到达时,计数使能信号有效,计数器开始计数;

第二上升沿到达时,计数结束,锁存使能有效,计数数据开始锁存;

第三个上升沿到达时,清零信号有效,对计数器的输出清零,准备下一次的测量。

一个测量过程需要3 sec(重要)。

下面是数字频率计的原理图:

b5d19b1ffee59a2b691dec4cf5a8377c.png

还没来得及使用visio更新! 由此原理图可以清晰的理解下面的verilog HDL程序:

程序可以分为四个部分,一个顶层模块,三个子模块:

顶层

`timescale 1ns / 1ps
//
// blog: https://blog.csdn.net/Reborn_Lee
// Engineer: 李锐博恩
// Design Name: frequency detect
// Module Name: freDetect
// 
//

module freDetect(

 input wire clk_1Hz,            //1Hz基准频率,周期1s;
 input wire fin,                //输入待测信号
 input wire rst,                //复位信号
 output wire [3:0] d0,
 output wire [3:0] d1,
 output wire [3:0] d2,
 output wir
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值