260 likes | 403 Vues
Join the Digital Signal Processing Laboratory course (521485S) under Miguel Bordallo at the University of Oulu. This course involves a single exercise utilizing the TMS320C67x platform. Participants will earn 3.5 credit points upon completion. There are no exams; exercises are either accepted or rejected. Students may work in pairs and must register by adding their names to the list. Access and use of lab resources require a grey key. Full instructions and resources are available online.
E N D
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: miguelbl@ee.oulu.fi ,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
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 C5000 C6000 47 Products ASP: $3 - $15 92 Products ASP: $5 - $120 >20 Products ASP: $10 - $350 • World’s highest-performance DSP • Used in high-bandwidth comms and video equipment • C64x fully code compatible • World’s most power-efficient DSP • World’s most popular DSP • Heart of handheld solutions in Internet era • C55x fully code compatible • World’s most code-efficient DSP • Advanced embedded control applications • Leadership integration of analog and high-speed Flash memory • C28x fully code compatible
C64xTM DSP 2001 Innovation of the Year EDN Magazine Best DSP of 2001 InStat/MicroDesign Resources >30 Products ASP: $10 - $350 C6000™ DSP platform • 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 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, miguelbl@ee.oulu.fi, 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
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 ? • Read the instructions carefully (all of them) • Gather the documentation that you will need • Study the algorithms and concepts involved • Convolution, complex multiplication, IIR, FIR, overlap-save • Design the algorithms. Test some parts with MATLAB • (e.g. FFT) • Start coding on a Unix station • Test your code against well known results (e.g. in Matlab) • 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() ) • Move to the DSP platform
In the DSP platform • Test the environment • Familiarize yourself with the debugging tools • Try your code • Only the code that works on a Unix station has chances of working on the DSP • Debug, debug, debug, debug, debug… • 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? ?? ?? ?? ?? ?? ?? ?? ??