- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dsp实验1-基本算数运算课案
电子科技大学通信与信息工程学院
标 准 实 验 报 告
(实验)课程名称 DSP设计与实现
电子科技大学教务处制表
电 子 科 技 大 学
实 验 报 告
一、实验室名称:DSP实验室
二、实验项目名称:基本算术运算
三、实验学时:4
四、实验原理:
定点DSP中数据表示方法
C54X是16位的定点DSP。一个16位的二进制数既可以表示一个整数,也可以表示一个小数。当它表示一个整数时,其最低位(D0)表示,D1位表示,次高位(D14)表示。如果表示一个有符号数时,最高位(D15)为符号位,0表示正数,1表示负数。例如,07FFFH表示最大的正数32767(十进制),而0FFFFH表示最大的负数-1(负数用2的补码方式显示)。当需要表示小数时,小数点的位置始终在最高位后,而最高位(D15)表示符号位。这样次高位(D14)表示,然后是,最低位(D0)表示。所以04000H表示小数0.5,01000H表示小数,而0001H表示16位定点DSP能表示的最小的小数(有符号)=0.000030517578125。在后面的实验中,除非有特别说明,我们指的都是有符号数。在C54X中,将一个小数用16位定点格式来表示的方法是用乘以该小数,然后取整。
从上面的分析可以看出,在DSP中一个16进制的数可以表示不同的十进制数,或者是整数,或者是小数(如果表示小数,必定小于1),但仅仅是在做整数乘除或小数乘除时,系统对它们的处理才是有所区别的,而在加减运算时,系统都当成整数来处理。
实现16定点加法
C54X中提供了多条用于加法的指令,如ADD,ADDC,ADDM和ADDS。其中ADDS用于无符号数的加法运算,ADDC用于带进位的加法运算(如32位扩展精度加法),而ADDM专用于立即数的加法。ADD指令的寻址方式很多,其详细使用说明请参考《TMS320C54X实用教程》。在本实验中,我们使用下列代码来说明加法运算:
ld temp1,a ;将变量temp1装入寄存器A
add temp2,a ;将变量temp2与寄存器A相加,结果放入A中
stl a,add_result ;将结果(低16位)存入变量add_result中。
注意,这里完成计算temp3=temp1+temp2,我们没有特意考虑temp1和temp2是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。
实现16位定点减法
C54X中提供了多条用于减法的指令,如SUB,SUBB,SUBC和SUBS。其中SUBS用于无符号数的减法运算,SUBB用于带进位的减法运算(如32位扩展精度的减法),而SUBC为移位减,DSP中的除法就是用该指令来实现的。SUB指令与ADD指令一样,有许多的寻址方式,其详细使用说明请参考《TMS320C54X实用教程》。在本实验中,我们使用下列代码来说明减法运算:
stm #temp1,ar3 ;将变量temp1的地址装入ar3寄存器
stm #temp3,ar2 ;将变量temp3的地址装入ar3寄存器
sub *ar2+, *ar3,b ;将变量temp3左移16位同时变量temp1也左移16位,然后
;相减,结果放入寄存器B(高16位)中,同时ar2加1。
sth b,sub_result ;将相减的结果(高16位)存入变量sub_result。
实现16定点整数乘法
在C54X中提供了大量的乘法运算指令,其结果都是32位,放在A或B寄存器中。乘数在C54X的乘法指令很灵活,可以是T寄存器、立即数、存贮单元和A或B寄存器的高16位。有关乘法指令的详细使用说明请参考《TMS320C54X实用教程》。在C54X中,一般对数据的处理都当做有符号数,如果是无符号数乘时,请使用MPYU指令。这是一条专用于无符号数乘法运算的指令,而其它指令都是有符号数的乘法。在本实验中,我们使用下列代码来说明整数乘法运算:
rsbx FRCT ;清FRCT标志,准备整数乘
ld temp1,T ;将变量temp1装入T寄存器
mpy temp2,a ;完成temp2*temp1,结果放入A寄存器(32位)
例如,当temp1=1234H(十进制的4660),temp2=9876H(十进制的-26506),乘法的结果在A寄存器中为0F8A343F8H(十进制的-123517960)。这是一个32位的结果,需要两个内存单元来存放结果:
sth a,mpy_I_h ;将结果(高16位)存入变量mpy_I_h
stl a,mpy_I_l ;将结果(低16位)存入变量mpy_I_l
当temp1=10H(十进制的16),temp2=05H(十进制的5),乘法
您可能关注的文档
- DocuPrintP118w驱动安装指南_网络连接.docx
- DNS三周课程每周2.ppt
- DOM对象属性和方法.docx
- 公路工程招标文件(2009版)计量规范摘要.doc
- DOS批处理精选简单易懂.doc
- 公路工程实务案例.doc
- DPJ第3章AT89C51的指令系统.ppt
- 公用系统介绍课件.pptx
- 公路工程施工质量保证措施课件.doc
- 公路工程(桥梁)预算定额PPT.ppt
- 苏教版二下第四单元第9课时 练习四 课件.pptx
- 高中化学课题报告实验设计与化学理论结合策略研究教学研究课题报告.docx
- 中小学生网络素养提升实践探究教学研究课题报告.docx
- 旅游职业道德课件:职业精神概述.pptx
- 2025年中国摄像头模组行业发展前景预测及投资战略咨询报告.docx
- 通过化学实验激发高中生对化学实验的兴趣教学研究课题报告.docx
- 小学物理课程探究式学习模式应用研究教学研究课题报告.docx
- 2021-2026年中国汽车诊断仪市场深度分析及投资战略咨询报告.docx
- 2025年度互联网金融服务合同标准文本.docx
- 中国炉具行业市场深度分析及发展前景预测报告.docx
文档评论(0)