dsp技术课程(第三章)-2

上传人:今*** 文档编号:106971797 上传时间:2019-10-17 格式:PPT 页数:51 大小:1.22MB
返回 下载 相关 举报
dsp技术课程(第三章)-2_第1页
第1页 / 共51页
dsp技术课程(第三章)-2_第2页
第2页 / 共51页
dsp技术课程(第三章)-2_第3页
第3页 / 共51页
dsp技术课程(第三章)-2_第4页
第4页 / 共51页
dsp技术课程(第三章)-2_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《dsp技术课程(第三章)-2》由会员分享,可在线阅读,更多相关《dsp技术课程(第三章)-2(51页珍藏版)》请在金锄头文库上搜索。

1、3-3 TMS320C54x的指令集,C54X指令集,TMS320C54x的指令集有近两百条指令,按功能分为如下几类: 算术运算指令 逻辑运算指令 程序控制指令 装入和存储指令,一、算术运算指令,算术运算指令可分为如下几类: 加法指令 减法指令 乘法指令 乘加指令 乘减指令 双数/双精度指令 特殊操作指令,1.加法指令,定点DSP中数据表示方法,当它表示一个整数时,其最低位(D0)表示1,D1位表示2的1次方,次高位(D14)表示2的14方。 如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的

2、负数-1(负数用2的补码方式显示)。,定点DSP中数据表示方法,当需要表示小数时,小数点的位置始终在最高为后,而最高位(D15)表示符号位。这样次高位(D14)表示0.5,然后是0.25,最低位(D0)表示。所以04000H表示小数0.5,01000H表示小数0.25,而0001H表示16位定点DSP表示的最小的小数(有符号)0.000030517578125。,实现16位定点加法,C54X中提供了多条用于加法的指令,如ADD,ADDC,ADDM和ADDS。其中ADDS用于无符号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM专用于立即数的加法。,使用ADD完成加

3、法,ld temp1,a ;将变量temp1装入寄存器A add temp2,a ;将变量temp2与寄存器A相加 ;结果放入A中 stl a,temp3 ;将结果(低16位)存入变量 ;temp3中。 注意,这里完成计算temp3=temp1+temp2,我们没有特意考虑temp1和temp2是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。,利用ADDS实现32位数据装入,ld #0,dp ; 设置数据页指针 ld 60h,16,a ; 将60H的内容装如A的高16位 adds 61h,a ; 将61H的内容加到A的低16位 dld 60h,b ; 直接装入32位到B

4、寄存器,ADD中寻址方式,ADD Smem ,SHIFT,src ,dst 例如:,ADD *AR0,1,A,A ADD 60H,-1,A,A ADD *AR5,1,A,B,ADD Xmem, SHFT, src 例如:,ADD *AR5,1,A, ADD Xmem,Ymem, dst (高16位加)例如:,ADD *AR2,*AR3,A,2.减法指令,实现16位定点减法,C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。 其中SUBS用于无符号数的减法运算,SUBB用于带进位的减法运算(如32位扩展精度的减法),而SUBC为移位减,DSP中的除法就是用该指令来实现的

5、。 SUB指令与ADD指令一样,有许多的寻址方式,其详细使用说明请参考TMS320C54X使用教程,减法指令使用举例,stm #60h,ar3 ;将变量temp1的地址装入ar3寄存器 stm #61h,ar2 ;将变量temp3的地址装入ar3寄存器 sub *ar2+, *ar3,b ;将变量temp3左移16位同时变量 ; temp2也左移16位,然后相减,结 ; 果放入寄存器B(高16位)中,同 ; 时ar2加1。 sth b,63h ;将相减的结果(高16位)存入变量63h,利用SUBC实现除法,在C54X中没有提供专门的除法指令,一般有两种方法来完成除法。 一种是用乘法来代替,除以

6、某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。 另一种方法是使用SUBC指令,重复16次减法完成除法运算。,利用SUBC完成Temp1/Temp2,ld temp1,B ;将被除数temp1装入B寄存 ;器的低16位 rpt #15 ;重复SUBC指令16次 subc temp2,b ;使用SUBC指令完成除法 stl B,temp3 ;将商(B寄存器的低16位) ;存入变量temp3 sth B,temp4 ;将余数(B寄存器的高16位) ;存入变量temp4 注: 实际上是完成整数除法,实现小数除法,在C54X中实现16位的小数除法与前面的整数除法基本一

