Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
27.04.2015
Размер:
4.26 Mб
Скачать

Table B-1. Benchmark Summary (Continued)

 

Execution Time

Program

Benchmark

Length

(# Icyc)

 

(# Words)

 

 

 

 

 

 

 

 

Vector Multiply-Accumulate

2N

12

 

 

 

Energy in a Signal

1N

7

 

 

 

[3x3][1x3] Matrix Multiply

20

20

 

 

 

[NxN][NxN] Matrix Multiply

N3 + 8N2

30

 

 

 

N Point 3x3 2-D FIR Convolution

13N2 + 11N

41

 

 

 

Sine Wave Generation: Double Integration Technique

2N

13

 

 

 

Sine Wave Generation: Second Order Oscillator

5N

16

 

 

 

Array Search: Index of the Highest Signed Value

4N

10

 

 

 

Array Search: Index of the Highest Positive Value

2N

10

 

 

 

Proportional Integrator Differentiator (PID) Algorithm

6N

6

 

 

 

Autocorrelation Algorithm

(p + 1)2 (N - p / 2)

23

 

 

 

B.1 Benchmark Code

The following source code lists all the “defines” for the benchmarks.

 

page

132

 

opt

cc

; define section

 

AD

EQU

0

BD

EQU

$100

bd

EQU

$100

C

EQU

$200

c

EQU

$200

D

EQU

$300

N

EQU

100

AR

EQU

$300

AI

EQU

$400

OUTPUT

EQU

$500

output

EQU

$FFF1

INPUT

EQU

$501

input

EQU

$FFF1

W

EQU

0

B-2

DSP56800 Family Manual

 

w

EQU

0

 

H

EQU

0

 

XM

EQU

0

 

state

equ

0

 

ntaps

equ

$10

 

k

equ

0

 

n

equ

32

 

p

equ

10

 

mask

equ

10

 

image

equ

$40

 

dividend

equ

.25

 

divisor

equ

.5

 

paddr

equ

0

 

qaddr

equ

4

 

w1

equ

0

 

w2

equ

10

 

s

equ

0

 

tablebase

equ

0

 

lpc

equ

8

 

frame

equ

0

 

cor

equ

$100

 

shift

equ

$80

; shift constant

table

equ

$180 ; base address of a-law table

 

org

p:$40

 

B.1.1 Real Correlation or Convolution (FIR Filter)

; c(n) = SUM(I=0,...,N-1) { a(I) * b(n-I) }

opt

cc

 

 

 

MOVE

#AD,R0

 

; 2

2

MOVE

#BD,R3

 

; 2

2

CLR

A

X:(R0)+,Y0

; 1

1

MOVE

 

X:(R3)+,X0

; 1

1

REP

#N

 

; 1

3

MAC

Y0,X0,A

X:(R0)+,Y0 X:(R3)+,X0

; 1

1

RND

A

 

; 1

1

;

 

 

________

;

 

Total:

9

1N+11

 

DSP Benchmarks

B-3

B.1.2 N Complex Multiplies

 

 

; cr(I) + jci(I) = ( ar(I) + jai(I) ) * ( br(I) + jbi(I) ), I=1,...,N

; cr(I) = ar(I) * br(I) - ai(I) * bi(I)

Y1=ar

 

; ci(I) = ar(I) * bi(I) + ai(I) * br(I)

Y0=ai

X0=br, bi

opt

cc

 

 

 

 

 

MOVE

#AD,R0

 

 

; 2

2

 

MOVE

#C-1,R2

 

 

; 2

2

 

MOVE

#BD,R3

 

 

; 2

2

 

MOVE

 

X:(R2),B

 

;

 

dummy move!

DO

#NUM,END_DO8

 

 

; 2

3

 

MOVE

 

X:(R0)+,Y1

X:(R3)+,X0

; 1

1

get ar,br

MPY

Y1,X0,A

B,X:(R2)+

 

; 1

1

ar*br,

 

 

 

 

;

 

store imag

MOVE

 

X:(R0)+,Y0

 

; 1

1

get ai

MPY

Y0,X0,B

X:(R3)+,X0

 

; 1

1

ai*br, get bi

 

 

 

 

;

 

get bi

MACR

-Y0,X0,A

 

 

; 1

1

ar*br-ai*bi

MACR

Y1,X0,B

A,X:(R2)+

 

; 1

1

ar*bi+ai*br,

END_DO8

 

 

 

 

 

store real

MOVE

B,X:(R2)+

 

 

; 1

1

 

;

 

 

 

_______

 

;

 

 

Total:

15

6N+11

 

B.1.3 Complex Correlation Or Convolution (Complex FIR)

;cr(n) + jci(n) = SUM(I=0,...,N-1)

;{ ( ar(I) + jai(I) ) * ( br(n-I) + jbi(n-I) ) }

; cr(n) = SUM(I=0,...,N-1)

 

 

Y0=ar

Y1=br

; { ar(I) * br(n-I) - ai(I) * bi(n-I) }

 

 

 

; ci(n) = SUM(I=0,...,N-1)

 

 

Y0=ai

X0=bi

; { ar(I) * bi(n-I) + ai(I) * br(n-I) }

 

 

 

opt

cc

 

 

 

 

MOVE

#AD,R0

 

; 2

2

 

MOVE

#BD,R3

 

; 2

2

 

CLR

A

X:(R0)+,Y0

; 1

1

ar

CLR

B

X:(R3)+,Y1

; 1

1

br

DO

#N,END_DOB

 

; 2

3

 

MAC

Y0,Y1,A

X:(R3)+,X0

; 1

1

ar*br ,ai,bi

MAC

Y0,X0,B

X:(R0)+,Y0

; 1

1

ar*bi

MAC

Y0,Y1,B

X:(R3)+,Y1

; 1

1

ar*bi+ai*br,ar

MAC

-Y0,X0,A

 

; 1

1

ar*br-ai*bi

MOVE

 

X:(R0)+,Y0

; 1

1

 

 

 

 

 

 

B-4

 

DSP56800 Family Manual

 

 

END_DOB

 

 

 

 

RND

A

;

1

1

RND

B

;

1

1

;

 

_______

;

 

Total: 15

5N+11

B.1.4 Nth Order Power Series (Real, Fractional Data)

;c = SUM(I=0,...,N) { a(I) * b**I }

;= [[[a(n) *b+a(n-1)] *b+a(n-2)]*b+a(n-3)].....

opt

cc

 

 

 

 

MOVE

#BD,R1

 

; 2

2

 

MOVE

#AD,R0

 

; 2

2

 

MOVE

 

X:(R1),Y0

; 1

1

b

MOVE

Y0,Y1

 

; 1

1

b

MOVE

 

X:(R0)+,A

; 1

1

get a(n)

MOVE

 

X:(R0)+,B

; 1

1

get a(n-1)

DO

#NUM/2,END_DOC

 

; 2

3

 

MAC

A1,Y0,B

X:(R0)+,A

; 1

1

get a(n-2), and

 

 

 

 

 

so on

MAC

B1,Y1,A

X:(R0)+,B

; 1

1

get a(n-3), and

 

 

 

 

 

so on

END_DOC

 

 

 

 

 

RND

A

 

; 1

1

 

;

 

 

_______

 

;

 

Total:

13

1N+12

 

B.1.5 N Cascaded Real Biquad IIR Filters (Direct Form II)

Many digital-filter design packages generate coefficients for direct form II IIR filters. Often, these coefficients are greater in magnitude than 1.0. This implementation is suitable for IIR filters with coefficients greater in magnitude than 1.0 because it allows the user to simply divide all coefficients generated by 2.

;w(n)/2 = x(n)/2 - (a1/2) * w(n-1) - (a2/2) * w(n-2)

;y(n)/2 = w(n)/2 + (b1/2) * w(n-1) + (b2/2) * w(n-2)

;D High Memory Order - w(n-2)1,w(n-1)1,w(n-2)2,w(n-1)2,...

;D Low Memory Order - (a2/2)1,(a1/2)1,(b2/2)1,(b1/2)1,(a2/2)2,...

;This version uses two pointers.

opt

cc

 

 

MOVE

#W,R0

; 2

2

MOVE

#C,R3

; 2

2

MOVE

#-1,N

; 1

1

MOVE

x:input,A

; 1

1

 

 

 

 

 

DSP Benchmarks

 

B-5

Соседние файлы в папке DSP568xx