Digital Signal Processing Laboratory Work S

Slides:



Advertisements
Similar presentations
DSPs Vs General Purpose Microprocessors
Advertisements

Lecture 4 Introduction to Digital Signal Processors (DSPs) Dr. Konstantinos Tatas.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Speeding it up Part 3: Out-Of-Order and SuperScalar execution dr.ir. A.C. Verschueren.
Computer Science and Engineering Laboratory, Transport-triggered processors Jani Boutellier Computer Science and Engineering Laboratory This.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Mohammed Yousef Abd El ghany, Faculty of Eng., Comm. Dep., 3rd year. Digital Signal Processor The Heart of Modern Real-Time Control Systems.
Oklahoma Christian University DSPS Fest 2000 Advanced DSP for Undergraduates at a Small University David Waldo Associate Professor Electrical Engineering.
Code Composer Studio TM Integrated Development Environment v2 First Intelligent IDE To Offer DSP Application Development For Multi-Processor, Multi-User,
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
Memory Management 2010.
Introduction to ARM Architecture, Programmer’s Model and Assembler Embedded Systems Programming.
Systems Programming Course Gustavo Rodriguez-Rivera.
Getting the O in I/O to work on a typical microcontroller Activating a FLASH memory “output line” Part 1 Main part of Laboratory 1 Also needed for “voice.
Computer Organization and Assembly language
Topic 1: Introduction to Computers and Programming
Embedded Systems Programming
EE 345S Real-Time Digital Signal Processing Lab Fall 2008
EENG 3910: Project V Digital Signal Processing (DSP) System Design
Computer Organization and Assembly language
LPC Speech Coder on the TI C6x DSP Mark Anderson, Jeff Burke EE213A / EE298-2 Prof. Ingrid Verbauwhede.
Detailed Technical Feature Presentation Background Information The Importance of Software Software Roadblocks Development Environment DSP Development Cycle.
Anne Mascarin DSP Marketing The MathWorks
Getting Started With DSP A. What is DSP? B. Which TI DSP do I use? Highest performance C6000 Most power efficient C5000 Control optimized C2000 TMS320C6000™
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
CS102 Introduction to Computer Programming
Chapter Introduction to Computers and Programming 1.
Introduction to Programming Dr Masitah Ghazali Programming Techniques I SCJ1013.
Digital Signal Processors for Real-Time Embedded Systems By Jeremy Kohel.
Computer Organization
Real time DSP Professors: Eng. Julian Bruno Eng. Mariano Llamedo Soria.
Introduction CSE 1310 – Introduction to Computers and Programming
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Higher Computing Computer structure. What we need to know! Detailed description of the purpose of the ALU and control unitDetailed description of the.
Basics and Architectures
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Chapter 1: Introduction to Computers and Programming.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 1: Introduction to Computers and Programming.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
MOI PROJECT Gugulethu Mabuza Bachelor Science Electrical Engineering Michigan State University.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Computer Organization & Assembly Language © by DR. M. Amer.
LIST OF EXPERIMENTS USING TMS320C5X Study of various addressing modes of DSP using simple programming examples Sampling of input signal and display Implementation.
Introduction to Microprocessors
Computer Architecture 2 nd year (computer and Information Sc.)
Processor Architecture
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Lecture 7: Overview Microprocessors / microcontrollers.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Fundamentals of Programming Languages-II
Teaching Digital Logic courses with Altera Technology
بسم الله الرحمن الرحيم MEMORY AND I/O.
CS 1410 Intro to Computer Tecnology Computer Hardware1.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Computer Organization
Embedded Systems Design
Introduction.
Introduction CSE 1310 – Introduction to Computers and Programming
Introduction to Digital Signal Processors (DSPs)
Today’s agenda Hardware architecture and runtime system
BIC 10503: COMPUTER ARCHITECTURE
Digital Signal Processors-1
Computer System Laboratory
ICS103 Programming in C 1: Overview of Computers And Programming
Presentation transcript:

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

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 C5000 C6000 47 Products ASP: $3 - $15 World’s most power-efficient DSP World’s most popular DSP Heart of handheld solutions in Internet era C55x fully code compatible World’s highest-performance DSP Used in high-bandwidth comms and video equipment C64x 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

C6000™ DSP platform C64xTM DSP World’s highest-performance DSP Best DSP of 2001 InStat/MicroDesign Resources 2001 Innovation of the Year EDN Magazine 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 >30 Products ASP: $10 - $350 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

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 ? 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? ?? ?? ?? ?? ??