《DSP技术及应用》课件第2章_第1页
《DSP技术及应用》课件第2章_第2页
《DSP技术及应用》课件第2章_第3页
《DSP技术及应用》课件第2章_第4页
《DSP技术及应用》课件第2章_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章TMS320C54x数字信号

处理器硬件结构2.1

TMS320C54x的内部结构及主要特性2.2总线结构

2.3存储系统2.4中央处理单元(CPU)2.5

TMS320VC5416的引脚及说明

2.1

TMS320C54x的内部结构及主要特性

2.1.1

TMS320C54x的内部结构

TMS320C54x系列DSP芯片产品虽然很多,但其体系

结构基本上是相同的,特别是核心CPU部分,各个型号间

的差别主要是片内存储器和片内外设的配置。图2.1给出了TMS320C54x的典型内部结构框图。

C54x的硬件结构基本上可分为三大块,如下所述。

(1)CPU部分包括算术逻辑单元、累加器、乘法器/加法器、桶形移位寄存器、指数编码器、比较选择存储单元及各种专门用途的寄存器、地址生成器、内部总线等。

(2)存储器部分包括片内程序ROM、片内单访问数据RAM(SARAM)、片内双访问数据RAM(DARAM)及外接存储器接口等。

(3)片内外设部分包括定时器、各种类型的串口、主机接口、片内的锁相环(PLL)时钟发生器以及各种控制电路等。

此外,芯片中还包含仿真功能及IEEE1149.1标准接口,用于芯片开发应用时进行仿真。图2.1

TMS320C54x的典型内部结构框图2.1.2

TMS320C54x的主要特性

1.CPU部分

(1)先进的多总线结构,具有1条程序总线、3条数据总线和4条地址总线。

(2)40位算术逻辑单元(ALU),包括40位的桶形移位寄存器和2个独立的40位的累加器。

(3)17位×l7位的并行乘法器与一个40位的专用加法器结合在一起,用于非流水线的单周期乘/累加操作。

(4)比较、选择和存储单元(CSSU),用于Viterbi操作(一种通信的编码方式)中的求和/比较选择。

(5)指数编码器用于单周期内计算40位累加器的指数值。

(6)2个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术单元。

2.存储器系统

(1)具有192K字的可寻址空间:64K字的程序空间,64K字的数据空间和64K字的I/O空间,有的芯片内还具有多达256K~8M字的扩展地址空间。

(2)片内存储器的结构和容量可根据芯片的型号有所不同。

3.片内外设和专用电路

(1)软件可编程等待状态产生器。

(2)可编程的存储器体转换逻辑。

(3)片内的锁相环(PLL)时钟发生器,可采用内部振荡器或外部的时钟源。

(4)外部总线关断控制电路可用来断开外部数据总线、地址总线和控制信号。

(5)数据总线具有数据保持特性。

(6)可编程的定时器。

(7)直接存储器访问(DMA)控制器。

(8)有可与主机直接连接的8位并行主机接口(HPI),有些产品还包括扩展的8位并行主机接口(HPI8)和16位并行主机接口(HPI16)。

(9)片内的串口根据型号不同可分为全双工的标准串口、支持8位和16位数据传送的时分多路(TDM)串口、缓冲串口(BSP)以及多通道缓冲串口(McBSP)。

4.片内的引导功能

除TMS320C5420外,C54x系列所有的芯片都具有片内引导功能,能从片外的存储器或片内的串口将程序引导并装入指定的存储器。

5.指令系统

(1)单指令重复和块重复操作指令。

(2)用于程序和数据管理的存储器块传送指令。

(3)32位长操作数指令。

(4)同时读入2个或3个操作数的指令。

(5)并行存储和装入的算术指令。

(6)条件存储指令。

(7)快速从中断返回的指令。

(8)具有延迟转移的调用指令。

(9)指令的执行采用指令预提取、指令提取、指令译码、访问操作数、读取操作数和执行6级流水线并行结构,大大提高了指令的执行速度。

6.执行速度

(1)单指令周期时间分为25/20/15/12.5/10ns;

