Real Time DSP and the 56300 - Montana State University

Download Report

Transcript Real Time DSP and the 56300 - Montana State University

Real Time DSP
and the
Motorola 56300 DSP Chip
R.C. Maher
ECEN4002/5002 DSP Laboratory
Spring 2002
Introduction: DSP Review
• Sampled signal is represented as a sequence
of numbers: x[n]
• Unit sample [n] : …0,0,0,1,0,0,0, …
• Can write:
x[n] 

 x[k ] [n  k ]
k  
“Sifting” property
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
2
Linearity, Time Invariance
• Linear systems: additivity and scaling
T x1[n]  x2[n]  T x1[n] T x2[n]
T a  x[n]  a  T x[n]
• Time-Invariant systems: delay (shift) of
input sequence simply causes the same
delay (shift) of output sequence
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
3
Unit Sample Response
• The response of an LTI system to a unit sample is very
useful. Note that:
y[ n]  T x[ n]
Sifting
 

 T   x[ k ] [ n  k ]
k  



 x[k ]T  [n  k ]
k  
Convolution


 x[k ] h[n  k ]
Linearity
Time
Invariance
k  
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
4
Unit Sample Response (cont.)
• NOTE: we can find the response of an LTI
system to any input if we know h[n]
• What if input is a complex exponential?
y[n] 

j ( n  m )
h
[
m
]
e

m  
 e jn

 jm
h
[
m
]
e

m  
 
 e jn H e j
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
5
Frequency Response
• Frequency response is the discrete-time
Fourier transform of the unit sample
response:
    h[n]e
He
j

 jn
n  
– This is a periodic function with period 2
– 2 corresponds to the sample rate, fs , of the
sampled-data system
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
6
Sampling Effects: Frequency Domain
Xc(j)
-N
S > 2 N
Fourier Transform of
continuous function

N
Fourier Transform of
sampled function
XS(j)
-2S
-S
-N
S < 2 N (aliasing)
S
2S

XS(j)
-2S -S
ECEN4002 Spring 2002
N
Real Time DSP
S
2S

R. C. Maher
7
The Motorola 5630x
Programming model
Introduction to instruction set
Assembler directives
ALU
5630x ALU
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
9
ALU Registers
X0
Y0
X1
Y1
A2
A1
A0
B2
B1
B0
ECEN4002 Spring 2002
Real Time DSP
General-Purpose:
• 24 bits
• Move to/from other registers
• Move to/from memory
• ALU/Mult operands
Accumulators:
• 56 bits [ 8 : 24 : 24 ]
• Move to/from other registers
• Move to/from memory
• ALU/Mult results
R. C. Maher
10
5630x Addressing Unit
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
11
AGU Registers
Index Registers
Modulo Registers
Offset Registers
R0
M0
N0
R1
M1
N1
R2
M2
N2
R3
M3
N3
R4
M4
N4
R5
M5
N5
R6
M6
N6
R7
M7
N7
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
12
Addressing Examples
move x:(R4),X0
move x:(R0)+,X1
move x:(R4)-,X1
move x:-(R0),X1
move x:(R4)+N4,X0
move x:(R0)-N0,X1
move x:(R4+N4),X0
ECEN4002 Spring 2002
; Register Indirect
; w/ postincrement by 1
; w/ postdecrement by 1
; w/ predecrement by 1
; w/ postincrement by N
; w/ postdecrement by N
; w/ indexed offset by N
(no update)
Real Time DSP
R. C. Maher
13
Program Layout
• Instruction format:
lab1
Label
field
mac
Operation
field
x0,y0,a
Operand
field
x:(r0)+,x0
X move
field
y:(r4)+,y0
Y move
field
• Some assembler directives:
ORG
EQU
INCLUDE
DS
DC
; (comment)
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
; comment
Comment
field
END
14
Memory Organization
• 56303
– Program:
– X Data:
– Y Data:
$0 - $0FFF (4k words)
$0 - $07FF (2k words)
$0 - $07FF (2k words)
• 56307
– Program:
– X Data:
– Y Data:
ECEN4002 Spring 2002
$0 - $3FFF (16k words)
$0 - $5FFF (24k words)
$0 - $5FFF (24k words)
Real Time DSP
R. C. Maher
15
Real Time Signal Processing
“Real Time” means:
• Input/output streams are sustained – no
gaps or dropped data
• Processing must occur within the sample
period 1/fs (at least on average)
• Fixed delay through the system (the
latency) usually must be minimized
• Availability of data drives the system
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
17
DSP System
DSP receives an
interrupt as each
sample arrives
Clock
A/D
Converter
Clock
DSP
Data
Microprocessor
Data
High speed
serial data
ECEN4002 Spring 2002
D/A
Converter
DSP receives an
interrupt when D/A
ready for sample
Real Time DSP
R. C. Maher
18
DSP Software Development
•
•
•
•
Write software
Assemble and link
Download to EVM
Run!
…but how to determine if it works or not??
…and what if program doesn’t work??
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
19
Testing and Debugging
• Can be a complicated process because:
– Write and assemble code on PC, but then
download and run on EVM: indirect
observation is required.
– Algorithm and implementation errors are often
subtle and ellusive numerical details.
– Real Time programs can’t be run in “slow
motion,” so identifying bugs requires creative
methods.
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
20
Testing and Debugging (cont.)
• Suggestions:
– Develop and test your code incrementally.
Make only small changes code changes before
testing again. In other words, never be more
than one change away from a working program.
– Test code segments in isolation using the
debugger or the software simulator.
– Learn to use your eyes and ears to find bugs.
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
21
Edit | Assemble | Load | Test
• Edit source code file
–
–
–
–
Use simple text editor (DOS Edit, Notepad, etc.)
Plain text, not case sensitive
USE LOTS OF COMMENTS!!
Use modular code design and organization
• Assemble
– Execute: asm56300 –a –b –g –l file.asm
– Check for errors, and re-edit as necessary
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
22
Edit | Assemble | Load | Test (cont.)
• Download .cld module to the EVM
– Run the Domain Technologies Debugger EVM30XW
– “File | Load…” and browse to the .cld file
• Test the module
– Start the code (green button on Debugger)
– Observe input/output signals
– When in doubt, stop and download known good code
(e.g, pass.cld)
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
23
The Pass.asm Program
• Initializes codec (stereo)
• Handles codec data interrupts
• Main program loop polls for data ready,
then puts left sample in A and right sample
in B
• Uses some X and Y memory
• Note: r6 is used as a stack pointer
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
24
Lab Assignment #1
• Due at START of class in one week
• Topics:
–
–
–
–
–
Use EVM and software tools
Observe sampling and reconstruction
Program #1: gain multiplier
Program #2: word length and quantization
Program #3: aliasing
ECEN4002 Spring 2002
Real Time DSP
R. C. Maher
25