7、致,也是使用SUBC指令来完成。 但有两点需要注意:第一,小数除法的结果一定是小数(小于1),所以被除数一定小于除数。在执行SUBC指令前,应将被除数装入A或B寄存器的高16位,而不是低16位。其结果的格式与整数除法一样。 第二,应考虑符号位对结果小数点的影响。所以应对商右移一位,得到正确的有符号数。,3.乘法指令,实现16定点整数乘法,在C54X中提供了大量的乘法运算指令,其结果都是32位,放在A或B寄存器中。 乘数在C54X的乘法指令很灵活,可以是T寄存器、立即数、存贮单元和A或B寄存器的高16位。 如果是无符号数乘时,请使用MPYU指令。这是一条专用于无符号数乘法运算的指令,而其它指令都

8、是有符号数的乘法。,整数乘法举例,rsbx FRCT ;清FRCT标志,准备整数乘 ld temp1,T ;将变量temp1装入T寄存器 mpy temp2,a ;完成temp2*temp1,结果放 ;入A寄存器(32位),实现小数乘法,在C54X中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。 C54X中提供了一个状态位FRCT,将其设置为1时,系统自动将乘积结果左移移位。 两个小数(16位)相乘后结果为32位,如果精度允许的话,可以只存高16位,将低16位丢弃,这样仍可得到16位的结果。,小数乘法举例,

9、ssbx FRCT ;FRCT=1,准备小数乘法 ld temp1,16,a ;将变量temp1装入寄存器A的高16位 mpya temp2 ;完成temp2乘寄存器A的高16位,结 ;果在B中,同时将temp2装入T寄存器 sth b,temp3 ;将乘积结果的高16位存入变量temp3 如:0.1(0x0ccd) x 0.7(0x599a) = 0.06997680664063(0x08f5) 注:可以使用MPYR完成四舍五入。 比较如下结果 mpyr temp1,b ; T * temp1 - b,4.乘加和乘减指令,5、双精度/双数操作指令,6、特殊指令,二、逻辑运算指令,逻辑指令有与

10、、或、异或、移位和测试指令 1、与指令(AND),2、或、异或指令,3、移位和测试指令,三、程序控制指令,程序控制指令包括: 分支指令 调用指令 中断指令 返回指令 重复指令 堆栈操作指令 混合程序控制指令,1、分支指令,2、调用与中断指令,3、返回指令,4、重复指令和堆栈操作指令,5、混合程序控制指令,四、装入和存储指令,装入和存储指令包括: 一般的装入和存储指令 条件存储指令 并行装入和存储指令 并行装入和乘法指令 并行存储和加件乘指令 混合装入和存储指令,1、一般的装入指令,一般的装入指令,2、存贮指令,3 并行装入和存储指令,4、条件存储指令,5、并行存储和加、减、乘法指令,6、并行装

11、入和乘法指令,7、混合装入和存储指令,注意:同一条指令在不同存储器中可能有不同执行时间,操作数在双寻址空间、单寻址空间和外部 程序代码在双寻址、单寻址和外部空间 操作数和代码在相同存储器块中 数据空间插入了等待周期 程序空间插入了等待周期,3-4 特殊指令使用说明,FIRS指令,FIRS指令使用方法: FIRS *AR2+, *AR3+, COEF,FIRS指令用于线性相位滤波器的处理。一个如下图的8阶线性相位滤波器的输出表达式:,Viterbi译码指令DADST、DSADT、CMPS,在信道均衡和解码中经常会使用到Viterbi算法,C54x为此提供了专门的硬件和指令。根据输入信号确定分支似

12、然概率增加量D1/D2,放在T寄存器中,TRN存储可能信号译码输出。,最小均方运算LMS,在进行自适应滤波等操作中经常会使用LMS算法,C54x提供的LMS指令方便了编程。如下图所示的自适应滤波器设计中,滤波器系数修正公式为:,其中,e(i) = d(i) - y(i)。 滤波器输出:,数据归一化相关指令EXP、NORM,归一化一个数是先求其指数,然后把它调整到最大精度格式。实现方法如下:,数据块移动MVDD、MVDP、MVPD,在C54x系列DSP,数据与数据存储器、数据与程序存储器之间可以方便的进行数据传输,结合单指令循环可实现数据块移动。如16个系数的移动:,本章小结 本章重点介绍了TMS320C54x的软件体系,并对特殊的寻址方式和特殊指令进行了介绍,对于各指令更详细的了解需同学自己多看书。,制作:DSP实验室 1998.12,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号