有很多客户在比较FFTC-Model仿真和FFTIP前仿遇到问题。今天赛灵思技术专家对此提出三种原因和解决办法。
总结下来,原因大概有三种:
C-Model的输入数据和IP仿真的输入不完全一致
C-Model的参数设置和IP的参数设置不完全一致
出现overflow
C-Model的输入数据和IP仿真的输入不完全一致
这里面需要注意的是,FFTC-Modelfixedpointinterface需要的输入数据范围在(-1,1)之间,而且是signedtwo's-complement(二进制补码有符号数),数据位宽是C_INPUT_WIDTH.小数点在C_INPUT_WIDTH–1,否则会报警.但Matlab的数据是complexdouble-precisionfloating-pointdata,所以需要用到Matlab的quantize来把数据量化.
显然FFTIP前仿是不需要量化的,因为对于FPGA没有小数点位.
为了保证这这个仿真的输入数据一致,建议把量化后的数据也作为FFTIP前仿的输入数据,因为量化之后是小数,可以乘以2^(C_INPUT_WIDTH–1),转为整数,注意这还是二进制补码数.
C-Model的参数设置和IP的参数设置不完全一致
scaling_sch在C-Model和IPcore的顺序是反的,例如scaling_sch[0]是第一个数据,scaling_sch[1]是第二个,但在FFTIP上需要把它们的顺序到过来,也就是scaling_sch[0]是最后一个数据,scaling_sch[1]是倒数第二个。
Overflow
责任编辑:lq