当前位置:   article > 正文

在vivado中自动导出ila抓到的波形数据_vivado ila数据能不能自动下载

vivado ila数据能不能自动下载

当我们在调试过程中可能需要导出ila抓到的数据,然后在matlab中进行分析,比如做FFT分析。进一步的,可能需要多次导出ila抓到的数据,然后在matlab中对这些数据进行平均操作。为了提高效率,下面提供自动导出ila数据的tcl脚本。
for { set a 0} {$a < 20} {incr a} {
run_hw_ila [get_hw_ilas -of_objects [get_hw_devices xczu4_0] -filter {CELL_NAME=~“ctrl_inst/adc_inf/ila_2”}]
wait_on_hw_ila [get_hw_ilas -of_objects [get_hw_devices xczu4_0] -filter {CELL_NAME=~“ctrl_inst/adc_inf/ila_2”}]
display_hw_ila_data [upload_hw_ila_data [get_hw_ilas -of_objects [get_hw_devices xczu4_0] -filter {CELL_NAME=~“ctrl_inst/adc_inf/ila_2”}]]

write_hw_ila_data -csv_file $a.csv hw_ila_data_1
}
因为不知如何拼接字符串,所以只能导出在默认目录。当然,ila的名字改成自己项目中的名字。
下面顺便提供如何在matlab中读取多个文件的代码:
% ADC fft结果平均
list = dir(‘digital-board_alone_adcdata*.csv’);
fs = 160e6;
data = zeros(65536,1);
for i = 1:length(list)
adc_data = readmatrix(strcat(‘digital-board_alone_adcdata’,list(i).name));
% adc_data = readmatrix(‘iladata.csv’);
adc_data = adc_data(:,4);
fft_len = length(adc_data);
win = kaiser(fft_len,12);
adc_data = adc_data .* win;
y_adc_data = fftshift(fft(adc_data));
f_adc_data = -fs/2:fs/length(y_adc_data):fs/2-fs/length(y_adc_data);
abs_y = abs(y_adc_data);
data = abs_y/i + data (i-1)/i;
end
figure(12);
plot(f_adc_data,20
log(data/max(data)));

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/484482
推荐阅读
相关标签
  

闽ICP备14008679号