导出ILA数据到Python

  1. 导出ILA数据

在空白处右键,选择Export ILA Data

Snipaste_2021-08-19_15-53-47

导出csv格式的文件,并选择文件路径和文件名:

Snipaste_2021-08-19_15-54-52

上面两步也可以使用tcl脚本代替:

write_hw_ila_data -csv_file {C:\usr\zhj\ila\iladata.csv} hw_ila_data_1

导出后的文件如下图所示,第一行是标题,有Sample in Buffer、Sample in Window、TRIGGER,后面就是我们采的信号的名称,但这个信号名称是包含例化的层级结构名字的。

image-20210820134619445

  1. 处理十进制数据

  如果我们在hw_ila的窗口中设置显示的数据格式为10进制,那么我们直接读取数据并绘图显示都是比较方便的:

# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

csv_name = r'davinci.csv'
csv_data = pd.read_csv(csv_name)
adc_data = np.array(csv_data['hs_adc_dac_module_top_inst/hs_adc_dac_module_core_inst/dbg_adc_data[7:0]'])
plt.figure()
plt.plot(adc_data)
plt.show()
  1. 处理十六进制数据

  如果我们保存的是16进制数据,那读进来后,是16进制的字符串序列,如下图的data_hex,我们只需将该序列转成int型的序列即可。

image-20210820173216467

通过如下方式进行转换:

data_hex = np.array(csv_data['hs_adc_dac_module_top_inst/hs_adc_dac_module_core_inst/inst_adc/m_axis_data_tdata[15:0]'])
data_int = list(map(lambda x:int(x, 16), data_hex))
  1. 处理二进制数据

  二进制跟十六进制的处理方式基本相同,

data_bin = np.array(csv_data['hs_adc_dac_module_top_inst/hs_adc_dac_module_core_inst/inst_adc/m_axis_data_tdata[15:0]'])
data_int = list(map(lambda x:int(x, 2), data_bin))
  1. 并行数据分离

  在FPGA中,我们经常需要处理一些并行数据,比如ADC采样率比较高时,数据往往是以并行的方式呈现,在debug时也将他们一起加入到ila中。

  假设FPGA内部数据以32路并行的方式进行传输,adc的量化位数为14bit,那么整个数据位宽是32*14=448,那么存储的文件内容如下:

image-20210820180516688

我们需要做的,就是将448bit数据,拆分成32个14bit数据,并将这些数据拼接成一个序列,绘图显示。

adc_data_448 = np.array(csv_data['adc_inst/phy_data[447:0]'])
lst = np.array([])
for dat1 in adc_data_448:
    dat2 = '{0:0448b}'.format(int(dat1,16)) #将16进制数据转成448bit的二进制
    for i in range(32):
        tmp = int(dat2[0+i*14:14+i*14],2)
        if tmp > 8192:
            tmp = tmp - 16384
        lst = np.append(lst, tmp)

欢迎关注微信公众号:Quant_Times
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值