平台:matlab2021b
场景:在使用fir滤波器后,我们使用matlab生成coe文件后。在xilinx新建IP的后,数据流经过FIR的IP核后数据位宽变宽。这时候我们需要对数据进行截位。这时候需要读取coe文件求和后,计算我们需要截位的位宽。
下面时使用matlab读取coe文件的函数。
coeread

下面直接展示代码
Matlab
clc;
clear;
data = coeread('ADC_FIR_100KHZ.coe');
data_coe = data.Numerator;
data_sum = sum(data_coe);
data_width = data_sum/2^17;
读取data里面的Numerator就是数据。

直接将数据赋值给data_coe。
就可以对其进行操作啦。
笔者这里求和后,除以2的17次方,最接近1。这里xilinx的IP输出数据截位就是17位。
