您当前的位置:中国品味生活网 资讯 正文

把握这种办法让你快速完成FPGA指数和对数运算

2019-11-08 17:17:17  阅读:5606 作者:责任编辑NO。郑子龙0371

不想错失我的推送,记住右上角-检查大众号-设为星标,摘下星星送给我!

开源骚客大众号专心于共享FPGA项目开发经历,期望协助到更多学习FPGA的朋友,欢迎咱们投稿。假如咱们有其他需求,增加Kevin微信:opensoc888,注明:FPGA

FPGA完成加法和减法运算分外的简略,完成乘法和除法可以用IP,那完成对数和指数运算该用什么呢?

用 IP Core?

当然关于对数和指数运算,FPGA 产商也提供有对应的 IP 。

在 Vivado 里边有个叫 floating-point 的 IP ,可拿来完成对数运算,并且仍是运用浮点数来进行核算。假如你在 FPGA 内部运用的是定点数,那就需求先将定点数转为浮点数。

完成指数运算,大部分的事例,好像都是引荐运用 Cordic 这个 IP 来做。当然也可以用这个算法来做对数运算。

尽管这儿说关于对数和指数运算,FPGA 也可以用IP,不过咱们别觉得有IP 用就简略了。IP 的那些设置,以及 IP 的输入数据等等,也够你忙活半响了。IP Core 功能强大的背面,也是需求付出代价的。

咱们这篇文章来介绍一种快速完成对数和指数运算的办法:根据查找表来完成

在某些项目中,咱们并不需求对很多数据进行对数和指数运算,亦或是只需求核算少数数据的对数和指数。

在这种情况下,根据查找表来完成,就显得十分方便和简便了!

那用查找表的办法怎样来做呢?

比方,核算 1 - 255 这 255 个数据的对数,怎样用查找表的办法来完成呢?

先用 Matlab 将 1-255 一切数据的对数都算出来。

可以正常的看到 y 取值如下图:

核算的成果是有小数的,FPGA表明小数不方便,为了可以更好的确保精度,可以先将小数的成果乘上1000。当然假如你对成果的精度要求不高,乘上100也行。

下图是乘上1000之后取整的成果:

之后将数据提取出来,运用 ROM 来将这些现已算好的数据存起来。便于ROM运用这些数据,咱们咱们可以将这些数据转化相对应的 mif 文件或许 coe文件。

将待求对数的数据当成 ROM 的读地址,ROM 的输出便是对数的成果了。

如何将对数的成果值转成 coe 文件或许 mif 文件呢?可以参阅如下 Matlab 代码:

关于将对数的成果值转成 mif 文件,咱们可参照上述代码自行更改。

关于用FPGA完成指数运算,也可以运用相同的办法,怎样写代码,就交给咱们自己来完成了!

关于运用查找表办法来完成对数运算的办法,期望对咱们有所启示。

喜爱这篇文章,请共享朋友圈

予人玫瑰,手留余香

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!