This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28027: 此芯片的乘法运算问题

Part Number: TMS320F28027
Other Parts Discussed in Thread: C2000WARE

情况一: int16 a,b;int32 c,d即四个整型变量,范围不同

            问题:a*b和 a*c和c*d指令周期分别是多少?

情况二:int16 m;int32 n,float k分别是三种变量

             问题:m*k和n*k指令周期分别是多少?

  • 1、运行在ram中的话一个指令周期可以执行一个32位*32位的乘法。

    2、定点芯片执行浮点运算需要调用IQmath库,对应的执行时间可以参考文档:file:///C:/ti/c2000/C2000Ware_4_01_00_00/libraries/math/IQmath/c28/docs/IQmath_Quickstart.pdf

    4.3. C28x IQmath Library Benchmarks

    其中IQNmpyIQX的计算大概需要7个周期

  • 简单的浮点数与整数相乘也要调用IQmath库?此外关于IQmath库的问题一直没得到答复那 IQmath的问题在我以前发的帖子 谢谢

  • 此外我看了浮点数使用IQ的时候先乘以一个长整型数据后再参与运算最后再转换为浮点数,难道整型数据直接与浮点数相乘的执行时间比IQ那样操作还长?

    #define   _IQ28(A)      (long) ((A) * 268435456.0L)

  • 我看了浮点数使用IQ的时候先乘以一个长整型数据后再参与运算最后再转换为浮点数,难道整型数据直接与浮点数相乘的执行时间比IQ那样操作还长?

    #define   _IQ28(A)      (long) ((A) * 268435456.0L) 是不是调用芯片本身存储的数才会导致运算速度提升?谢谢!

  • 你好,关于定点芯片做浮点运算这个问题我也是跟其他工程师确认了一下,收到的回复是这样的:

    在没有硬件加速的情况下唯一的另一种方法是使用基于c的浮点内联函数,但是这将比IQMath慢很多。

  • 比如我现在我就是单纯地一个整数乘以浮点数然后赋值给一个整数,这个时候使用IQ格式也比单纯的使用基于c的浮点内联函数操作快?

    uint16 a,b;float c

    情况一

    a=IQtoF(IQ(b*c));

    情况二

    a=b* IQ(c) >> GLOBAL_Q;

    情况三

    a=b*c;

    上面三种情况哪种运算速度快?

  • OK,我会再确认一下回复你。

  • OK,期待答复,谢谢!

  • 对了,明天非工作日,算上时差,可能要等1~2天才会有回复。还请耐心等待

  • 您好!这些问题什么时候答复?

  • 目前没收到答复,收到会尽快更新

  • 你好,这三种情况是不同的。 1 给出一个浮点结果,其他两种类型的情况转换为整数。 三者没有可比性。 由于开销较小,选项 3 会更快。

  • 既然三开销小 那么还要IQ有什么意义?关于IQ的问题 始终没给一个合理的答复 我以前关于IQ的提问 回答的不明不白 麻烦给予详细解释 

  • 我真的建议你自己前往英文论坛咨询一下,没这么深入研究过IQmath,中文论坛这边无非也就是将国外工程师的答复翻译给你。翻译了这么久你也没觉得问题解决,我们也觉得在做无用的翻译工作。不如你自己去问一下,即使英文没那么好,但起码你们能更直接地交流。何必在这里纠结呢?

  • 我无法注册英文账号 此外英文水平也不佳 不是纠结的问题 贵司能否找一个比较了解IQ的人来回答问题?回答的时候能否用相关芯片的板子做验证?

  • 哎,我这边也没办法解决,现在国内的C2000工程师本来就少,你看中文论坛除了我和另外一名新同事还有别的工程师回复吗。。。

    然后我们都是驻在上海的,我们差不多已经在家办公快2个月了,根本没机会接触板子。

    所以现在唯一的办法就是升级英文论坛。。。

  • 那就帮忙英文网站多多咨询下 ,我主要是英文邮箱一直无法注册 关于英文邮箱的事以前也帮我解决过也不行 

  • 你这边方便再整理一下问题发个新帖吗?来来回回交流几次周期有点太长了,我这边处理的帖子比较多,问题连贯不起来。

    你重新发帖后在新帖里面再具体讨论一下