以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  DSP5000技术讨论  (http://sun4.cn/bbs/list.asp?boardid=28)
----  DSP芯片选用指南  (http://sun4.cn/bbs/dispbbs.asp?boardid=28&id=1604)

--  作者:wangxinxin
--  发布时间:2010-11-22 10:42:04
--  DSP芯片选用指南

ADSP-21xx
结构特点

16-bit定点DSP
带8-bit保护位的40-bit
ACC单周期执行指令多数指令
可以条件执行


寻址模式

立即数寻址、寄存器直接寻址、存储器直接寻址、以及寄存器间接寻址。对于ADSP-219x,还有寄存器事后修改、立即修改、直接和间接偏移寻址模式。其程序序列具有内部循环计数和循环堆栈,从而实现零开销循环。每个地址发生器支持四个循环缓冲器,每个循环缓冲器又有三个寄存器,用来定义循环的终点、长度和访问的地址。一个地址发生器支持位倒序寻址。ADSP-219x支持十六个循环缓冲器,通过使用一个地址发生器影子寄存器和一组基寄存器,以增加循环缓冲的灵活性。

特殊指令

ADSP-219x可以有条件地执行大多数指令。其do until命令可以建立任意长度的指令序列,作四层嵌套循环。ADSP-219x则支持八层嵌套。ADSP-21xx是非流水机型,因而不会对转移或子程序调用带来影响。

开发支持

ADI公司的软件和硬件开发工具包括该公司的VisualDSP集成开发环境、在线仿真器和开发套件。VisualDSP提供对优化的C编译器、汇编器、连接器及调试器的接口。该公司的仿真器适用于通用的串口总线、PCI、以及以太网主机平台。其EZ-Kit Lite包括一个评估板和有限的、但功能齐全的VisualDSP。

TigerSharc DSP
结构特点

16-bit定点DSP
VLIW(超长指令字)结构可以在一个机器周期内执行四条指令
该系列DSP具有SIMD(单条指令多个数据)的能力
第一个TigerSharc DSP集成了6 Mbit的RAM
寻址模式

立即数寻址、位倒序寻址、块循环、寄存器直接寻址和寄存器间接寻址。其SIMD存储器传输机制使单个取数和存储指令在两个存储器块和两个计算单元之间作数据传输。

特殊指令

指令集直接支持高精度和低精度类型数据之间的转换,如在单周期内将定点数转换成浮点数,将16-bit数转换为32-bit数。TigerSharc没有硬件模式,其指令集支持算术功能,如带符号的和不带符号的整数和小数运算。这将简化高级语言的编程。在各种情况下都提供优化的饱和模式。

开发支持

ADI公司的软件和硬件开发工具包括该公司的VisualDSP集成开发环境、在线仿真器和开发套件。VisualDSP提供对优化的C编译器、汇编器、连接器及调试器的接口。该公司的仿真器适用于通用的串口总线、PCI、以及以太网主机平台。其EZ-Kit Lite包括一个评估板和有限的、但功能齐全的VisualDSP。

SHARC DSP
结构特点

16-bit定点DSP
支持定点和浮点运算
新的SIMD锤头运算(Hammer-head operates)
集成有大的SRAM
寻址模式

立即数寻址、索引寻址、位倒序寻址、块循环、寄存器直接寻址和寄存器间接寻址。(对于片外存储器的访问,必须采用间接寻址。)

特殊指令

SHARC提供位操作、平方根的倒数、条件子程序调用、零开销单条指令和块指令循环、定点数和浮点数的比较、以及大多数指令的条件执行。SHARC支持IEEE-754单精度浮点数(23-bit尾数、8-bit指数以及符号位),40-bit扩展精度IEEE格式(32-bit尾数)。

开发支持

ADI公司的软件和硬件开发工具包括该公司的VisualDSP集成开发环境、在线仿真器和开发套件。VisualDSP提供对优化的C编译器、汇编器、连接器及调试器的接口。该公司的仿真器适用于通用的串口总线、PCI、以及以太网主机平台。其EZ-Kit Lite包括一个评估板和有限的、但功能齐全的VisualDSP。其SHARC汇编语言以一种代数式语法为基础。

Lucent
DSP-16xx

DSP 16000


DSP 16xx
结构特点

16-bit定点DSP
具有16316-bit的乘法器
36-bit的ALU/移位器
所有片种都有片内ROM
工作在2.7-4.75V
特殊指令

单条指令/块指令的硬件循环,条件子程序调用,比较,混合寻址,指数检测,bit位提取、移位和替换。没有旋转指令。

开发支持

其硬件开发系统包括在线仿真器。评估板和演示板。软件开发工具包括汇编器/连接器,调试器,软仿真器和应用程序库。EDA厂商还提供将DSP软仿真器模块插入的系统级的仿真工具。

DSP 16000
结构特点

双MAC单元
支持16332-和32332-bit的乘法ALU
支持16-、32-、40-bit运算
X和Y存储器具有32-bit数据宽度
寻址模式

寄存器和存储器直接寻址,寄存器间接寻址,立即数寻址以及寄存器+置换寻址。由于器件不提供位倒序寻址,只能用软件来实现。支持两个并发的循环缓冲器。寻址模式面向指针算术运算。

特殊指令

支持16-bit和32-bit的混合指令。因为转移需要三个机器周期,许多指令的条件执行可以避免转移。Redo指令可以重新运行用do指令装入cache的代码。其追索编码器将加速Viterbi比较指令的执行,并产生模式控制的效果。此外,用户可以使用比较指令来决定Viterbi处理的最小公共通道。其他的特殊指令还有旋转、取负、取绝对值和定点算术运算。

开发支持

软件工具包括ANSI C 编译器、汇编器、连接器、调试器和软仿真器。硬件工具包括在线仿真器和开发板。基于Gnu C的C编译器进行局部和全局的优化,以便进行C源代码的调试,也可作C和汇编混合代码的调试。汇编器支持ANSI C预处理,允许文件包含、宏置换、条件汇编,以及各种常数格式。该汇编器还允许表达式包含多个用户定义的标号,并支持预处理伪指令,使汇编器与调试器共享宏运算。调试器支持单个或多个同类的或不同类的处理器的集成调试。支持数据和指令断点、接近实时的软件仿真、混合的C代码和汇编代码调试、广泛的代码分析、用TargetView通信系统通过JTAG来作独立的或连网的硬件仿真、硬件跟踪,以及片内的周期计数。广泛的片内调试硬件可以实时监视许多处理器。在调试器中单步运行代码时,可以图形化地显示通过DSP的数据流。这样,用户可以观察到处理器中没有充分使用的部分,修改代码来提高效率。Synopsys COSSAP, Cadence SPW, 以及 Mathworks Matlab 等第三方的工具也支持 DSP16000的仿真。软件工具的价格为1500美圆,硬件工具的价格为5000至7000美圆。

Motorola
DSP-56800

DSP 563xx


DSP 56800
结构特点

16-bit定点DSP
带有控制功能的DSP
可以中断的硬件do循环
工作于2.7V和70MHz
寻址模式

寄存器直接寻址、短的或长的存储器直接寻址、七个存储器间接寻址、以及立即数寻址。还支持短的转移偏置和循环缓冲器的模数计算。

特殊指令

可以作单指令或块指令的硬件do或repeat循环。与ALU运算并行的单个或双的并行搬移指令,在取指令的同时允许作两个存储器访问。允许对任何寄存器或存储器作位操作。在作单周期乘法和MAC的同时,作取整、加、减、平方。使用一个条件转移指令和比较指令,实现搜索和分类算法。如果特定的条件为真,则DSP执行从一个寄存器到另一个的传输(例如,存储一个数列里最大值的索引值)。

开发支持

使用OnCE口,通过JTAG接口作片上仿真。CodeWarrior提供集成的开发环境,其中包括C编译器、汇编器、连接器、软仿真器、以及图形化的源代码和汇编级的调试器。其评估模块为DSP56824EVM,开发系统为DSP-56824ADS。



DSP 563xx
结构特点

24-bit定点DSP
七级流水,包含两个取指、一个解码、两个地址产生、以及两个执行
具有条件ALU指令
以寄存器为基础的结构
与核执行单元并发的六通道DMA操作
多数器件工作于3.3V,并兼容5V的I/O;有些器件工作于1.8V,兼容3.3V的I/O
与核并行工作的滤波器协处理器
特殊指令

桶型移位器支持多bit移位指令,可以在两个方向上移动任意多位。该移位器还支持bit流解析与产生。支持并行ALU指令的条件执行。如果测试条件为假,则处理器执行NOP指令。563xx执行16-bit的算术运算,这对于诸如LD-CELP等压缩算法非常有用。通常,用24-bit的结构来作16-bit的运算时,性能会有所降低,因为必须用软件对24-bit的数作舍入运算。

开发支持

开发系统可以用于评估芯片和目标系统。该系统包括应用开发模块、主机接口卡、命令转换器、汇编器、软仿真器、以及C编译器。以JTAG为基础的OnCE口可用于实时检查所有的内部总线,记录最后的十二条指令。MOTOROLA提供用于DSP563xx系列的套装的56种硬件的和软件的工具。第三方的工具包括Tasking的编译器和调试器,Domain Technologies的调试器。

Lucent/Motorola
StarCore SC100


StarCore SC100
结构特点

16-bit定点DSP核
DSP结构可以升级
可变长度指令提高代码的效率和并行性
更好的C程序编译器


寻址模式

寄存器直接寻址、地址寄存器间接寻址、与程序计数器相关的寻址模式、以及用立即数来决定感兴趣的数据或地址的特殊寻址模式。

特殊指令

SC140的多个乘法器支持带符号的和无符号操作数,包括小数与整数格式的运算及其各种组合。其MAC单元支持加、减、取负、取绝对值、以及清零。MAC单元还支持除法、比较、最大值/最小值运算,在寄存器、算术移位和取整之间转移。通过将寄存器中的值看成是打包成对的16-bit的操作数,支持单指令多数据(SIMD)的最大值/最小值、加、减(MAX2,ADD2,SUB2)。使用这些指令,可以在单个周期内执行八个加法,或最大值/最小值运算。SC140包括一个专门的最大值/最小值运算单元,和维特比(Viterbi)的左移指令一起工作,以便有效地实现维特比编码算法。

开发支持

其开发工具包括汇编器、优化器、连接器、软仿真器、ANSI C编译器及与C11兼容的C/C11编译器。该编译器支持ITU/ETSI标准。

Texas Instrument
TMS320C2000

TMS320C5000

TMS320C6000


TMS320C2000
结构特点

16-bit定点DSP
哈佛结构支持两个分开的总线结构
双访问RAM允许在同一个周期内读或写RAM两次
工作于3.3V


综合介绍

TI的TMS320C2000 DSP是基于320C2xLP核。C2xLP核具有4级流水,工作在40MHz。具有JTAG仿真模块。

C2xLP有一个中心算术逻辑单元(CALU),及32-bit的累加器(Acc)。Acc也是CALU的一个输入。Acc的其他输入包括16316-bit的乘法器通过定标移位器,以及输入数据定标移位器。软件可以通过进位位旋转Acc的内容,来实施位操作和测试。

为了实现小数的算术运算和验证小数的乘积,C2xLP的乘积寄存器的输出通过乘积移位器,以抑制运算中产生的多出来的bit。该乘积定标移位器允许作128个乘积累加而不会产生溢出。基本的乘积累加(MAC)周期,包括将一个数据存储器的值乘以一个程序存储器的值,并将结果加给累加器。当C2000循环执行MAC,则程序计数器自动增量,并将程序总线释放给第二个操作数,从而达到单周期执行MAC。

C2xLP可以访问64000个16-bit的I/O口。C2000的外设,诸如串口、软件等待状态发生器等都映射为数据或I/O空间。用户程序必须使用其他的I/O地址来访问映射在I/O空间的片外外设。C2000系列中的多数芯片可以产生0-7个等待状态。

C2000系列由C20x和C24x系列组成。C20x的目标是低性能的电信设备,而C24x的目标是数字化的马达控制。

C24x系列的芯片具有事件管理器,以便支持马达控制。该事件管理器具有三个加/减定时器和九个比较器,可以和波形产生逻辑配合产生12PWM的输出。支持同步的和异步的PWM产生。它还支持一个空间向量PWM状态机,用开关功率晶体管来实现,以延长晶体管的寿命和降低功耗。一个关机段产生单元也有助于保护功率晶体管。此外,事件管理器还集成了四个采集输入,其中的两个用于光编码器正交脉冲的直接输入。

C24x系列的芯片还集成有10-bit的A/D变换器,在500ns的时间内对模拟信号作变换。另外还有8个或16个复用输入通道。有些新的C24x系列的芯片还有自动排序的能力,按顺序作16个变换,一个独立的采样/保持(S/H)预定标器,通过支持不同的输入阻抗,给用户以极大的灵活性。有些C24x系列的芯片有8K-32K字的闪烁存储器(flash)。

寻址模式

立即数寻址、分页的存储器直接寻址(指令里的7-bit和数据页指针的9-bit形成数据存储器的地址)、寄存器间接寻址(使用8个辅助寄存器中的一个)、辅助寄存器自动增量或减量寻址。没有循环缓冲。

特殊指令

MAC和数据移动指令(MACD)增加了将片内RAM的数据块移向MAC单元。当CPU使用输入的数据值时,CPU将该数据值移至下一个存储器单元。MACD也是使用循环缓冲器的一个替代方法,对于卷积和横向滤波器是很有用的。C2000可以作单指令循环、乘法并累加前一个积、乘法并减去前一个积、累加前一个积并移动数据、多条件转移和调用、存长立即数到数据存储器、向左或向右旋转累加器、数据块移动。

开发支持

TI的Code Composer4.10是一个集成的开发环境,支持编辑、建立、调试、分析和项目管理。这个价值为1995美圆的开发环境包括ANSI C编译器、汇编器、连接器、软仿真器、实时分析器,数据是可视化的。TI的仿真器支持JTAG非插入式的边界扫描仿真。该公司也分别提供C编译器、汇编器、连接器、软仿真器、实时分析器和应用程序库。第三方可以提供评估模块、仿真器、以及应用算法。



TMS320C5000
结构特点

16-bit定点DSP
C55x有双MAC单元;C54x有单MAC单元
C55的指令长度可变,且没有排队的限制
C55x有12组总线;C54x有8组总线
工作于0.9V和300MHz
综合介绍


C5000是16-bit定点DSP系列,包括旧有的C5x、当前主流的C54x和最新的C55x。

C55x和C54x源代码兼容,而C5x和C2x源代码兼容。C54x关注于低功耗,而C55x则将低功耗提到一个新水平:300MHz的C55x和120MHz的C54x相比,性能提高5倍,而功耗则降到六分之一。尽管C5x还在全线生产,但公司已经将新设计转向C54x 和C55x。C54x 和C55x采用改进的哈佛结构。

C55x 具有12组独立的总线,而C54x则有8组。它们都有一组程序总线和相应的程序地址总线。C54x总线的宽度为16-bit,而C55x总线的宽度为32-bit。C55x有三组数据读总线和两组数据写总线,而C54x有两组数据读总线和一组数据写总线。每组数据总线都有其相应的地址总线。C55x的数据地址总线的宽度为24-bit,而C54x的数据地址总线的宽度为16-bit。

C54x使用两个辅助寄存器算术单元,在每个周期内产生一个或两个数据存储器地址。这四组内部总线和两个地址发生器使其可以进行多操作数运算。

C55x的地址-数据流单元(ADFU)包含了专门的硬件来管理五组数据总线。该ADFU也可以作为通用的16-bit ALU,用于简单的算术运算。该ALU从指令缓冲单元(IU)接收立即数,和存储器、ADFU寄存器、数据计算单元(DCU)寄存器、程序流单元(PFU)寄存器作双向通信。无论是ALU,还是三个地址寄存器ALU(ARAU)中的一个,都可以修改作间接寻址的九个地址寄存器。这三个ARAU为C55x的三组数据读总线提供独立的地址。这种并行性保证了在每个CPU周期内DCU去读两个16-bit的操作数和一个16-bit的系数。

C55x的DCU包含了两个MAC单元,在单周期内作两个17217-bit的MAC运算。它还包含了一个40-bit的ALU和四个40-bit的累加器寄存器、一个桶型移位器、以及专门的Viterbi算法硬件。每个MAC单元包含一个乘法器和带32-或40-bit饱和逻辑的加法器。三个数据读总线将两个数据流和一个公共系数流送给两个MAC单元。用户可以用ALU作32-bit的运算,或分开作两个16-bit的运算。除开接受从DCU的40-bit Acc寄存器来的输入外,ALU还从IU接受立即数,并和存储器、ADFU寄存器、PFU寄存器作双向通信。

C54x是单17217-bit MAC机器,有一个40-bit的加法器、两个40-bit的Acc和一个分开的40-bit的ALU。与C55x相类似,C54x的ALU也可以作成两个16-bit的配置,完成两个单周期运算。乘法器输出处的40-bit的加法器允许作非流水的MAC运算,以及并行的两个加法和乘法。单周期归一化和指数编码支持浮点数运算。

两个系列的结构都支持一个桶型移位器,将40-bit的Acc的值左移或右移最多达31bit。该桶型移位器将移位后的值送给DCU的ALU,以便作进一步的运算。指令集中关于二操作数、三操作数和32-bit操作数的指令,支持结构的并行性。八个可以独立寻址的辅助寄存器和软件堆栈提高了C编译器的效率。

C55x可以执行可变长度的指令,这和C54x有显著的不同。C54x的指令长度为固定的16-bit,而C55x的指令长度则从8到48 bit。C55x的IU缓存64 byte的代码,且有一个解码逻辑来确认可变长度指令中各指令的区别。局部循环指令使用指令缓冲队列来循环执行代码块。指令缓冲队列还可以在执行条件程序流控制指令的条件测试时,推测性地提取指令。指令解码器按排列顺序对指令解码,而不是执行动态时序,从而可以在预定的时间得到结果。

C55x的PFU跟踪程序的执行点,并为多达16Mbyte的程序存储器产生24-bit的地址。该单元的硬件,可用于循环、灵活性转移、条件执行、以及流水保护。单独的程序计数器可以保证从子程序或中断服务子程序快速返回。该PFU还包括管理指令流水和四个CPU状态寄存器的逻辑。它以硬件方式可以提供四层块循环嵌套。其硬件还支持条件循环。PFU处理流水控制冒险,并对读后写及写后读提供保护。当在指令流中这种冒险发生时,流水保护逻辑就插入一些周期,保证程序的正确执行。集成的软件等待状态发生器使用户可以使用较慢的外部存储器。

该系列的所有DSP都支持片内双访问RAM(DARAM),用户可以将其配置为程序存储器或数据存储器。C55x还有扩展的同步突发性RAM、同步DRAM和异步SRAM及DRAM。片内的锁相环(PLL)允许用户抑制时钟,但C55x核还可以激活与自动管理片内外设和存储器的功耗。当程序不再访问片内存储器时,它们就会被切换到低功率模式。处理器对片内外设也提供类似的控制。

C55x还设置了用户可控的低功率IDLE域,包括CPU、DMA、外设、外部存储器接口、指令队列、以及时钟发生电路。

寻址模式

C54x支持单数据存储器操作数寻址和32-bit操作数寻址,还使用并行指令支持双数据存储器操作数寻址。它也提供立即数寻址、存储器映射寻址、循环寻址和位倒序寻址。

在C54x的基础上,C55x还支持绝对值寻址、寄存器间接寻址、直接寻址,即位移模式。C55x的ADFU包括专门的寄存器,支持使用间接寻址指令的循环寻址。可以同时使用五个独立的循环缓冲器和三个独立的缓冲器长度。这些循环缓冲器没有地址排队的限制。C54x支持两个任意长度的循环缓冲器。

特殊指令

C54x有专门功能指令,如FIR滤波器、单指令或块指令循环、八个并行指令(如并行存储或乘加)、乘法累加和减(十个乘法指令)、八个双操作数存储器搬移。C55x还有专门的指令,充分利用增加的功能单元和并行能力的优点。用户定义的并行机制,允许将执行两个操作的指令加以组合。

开发支持

eXpressDSP软件技术包括DSP集成开发工具:可升级的实时软件基础、可重复使用的应用软件接口标准、以及不断增加的第三方的软件模块。Code Composer Studio是一个集成的DSP开发工具套件,包括C5000的C编译器、DSP/BIOS、实时数据交换技术等。