Technical information
ī Abstract and Contents iii
The DSP56800Eās DSP core architecture represents the next step in the evolution of Motorolaās 16-bit
DSP56800 Family of digital signal processors. It maintains compatibility with the DSP56800 while
improving performance and adding new features. The main purpose of this application note is to
recommend a method for porting DSP56800 applications to the DSP56800E and for optimizing the
applications, exploiting the advantages of the new architecture.
An important feature of the DSP56800E is its source code compatibility with the DSP56800. Code
developed for the DSP56800 can be assembled for the DSP56800E and will run correctly if certain coding
requirements are fulfilled. These requirements are identified, analyzed, fulfilled, and verified with regard
to example code in this application note.
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 References and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Application Porting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Porting Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Running the Original Application Code and Obtaining Test Vectors . . . . . . . . . . . . . 3
2.1.2 Verifying the Coding Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Application Performance Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Optimizing the Ported Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Delay Slots on Change of Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 New Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Immediate Operands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4 AGU Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.5 Operations and Memory Access on 32 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.6 Operations and Memory Access on 8 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.7 New Addressing Modes and New Register Combinations in Data ALU Operations . . . 14
3.8 Nested Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4 Writing DSP56800E Code from Scratch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1 RXDEMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 RXEQERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 Pipeline Effects on DSP56800E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1 Data ALU Pipeline Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 AGU Pipeline Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Dependencies with Hardware Looping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Abstract and Contents
Fr
eescale S
emiconduct
or
, I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
nc...