(2)每秒指令数为40/50/66/80/100/200MIPS(MIPS,每秒百万级指令数)。

7.电源和功耗

(1)可采用5V、3.3V、3V和1.8V(或2.5V)的超低电压

供电;在型号中分别用C、LC、UC和VC指明,如TMS320C54x、TMS320LC54x和TMS320UC54x。

(2)可采用功耗下降指令IDLE1、IDLE2和IDLE3控制芯片的功耗。

(3)可控制禁止CLKOUT信号。

8.片内的仿真功能

具有符合IEEE1149.1标准的片内仿真接口,可与主机连接,用于系统芯片的开发与应用。2.2总线结构

C54x片内有8条16位总线:1条程序总线、3条数据总线和4条地址总线,这些总线的功能如下:

(1)1条程序总线(PB)传送取自程序存储器的指令代码和立即操作数。

(2)3条数据总线(CB、DB和EB)将内部各单元(如CPU、数据地址生成电路、程序地址生成电路、芯片外围电路以及数据存储器)连接在一起。其中,CB和DB传送来自数据存储器的数据,EB传送写到存储器的数据。

(3)4条地址总线(PAB、CAB、DAB和EAB)传送执行指令所需的地址。

PB能够将存放在程序空间中的操作数(如系数表)传送到乘法器和加法器,以便执行乘法/累加操作,或通过数据传送指令(MVPD和READA指令)传送到数据空间的目的地。此种功能,连同双操作数的特性,支持在一个周期内执行3操作数指令(如FIRS指令)。

2.3存储系统

2.3.1存储器空间

在C54xDSP中,根据存储内容的需要,可将片内ROM和RAM存储器安排(也称映射)到程序存储器空间或数据存储器空间。一般将ROM映射到程序存储器空间,也可以将其某段存储器映射到数据存储器空间。

C54x有一个处理器模式寄存器(ProcessorModeStatusRegister,PMST),如图2.2所示,其中有3个状态位(MP/MC位、OVLY位和DROM位)可以很方便地“使能”或“禁止”片内存储器在程序和数据空间之间的映射。图2.2

PMST结构框图

PMST中3个状态位MP/MC、OVLY和DROM的功能如下。(1)MP/MC:微处理器/微计算机工作方式位。

若MP/MC=0,则片内ROM映射到程序存储器空间;若MP/MC=1,则片内ROM不能访问,若访问其对应地址,则需访问相应地址的外部程序存储器空间。

2)OVLY:RAM重复占用位。

OVLY=1,片内RAM既可映射到程序存储器空间,也可映射到数据存储器空间,DSP根据映射地址分辨其中存储单元的内容是程序代码还是数据。若映射到程序存储器空间,

则看做程序代码,若映射到数据存储器空间,则看做数据。开发人员在安排具体内容时,两者地址不要重叠。

OVLY=0,片内RAM只能映射到数据存储器空间而不能映射到程序存储器空间。

(3)DROM:数据ROM位。

DROM=1,片内ROM只映射到数据存储器空间;

DROM=0,片内ROM只映射到程序存储器空间。

图2.3是5416在程序存储器空间(Program,Page0)和数据存储器空间的基本存储器配置,地址范围均为0x0000~0xFFFF。图2.3

5416的基本存储器配置图2.4是5416在扩展程序空间(Program,Page1~127)的存储器配置图,地址范围为0x10000~0x7FFFFF。图2.4

5416扩展程序存储器配置2.3.2片内ROM存储器

C54x不同芯片的片内ROM容量不同,5416的片内ROM存储器空间地址和内容如表2.1所示。2.3.3数据存储器

C54x的数据存储器容量最多可达64K字。当处理器发出的地址处在片内存储器的范围内时,就对片内RAM或ROM(当ROM设为数据存储器时)寻址;当数据存储器地址产生器发出的地址不在片内存储器的范围内时,处理器就会自动对外部数据存储器寻址。寻址片内寄存器不需要插入等待周期,运行速度快。在64K字的数据存储器空间中,地址在0x0000~0x007F内的存储器为CPU或片内外设专用寄存器,称为数据存储器映射寄存器(Memory-MappedRegister,MMR),它们的高9位

