数据块传送程序_第1页
数据块传送程序_第2页
数据块传送程序_第3页
数据块传送程序_第4页
数据块传送程序_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据块传送程序2026/7/919:442

数据块传送程序可以用于数据传送的指令有10条,分别可以实现数据存储器之间、数据存储器和MMR之间、程序存储器和数据存储器之间、程序存储器和数据存储器之间的数据块传送等。

这些指令传送速度比加载和存储指令快,传送数据不需要通过累加器,可以寻址程序存储器,与RPT指令相结合可以实现数据块传送。

2026/7/919:443

数据块传送程序1.

数据传送指令

用于数据传送指令可分为四类:

(1)

数据存储器之间的数据传送

MVDKSmem,dmad

MVKDdmad,Smem

MVDDXmem,Ymem2字

2周期2字

2周期1字

1周期2026/7/919:4441.

数据传送指令(2)

数据存储器与MMR之间的数据传送

MVDMdmad,MMR

MVMDMMR,dmad

MVMMMMRx,MMRy

2字

2周期2字

2周期1字

2周期(3)

程序存储器和数据存储器之间的数据传送

MVPDpmad,Smem

MVDPSmem,pmad

READASmem

WRITASmem

2字

3周期2字

4周期1字

5周期1字

5周期2026/7/919:4451.

数据传送指令(4)

从PA口读/写数据

PORTRPA,Smem

PORTWSmem,PA

2字

2周期2字

2周期数据传送指令的特点

传送速度比加载和存储指令要快;

②数据传送不通过累加器;

可寻址程序存储器;

④与RPT结合,可实现数据块传送。

2026/7/919:4462.

程序存储器至数据存储器的数据传送

重复执行MVPD指令,可以实现程序存储器至数据存储器的数据传送,在系统初始化过程中十分有用。【例1】数组x[8]={0,1,2,3,4,5,6,7}初始化。

.bssx,8

.dataTBL:.word0,1,2,3,4,5,6,7

.textSTART:STM#x,AR5RPT#7MVPDTBL,*AR5+

……2026/7/919:4473.

数据存储器之间的数据传送

在数字信号处理时,经常需要将数据存储器中的一批数据传送到数据存储器的另一个地址空间。【例2】进行N点FFT运算时,为节约存储空间要用到原位计算,将数组X[16]赋到数组Y[16],计算一个蝶形后,所得输出数据可以立即存入原输入数据所占用的存储单元。

.bssx,16

.bssy,16

STM#x,AR2

STM#y,AR3

RPT#15

MVDDAR2+,*AR3+

2026/7/919:4484.

数据存储器和MMR之间的数据传送【例4】

双操作数方式实现IIR高通滤波器:

table:

.word0

.word0

.word653*32768/10000

.word-1306*32768/10000

.word653*32768/10000

.word-3490*32768/10000

.word-600*32768/10000

.textstart:SSBXFRCTSTM#x2,

AR1RPT#1MVPD#table,*AR1+

;x(n-2);x(n-1)

;x(n-0)

;B2

;B0

;A2

;A1/2

2026/7/919:4494.

数据存储器和MMR之间的数据传送【例4】

双操作数方式实现IIR高通滤波器:

STM#COEF,AR1

RPT#4

MVPD#table+2,*AR1+STM#x2,AR3STM#COEF+4,AR4MVMMAR4,AR1STM#3,BKSTM#-1,AR0IIR1:PORTRPA1,*AR3LD*AR3+0%,16,AMAC*AR3,*AR4,AMAC*AR3+0%,*AR4-,A

;AR4指向A1

;保存地置值在AR1中

;设置循环缓冲区长度

;设置变址寻址步长

;从PA1口输入数据x(n)

;计算反馈通道。A=x(n)

;A=x(n)+A1*x1

;A=x(n)+A1*x1+A1*x1

2026/7/919:44104.

数据存储器和MMR之间的数据传送【例4】

双操作数方式实现IIR高通滤波器:

