当前位置:   article > 正文

基于FPAG的简易数字频率计设计_设计一个将1khz的方波信号

设计一个将1khz的方波信号

一、设计要求

  • 1、 设计四位十进制的简易数字频率计,能够利用系统时钟产生1KHZ-9999KHZ方波信号,并且设计模块对1KHZ-9999KHZ的方波信号进行频率测量;
  • 2、测量的方波频率值要在4位数码管上进行显示
  • 3、此频率计要设有一个整体复位控制(有reset 按键),可恢复初始状态;
  • 4、利用2个按键控制方波频率在1KHZ-10MHZ可调,步进1kHZ。1个按键按下频率增加1KHZ,另外一个按键按下频率减少1KHZ;

二、设计思路

  • 1、分析要求,由设计要求知简易频率计可以分为两个部分:

第一部分:频率范围是:1KHZ-9999KHz,且频率可调,步进值为1kHz的方波发生器;
第二部分:简易的频率计;

  • 2、通过顶层化设计思想,可以将任务分为四个模块:

第一部分:按键模块,(四个按键:复位、模式选择、频率加、频率减),其需要包含按键消抖模块
第二部分:数码管显示模块,需要显示:方波发生器的方波频率;和频率计的测量频率;其需要一个BCD码转换模块和模式按键作为选择端的二选一模块
第三部分:方波发生模块,其需要一个分频可键控的分频器
第四部分:频率计模块,采用预置闸门法进行频率测量,因此需要一个计数器分频器产生一个预置闸门;

三、模块讲解

第一部分:按键模块

1、按键消抖原理讲解

  • 对于单按键的消抖模块,其接口如图所示,接口声明功能描述如下
    在这里插入图片描述
    在这里插入图片描述
  • 按键消抖经常使用状态机来进行消抖,按照状态机的状态可以分为以下四个状态:为按下空闲时IDLE、按下抖动滤除状态FILTER0、按下稳定状态DOWN、释放抖动滤除状态FILTER1.其状态转换图如下:
    在这里插入图片描述
    其转移条件入下表所示:
    在这里插入图片描述

2、按键具体模块

1)单bit信号同步
  • 按键信号对于FPGA内部信号来说是一个异步信号,如果不进行处理直接输入,很容易出现时序违例出现亚稳态。因此需要将按键信号先同步到FPGA的时域里面,常见的方法便是二级触发器,其结构如图所示:
    在这里插入图片描述Verilog代码:
    在这里插入图片描述
2) 边沿检测电路
  • 通过上述状态机可以以看出,在转换条件中需要边沿检测电路,因此设计边沿检测电路,其原理图如图:
    在这里插入图片描述
  • 其检测过程:
    根据上图可知,其为比较两个时钟输入信号电平是否一样,当前一个时钟为1,后一个时钟为0时:pos_out=1;反之neg_out=1;其他状态两个口为0;
    Verilog代码
    在这里插入图片描述
3)状态机消抖设计

代码请参考上传资料;

第四部分:显示模块

1、数码管动态显示

  • 对于数码管显示模块,其接口如图所示,接口声明功能描述如下
    在这里插入图片描述

  • 数码管逻辑图为:
    在这里插入图片描述

  • 子模块功能描述
    在这里插入图片描述

第三部分:频率计模块

1、预置闸门法原理

  • 对于数码管显示模块,其接口如图所示

在这里插入图片描述

  • 其逻辑图为:
    在这里插入图片描述
    D触发器的功能:对应 CK 端上升沿,D端的信号传送到Q端。
    由于D触发器的同步作用,计数器Ⅰ所记录的 NA已不存在 ±1 字误差的影响。 但是,实际的闸门时间T已不等于预置的闸门时间TP。因此,还需要同时测量实际的闸门时间T的大小。为了测量实际的闸门时间T,设置了计数器Ⅱ,并用标准时钟 f0 进行计数来确定实际闸门时间T的大小。

2、预置闸门法代码

具体代码请参考上传的文件内容;

由于频率计部分原理同分频器一致再次不进行叙述;

三、最后视图

在这里插入图片描述
最后代码,及原理图均已上传,详情参照具体代码;
下载地址:https://download.csdn.net/download/weixin_42348938/12063614

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/724760
推荐阅读
相关标签
  

闽ICP备14008679号