第2章__TMS320C54x数字信号处理_[1]...
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
溢出处理
当运算结果发生溢出时: ALU的饱和逻辑可以对运算结果进行溢出处理。
当发生溢出时,将运算结果调整为最大正数(正向 ① 若OVM=0,则对ALU的运算结果不作任何 调整,直接送入累加器; 溢出)或最小负数(负向溢出)。 ② 若OVM=1,则对ALU的运行结果进行调整。 当正向溢出时,将32位最大正数00 7FFFFFFFH 装入累加器; 当负向溢出时,将32位最小负数FF 80000000H 装入累加器。 ③状态寄存器ST0中与目标累加器相关的溢出标 志OVA或OVB被置1。
乘法器/加法器单元:
XM
T寄存器 DB总线 A的32~16位
乘法器的输入: (17*17) YM
DB总线 CB总线 PB总线 A的32~16位 Adder(40)
乘法器输出 A或B或0
Adder的XA
YA
硬件乘法器可以在一个单指令周期中完成17*17bit的二进 制补码运算。
例: MPY a1,B ;将a1这个存储器单元中的数与 ;B中的数相乘并将结果放B中 结合DSP的特殊的汇编指令(如MAC),54x可以在一个指 令周期内完成乘/累加运算。 例: LD x2,T MAC a2,B ;(a2)*(x2)+BB
ST0: 反映处理器的寻址要求和计算机的中间运行状态。 ST1:主要反映处理器的寻址要求、计算初始状态的 设置、I/O及中断的控制等。
PMST包含存储器的设置状态和控制信息
状态寄存器ST0的结构: 15~13
ARP TC
12
C
11
10
OVA
9
OVB
8~0
DP
状态寄存器ST1的结构: 1 15 14 13 12 11 10 9
累加器A和B
1. 累加器结构
39 ••• AG AG 保护位 39 ••• BG BG 保护位 32 31 32 31 ••• AH AH 高阶位 ••• BH BH 高阶位 16 15 16 15 ••• AL AL 低阶位 ••• BL BL 低阶位 0 0
累加器A
累加器B
保护位:AG、BG 39~32,作为算术计算时的数据位余量, 以防止迭代运算中的溢出。 低阶位:AL、 BL 15~0。 高阶位:AH、BH 31~16;
【例1】累加器A=FF 0123 4567H,执行带移 位的STH和STL指令后,求暂存器T和A的内 容。 STH STL
A,8, A,-8, A, 8,TT
AG AH
; ; A的内容右移8位,AL存入T A的内容左移8位,AL存入T A的内容右移8位,AH存入T A的内容左移8位,AH存入T
AL
桶形移位寄存器:
桶形移位寄存器的移位作用:
桶形移位寄存器的位数是一个有符号数,其正值对应左移,负值 对应右移。指令中移位位数可为: 1、指令中的一个4位或5位立即数为移位数,范围为-16~15: ADD A,-4,B; 累加器A的内容右移四位后加到B中 2、用ASM的值代表范围-16至15的移位,可用LD加载。 ADD A,ASM,B; 累加器移位ASM所指定的位数后加到B中 3、T寄存器中的低6位,可以指定-16至31位范围的移位数 SUB *AR2, TS, A ;
乘法器/加法器
3.乘法器/加法器单元
C54x CPU有一个17×17位的硬件乘法器,与40 位的专用加法器相连,可以在单周期内完成一次 乘法累加运算。乘法器的输出经小数/整数乘法 (FRCT)输入控制后加到加法器的一个输入端, 加法器的另一个输入端来自累加器A或B。
加法器还包括零检测器、舍入器(二进制补码) 及溢出/饱和逻辑电路。
AR3
Data memory 0300h
2.当SXM=1,进行有符号数加载
LD *AR3+,A
A
Before instruction
00 0000 0000 1 0300 FEDC
After instruction FF FFFF FEDC 1 0300 FEDC
SXM
AR3 Data memory 0300h
TC C OVA OVB
数的辅助寄存器的选择。 Test control signal ,如执行比较ARX与AR0中的 数值的大小指令,保存ALU测试位操作结果 Carry ,加法进位,置1;减法借位,置0。 加法无进位,置0;减法无借位,置1。 Overflow of A,A一旦溢出,OVA=1,一直保持, 直到硬件或软件复位。 Overflow of B,B一旦溢出,OVB=1,一直保持, 直到硬件或软件复位。
个16位ALU,执行两个16位操作)
5.来自数据存储wenku.baidu.com的32位字;
6.来自其中一个40位累加器的40位字。
ALU功能框图:
(3) ALU输入数据的预处理 当16位数据存储器操作数通过数据总线DB或CB ① 若数据存储器的16位操作数在低16位时,则 输入时,ALU将采用两种方式对操作数进行预处理。 当SXM=0时,高24位 ( 39~16位 ) 用0填充; 当SXM=1时,高24位 ( 39~16位 ) 扩展为符号位。 ② 若数据存储器的16位操作数在高16位时,则 当SXM=0时,39~32位和15~0位用0填充; (4) ALU的输出 ALU的输出为40位运算结果,通常被送至累加器 A或B。
当SXM=1时,39~32位扩展为符号位,15~0位置0。
举例
1.当SXM=0,进行无符号数加载 LD *AR3+,A
A SXM Before instruction 00 0000 0000 0 0300 FEDC After instruction 00 0000 FEDC 0 0300 FEDC
C54X总线结构(续)
4条地址总线(PAB、CAB、DAB、EAB):传送执 行指令所需地址。
图2-1 TMS320C54x DSP的内部硬件组成框图2
§2.3中央处理单元(CPU)
所有的’54x器件的CPU都相同。’54x的CPU包括:
1.40位的算术逻辑单元(ALU);
2.2个40位的累加器(A和B); 3.桶形移位器(定标移位器); 4.17×17位乘法器; 5.40位加法器; 6. 各种CPU寄存器。 7.比较,选择和存储单元(CSSU); 8.指数编码器;
2.1 DSP硬件
TMS320C54x组成框图:
TMS320C54x DSP的总线组成框图1
§2.2 TMS320C54x的总线结构(BUS)
’54x结构的建立主要围绕着8条16位的总线展开 的。这8条总线包括4条程序/数据总线和4条地址 总线。它们的作用是:
1. 程序总线(PB):传送由程序存储器取出的指 令操作码及立即数; 2. 3条数据总线(CB、DB和EB):与不同的单元 相连,如CPU、数据地址发生逻辑、程序地址发 生逻辑、片内外围部件及数据存储器等,其中CB 总线和DB总线传送从数据存储器读的数据,EB 总线传送被写入存储器的数据;
.双16位算术运算
若要将ST1中的C16置位,则ALU进行双16位算
术运算,即在一个机器周期内完成两个16位数的算术 运算,进行两次16位加法或两次16位减法运算。 5.其他控制位 除 SXM、OVM、C、C16、OVA、OVB 外 , ALU还有两个控制位。 TC——测试/控制标志,位于ST0的12位;
BRAF CPL XF HM INTM 0 OVM
8
SXM
7
C16
6
FRCT
5
CMPT
4~0
ASM
处理器模式状态寄存器(PMST)结构如下: 15~7
IPTR
6
MP/MC
5
OVLY
4
AVIS
3
DROM
2
CLKOFF
1
SMUL SST
0
ST0 (Status 0)
ARP TC C OVA OVB DP 11 10 9 15~13 12 8~0 Assistant Register Pointer ,用于间接寻址单操作 ARP
举例 1.当OVM=0,对溢出不进行处理,仅通 过 OVM=1反映溢出 Before instruction LD A, 4,B
A B 00 7FFF 8000 00 0000 FFFF 0 0
After instruction 00 7FFF 8000 07 FFF8 0000 1 0
OVB
OVM
算术逻辑单元(ALU)
’54x可通过一个40位算术逻辑单元(ALU),执 行二进制补码数学运算,ALU也可执行布尔运算。 其运算结果通常被送入两个40位累加器(累加器A和 B)。ALU的输入如下: 1.16位立即数; 2.来自数据存储器的16位字; 3.来自16位暂存寄存器T的16位字; 4.来自数据存储器的两个16位字; (在执行算术运算时,一个40位ALU也可同时作为两
第二章 TMS320C54X 硬件结构
本章重点介绍TMS320C54x的硬件结构,了解 DSP硬件结构是设计DSP的第一步。
第2章 TMS320C54x数字信号处理器硬件结构
要求:会看硬件功能块的框图,掌握相应的处理机制, 知道有哪些片上外设,怎样使用。
2.1 TMS320C54x的特点和硬件组成框图 2.2 TMS320C54x的总线结构(重点) 2.5 中央处理单元(CPU) (重点) 2.4 TMS320C54x的存储器分配(重点) 2.5 TMS320C54x片内外设简介 2.6 TMS320VC5402引脚及说明
A
移位 寄存器
FF 0123 4567
01 0123 4567 FF 2345 67 00 FF 45 23 45 01 01
TT == 2345H, T = FF01H, 2345H, 6700H, A=FF 0123 4567H A=FF 0123 4567H
T
6345 2F01 F7 0
桶形移位器
累加器A和B
2.带移位的累加器存储操作 ① 使用STH、SACCD和并行存储指令存储累加器内容 使用STH、STL、STLM、SACCD等指令或并 行存储指令,可以把累加器中的内容保存到数据存 先将累加器内容移位,再将高16位存入存储器。 储器中。 右移存储:AG(BG)右移AH(BH),AH(BH)存入存储器;
左移存儲:AL(BL)左移AH(BH),AH(BH)存入存储器。
② 使用STL指令存储累加器内容 注意:① 移位操作是在存储累加器内容的过程中 先将累加器内容移位,再将低16位存入存储器。 同时完成的; ② 移位操作是在移位寄存器中完成的,累 右移存储,AH(BH)右移AL(BL),AL(BL)存入存储器; 加器的内容保持不变。 左移存储,用0左移AL(BL),AL(BL)存入存储器。
比较、选择和存储单元CSSU)
比 较 、 选 择 和 存 储 单 元 ( CSSU) 是 专 门 为 Viterbi算法设计的加法/比较/选择(ACS)操作 的硬件单元。
指数编码器
指数编码器用于支持单周期指令EXP的专用硬件。 功能:求累加器中数据的指数值。
CPU状态和控制寄存器
TMS320C54X包括3个16位的寄存器作为状态和 控制寄存器, ST0,ST1,PMST. 均为存储器映 像寄存器,可以方便的访问。 ST0,ST1包含各种工作条件和工作方式的状态
ZA/ZB——累加器结果为0标志位。
累加器
累加器A和B(ACCA,ACCB),用于存储ALU 或乘法器/加法器块的输出;它们也可作为输入 数据输出到ALU,或作为乘法器/加法器的输入。
AG、AH、AL、BG、BH、BL都是存储器 映像寄存器,可以被访问
A与B的不同是A的高位可以作为乘法器的 一个输入
40位的桶形移位器能将输入的数据进 行向左或者向右的0~31位的移动(向左31 位,向右16位)。
输入
DB(16位) DB和CB(32位) A(40位) B(40位) ALU的一个输入端 EB总线
输出
功能:
1、在执行ALU操作前预定好一个数据存储器操作 或累加器内容 2、对累加器内容算术或逻辑移位 3、对累加器归一化 4、在将累加器的值存入数据存储器前定标
2.当OVM=1,对溢出进行处理。 LD A, 4,B
A
Before instruction
00 7FFF 8000 00 0000 FFFF 0 1
After instruction 00 7FFF 8000 00 7FFF FFFF 1 1
B
OVB OVM
进位位C
进位位C的功能: ALU有一个与运算结果有关的进位位C,位于 ST0的11位。进位位C受大多数ALU操作指令的影响, ① 用来指明是否有进位发生; ② 用来支持扩展精度的算术运算; 包括算术操作、循环操作和移位操作。 ③ 可作为分支、调用、返回和条件操作的执行 条件。 注意:① 进位位C不受装载累加器操作、逻辑操作、 非算术运算和控制指令的影响; ② 可通过寄存器操作指令RSBX和SSBX对 其进行置位和复位。