您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 【求助】定点DSP BF609的float运算问题
本帖共有633个阅读者
发表帖子 发表投票 回复主题
【求助】定点DSP BF609的float运算问题
chiliwang(论坛新手)
chiliwang
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:162
积分:10
注册时间:2014/4/11
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
【求助】定点DSP BF609的float运算问题
背景
我们知道Blackfin系列相当于16位的定点DSP。而定点DSP无法直接进行浮点运算(这种说法是否正确?
网上的资料的说法是:我们用C语言定义float变量进行运算时,编译器会把这些浮点运算编译成定点数,完成运算,这样会大大的加大运算周期。所以在定点DSP上进行浮点运算的正确的办法是,将浮点数进行整数的小数定标,化为frac16变量,这样由于硬件支持定点小数运算,运算周期很短。
      下面是问题:
1,用C语言在定点DSP上定义float变量进行计算,实际是如何处理的,是编译器自动编译成定点小数进行计算,还是其他方式?
自己做的验证,如附件图片所示,我在程序中进行了浮点运算,实际debug中的浮点运算对应的汇编只是一个store指令,就完成了浮点运算(经过那个指令后,局部变量获得了运算结果)。也就是说实际并没有所谓的大量运算周期什么的,是我的验证不科学还是什么,实际的定点DSP进行float运算到底是怎样处理的?
        2,运用定点DSP进行小数的算法分析一般都要进行小数点的定标Q吗,运用的实际例子又哪些呢?
初次接触DSP,望各位前辈多多指教,不胜感激!!!

上传的图片
  2014112815384395.png [ 194.44 KB 1600×900 ] (缩略时请点击查看原图)

 


i can so i live.
等级:论坛新手 参考IP地址:*.*.*.*
2014/11/28 15:38:57
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

定点处理器如何运算浮点,这个我没研究过,听说是先乘上一个数据,将浮点转为定点,再计算,完成后再将其转为浮点。运算时间肯定会比定点的时间长,计算效率仅仅用一次运算来算,不可能算准确,你可以让其做几万次运算,然后看CPU消耗的时钟,这样可能会准确一点。

不懂定标Q。



这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/12/3 22:29:39
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不正确,定点Blackfin如何做浮点运算是可以的,ADI有专门写过一篇文章来讲怎么做,只是过程比较复杂,肯定没有浮点的SHARC处理器做的好。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/3/12 8:18:11
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154193 Call, 1 Queries, Processed in 0.015625 second(s),