第一范文网 - 专业文章范例文档资料分享平台

DSP实验

来源:用户分享 时间:2020-06-22 本文由江畔旧时月 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

DSP系统结构

实验报告

姓名: 刘 成 专业: 电子与通信工程 班级: 35 班 学号: 2014170370 指导教师: 齐 美 彬 学院: 计算机与信息学院 时间: 2015-11

实验一 汇编语言程序设计

一、实验目的

1.熟悉DSP集成开发环境CCS 6000的使用方法。 2.熟悉TMS320C6437 DSP优化的3个层次。 二、实验条件

计算机(安装CCS3.3)、SEED-XDS510PLUS仿真器、DM6437实验平台 三、实验内容

以矢量点积算法为例,掌握C语言、线性汇编、并行汇编及软件流水汇编代码的优化原理、方法及步骤,并按实验步骤完成实验。

1、C语言代码

int DSP_dotprodc( const short *m, const short *n, int count) {

int i;

int prod, sum = 0; #ifndef NOASSUME

_nassert((int)m % 8 == 0); /* Double-word aligned */ _nassert((int)n % 8 == 0); /* Double-word aligned */ _nassert((int)m % 16 != (int)n % 16); /* In different banks */ #pragma MUST_ITERATE(4,,4); /* count >= 4, mult of 4 */ #endif

for (i = 0; i < count; i++) {

prod = m[i] * n[i]; sum += prod; }

return sum; } 2、线性汇编代码

.text

.global _DSP_dotprodsa

_DSP_dotprodsa: .cproc A_m, B_n, A_count .no_mdep

.reg A_reg1:A_reg0, B_reg1:B_reg0

.reg A_prod, B_prod, A_sum, B_sum, A_i ZERO A_sum ZERO B_sum

SHRU A_count, 2, A_i SUB A_i, 2, A_i .mptr A_m, x + 0, 8 .mptr B_n, x + 8, 8 loop: .trip 8

LDDW .1 *A_m++, A_reg1:A_reg0 LDDW .2 *B_n++, B_reg1:B_reg0 DOTP2 A_reg1, B_reg1, A_prod DOTP2 B_reg0, A_reg0, B_prod ADD A_sum, A_prod, A_sum ADD B_sum, B_prod, B_sum BDEC loop, A_i

ADD A_sum, B_sum, A_sum .return A_sum .endproc

.end

3、并行汇编代码 .sect \.global _DSP_dotprod64 _DSP_dotprod64:

*==============SYMBOLIC REGISTER ASSIGNMENTS ===================== * .asg A4, A_m ; pointer to vector m .asg B4, B_n ; pointer to vector n

.asg A6, A_count ; number of elements in each vector .asg A0, A_i ; loop count .asg A16, A_sum ; partial sum a

.asg A17, A_prod ; sum of products a[i]*b[i]+a[i+1]*b[i+1] .asg B16, B_sum ; partial sum b

.asg B17, B_prod ; product sum a[i+2]*b[i+2]+a[i+3]*b[i+3] .asg A9, A_reg1 ; elements a[i+3] a[i+2] .asg A8, A_reg0 ; elements a[i+1] a[i] .asg B7, B_reg1 ; elements b[i+3] b[i+2] .asg B6, B_reg0 ; elements b[i+1] b[i]

.asg A4, A_sumt ; total sum a + b returned to caller

* =============== PIPE LOOP PROLOG ============================= * B .S2 loop ; prime loop

|| LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] || LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i]

B .S2 loop ; prime loop

|| LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] || LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i] || SHRU .S1 A_count, 2, A_i ; calc loop count || ZERO .L1 A_prod:A_sum || ZERO .L2 B_prod:B_sum

B .S1 loop ; prime loop

||[A_i] LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] ||[A_i] LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i] || ZERO .L1 A_prod:A_sum ; added for branch- || ZERO .L2 B_prod:B_sum ; target-not-span

[A_i] BDEC .S1 loop, A_i ; prime loop

||[A_i] LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] ||[A_i] LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i] || ZERO .L1 A_prod:A_sum ; added for branch- || ZERO .L2 B_prod:B_sum ; target-not-span

[A_i] BDEC .S1 loop, A_i ; prime loop

||[A_i] LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] ||[A_i] LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i] || ZERO .L1 A_prod:A_sum ; added for branch- || ZERO .L2 B_prod:B_sum ; target-not-span

* ================== PIPE LOOP KERNEL ============================= * loop:

ADD .L2 B_sum, B_prod, B_sum ; sum += productb || ADD .L1 A_sum, A_prod, A_sum ; sum += producta ||[A_i] LDDW .D2T2 *B_n++, B_reg1:B_reg0 ; load b[i+3]...b[i] ||[A_i] LDDW .D1T1 *A_m++, A_reg1:A_reg0 ; load a[i+3]...a[i] || DOTP2 .M2X A_reg0, B_reg0, B_prod ; a[0]*b[0]+a[1]*b[1] || DOTP2 .M1X A_reg1, B_reg1, A_prod ; a[2]*b[2]+a[3]*b[3] ||[A_i] BDEC .S1 loop, A_i ; iterate loop