地址均为0,有很多专用指令可以快速访问它们。其中0x00~0x1F为CPU寄存器地址,0x20~0x5F是片内外设寄存器地址,0x60~0x7F是用户可以自定义使用的单元。表2.2列出了5416的CPU寄存器地址和名称。然后像普通变量一样使用它,表2.3中的5416片内外设寄存器使用方法与此相同。所有C54xDSP只有两个通用I/O引脚,即XF和BIO,其中XF(ExternalFlagOutputPin,扩展输出标志引脚)是一个通用输出引脚,在寄存器ST1的bit13位;BIO(BranchControlInputPin,分支转移控制输入引脚)是一个通用的输入引脚,在分支跳转指令用于快速检测外设的状态时,可替代一个外部中断。

BIO没有相应的寄存器,只能用某些汇编指令直接读状态并确定是否分支跳转。若需要更多的I/O引脚,可以对主机接口(HPI)和串行接口(McBSP)进行配置,用作通用I/O引脚;另外还可以扩展外部I/O,但外部I/O必须使用缓冲或锁存电路配合外部I/O读写控制构成外部I/O的控制电路。2.3.4存储器空间

C54x除了程序和数据存储器空间外,还有一个I/O存储器空间。I/O是一个64K字的地址空间(0000H~FFFFH),实质上是为外部的存储器统一分配访问地址的,其存储单元全部在其他芯片内,如A/D、D/A等芯片内的存储器等。在汇编程序中,DSP可以用读端口指令PORTR和写端口指令PORTW对I/O存储器空间的外部寄存器进行访问。如读外部端口0x0001地址单元的内容时,可用汇编语句:

PORTR0x0001,Smem;

读外部端口0x0001内容到数据单元Smem若采用C语言编程,定义外部端口时加关键词“ioport”,名称为“port+十六进制地址形式”,读写操作与C语言相同。如上例用C语言编程如下:

ioportunsignedintport0001;//定义外部端口

Smem=port0001;

//读外部端口

2.4中央处理单元(CPU)

对所有的C54x器件来说,中央处理单元(CPU)是通用的。C54x并行结构的设计特点,使其能在一条指令周期内,高速地完成多项算术运算。CPU的基本组成如下:

(1)40位算术逻辑运算单元(ALU);

(2)2个40位累加器;

(3)一个-16~30位的桶形移位寄存器;

(4)乘法器/加法器单元;

(5)比较、选择和存储单元(CSSU);

(6)指数编码器;

(7)CPU状态和控制寄存器;

(8)两个地址发生器。

本节主要介绍C54xCPU各组成部分的原理和特点,并讨论CPU的状态和控制寄存器。2.4.1

CPU状态和控制寄存器

C54x有3个状态和控制寄存器,分别如下:

(1)状态寄存器0(ST0);

(2)状态寄存器1(ST1);

(3)处理器工作方式寄存器(PMST)。

ST0和ST1包含DSP的工作条件和工作方式状态;PMST包含存储器的设置状态及其他控制信息等。由于这些寄存器都是存储器映像寄存器,所以都可以快速地存放到数据存储器中,或者由数据存储器对它们进行加载,或者用子程序或者中断服务程序保存和恢复处理器的状态。

1.状态寄存器ST0和ST1

ST0各状态位的功能如表2.4所示。

ST1的各状态位的功能如表2.5所示。在汇编文件中,ST0和ST1的单个比特位可以使用SSBX和RSBX指令置位和复位。ARP、DP和ASM等多个比特位可以使用LD指令加载。如:

SSBXINTM;//INTM=1(关中断)

在C语言编程中,则按如下格式直接插入汇编语句:

asm(″SSBXINTM″);//INTM=1(关中断)

2.处理器工作方式寄存器(PMST)

PMST各状态位的定义及功能如表2.6所示。在汇编文件中,PMST寄存器不能用SSBX、RSBX及LD装载,需要用映射寄存器存储指令STM进

行修改,如将立即数0x00C0存入PMST,可用“STM0x00C0PMST”指令,若只对PMST的部分比特位进行修改,可采用如下类似的方法。

