0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA中实现对数运算的方法

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-07-06 14:52 次阅读

FPGA中实现对数运算主要有三种方法:

(1)在外部直接算好对数值,按照数值范围做个表,存在ram里,到时候查表。为了减少表深度,提高资源利用率,可以考虑去掉部分低位数值,损失一定的精度。

(2)使用cordic算法求解对数。

(3)log10(x)=ln(x) * log10(e) , log10(e)是常数可以手动先计算好,用IP Core的话多个乘法器。

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

c7463d14-fce2-11ec-ba43-dac502259ad0.png

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

c75ee594-fce2-11ec-ba43-dac502259ad0.png

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

c775de70-fce2-11ec-ba43-dac502259ad0.png

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

c78c89a4-fce2-11ec-ba43-dac502259ad0.png

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

c7af9390-fce2-11ec-ba43-dac502259ad0.png

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

c7c26d80-fce2-11ec-ba43-dac502259ad0.png

一次简单的RTL仿真为:

c7e073c0-fce2-11ec-ba43-dac502259ad0.png

原文标题:FPGA中实现对数运算

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7681

    浏览量

    344332
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593127
  • 乘法器
    +关注

    关注

    8

    文章

    191

    浏览量

    36581

原文标题:FPGA中实现对数运算

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA实现原理

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种特殊的集成电路,其内部结构由大量的可配置逻辑块和互连线组成。FPGA可以通过编程来实现各种数字系统功能
    发表于 01-26 10:03

    浮点LMS算法的FPGA实现

    运算运算步骤远比定点运算繁琐,运算速度慢且所需硬件资源大大增加,因此基于浮点运算的LMS算法的硬件实现
    的头像 发表于 12-21 16:40 298次阅读

    基于FPGA的线性插值-

    上次分享了基于FPGA的线性插值的背景和方法原理,今天分享 方法原理的验证。 通常FPGA的开发分为电路功能设计、设计输入、功能仿真、综合优化、综合后仿真、
    发表于 11-23 23:09

    C语言运算符的使用方法

    详细介绍了C语言表达式、算术运算符、赋值运算符、关系运算符、条件结构、逻辑运算符、位运算符的语法和使用
    发表于 11-02 11:30 502次阅读
    C语言<b class='flag-5'>运算</b>符的使用<b class='flag-5'>方法</b>

    卡尔曼滤波算法是怎么实现对数据的预测处理的?

    卡尔曼滤波算法是怎么实现对数据的预测处理的
    发表于 10-10 08:28

    为什么研究浮点加法运算,对FPGA实现方法很有必要?

    ,浮点加法器是现代信号处理系统中最重要的部件之一。FPGA是当前数字电路研究开发的一种重要实现形式,它与全定制ASIC电路相比,具有开发周期短、成本低等优点。 但多数FPGA不支持浮点运算
    的头像 发表于 09-22 10:40 431次阅读
    为什么研究浮点加法<b class='flag-5'>运算</b>,对<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>方法</b>很有必要?

    FPGA进行基本运算和特殊函数定点运算

    不友好. 二、FPGA中的加减乘除 1.硬件资源 Xilinx 7系列的FPGA中有DSP Slice ,叫做“DSP48E1”这一专用硬件资源,这是一个功能强大的计算单元,单就用于基本运算的部分有加减单元和乘法器。详见参考文献
    的头像 发表于 09-05 11:45 302次阅读

    TCP和UDP协议的实现方法

    目前TCP协议大多由cpu跑代码实现, 这次用FPGA的纯逻辑实现 , System Verilog编写,下面给大家粗略讲一下我的实现方法
    的头像 发表于 08-30 10:46 443次阅读
    TCP和UDP协议的<b class='flag-5'>实现</b><b class='flag-5'>方法</b>

    fpga实现加法和减法运算方法是什么

    FPGA实现加法和减法运算非常简单,实现乘法和除法可以用IP,那实现对数和指数
    发表于 08-05 09:37 919次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>实现</b>加法和减法<b class='flag-5'>运算</b>的<b class='flag-5'>方法</b>是什么

    利用FPGA进行基本运算及特殊函数定点运算

    的硬件结构和开发特性使得其对很多算法不友好,之前本人零散地总结和转载了些基本的数学运算FPGA中的实现方式,今天做一个系统的总结归纳。 二、FPGA中的加减乘除 1.硬件资源 Xil
    的头像 发表于 07-19 14:25 1038次阅读
    利用<b class='flag-5'>FPGA</b>进行基本<b class='flag-5'>运算</b>及特殊函数定点<b class='flag-5'>运算</b>

    荐读:FPGA设计经验之图像处理

    ,CPU在进行运算时要把数据从内存取出来,算好了在放回去。这样内存带宽往往成了运算速度的瓶颈,数据搬运过程的功耗占的比重也不会小。FPGA
    发表于 06-08 15:55

    简谈FPGA设计不同设计方法资源消耗对比

    今天和大侠简单聊一聊FPGA设计不同设计方法硬件资源消耗对比,话不多说,上货。 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对比资源消耗。计数器实现的功能
    发表于 05-31 17:25

    FPGA常用运算模块-除法器

    本文是本系列的第四篇,本文主要介绍FPGA常用运算模块-除法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:20 2122次阅读
    <b class='flag-5'>FPGA</b>常用<b class='flag-5'>运算</b>模块-除法器

    FPGA常用运算模块-乘加器

    本文是本系列的第三篇,本文主要介绍FPGA常用运算模块-乘加器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:17 996次阅读
    <b class='flag-5'>FPGA</b>常用<b class='flag-5'>运算</b>模块-乘加器

    如何在FPGA中进行简单和复杂的数学运算

    由于FPGA可以对算法进行并行化,所以FPGA 非常适合在可编程逻辑中实现数学运算
    发表于 05-15 11:29 2275次阅读
    如何在<b class='flag-5'>FPGA</b>中进行简单和复杂的数学<b class='flag-5'>运算</b>?