作者:桂。

时间:2018-05-03  21:16:03

链接:www.cnblogs.com/xingshansi/p/8987608.html


前言

FPGA调试需要抓取特定信号,一个直观的思路是:保存抓取的信号,事后分析/ 或者 导出实测数据,用作后续算法仿真验证。 本文简要记录数据的导出及读取。

一、信号导出

(1)把想要观测的信号线加入在线逻辑分析仪中。
(2)上板测试,trigger到想要的实时数据,用一句TCL语句保存为ila格式的文件,那句话是write_hw_ila_data data1 [upload_hw_ila_data hw_ila_1] 。其中data1为用户自己取的文件名,要带上路径,hw_ila_1为要保存的那组实时信号的名字。还有两句是读出保存好的数据的,read_hw_ila_data data1.ila,display_hw_ila_data。
(3)把保存好的.ila格式的文件导入matlab中,用unzip语句解压,会出现一个csv格式的文件,这个文件可以用excel打开,并能直观地看到所有sample。
(4)在excel中用自带的函数功能对数据进行处理,处理后可以再导入matlab中进行高级处理。

二、信号读取

解压的数据如图所示:

鉴于此,只能先借用MATLAB强大的数据分析能力,先把数据解析出来。以waveform.csv文件为例进行解析,waveform.csv中的有效数据为第4列到第11列,有效数据是从左到右、从上至下排列的正弦波采样数据,16位有符号数(补码),采样点排列顺序为:
E2->F2->G2....L2->E3->F3->G3….
解析源码如下:

clc;
clear;
close all;
fclose('all');
%% 设置CSV文件读取范围
srow = 1; %起始行(行标从0开始);
scol = 4; %起始列(列标从0开始);
erow = 2048; %结束行(一般为采样深度);
ecol = 11; %结束列;
%% 获取csv文件
[filename, pathname] = uigetfile('E:\pl_b3\trunk\tmp\mat\*.csv','读取数据');
csv_file = [pathname filename];
%% 读取csv文件
csv_data = csvread(csv_file,srow,scol,[srow,scol,erow,ecol]);
%% 矩阵重排为一列
csv_data_resp = reshape(csv_data',[],1);
%% 矩阵转换为二进制文本
csv_data_str = num2str(csv_data_resp);
%% 矩阵转换为有16位有符号数
csv_data_sign = typecast(uint16(bin2dec(csv_data_str)), 'int16');
%% 有符号数写入文本文档
fid_w = fopen([pathname 'csv_convt.txt'],'w');
fprintf(fid_w,'%d\n',csv_data_sign);
fclose(fid_w);
  • 参考:https://blog.csdn.net/wordwarwordwar/article/details/71250232

Vivado抓取信号的更多相关文章

  1. python threading模块中对于信号的抓取

    最近的物联网智能网关(树莓派)项目中遇到这样一个问题:要从多个底层串口读取发来的数据,并且做出相应的处理,对于每个串口的数据的读取我能想到的可以采用两种方式: 一种是采用轮询串口的方式,例如每3s向每 ...

  2. Breakpad Google的crash捕获、抓取开源库

    简介: Breadpad为google chrominum项目下用于处理dump的一套工具:内部采用跨平台方式实现捕获.生成.解析与平台无关的dump,便于统一处理:支持进程内与进程外捕获,当为进程外 ...

  3. WireShark系列: 使用WireShark过滤条件抓取特定数据流(zz)

    应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...

  4. GSM Sniffing入门之软件篇:GSMTAP抓取与SMS(Short Message Service)

    重点介绍如何利用50元左右的设备,抓包并还原SMS短信内容: ps:研究GSM Sniffing纯属个人兴趣,能抓SMS报文只是捡了个明文传输的漏子,切勿用于非法用途.就像sylvain说的,osmo ...

  5. IEEE802.11数据帧在Linux上的抓取

    IEEE802.11数据帧在Linux上的抓取终于得到了梦寐的<802.11无线网络权威指南>,虽然是复印版本,看起来也一样舒服,光看书是不行的,关键还是自己练习,这就需要搭建一个舒服的实 ...

  6. VNC 抓取远程桌面

    VNC (Virtual Network Computing)是虚拟网络计算机的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNI ...

  7. Golang分布式爬虫:抓取煎蛋文章|Redis/Mysql|56,961 篇文章

    --- layout: post title: "Golang分布式爬虫:抓取煎蛋文章" date: 2017-04-15 author: hunterhug categories ...

  8. C#抓取数据、正则表达式+线程池初步运用

    去年底用 多线程+HtmlAgilityPack.dll 写了一个抓取“慧聪网” 公司信息的小程序,代码惨不忍赌.好在能抓到数据,速度也能让人忍受就很久没管了. 最近这段时间把这个小程序发给同事看着玩 ...

  9. web scraper 抓取网页数据的几个常见问题

    如果你想抓取数据,又懒得写代码了,可以试试 web scraper 抓取数据. 相关文章: 最简单的数据抓取教程,人人都用得上 web scraper 进阶教程,人人都用得上 如果你在使用 web s ...

随机推荐

  1. editcap的使用

    editcap.exe -h Editcap (Wireshark) (v2.-gf42a0d2b6c) Edit and/or translate the format of capture fil ...

  2. cpu高 load 高 内存高 io 高怎么排查

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...

  3. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  4. Yii2框架bootstrap样式理解

    Yii2框架默认採用了bootstrap作为CSS风格,各种视图类组件都如此.之前一直採用默认风格,并在必要的时候加入或者改动一下class来达到目的.但在改版Yii1.1的orange项目时.发现之 ...

  5. ROS知识(15)----Actionlib的使用(一)

    Actionlib是ROS非常重要的库,像执行各种运动的动作,例如控制手臂去抓取一个杯子,这个过程可能复杂而漫长,执行过程中还可能强制中断或反馈信息,这时Actionlib就能大展伸手了. 1.原理 ...

  6. Win极速文件搜索Listary

    对于开源的everything在win下搜索文件很高效了.不过在listary功能上更加的丰富..支持正则搜索 对比: 都是基于本地磁盘索引,进而实现快速搜素 00.有能力的还是购买pro,当然也有免 ...

  7. Linux下的二进制兼容性的检测

    都知道Linux的二进制兼容与windows相比简直是天差地别,windows的二进制兼容做得特别好,很老的游戏都能在windows 10上跑,写的好的程序,在XP上也不是不可以.但是Linux就不一 ...

  8. stuff in /proc/sys/fs/

    This subdirectory contains specific file system, file handle, inode, dentry and quota information. 1 ...

  9. Category在项目中的实际运用

    先看两行代码:1. label2.textColor = [UIColor colorWithHexString:@"707070"]; 2. _table.header = [M ...

  10. 【LeetCode】217. Contains Duplicate (2 solutions)

    Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your funct ...