Vivado使用IP核floating-point实现对数运算

时间:2024-03-27 09:44:17

    本文介绍使用IP核floating-point来计算对数,该IP计算对数时,计算的是Ln(A)(A是输入),如下图所示:

Vivado使用IP核floating-point实现对数运算

输入是浮点数,所以如果我们在FPGA内使用的定点数,则需要先将定点数转化为浮点数:

Vivado使用IP核floating-point实现对数运算

实现对数运算时,可以使用DSP核心,也可以不用,IP配置中提供了三个等级:

Vivado使用IP核floating-point实现对数运算

对于Flow Control可以选择带缓存的Blocking模式,也可以选择没有缓存的NonBlocking模式,延时也可以选择从0到23:

Vivado使用IP核floating-point实现对数运算

上面也提到,计算LOG的输入是浮点数,如果需要,可以继续使用floating-point来实现定点数转浮点数,对于转换IP的输入可以自主设定如下图所示,这里设为int16+fra16,输出为单精度浮点数,可以直接给计算LOG的IP核:

Vivado使用IP核floating-point实现对数运算

我们要计算以任意数为底的对数时,可以通过来计算,由此完成一次计算,需要两个定点转浮点的IP(fixtofloat),两个LOG的IP(log不使用DSP),以及一个除法IP(divide),最后再将浮点数转为定点数输出,综合实现后的资源占用情况为:

Vivado使用IP核floating-point实现对数运算

一次简单的RTL仿真为:

Vivado使用IP核floating-point实现对数运算