作者:造就狂野青春

1、概述

基于明德扬至简设计法和明德扬设计规范,设计一个基于FPGA的频率、电压测量仪器,实现了测量AD采集后的波形频率和电压(峰峰值),并将数值显示在数码管上。这个案例通过扩展还可结合明德扬的波形采集显示案例实现显示波形频率、峰峰值功能,还可拓展结合上次DDS案例产生的已知波形的频率峰峰值,验证本设计的正确性。

本案例的扩展和应用在现实生活中具有重大意义。

在本案例的设计过程中,应用了至简设计法、状态机模板应用等,在经过逐步改进、调试等一系列工作之后,最终达到了设计目标。

2、设计目标

(1)将AD采集后的数据转换成同频率的方波,并测量出波形实际频率
(2)能够实现测量出波形的周期
(3)能够实现测量波形的峰峰值或者某个信号的电压值
(4)数码管显示频率或电压值,并通过按键控制切换决定数码管显示频率或电压值

3、模块功能

(1)频率测量模块实现功能:
将AD采集后的数据转换成同频率的方波;
测量出波形的实际频率;
测量出波形的周期

(2)电压测量模块实现功能:
将AD采集后的数据进行缓冲;
记录数据最大值和最小值;
根据公式得出波形的峰峰值(电压)

(3)数码管显示模块实现功能
数码管显示频率值或者电压值
通过按键1实现切换决定数码管显示频率还是电压

(4)按键模块实现功能:
将外来异步信号打两拍处理,将异步信号同步化;
实现20ms按键消抖功能,并输出有效按键信号;

4、信号定义

(1)顶层模块Freq_Volt_Top.v

信号 定义
clk 系统时钟
rst_n 低电平复位信号
ad_data AD采集输入
seg_sel 数码管位选信号
Seg_ment 数码管显示信号

(2)频率测量模块Frequency.v

信号 定义
clk 系统时钟
rst_n 低电平复位信号
ad_data AD采集输入
Freq 频率值
Period 周期

(3)电压测量模块Voltage.v

信号 定义
clk 系统时钟
rst_n 低电平复位信号
ad_data AD采集输入
Volt 电压值(峰峰值)

(4)数码管显示模块sel_disp.v

信号 定义
clk 系统时钟
rst_n 低电平复位信号
din 显示数据
seg_sel 数码管位选信号
Seg_ment 数码管显示信号

(5)按键模块key_module.v

信号 定义
clk 系统时钟
rst_n 低电平复位信号
key_in 按键输入
key_vld 有效按键

5、频率测量代码

利用四段式状态机模板,可以很熟练地写出状态的转换,先将ad_data取最高位,得到同频率的方波,再分别计算方波高电平和低电平的时间,就可以得出一个周期的时间,从而计算出频率值和峰峰值。利用wave的高低电平控制状态机进入高电平计数或低电平计数状态。

S1状态:即wave=1时开始进行高电平计数,wave=0时证明变为低电平,记录下high_cnt的最大值,代表高电平的时间。

S2状态:即wave=0时开始进行低电平计数,wave=1时证明变为高电平,记录下low_cnt的最大值,代表低电平的时间。
得到高电平和低电平的时间,相加即得到一个周期的时间,可以算出频率值和周期值

FPGA原则上不能直接进行除法运算,因此调用除法器IP进行除法运算可以算出频率值,取整数部分。

6、电压测量

将AD数据和初始的最大值最小值相比较,如果AD数据大则赋值给fengzhi_max,如果AD数据小则赋值给fengzhi_min,经过一段时间后可以得出数据的最大值和最小值。如果是8位AD9280,则255代表+5V,0代表-5V;

则可以得到峰峰值计算公式;

值得注意的是,记录下最大最小值后,fengzhi_max,fengzhi_min将不变,为了能够实时记录数据最大最小值,需要定时刷新,因此设置1s RST信号,定时初始化fengzhi_max,fengzhi_min。

7、数码管显示

通过按键切换决定数码管显示频率值还是电压值。

动态扫描数码管,同时显示多个不同数字,显示频率和电压信息。数码显示原理和案例具体请学习论坛上资料。

在这个设计案例中,至简设计法和明德扬计数器模板、状态机模板发挥了至关重要的作用,使我能够快速准确完成设计。

本设计可以加以拓展:
结合明德扬AD采集波形案例,将计算出的频率值、电压值显示在VGA屏幕上;

对于初学者而言,流水灯太简单,复杂项目又太难,不如尝试一下这些相对简单而又酷炫的案例,并一步步拓展成大项目。赶紧动手尝试吧。

