跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

作者:FPGA技术实战

前言:本文我们介绍如何从Vivado ILA核将抓取到的数据导出为文件,并通过Matlab软件存为.coe文件。

1. Vivado ILA核导出数据到文件
打开示例工程,程序下载至电路板,抓取信号,如图1所示。
图1:实例工程JTAG抓取数据.png

图1:实例工程JTAG抓取数据

我们在想要导出的信号上右键选择"Export ILA Data...",如图2所示。
图2:右键选择Export ILA Data....png

图2:右键选择"Export ILA Data..."

弹出如图3所示界面,选择需要存储的文件格式,存储路径以及命名文件,至此ILA核数导出到文件中。
图3:设置导出数据格式及路径.png

图3:设置导出数据格式及路径

ILA核导出的数据如图4所示。
图4:设置导出数据格式及路径.png

图4:设置导出数据格式及路径

2. Matlab读取文件数据存储为.coe文件
数据从FPGA中导出后,我们利用Matlab将数据读出,并写入.coe文件,供软件调试使用。Matlab读写文件代码如下:

clear all;close all;
DATA_LEN = 2048;%读取数据长度ROW_NUM = 1; %读取数据起始行数COL_NUM = 3; %读取第3列数据
%读取文件dds_data = csvread('.\dds_data.csv',ROW_NUM,COL_NUM,[ROW_NUM,COL_NUM,DATA_LEN,COL_NUM]); 
%绘图显示plot(dds_data);
%存入.coe文件L = 2048;file_open = fopen('.\DDS_Data\DDS_Data.coe','w'); fprintf(file_open,'MEMORY_INITIALIZATION_RADIX = 10;\n');%dec2bin将十进制转化为2进制,d必须为正数fprintf(file_open,'MEMORY_INITIALIZATION_VECTOR=\n'); for n=1:1:L    fprintf(file_open,'%s',num2str(dds_data(n),16));%num2str将数字转化为数字串    if n==L        fprintf(file_open,';');    else        fprintf(file_open,',\n');    endend

Matlab读取数据波形如图5所示。

图5:Matlab读取数据波形.png


图5:Matlab读取数据波形

DDS_Data.coe文件写入数据如图6所示,该文件可存入FPGA ROM中,可用于测试调试使用。

图6:DDS_Data.coe文件写入数据.png

图6:DDS_Data.coe文件写入数据

文章来源:FPGA技术实战微信公众号

精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734