一、设计要求

  • 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

基于FPAG的简易数字频率计设计相关推荐

  1. 单片机c语言数字频率计的课程设计,基于单片机的简易数字频率计设计报告(最终版)最新版...

    <基于单片机的简易数字频率计设计报告.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的简易数字频率计设计报告(最终版)>相关文档资源请在帮帮文库(www.woc88 ...

  2. 基于FPGA的简易数字频率计+上板测试(小梅哥AC620FPGA开发板)

    基于FPGA的简易数字频率计+上板测试(小梅哥AC620FPGA开发板 目录 主要架构 1.计数模块 2.数码显示模块 3.控制信号模块 4.分频模块 例化模块 上板测试图 附:74HC595移位寄存 ...

  3. 简易电子琴c语言程序,基于单片机的简易电子琴设计(C语言编程).docx

    单片机课程设计报告 基于单片机的简易电子琴设计 摘 要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器.它在现代音乐 扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经 ...

  4. 基于STM32F103的简易示波器设计

    基于STM32F103的简易示波器设计(基于正点原子mini开发板) 摘要 本设计采用STM32F103微控制器,硬件为正点原子的MiniSTM32开发板,设计一个示波器,能够测量输入信号的频率.最大 ...

  5. 基于STM32F407的简易菜单设计+LCD+按键

    基于STM32F407的简易多级菜单设计+LCD+按键 实现原理 主要使用 双向链表 结构实现的菜单: 结构体包含7个变量,分别是菜单中功能项的个数,当前菜单标题,菜单中各功能项标题,功能项的类型,然 ...

  6. 基于单片机的简易电子琴设计(电路+程序)

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  7. 基于单片机的简易数字电压表设计(电路+程序)

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  8. 基于单片机的简易电子钟设计

    1.摘  要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广.发展很快.单片机体积小.重量轻.抗干扰能力强.环境要求不高.价格低廉.可靠性高.灵活性好.开发较为 ...

  9. 【Proteus仿真】【51单片机】简易数字频率计设计

    文章目录 一.主要功能 二.硬件资源 三.软件设计 四.实验现象 联系作者 一.主要功能 1.可调节频率 2.LCD频率和周期 二.硬件资源 1.51单片机核心模块 2.NE555模块 3.LCD16 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续21)
  2. CommonJS规范与AMD规范的理解
  3. 轻松入门React和Webpack
  4. 内存是新的硬盘,硬盘是新的磁带
  5. Mysql 5.5的编译安装 在ubuntu 10平台上面
  6. 三个数相减的平方公式_快收好这份小学数学公式大全!孩子遇到数学难题时肯定用得上...
  7. http状态码批量查询工具V2.0
  8. VC学习笔记:简单绘图
  9. ORACLE 11g r2   RAC 安装实施规划
  10. VCF虚拟融合架构--企业IT基础架构建设新趋势-李飞 秦贵松 (VCF 虚拟融合架构 )
  11. 【数据结构】树(六)—— 二叉平衡树(C语言版)
  12. Linux(九、十)文件权限及网络配置管理
  13. test dword ptr [eax],eax ; probe page. 是怎么回事?
  14. 在谷歌地图上显示您的位置
  15. C语言:自定义函数中调用自定义函数的方法
  16. 敬告青年---陈独秀
  17. 16信号量(semaphore)
  18. SAPUI5是什么?Fiori告诉我们将来UI开发用哪种技术?
  19. Linux内核jump label与static key的原理与示例
  20. 中国网络优化行业发展前景预测分析及投资风险评估报告2021-2027年

热门文章

  1. idea显示项目端口号被占用,怎么搞?
  2. IOS 初级开发入门教程(一)介绍篇
  3. What is Scala
  4. Win7项目分享part1:Windows7准备的3个阶段
  5. 选一种姿态,让自己活得无可替代
  6. python给定字符串显示奇数_字符串基础练习题80+道(原文及代码见文尾链接)
  7. 与计算机相关的哲学家,数:计算机、哲学家及对数的含义的探索
  8. USB2.0 HUB眼图调试经验总结
  9. 【主动选择,远离忧患】云和恩墨大讲堂电子期刊第十一期
  10. 怎么解决问卷回收率低的问题?