MAC*AR3+0%,*AR4-,A

STHA,*AR3

MPY*AR3+0%,*AR4-,A

MAC*AR3+0%,*AR4-,A

MAC*AR3,*AR4-,ASTHA,*AR3MVMMAR1,AR4BDIIR1PORTW*AR3,PA0

.end

;A=x(n)+2*A1*x1+A2*x2=x0

;保存x0

;计算前向通道。A=B0*x0

;A=B0*x0+B1*x1

;A=B0*x0+B1*x1+B2*x2=y(n)

;保存y(n)

;AR4重新指向A1

;循环

;向PA0口输出数据

2026/7/919:4411

小数运算程序在定点DSP芯片中,采用定点数进行数值运算时,若操作数采用整型数,则DSP芯片给定的字长(一般16位)决定了整型数的最大范围。

通常,定点DSP采用小数乘法。其原因:①

乘法器为16位,对于大于16位的数据难以实现乘法递推,且乘积占用存储资源大;

小数乘法时,既可以存储32位乘积,也可以存储高16位乘积,可用较少的资源保存结果;

小数乘法便于乘法递推。

2026/7/919:4412

小数运算程序1.

数的定标

采用小数运算时,设定小数点在16位中的位置称为定标。

小数点在16位数中的位置不同,可以表示不同大小和不同精度的小数。

数的定标通常有Q表示法,如Q0,Q1,…,Q15。Q越大,可以表示的数的范围越小,但精度越高。

在具体的定点程序中,必须根据具体情况适当选择合适的定标。

2026/7/919:4413

小数运算程序2.

小数的表示方法

’C54x采用基于2的补码小数表示形式。每个16位数用1个符号位(最高位)、i个整数位、15-i个小数位来表示。

采用2的补码小数(Q15格式),其位权值为:

MSB……

……LSB

-1.2-12-22-3

……2-15

例如:

00000010.10100000——21+2-1+2-3

=2.625

2026/7/919:44142.

小数的表示方法

2的补码小数表示方法:

将十进制小数乘以32

768,并将整数乘积转换成16进制数。正数:乘以32

768,整数转换成16进制数;负数:其绝对值乘以32

768,整数取反加1。2026/7/919:44152.

小数的表示方法如:1

——

7FFFH0.5——4000H0.25——2000H0——0000H-0.25——E000H-0.5——C000H-1——8000H1×32

768=7FFFH0.5×32

768=4000H0.25×32

768=2000H0×32

768=0000H(0.25×32

768)补=E000H(0.5×32

768)补=C000H(1×32

768)补=8000H注意:汇编时,不能直接写成十进制小数。

如:0.907——

.word32

768*907/1000

2026/7/919:4416

小数运算程序3.

小数乘法与冗余符号位

小数乘法实例:

0.5

(-0.375)=-0.1875

0100

(0.5)11

01

(-0.375)×01

00000001

001100

(-0100)

1110100(-0.1875)

2026/7/919:44173.

小数乘法与冗余符号位乘积:

-0.09375=1110100

7位二进制

扩展8位后,乘积:11110100=-0.09375

出错原因:两带符号数相乘,其结果带有2个符号位。

Sxxx(Q3格式)

Syyy(Q3格式)

×

SSzzzzzz(Q6格式)解决办法:运算结果左移一位,消去多余符号位。可通过对FRCT位置1,乘法器自动将乘积结果左移一位。

如:11110100

左移1位:

11101000结果:-0.1875

2026/7/919:44183.

小数乘法与冗余符号位

在小数乘法编程时,应事先设置FRCT位,如:

SSBXFRCTMPY*AR2,*AR3,ASTHA,@Z

完成了Q15*Q15=Q15的小数乘法。

2026/7/919:4419【例1】编制计算

的程序

a1=0.3a2=0.2a3=-0.4a4=0.1x1=0.6x2=0.5x3=-0.1x4=-0.2

.bssa,4.bssx,4.bssy,1.datatable:.word3*32768/10.w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论