打印

ADI与TI的DSP产品的比较

[复制链接]
1220|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FCCdsp|  楼主 | 2017-11-13 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADI与TI的DSP产品的比较


很多做DSP开发的会想知道ADI的产品和TI的产品到底有什么不同,根据最近一段的学习,还有网上搜集的一些资料,现做总结如下,可以看出ADI的DSP产品相对来说还是比较稳定,比较有优势的。因为本人只用到了浮点系列,因此将TI 67x系列同ADI的SHARC系列做如下比较:

       共同处:都是32位浮点DSP,主频接近(200MHz-300MHz)。都有型号支持外部SRAM,SDRAM。片上外围器件功能基本类似,运算处理单元也基本类似。
       不同处:
       1、TI的指令为32bit宽度,而ADI指令为48Bit宽度,因而TI一条指令包含的信息比ADI少,这就造成ADI的汇编程序容易写一些,而TI的汇编程序难一些。
       说明:汇编指令包含的信息越多,它同高级语言的距离越短(一条C语句包含的指令信息更多),反之越远。高级语言同汇编语言相比当然是高级语言容易一些。所以说指令包含的信息多,编程就相对容易一些。
       举2个例子来说明48Bit指令和32Bit指令的特点:
  • ADI: dm(0xXXXXXXXX)=r0;
  • TI:
  • mvkl.s1 0xXXXXXXXX, a1
  • mvkh.s1 0xXXXXXXXX, a1
  • stw.d1 a0,*a1

复制代码
      ADI sharc的一条指令可以完成TI 67x 3条指令的功能(将一个寄存器的值存入DSP内部存储空间中的某一个地方)。关键就在于:一条ADI的48Bit指令就可以包含一个操作类型,一个32bit目标地址,一个源寄存器地址这些信息。而TI 672x的32Bit指令就必须用3条指令才能表达这样的信息,所以编写程序的难度和复杂度就相对大一些。
       另外一个例子,TI 67x指令要实现Loop,必须要有3条Loop相关指令,而ADI只要一条。
       2、在循环寻址方面,ADI的功能远强于TI的。TI 67x只支持2的N此方长度的环形缓冲区,而ADI为任意。
       3、TI的指令运行大多需要几个等待周期,而ADI除了跳转,返回指令,其他全部是单周期完成,这也造成了TI程序比ADI难写。
       4、TI 67x有CACHE,ADI的sharc没有,在执行外部代码时,TI占优势。
       5、DMA功能上,TI更强
       TI的671x,672x DMA功能(EDMA,dMAX)更强,支持1维,2维,3维以及各种不同事件触发,相应的配置寄存器也为数众多。而ADI的Sharck系列的DMA则相对简单一些,没有2维,3维DMA概念,DMA触发事件设置也没有TI丰富。可以说,Sharc的DMA功能是671x/672x的子集。
当然功能越多,寄存器越多,配置程序约难写。

       我们看出除去4,5条,ADI的DSP产品对于开发来说相对来说比较有优势,而且军工,雷达,高端音响等方面都使用的是ADI的产品。

相关帖子

沙发
shenmu2012| | 2017-11-13 13:56 | 只看该作者
ADI sharc的一条指令可以完成TI 67x 3条指令的功能(将一个寄存器的值存入DSP内部存储空间中的某一个地方)。关键就在于:一条ADI的48Bit指令就可以包含一个操作类型,一个32bit目标地址,一个源寄存器地址这些信息。
这是重点参考的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

967

主题

1447

帖子

9

粉丝