DSP实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验0 实验设备安装才CCS调试环境
实验目的:
按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。
实验步骤:
以演示实验一为例:
1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;
2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;
3.打开源文件exer3.asm,在注释行“set breakpoint in CCS ”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示;
4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框
5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;
DSP Data Type设置成16-bit signed integer,如下图所示;
6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察
7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:
心得体会:
通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。
实验二基本算数运算
2.1 实验目的和要求
加、减、乘、除是数字信号处理中最基本的算术运算。DSP 中提供了大量的指令来
实现这些功能。本实验学习使用定点DSP 实现16 位定点加、减、乘、除运算的基本方法
和编程技巧。本实验的演示文件为exer1.out。
2.2 实验原理
1) 定点DSP 中的数据表示方法
C54X 是16 位的定点DSP。一个16 位的二进制数既可以表示一个整数,也可以表
示一个小数。当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14)表示214。
2) 实现16 位定点加法
C54X 中提供了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。其中
ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加法),而ADDM 专用于立即数的加法。
3) 实现16 位定点减法
C54X 中提供了多条用于减法的指令,如SUB,SUBB,SUBC 和SUBS。其中SUBS
用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法),
而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。
4) 实现16 位定点整数乘法
在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器
中。乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B
寄存器的高16 位。
5) 实现16 位定点小数乘法
在C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,
其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。C54X
中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。但注意
整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。两个小数(16 位)相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可
得到16 位的结果。
6) 实现16 位定点整数除法
在C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。一种是用乘法
来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于
除以常数特别适用。另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。
7) 实现16 位定点小数除法
在C54X 中实现16 位的小数除法与前面的整数除法基本一致,也是使用循环的
SUBC 指令来完成。但有两点需要注意:第一,小数除法的结果一定是小数(小于1),
所以被除数一定小于除数。
2.3 实验内容
本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存贮器显示窗口观察结果。
1)编写实验程序代码
2)用ccs simulator 调试运行并观察结
2.4 实验结果
1、加法结果
2、乘法结果
3、减法结果
4、除
2.5 思考题(0.5、0.25)
实验三C54X的浮点数的算术运
一、实验目的
1) 练习TMS320C54X 汇编程序的编写与调试方法,重点练习C54X 程序流程控制的方法。
2) 学习并掌握应用TMS320C54X 来进行浮点数的各种算术运算的算法实现。
3) 练习并掌握TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有C54X 特点的一些
在功能上有所扩展的特殊指令,并了解这些指令在进行算术运算或各种控制时所带来的方便。
4) 练习并掌握用CCS 调试程序的一些基本操作。
二.实验原理
1) 浮点数的表示方法
在定点运算中,小数点是在一个特定的固定位置。例如,如果一个32-bit 的数把小数点放在最高有效位(也就是符号位)之后,那么就只有分数(绝对值小于1)才能被显示。在定点运算系统中,虽然在硬件上实现简单,但是表示的操作数的动态范围要受到限制。
3)浮点数运算的步骤
程序代码分成四个ASM 文件输入,通过编译生成.obj 文件,连接生成.out 文件后就可以在DES320PP-U 实验系统上调试运行(先要创建一个工程文件,然后加入四个工程文件,并且一起编译,连接。因为每个文件都对下一个文件作了引用)。步骤如下:
a. 首先启动setup CCS C5000,在其中设置目前需要的CCS 的工作状态为C54xxsimulator,保存这一设置并
退出。然后再启动CCS 实验系统软件CCS C5000。
b. 在下拉菜单中选择“File”->“Load Program”以装入所要调试的程序f
c.out,这时,在反汇编窗口中能
看到程序的源代码。
c. 在下拉菜单中选择“View”->“C PU Registers”->“CPU Register”,可以看见在CCS 界面下部份会出现CPU
中的相关寄存器;选择“View”->“Memory…”,在弹出的“Memory Window Options”窗口中选择要观察的区域为数据区,地址开始为0x80h,然后就可以看见出现一个Data Memory 窗口,其中显示了从0x80h 开始的.bss 区。
d. 在反汇编窗口中需要观察的地方设置断点:在这条指令处双击将其点为红色即可。比如在加法程序中
有指令nop 的位置都可以加一个断点。
e. 在下拉菜单中选择“调试”——“连续运行”(或直接点击“运行程序”按钮)运行浮点数程序。如
果编写程序时在计算完毕后遇到一个断点,那么程序到此会自动停止。
f. 当示范程序在第一个断点处停下来时,此时就可以看见程序初始化后的情况:被加数12.0 以浮点数的
格式放在内存区0x08a-0x08b 中,其值为4140h 和0000h。加数12.0 放在内存区0x08c-0x08d 中,其值也为4140h 和0000h。