在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2208|回复: 1

[原创] C5509DSP FFT程序问题

[复制链接]
发表于 2008-5-26 19:52:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:07 编辑

在FFT程序中有一段程序是以下的形式
         MPY *AR0, *CDP+, AC2               
        ::MPY *AR1, *CDP+, AC3   
   在查看寄存器值的时候,发现累加器的低16位被清零,一直不明白是什么缘故,其中AR0与*CDP都为十六位,积存器值我复在下面了。
执行前数据:AC2 : 0xFFFFF30022
                     AC3 : 0x0000220000
执行后数据:AC2 : 0x0000000000
                     AC3 : 0x0000000000
其中CDP指向的内容为0:我的理解为AR0与*CDP的内容向乘后放入了AC2的高16位,那为什么低16位的数据也要清零?
       希望那位好心人能帮忙解释一下!!







 楼主| 发表于 2008-5-27 19:11:39 | 显示全部楼层
问题解决了,两个16位的数相乘是32位的,我没有考虑到!!还基础不扎实啊!!
另外在说一个例子子也是昨天在分析程序时发现的
MASR40 uns(*AR0), uns(*CDP), AC0
:: MACR40 uns(*AR1),
Before  After
AC0 00 6900 0000  AC0 00 486B 0000
AC1 00 0023 0000  AC1 00 95E3 0000
*AR0 3400  *AR0 3400
*AR1 EF00  *AR1 EF00
*CDP A067  *CDP A067
ACOV0 0  ACOV0 0
ACOV1 0  ACOV1 0
CARRY 0  CARRY 0
FRCT 0  FRCT 0
上面的例子中由于MAC和MAS后面有R,所以C55X系列采用了舍入模式(RDM位,ST2_55的第10位),具体内容不说了,主要是通过判断低16位的大小判断舍入方式,但结果都是低16位清零,由于我是初学也不知道是否是55X所特有的处理方式,不过这种方式在做FFT时是一种很方便的语句。
MPY的并行语句也有后面加R的,处理方法同上!!
小弟是DSP初学者,不求能够精通,但求天天有所收获!还有就是希望大家多多交流!

[ 本帖最后由 stan0660 于 2008-5-27 19:23 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 01:21 , Processed in 0.031515 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表