电子科技大学通信与信息工程学院
标准实验报告
(实验)课程名称DSP设计与实现
电子科技大学教务处制表
f
电子科技大学
实验报告
一、实验室名称:DSP实验室
二、实验项目名称:基本算术运算
三、实验学时:4
四、实验原理:
(1)定点DSP中数据表示方法C54X是16位的定点DSP。一个16位的二进制数既可以表示一个整数,也可以表示一
个小数。当它表示一个整数时,其最低位(D0)表示20,D1位表示21,次高位(D14)表示214。如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例
如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的负数1(负数用2的补码方式显示)。当需要表示小数时,小数点的位置始终在最高位后,而最高位(D15)表示符
号位。这样次高位(D14)表示21,然后是22,最低位(D0)表示215。所以04000H表示小数05,01000H表示小数230125,而0001H表示16位定点DSP能表示的最小的小数(有符号)2150000030517578125。在后面的实验中,除非有特别说明,我们指的都是有符号数。在C54X中,将一个小数用16位定点格式来表示的方法是用215乘以该小数,
然后取整。从上面的分析可以看出,在DSP中一个16进制的数可以表示不同的十进制数,或者是
整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。
(2)实现16定点加法
C54X中提供了多条用于加法的指令,如ADD,ADDC,ADDM和ADDS。其中ADDS用于无符
f
号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM专用于立
即数的加法。ADD指令的寻址方式很多,其详细使用说明请参考《TMS320C54X实用教程》。
在本实验中,我们使用下列代码来说明加法运算:
ldtemp1a
;将变量temp1装入寄存器A
addtemp2a
;将变量temp2与寄存器A相加,结果放入A中
stlaadd_result;将结果(低16位)存入变量add_result中。
注意,这里完成计算temp3temp1temp2,我们没有特意考虑temp1和temp2是整数还是小
数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。
(3)实现16位定点减法
C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。其中SUBS用于无符号数的减法运算,SUBB用于带进位的减法运算(如32位扩展精度的减法),而SUBC为移位减,DSP中的除法就是用该指令来实现的。SUB指令与ADD指令一样,有许多的寻址方式,其详细使用说明请参r