LDMPMST,A

//读PMST寄存器

AND

#0x00FF,A

//数据处理

STLM

A,PMST

//写到PMST寄存器2.4.2算术逻辑单元(ALU)

40位ALU结构如图2.5所示。大多数算术逻辑运算指令都是单周期指令。除存储操作指令(ADDM、ANDM、ORM和XORM)外,ALU的运算结果通常都被传送到目的累加器(累加器A或B)中。图2.5

40位ALU结构

1.ALU的输入

如图2.5所示,加到ALU的X输入端的数据为以下两个数据中的任何一个:即移位器的输出(2位或16位数据存储器操作数以及累加器中的数值,经移位器移位后输出)和来自数据总线DB的数据存储器操作数。

加到ALU的Y输入端的数据,是以下四个数据中的任何一个,即:累加器A中的数据、累加器B中的数据、来自数据总线CB的数据存储器操作数和T寄存器中的数据。

2.ALU的输出

ALU的输出为40位,被送往累加器A或B中。

3.溢出处理

ALU的饱和逻辑可以处理运算结果的溢出,这个特性对降低运算误差是很有用的。当状态寄存器ST1的OVM=1时,ALU的饱和逻辑为使能。

当一个结果发生溢出时,可按如下方法进行处理:

(1)如果OVM=0,则累加器直接加载ALU的结果。

(2)如果OVM=1,则根据溢出方向,用32位最大正数007FFFFFFFH(正向溢出)或最大负数FF80000000H(负向溢出)加载累加器。

(3)溢出发生后,相应的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令或溢出标志位(OVA/OVB)被

清除。

4.进位位(C)

ALU的进位位受大多数ALU指令(包括循环和移位操作)的影响,可以用来支持扩展精度的算术运算。进位位不受加载累加器、执行逻辑操作或执行其他非算术、控制指令的影响,可以根据进位位的状态,利用两个条件操作数C和NC进行分支转移、调用和返回操作。RSBX和SSBX指令可用来置位或复位进位位。硬件复位时,进位位置1。2.4.3累加器A和B

累加器A和B都可以配置成乘法器/加法器或ALU的目的寄存器。此外,在执行MIN和MAX指令或者并行指令LD‖MAC时都要用到它们,这时,一个累加器加载数据,另一个完成运算。累加器A和B都可分为3部分,如图2.6所示。其中,保护位用作计算时的数据位余量,以防止诸如自相关之类的迭代运算时溢出。图2.6累加器组成

AG、BG、AH、BH、AL和BL都是存储器映射寄存器。在保存或恢复数据时,可以用PSHM或POPM指令将它们压入堆栈或者从堆栈弹出。用户可以通过其他指令,如寻址存储器映射寄存器(数据存储器的第0页)访问这些寄存器。累加器A和B的差别仅在于累加器A的31~16位可以用作乘法器的一个输入。

1.累加器的存储

用户可以利用STH、STL、STLM和SACCD等指令或者并行存储指令,将累加器的内容存放到数据存储器中。在存储前,有时需要对累加器的内容进行移位操作。右移时,AG和BG中的各数据位分别移至AH和BH;左移时,AL和BL中的各数据分别移至AH和BH,低位添0。假设累加器A=FF43211234H,执行带移位的STH和STL指令后,数据存储单元TEMP中的结果如下:

STHA,8,TEMP;TEMP=2112H

STHA,-8,TEMP;TEMP=FF43H

STLA,8,TEMP;TEMP=3400H

STLA,-8,TEMP;TEMP=2112H

2.累加器移位和循环移位

累加器移位和循环移位的指令共有如下6条:

SFTA(算术移位);

SFTL(逻辑移位);

SFTC(条件移位);

ROL(累加器循环左移);

ROR(累加器循环右移);

ROLTC(累加器带TC位循环左移)。

3.专用指令

C54x有一些专用的并行操作指令(FIRS、LMS和SQDST),通过它们,累加器可以实现一些特殊的运算。FIRS指令可实现对称有限冲击响应(FIR)滤波器算法;LMS指

