作者:桂。

时间: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. JAVA设计模式——第 8 章 适配器模式【Adapter Pattern】(转)

    好,请安静,后排聊天的同学别吵醒前排睡觉的同学了,大家要相互理解嘛.今天讲适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电 ...

  2. hadoop三个配置文件的参数含义说明(转)

    来自:http://blog.csdn.net/yangjl38/article/details/7583374 1       获取默认配置 配置hadoop,主要是配置core-site.xml, ...

  3. node.js模块化写法入门

    子模块的写法: function SVN(){ console.log('svn initialized'); return this; } function getInstance() { cons ...

  4. Quartz.NET开源作业调度框架系列(二):CronTrigger-转

    CronTriggers比SimpleTrigger更加的灵活和有用,对于比较复杂的任务触发规则,例如"每个星期天的晚上12:00"进行备份任务,SimpleTrigger就不能胜 ...

  5. 51单片机——My-Clock项目

    技术:51单片机.光敏传感器.PCF8591.DHT11.DS1302.OLED显示屏   概述 项目My-Clock是一个环境监测时钟,接入光敏传感器和温湿度传感器监测环境信息,加入DS1302模块 ...

  6. 【TP3.2.X】linux环境下TP3.2.X的各个目录权限

    1.将整个项目文件 所属设置成www:www,单个文件夹 755 2.Application 单文件夹是755 3.Runtime.Public .Uploads  均是  -R 777

  7. 【转】Linux定时任务之 【crontab】

    Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, ...

  8. (原+转)win7上编译caffe支持python及matlab

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/7126126.html 参考网址: https://github.com/happynear/caffe ...

  9. java2小结(草稿)

    Struts2 Servlet 小的Java程序,运行在服务器端,接收和响应从客户端发送过来的请求 流程分析: Servlet生命周期? Servlet配置自动加载?(理解) 1.服务器在启动的时候, ...

  10. sql server @@ROWCOUNT 会被 if 给 清 0

    官方说 @@ROWCOUNT  会被以下几种语句清0 原文如下: Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOS ...