- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10级DSP实验指导书
《DSP技术实验指导书
2013年4月20日
实验一 CCS基本操作
实验目的
熟悉CCS 2.0软件的使用
掌握使用DSP实现16位定点加、减、乘、除运算的编程方法
实验设备
计算机
实验原理
(1)定点DSP中数据表示方法
C54X是16位定点DSP。一个16位在二进制既可表示一个整数,也可以表示一个小数。当它表示一个整数据时,其最低位(D0)表示20,D1位表示21,次高位表示(D14)表示214。如果表示一个有符号时,最高位(D15)为符号位,0表示正数,1表示负数。在C54x中,将一个小数用16位定点格式来表示的方法是用2-15乘以该小数,然后取整。
(2)实现16位定点加法
C54x中提供了多条用于加法的指令,如ADD,ADDC,ADDM和ADDS。其中ADDS用于无符号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM专用于立即数的加法。
(3)实现16位定点减法
C54X中提供了多条用于减法的指令,如SUB,SUBC,SUBM和SUBS。其中SUBS用于无符号数的减法运算,SUBB用于带进位的减法运算(如32位扩展精度减法),而SUBC是移位减(有条件减法),DSP中除法就是用该条指令来实现的。
(4)实现16定点整数乘法
在C54中提供大量的乘法运算指令,其结果都是的32位,放在A或B寄存器中。乘法指令输入变量非常灵活,可以是T寄存器、立即数、存贮单元和A或B寄存器的高16位。在C54X中,一般对数据的处理都当做有符号数,如果是无符号数乘时,请使用MPYU指令。这是一条专用于无符号数乘法运算的指令,而其它指令都是有符号数的乘法。
(5)实现16定点小数乘法
在C54X中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X中提供了一个状态位FRCT,将其设置为1时,系统自动将乘积结果左移移位。但注意整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT清除。两个小数(16位)相乘后结果为32位,如果精度允许的话,可以只存放高16位,将低16位丢弃,这样仍可得到16位的结果。有时为了提高精度,可以使用RND或使用MPYR指令对低16位做四舍五入的处理。
(6)实现16定点整数除法
在C54X中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除以常数特别适用。另一种方法是使用SUBC指令,重复16次减法完成除法运算。下面我们以TEMP1/TEMP2为例,说明如何使用SUBC指令实现整数除法,其中变量TMP1为被除数,TMP2为除数,结果即商存放在变量TEMP3中。在完成整数除法时,先判断结果的符号。方法是将两数相乘,保存A或B的高16位以便判断结果的符号。然后只做两个正数的除法,最后修正结果的符号。为了实现两个数相除,先将被除数装入A或B 的低16位,接着重复执行SUBC指,用除数重复减16次后,除法运算的商在累加器的低16位,余数在高16位。
(7)实现16定点小数除法
下面给出的是小数除法与前面的整数除法基本一致,也是使用循环的SUBC指令来完成。但有两点需要注意:第一,小数除法的结果一定是小数(小于一),所以被除数一定小于除数。这与整数除法正好相反。所以在执行SUBC指令前,应将被除数装入A或B寄存器的高16位,而不是低16位。其结果的格式与整数除法一样,A或B寄存器的高16位为余数,低16位商。第二,与小数乘法一样,应考虑符号对结果小数点的影响。所以应对商右移一位,得到正确的有符号数。
实验步骤
1.新建一个工程
如果你的CCS安装在C:\ti目录下,请在d:\下新建一个目录,名为sf。
将sf.asm文件拷贝到新目录中。
运行CCS程序。
选择Project (New菜单。
在窗口中,选择你新建的目录,键入sf作为工程文件名,然后单击完成。CCS会给你新建一个叫sf.pjt的工程文件,他将保存你的工程文件设置,和工程引用相关文件。
2.往工程中加入文件
选择project(Add Files to Project,选择sf.asm加入工程中;
选择project(Add Files to Project,选择sf.cmd加入工程中。
3.浏览代码
和Windows的资源管理器相似,只要打开+号展现下面的文件,然后双击文件的图标,在主窗口就会显示相应文件的原始代码。
4.编译/执行程序
选择Project(Rebuild All或工具栏中的相应按钮。
编译成功后,选择File(Load Program。选择你刚编译的可执行程序sf.out。
选择Debug(Run,或工具栏中的相应图标。
5. 程
文档评论(0)