Transcript PowerPoint

Digital Signal Processing
Laboratory Work 521485S
Miguel Bordallo
Department of Computer Science and Engineering (CSE)
University of Oulu
Organization of the course
• The course consists on only ONE exercise
Assistant:
• TMS320C67x exercise:
• Miguel Bordallo: [email protected] ,TS301
Credits, grades…
• When the exercise of the course is
completed, you will receive 3.5 credit
points (2 credit units)
• No exams, no grades: each returned
exercise will be either accepted or rejected
• Contact the assistant (in third floor):
– For questions
– For returning completed exercise part
Registration to the course
• Register by adding the group member names to
the registration list.
• Write down the parameters from the list
– Maximum two students per group
– You will need a grey key and permission for the
development class room TS139
– Write down your key number in the registration list
– If you don't yet have the grey key, you must first
obtain it. Instructions are here:
http://www.otit.fi/live/kilta/avain.xml
Instructions
• Instructions will be published and updated on the course
webpage on the corresponding section:
– http://www.ee.oulu.fi/research/tklab/courses/521485S/
• Borrow the course instructions from course material shelf
("Lainattava kurssimateriaali") in third floor for copying
• Do not print large manuals! The full manuals are available
in the exercise class room; you may print a few pages for
reference but printing the manuals is useless
Doing the exercise…
• There are several C67x platforms available, and
they are located in room TS139
– Before going to use the computers, it is recommended to
reserve a time (max 2 hours)
– Reservation must be done on the Internet at
http://www.ee.oulu.fi/research/tklab/courses/521485S/reservation/
• You may create a temporary working directory in the
development computers
– It must be deleted after use!
– Always make backups e.g. email, unix server, usb mem.
Doing the exercise…(2)
• First, the code should be developed on workstation
classes (e.g. TS138) (except assembly functions)
• Only when the algorithm is functional and correct,
you can switch the development environment to the
DSP stations (TS139)
• Optimizations must be made on DSP platform
– Rewriting some functions
– Memory management
– ASM coding
Returning the exercise
• The finished exercise work should be returned
before June 30th, 2012
– It must contain answers for all questions and all written
code in appendices.
– Dsp_lab.c + multiply.s62 + DSP_report.pdf
• If you are unable to finish the work in time, you
should ask for additional time.
– Although support is not guaranteed outside official dates
• The code must be written in the “C” –language
– A small exercise requires the use of DSP assembly
language (specified in the exercise instructions)
Returning the work (2)
• You may use any published information
(books, Internet) for completing the work
– You must always reference the source if you
directly cite some material
– The exercise instructions may require you to
actually write yourself parts of the code
(e.g. no copying of FFT code)
– Copying code from other students is always
prohibited
Where?
What is a DSP Solution ?
DIGITAL SIGNAL PROCESSING SOLUTIONS
 DSP + Analog + Development Tools + SW + System Expertise
DSP Chip Market
 Fast growing segment in the SC
market (>12% CAGR)
TMS320 DSP - 3 Families
C2000
47 Products
ASP: $3 - $15
C5000
92 Products
ASP: $5 - $120

 World’s most code-efficient DSP  World’s most powerefficient DSP
 Advanced embedded control
 World’s most popular DSP 
applications
 Leadership integration of analog  Heart of handheld solutions
and high-speed Flash memory in Internet era
 C55x fully code compatible 
 C28x fully code compatible
C6000
>20 Products
ASP: $10 - $350
World’s highestperformance DSP
Used in high-bandwidth
comms and video
equipment
C64x fully code
compatible
C6000™ DSP platform
C64xTM DSP
2001 Innovation
of the Year
EDN Magazine
Best DSP of 2001
InStat/MicroDesign
Resources
 World’s highest-performance DSP
 Heart of solutions for new, high-bandwidth
communications and video equipment
 Wireless basestations and transcoders
 DSL
 Home theater audio
 Digital radio
 Imaging and video servers & gateways
 Smartphone SoCs
 Millions shipped to hundreds of
customers
 New generation C67x DSP products fully
>30 Products
ASP: $10 - $350
code compatible
Code Composer Studio
 DSP industry’s first
comprehensive, open
Integrated Development
Environment (IDE)
 Advanced visualization
 Intuitive ease-to-use
 Third-party plug-ins
 Visualization without