* ================== PIPE LOOP EPILOG ============================= *

RETNOP.S2 B3, 4 ; Return to caller ADD .L1X A_sum, B_sum, A_sumt ; final sum

.end

四、实验步骤

(1) 开机:打开计算机电源,进入Win XP系统,双击桌面上的CCS3.3图

标,选择open——DM6437 Little Endian Simulator ,进入DSP软件集成开发环境,或者选择open——c6437 510 plus进入DSP硬件集成开发环境(使用实验箱做实验,先连接好实验箱及仿真器等方可开机)。

(2) 编辑文件:选择File-New—Source File菜单(或使用其它文本编辑器)

编辑好C程序文件(*.c)、汇编程序文件(*.asm)、头文件(*.asm)及链接命令文件(*.cmd),并保存在D盘DSPLAB\\LAB1文件夹中。 (3) 创建工程项目:选择Project-New,出现—对话框,在project栏(第

一行)填写项目名称,并选定项目的位置(D:\\DSPLAB\\LAB1),然后单击“完成”按钮,这样就新建了一个工程项目,该项目用来管理各种文件,便于编译、调试。

注意:路径、文件夹、文件名中不能含有汉字,且第一个字母不能是数字。

(4) 添加文件:将编辑好的三个文件添加到刚建好的工程项目中,选择

Project-Add Files to Project,出现一个对话框,选择文件夹(D:\\DSPLAB\\LAB1)并选中C文件、汇编程序文件、头文件、cmd文件,单击“打开”按钮就将这四个文件添加到该工程中了。 注:此步骤可一次加入四个文件,也可重复四次,每次加入一个文件。

(5) 编译汇编程序:选择Project—Compile File,分别编译主程序及头文件,

修改程序中的错误,再编译,直到无错误出现。编译后的文件为OBJ文件。

(6) 链接:选择Project—Build或Rebuild All,链接各OBJ文件,若有错误

出现应修改错误(错误应在cmd文件中),再链接,直到无错误出现。链接生成可执行的out文件。

(7) 下载out文件:选择File—Load Program,在debuge文件夹中选中out

文件(文件名与工程项目同名),单击“打开”按钮,这样out文件就下载到DSP中了。 (8) 调试:选择debuge—Step Into 单步执行代码或者选择debuge—Run连

续运行代码(debuge—Halt停止运行)。单步运行或运行结束后选择View-Memory和View-Registers-CPU Registers/Peripheral Regs查看存储器和寄存器中的数据。如果最后的结果有错误,则应查找原因修改程序并重复步骤5 ~ 步骤8,直到结果正确为止。

实验二 创新实验题(题目9)

一、实验任务及目的

任务:将yuv格式的图像数据转换到HSV中H空间,从而掌握C语言、汇编语言的优化。

目的:

1.熟悉DSP集成开发环境CCS 6000的使用方法。 2.熟悉TMS320C6437 DSP优化。

3.了解图像处理中将yuv格式的图像数据转换到HSV中H空间的方法,掌握yuv和HSV格式图像的组成原理,以及转化原理。 二、算法原理及程序优化方法 算法原理:

YUV 的格式是yuv420,若yuv的排列顺序如下:

Y1 Y2 Y3 Y4

Y5 Y6 Y7 Y8 U1 U2 V1 V2

则:还原出的RGB格式的像素为:y1+u1+v1->p1; y2+u1+v1->p2; y3+u2+v2->p3; y4+u2+v2->p4; y5+u1+v1->p5; y6+u1+v1->p6; y7+u2+v2->p7; y8+u2+v2->p8;

最后根据各p点的RGB值计算得出各个点的H分量值。 。 程序优化方法:修改原C语言程序中for循环语句中的算法实现部分,进行C语言的优化。 三、实验步骤

(1) 开机:打开计算机电源,进入Win XP系统,双击桌面上的CCS3.3图标,选择open——DM6437 Little Endian Simulator ,进入DSP软件集成开发环境,或者选择open——c6437 510 plus进入DSP硬件集成开发环境(使用实验箱做实验,先连接好实验箱及仿真器等方可开机)。

(2) 打开工程:选择project——open,将给定的工程打开。 (3) 根据.c文件编辑线性汇编文件保存(后缀为.sa) (4) 在主函数中调用线性汇编。

(5) 编译汇编程序:选择Project—Compile File,分别编译主程序及头文件,修改程序中的错误,再编译,直到无错误出现。编译后的文件为OBJ文件。

(6) 链接:选择Project—Build或Rebuild All,链接各OBJ文件,若有错误出现应修改错误(错误应在cmd文件中),再链接,直到无错误出现。链接生成可执行的out文件。

(7) 下载out文件:选择File—Load Program,在debuge文件夹中选中out文件(文件名与工程项目同名),单击“打开”按钮,这样out文件就下载到DSP中了。 (8) 调试:选择debuge—Step Into 单步执行代码或者选择debuge—Run连续运行

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育DSP实验 全文阅读和word下载服务。

DSP实验 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1095044.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top