【示波器】基于FPGA的数字示波器设计实现
1.软件版本
quartusii
2.本算法理论知识
框图结构:
1.缓存里包含有触发控制和触发存储器;
2.由设计指标需要1GsPs的采样率,最后的数据流要降到到250MbPs;
3.从指标来看从波形的数据采集到最后的显示时间要在10s;
4.LED的选择要能和波形映射模块相对应;
5.整个设计主要就包含两个部分,FPGA的波形协处理器这几以及最后的LED显示;
6.二维显示效果,非三维;
步骤一:数据采集模块
首先将外部输入的1G的数据通过思路FIFO缓存,变为每路250M数据,即一路高速数据转换为多路低速数据,从而使其能够在FPGA中进行工作。这个时候需要将系统的时钟倍频到250M。
那么,这里在QII中设计如下的结构:
步骤二:示波器显示模块
波形映射模块就是将经过抽点后的波形数据映射到波形映射库中,映射库中的每个存储单元都是对应LCD显示器上的一个点,于是将需要显示的点的波形数据转换成幅度,幅度在LCD上标示为垂直方向的值,所以抽点后的每一个显示点都对应LCD上的一个像素点。横坐标代表时伺信息,纵坐标代表幅值信息。这样就可以将多次采样得到的波形数据映射到同一个映射库中,相当于将多次采集的波形重叠起来显示在一起,体现了高捕获率的作用,显示效果也达到了高刷新率的要求。
3.部分核心代码
module display(clk,cs,datain,RDADDR,x_out,y_out,da_wrx,da_wry);
input clk;
input cs;
input [7:0] datain;
output reg [9:0] RDADDR;
output [7:0] x_out;
output [7:0] y_out;
output reg da_wrx,da_wry;reg link_xout,link_yout;
reg [12:0] counttemp;
reg [2:0] bittemp;
reg [7:0] xbuf;
reg [7:0] ybuf;parameter GET = 10'b0_000_000_001,COMPARE1 = 10'b0_000_000_010,COMPARE2 = 10'b0_000_000_100, COMPARE3 = 10'b0_000_001_000, COMPARE4 = 10'b0_000_010_000, COMPARE5 = 10'b0_000_100_000,COMPARE6 = 10'b0_001_000_000,COMPARE7 = 10'b0_010_000_000,COMPARE8 = 10'b0_100_000_000,NEWCOUNT = 10'b1_000_000_000;reg [9:0] state;assign x_out=link_xout?xbuf:8'bz;
assign y_out=link_yout?ybuf:8'bz;always @(posedge clk)
begin
if (cs)beginstate<=GET;link_xout<=0;link_yout<=0;counttemp<=0;bittemp<=0;da_wrx<=1;da_wry<=1;end
elsebeginlink_xout<=1;link_yout<=1; case (state)default: begin //GETRDADDR<=counttemp[12:3];bittemp<=7-counttemp[2:0];state<=COMPARE1;da_wrx<=1;da_wry<=1;endCOMPARE1: beginda_wrx<=0;da_wry<=0;if (datain[bittemp])beginxbuf<={counttemp[6:0],1'b0};ybuf<={counttemp[12:7],1'b0};state<=COMPARE2;endelsebeginxbuf<=0;ybuf<=0;state<=NEWCOUNT;endend COMPARE2: beginda_wrx<=1;da_wry<=1; state<=COMPARE3;endCOMPARE3: beginstate<=COMPARE4;endCOMPARE4: beginstate<=COMPARE5;endCOMPARE5: beginstate<=NEWCOUNT;end NEWCOUNT: beginstate<=GET;if (counttemp==8191) counttemp<=0;else counttemp<=counttemp+13'b1; end endcaseend
endendmodule
4.操作步骤与仿真结论
系统的仿真结果如下所示:
仿真波形含义为:
分别为系统时钟,以及250M的时钟,用于读取外部输入的AD数据。
Rst为系统的复位信号,0的时候系统正常工作。
下面四个就是思路进入FPGA的采集得到的信号。这四个信号将通过四个FIFO。
四个为FIFO的输出数据,最后面一个是送入双口RAM之前的数据,将思路数据合并为一路数据。
写入RAM的地址信号。
分别为示波器波形存储的读取地址信号,x,y就是从存储在外部的存储区的坐标位置,通过对不同坐标点的位置的读取,达到显示波形的效果。
5.参考文献
[1]初华, 万强, 曹海源,等. 基于DSP和FPGA的数字示波器设计[J]. 自动化仪表, 2013, 34(3):4.A35-12
【示波器】基于FPGA的数字示波器设计实现相关推荐
- 基于 FPGA Vivado 信号发生器设计(附源工程)
今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说, ...
- 基于FPGA的FFT设计
基于FPGA的FFT设计 1.verilog源代码还有实验报告 2.FFT的主要算法 FFT算法并不是一种新的理论算法,它只是用来计算DFT的快速算法,所以它是以DFT为基础的.本课题采用的是基-2 ...
- 频谱仪设计基于FPGA的频谱仪设计,可以测试分析多种频率的频谱,分辨率100HZ
频谱仪设计基于FPGA的频谱仪设计,可以测试分析多种频率的频谱,分辨率100HZ,配套资料多达100M,东西复杂 ID:982500594354361311卡哇伊2号小宝贝
- java 万年历绪论,基于FPGA的万年历设计
基于FPGA的万年历设计(论文15000字) 摘要:万年历在人们的生活中一直扮演着重要的角色,可随着时代的发展,传统的纸质万年历已经越来越无法满足人们对于时间精确度以及便捷性的要求.随着电子科学的不断 ...
- FPGA项目(12)——基于FPGA的万年历设计
首先称述一下所实现的功能:可以显示年.月.日.时.分.秒,有闹钟设置功能,闹钟时间到时,蜂鸣器响,报警.用6位数码管进行显示,分三个显示页面,第一个页面显示年月日,第二个界面显示时分秒,第三个页面显示 ...
- 基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的密码锁设计(altera版)...
秦红凯 明德扬FPGA科教 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码锁因为它的保密性很高,安全系数也 ...
- 【至简设计案例系列】基于FPGA的密码锁设计(altera版)
本文为明德扬原创及录用文章,转载请注明出处! 作者:秦红锴 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码 ...
- 基于FPGA的俄罗斯方块设计
前 言 <俄罗斯方块>的基本规则是移动.旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分.该项目基于Xilinx公司的EGO1平台,利用现场可编程门阵列FPGA设 ...
- 基于FPGA的数字示波器的触发/采集
信号触发原理 触发 只有满足一个预设的条件,示波器才会捕获一条波形,这个根据条件捕获波形的动作就是触发. 原理 示波器在没有触发的时候,会随机抓取一段时间的信号并生成图像,由于信号是连续不断的,随机抓 ...
最新文章
- 目标检测|SSD原理与实现
- thinkphp-add方法错误
- 一个简单的blog系统(九) 增加标签和标签页面
- OpenStack概念架构简述
- Spring批处理CSV处理
- Java NIO (十四)NIO 和 IO 的区别和适用场景分析
- LeetCode 543. 二叉树的直径(DFS)
- c语言不通包里的函数,C语言中实现不同函数间jump的方法 -电脑资料
- mysql数据库设计255_MySQL数据库设计规范
- python serial_python_serial
- 《程序员修炼之道》---- 修的是什么
- 印度人是怎样开发软件的?
- 版本管理工具git常用命令
- 重返opencv——视频编码和格式
- 百度经纬度和google经纬度互转
- 计算机关机快捷键是什么,win7关机快捷键是什么
- 百度搜索关键词的使用方式
- 记录:seekbar进度条宽度和滑块高度一致问题
- win10安装hypermesh无法启动_最最详细的win10原版系统安装教程(包含制作启动安装)...
- 骨传导与气传导技术联合,这款耳机有何出色之处?开箱体验走起
热门文章
- 我从写技术博客中收获到了什么?- J_Knight_
- python基础入门(变量)
- 【单片机毕业设计】【mcuclub-103】智能花盆 | 智能养殖箱 | 多功能花盆 | 多功能养殖箱【实物设计】
- Android中的动画2(逐帧动画)
- 制作古装人物彩色工笔画图片的PS教程
- 异常检测综述(Anomaly Detection: A Survey)
- android 微信架构,微信App支付技术架构全解析
- 阿里云DMS添加ECS自建数据库
- 【OJ每日一练】1049 - 矩阵对角线元素之和 v1.0
- java 音频播放器_JAVA音频播放器问题