【至简设计案例系列】基于FPGA的频率、电压测量仪器相关推荐

  1. 【至简设计案例系列】基于FPGA的密码锁(XILINX ISE版)

    本文为明德扬原创及录用文章,转载请注明出处! 作者:造就狂野青春 一.总体设计 1.概述 本文基于明德扬至简设计法和明德扬设计规范,设计了一个基于FPGA的数字密码锁,实现了在拨码开关条件下,按键设置 ...

  2. 基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的密码锁设计(altera版)...

    秦红凯 明德扬FPGA科教 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码锁因为它的保密性很高,安全系数也 ...

  3. 【至简设计案例系列】基于FPGA的密码锁设计(altera版)

    本文为明德扬原创及录用文章,转载请注明出处! 作者:秦红锴 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码 ...

  4. 【至简设计案例系列】基于FPGA的曼彻斯特编码解码设计

    作者:小周 实验简述 将输入的数据流经过曼彻斯特编码器编码后经过解码器恢复为原来的输入序列. 一.曼彻斯特码简介 曼彻斯特码(Manchester code),又称数字双向码.分相码或相位编码(PE) ...

  5. Matlab与FPGA图像处理系列——基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现

    注:下载链接的资源是图片存 ROM 后读取进行 Sobel 检测显示在 VGA上,可供参考. 摘要:本文设计了一种基于 FPGA 的实时边缘检测系统,使用OV5640 摄像头模块获取实时的视频图像数据 ...

  6. java交通信号灯毕业论文范文_信号灯设计论文,关于基于FPGA的交通信号灯控制系统设计相关参考文献资料-免费论文范文...

    导读:本文关于信号灯设计论文范文,可以做为相关参考文献. 文/ 胡桂戎 陕西警官职业学院 陕西 西安 710021 [摘 要]本文采用FPGA 设计,结合了道路传感器,设计了交通信号灯全感应自适应的控 ...

  7. verilog 算法加速模块设计流程_基于FPGA的图像加速器的设计

    基于 FPGA 的图像加速器的设计 摘 要 介绍了一种基于 FPGA 的图像加速器的设计.本文硬件加速器的实质是通过流水线 设计来减少多余的操作达到加速的目的的, 内存是由 DMA 控制器访问, 之后 ...

  8. 【FPGA教程案例78】通信案例4——基于FPGA的RLS自适应滤波算法实现

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  9. 【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现

    FPGA教程目录 MATLAB教程目录 目录 1.软件版本 2.自适应PID控制器原理 3.自适应PID控制器的Verilog实现

最新文章

  1. FreeTextBox 3.1.6 的实践总结
  2. 安全×××限 爱因斯坦对安全进程的启示
  3. 【TUP第11期】腾讯黄朝兴:浅谈客户端架构
  4. python处理u开头的字符串
  5. 浅析ASP.NET应用ViewState技术
  6. 志汇超级外卖餐饮 5.9.2 + 超级跑腿 v1.9.5 打包下载 小程序模块
  7. linux线程计算,有关Linux进程与线程数目计算的问题
  8. PLC与工业DTU接线快速入门
  9. OpenGL基础48:高度贴图(上)
  10. 隐藏IP地址的方法利弊
  11. Raspberry Pi使用教程
  12. 在UE4中实现撤销(Undo)和重做(Redo)功能
  13. PHPMyWind 事务
  14. FastReport for Delphi
  15. flutter添加水印、添加自定义水印、禁止截屏(Android)
  16. leetcode-1833. 雪糕的最大数量(排序+贪心)
  17. 【金猿人物展】天云数据雷涛:从数据湖到湖仓一体再到数据编织,完成的是燃油车到油电混再到纯电技术的改造...
  18. 多线程之 ForkJoinool线程池(二十四)
  19. Python本地安装第三方库步骤
  20. vant d的地址组件中文操作手册

热门文章

  1. 什么是数据挖掘,给出一个你在生活中应用数据挖掘技术的例子,分析数据挖掘的意义。...
  2. 数据库 试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?(精简答案)
  3. RDBMS和HDFS的区别
  4. python+KLT光流法匹配
  5. ESP-12F驱动MPU6050使用DMP库姿态解算
  6. 顺丰、京东博弈无人机物流
  7. NEEP CALCULUSL: Integration
  8. 垂直战略拿下电影之后,微博还会拿下哪些行业?
  9. Asp.net ViewState
  10. 1.了解Redis与其应用场景(理解)