stopping the processor
Digital Signal Processing
Laboratory Work 521485S
C67x exercise
http://www.ee.oulu.fi/research/tklab/courses/521485S/c67x.html
Miguel Bordallo,
[email protected], TS301
Department of Computer Science and Engineering (CSE)
University of Oulu
C67x Development Platform
• TMS320C67x is Texas Instruments' family of
floating point digital signal processors.
• It is downward compatible with the TMS320C62x
fixed point family, and has a Very Long Instruction
Word (VLIW) -like architecture, developed by
Texas Instruments and called VelociTI.
• Each 256-bit wide Instruction Fetch Packed (IFP)
can contain up to 8 simple 32-bit RISC (Reduced
Instruction Set Computer) instructions, whose
execution is started simultaneously at the same
clock cycle.
• The instructions are pipelined: new instructions
can be dispatched before earlier instructions have
finished.
C67x Development Platform (2)
• There are special instructions for loading and storing
data from and to memory; all arithmetic instructions
can use directly only built-in registers.
• The instructions have flexible addressing modes:
register direct, register indirect, and base + index
modes are supported. Additionally the index register
can be post- or preincremented or decremented.
• There are two register sets, which both have sixteen
32-bit registers, or in total 32 registers. Two 32-bit
registers can be combined into one 64-bit floating
point or a 40-bit fixed point register.
• The DSP has plenty of computing resources: there are
two multipliers and six arithmetic-logical units (ALUs).
C67x Development Platform (3)
• The DSP is attached to the DSP Starter Kit (DSK) where it
is clocked at 150/225 MHz rate.
–
–
–
–
The DSK contains power supply, - line in and speaker connectors,
6 megabytes of SDRAM,
- 16-bit D/A and A/D converters,
128 kilobytes of flash ROM,
- Parallel/USB port interface
programmable LEDs,
• The code development can be made with Code Composer
Studio (CCS),
– integrated development environment (IDE) containing:
•
•
•
•
•
•
code editor,
C compiler,
assembler,
linker,
debugger
Utilities
C67x Development Platform (4)
• The Code Composer Studio contains a firmware
kernel called DSP/BIOS,
– provides basic runtime services for managing block-based
data transfers.
– Analog-to-digital (A/D) converter produces samples one by
one, generating a hardware interrupt for each.
• The DSP/BIOS collects the samples into a frame.
– When the frame fills up, a software interrupt is generated
– The control is transferred to the user application.
• The application will receive the whole frame at once,
– It does not need to take care of collecting single samples.
– DSP/BIOS contains routines for outputting framed data via
digital-to-analog (D/A) converter.
C67x Exercises
• All C code can be written by modifying example
program dsp_lab.c.
• Exercise questions increase in complexity
• Last questions combines results from previous
questions: questions should be done in order
• For doing the exercises, you must understand:
–
–
–
–
–
–
Generation of sine signals using IIR filters
Decimation
Interpolation
Implementation of a fast Fourier transform (FFT)
Frame based processing
Basics of C67x architecture (DSP assembly, DSP architecture
• Most code should be written on any workstation, but
the final program must run on the DSPs
C67 Exercise (2)
C67x Exercise (3)
• The final version of the exercise
instructions and the final code template
will be published next Monday
• Access to the DSP lab will be granted
some time next week
• First steps of the development should be
done on a workstation
How to proceed ?
1. Read the instructions carefully (all of them)
2. Gather the documentation that you will need
3. Study the algorithms and concepts involved
– Convolution, complex multiplication, IIR, FIR, overlap-save
4. Design the algorithms. Test some parts with MATLAB
– (e.g. FFT)
5. Start coding on a Unix station
– Test your code against well known results (e.g. in Matlab)
6. When the final code is working:
– Think about the DSP architecture and make some changes
– Check the memory usage. Check the data types. Check the
use of very slow functions (such as pow() )
7. Move to the DSP platform
In the DSP platform
1. Test the environment
2. Familiarize yourself with the debugging tools
3. Try your code
– Only the code that works on a Unix station has chances of
working on the DSP
4. Debug, debug, debug, debug, debug…
5. When the code works:
– Make the final time measurements.
– Compile your answers into a document.
– Return the exercises
In case of problems
• Read the instructions and the webpage (FAQ)
It might be that the question is already
answered there
• First, send and email to me.
– Always attatch the code and results
– Specify the problem as much as possible, so it can
be reproduced.
• I will answer with debugging strategies and
suggestions of tests.
• If all fails, I will set up a time to meet you in the
lab.
Questions?
??
??
??
??
??
??
??
??