vivado----fpga硬件调试 (七)----数据导出并用MATLAB读取
来源:互联网 发布:我的世界地狱门算法 编辑:程序博客网 时间:2024/06/06 00:54
Vivado套件中的Debugger(类似ISE套件中的ChipScope)提供了在本地窗口中查看硬件实时数据的途径,但是无法导出类似ChipScope中的.prn这种文本数据格式,只能通过write_hw_ila_data命令导出csv或者vcd文件,vcd文件为通用波形文件,只能用来查看;所以只能通过csv文件解析数据。
命令:write_hw_ila_data -force -csv_file test.csv
鉴于此,只能先借用MATLAB强大的数据分析能力,先把数据解析出来。以waveform.csv文件为例进行解析,waveform.csv中的有效数据为第4列到第11列,有效数据是从左到右、从上至下排列的正弦波采样数据,16位有符号数(补码),采样点排列顺序为:
E2->F2->G2....L2->E3->F3->G3….
解析源码如下:复制代码
命令:write_hw_ila_data -force -csv_file test.csv
csv文件的格式如下图,第一行为对象描述行,前面几列(下图中是3列)为采样序号以及触发说明,之后就是采样的数据,从图中可以看出所有数据都是以二进制格式存放的,而且是按10进制表示的(无论怎么调整波形图中数据格式出来的都是一样的)基本无法适用于常规的分析软件。
鉴于此,只能先借用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);
解析结果如下,顺序存放的文本数据:
1 0
- vivado----fpga硬件调试 (七)----数据导出并用MATLAB读取
- vivado----fpga硬件调试 (六)----数据导出
- 'vivado----fpga硬件调试 (六)----数据导出'
- vivado----fpga硬件调试 (一)----mark_debug
- vivado----fpga硬件调试 (二)----mark_debug
- vivado----fpga硬件调试 (三)----mark_debug
- vivado----fpga硬件调试 (四)----mark_debug
- vivado----fpga硬件调试 (八)----例化ila核
- vivado----fpga验证调试
- 三、vivado硬件调试
- vivado----fpga硬件调试 (五) ----找不到ila核问题及解决
- Vivado+FPGA:如何使用Debug Cores(ILA)在线调试
- Vivado+FPGA:如何使用Debug Cores(ILA)在线调试
- Matlab & vivado
- matlab读取grb、grb2数据并导出、绘图
- Java读取excel数据并用Arraylist存储
- 读取matlab中cnn的各层数据和权值用于FPGA.mif中
- Vivado使用的经验和技巧分享——Vivado中数据导入MATLAB的方法
- valgrind 的使用简介
- 权限修饰符
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
- javax.imageio.IIOException: Can't read input file!
- HDU
- vivado----fpga硬件调试 (七)----数据导出并用MATLAB读取
- java设计模式——工厂模式二
- COJ-1010-Water Drinking
- Log4J入门教程(三) web项目的log4j配置
- plugman 创建cordova插件
- java 二分查找
- js运动动画的八个知识点
- 打印沙漏
- Glid加载轮播图图片,加载不全问题 http://bbs.csdn.net/topics/391915759