令可实现自适应滤波器算法;SQDST指令可计算欧几里得距离以及完成其他的并行操作。2.4.4桶形移位器

桶形移位器用来对输入的数据进行定标,可以进行以下操作

(1)在ALU运算前,对来自数据存储器的操作数或者累加器的值进行定标;

(2)对累加器的值进行算术或逻辑移位;

(3)对累加器进行归一化处理;

(4)对累加器存储到数据存储器之前的值进行定标。

图2.7是桶形移位器的功能图,40位桶形移位器的连接如图2.7所示。图2.7桶形移位器的功能图

(1)40位桶形移位器的输入端来自DB取得的16位输入数据、

DB和CB取得的32位输入数据和40位累加器A或B。

(2)40位桶形移位器的输出端接至ALU的一个输入端和

经过MSW/LSW(最高有效字/最低有效字)写选择单元至EB总线。

SXM位控制操作数进行带符号位/不带符号位扩展。当SXM=1时,执行符号位扩展。有些指令(如LDU、ADDS和SUBS)认为存储器中的操作数是无符号数,它们不执行符号位扩展,即可以不必考虑SXM状态位的数值。

指令中的移位数就是移位的位数。移位数都是用2的补码表示,正值表示左移,负值表示右移。移位数可以用以下方式进行定义:

(1)指令操作数中给定的一个4或5位的立即数值表示一个范围为-16~15的移位数值。

(2)状态寄存器ST1的累加器移位方式(ASM)位共5位,表示一个范围为-16~15的移位数。

(3)T寄存器中最低6位的数值表示一个范围为-16~31的移位数。

ADDA,-4,B;累加器A右移4位后加到累加器B中ADDA,ASM,B;累加器A按ASM规定的移位数移位后加到累加器B中

NORMA;按T寄存器中的数值对累加器进行归一化最后一条指令对累加器中的数进行归一化是很有用的。假设40位累加器A中的定点数为FFFFFFF001H,可先用EXPA指令,求得它的指数为13H,存放在T寄存器中;再执行NORM指令,就可以在单个周期内将原来的定点数分成尾数FF80080000H和指数13H两部分了。2.4.5乘法器/加法器单元

C54x的CPU是一个17位×17位的硬件乘法器,它与一个40位专用加法器相连。乘法器/加法器单元可以在一个流水线状态周期内完成一次乘法累加(MAC)运算,图2.8是它的功能框图。图2.8乘法器/加法器单元功能框图乘法器能够执行无符号数乘法和有符号数乘法,可按如下方式实现乘法运算:

(1)有符号数乘法,将每个16位操作数扩展成17位有符

号数;

(2)无符号数乘法,在每个16位操作数前面加一个0;

(3)无符号数与有符号数乘法,在一个16位操作数前面加一个0,另一个16位操作数符号扩展成17位有符号数,以完成乘法运算。

1.乘法器的输入信号

乘法器的输入端包括输入端XM和输入端YM,其中

输入端XM数据来自T寄存器、累加器A的32~16位和DB总线传送过来的数据存储器操作数;另一个输入端YM的数据来自累加器A的32~16位、由DB总线和CB总线传送过来的数据存储器操作数和由PB总线传送过来的程序存储器操作数。

2.乘法器的输出

乘法器的输出加到加法器的输入端XA,累加器A或B则是加法器的另一个输入。运算的最后结果送往目的累加器A

或B中。2.4.6比较、选择和存储单元

在数据通信、模式识别等领域,往往要用到Viterbi(维特比)算法。C54x中的比较、选择和存储单元(CSSU)就是专门为Viterbi算法设计进行加法/比较/选择(ACS)运算的硬件

单元。图2.9是CSSU的功能框图,它和ALU一起执行快速ACS运算。图2.9

CSSU的功能框图

CSSU支持均衡器和通道译码器所用的各种Viterbi算法。图2.10给出了一种Viterbi算法的示意图。图2.10中所示的Viterbi算法包括加法、比较和选择3部分操作,其中加法运算是由ALU完成的。只要将状态寄存器ST1中的C16位置1,ALU就被配置成双16位工作方式,这样就可以在一个机器周期内执行两次加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论