EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software...

28
EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK

Transcript of EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software...

Page 1: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

EE 445S Real-Time Digital Signal Processing Lab

Fall 2011

Lab #1Introduction to Hardware & Software

Tools of TMS320C6748 DSK

Page 2: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

2

Outline

Introduction C6748 DSK Board C6748 DSP C6700 Instruction Set Architecture Code Composer Studio LabVIEW MATLAB/MathScript

Page 3: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

3

Introduction

Goal is to implement communication system components by writing C and/or assembly language programs for the TI TMS320C6748 fixed/floating-point DSP.

C6748 DSP resides on the OMAP-L138EVM board which connects to the PC by USB.

Page 4: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

4

Fixed vs. Floating Point DSP’s

Fixed Point DSP’s (Modems, Controllers, Phones…) Cheaper, Consume less power, Need special care when programming to avoid

overflows, More dominant in the market.

Floating Point DSP’s (DSL, Video, Imaging…) Easier to program, Complex architecture (more computationally

demanding) More expensive.

Page 5: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

5

TI DSP Families

Low cost, Fixed-Point, 16-bit (for control): TMS320C1x, ’C2x, ’C20x, ’C24x

Power Efficient, Fixed-Point, 16-Bit (for wireless phones and modems): ’C5x, ’C54x, ’C55x

High Performance DSP’s (DSL, Imaging, Video…): ’C62x, ’C64x (16-bit fixed-point) ’C3x, ’C4x, ’C67x (32-bit floating-point)

Page 6: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

6

Advantages of DSP’s vs. Analog Circuit

Can implement complex linear and non-linear algorithms,

Application can be modified simply by changing code,

Highly reliable, Manufacturing is fairly easy.

Page 7: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

7

TMS320C6748 DSP Block Diagram

Page 8: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

TMS320C6748 Megamodule Block Diagram

8

Page 9: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

9

DSP Features

375/456-MHz Fixed/Floating-Point – Load-Store Architecture with VLIW architecture.

10/100 Mb/s Ethernet MAC (EMAC) USB2.0 OTG, USB1.1 OHCI interface Two inter-integrated circuit (I2C) bus interfaces One multichannel audio serial port (McASP) Two multichannel buffered serial ports (McBSP)

with FIFO buffers Two SPI interfaces with multiple chip selects. Four 64-bit general-purpose timers.

Page 10: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

DSP Features (Contd.)

Configurable 16-bit host port interface (HPI). 9 banks of 16 pins of general-purpose

input/output (GPIO) with programmable interrupt/event generation modes.

Three UART interfaces Asynchronous and SDRAM external memory

interface (EMIFA) for slower memories or peripherals.

A higher speed DDR2/Mobile DDR controller. A Video Port Interface (VPIF)

10

Page 11: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

DSP Features (Contd.) C674x Two Level Cache Memory Architecture– 32K-Byte L1P Program RAM/Cache– 32K-Byte L1D Data RAM/Cache– 256K-Byte L2 Unified Mapped RAM/Cache– Flexible RAM/Cache Partition (L1 and L2) Enhanced Direct-Memory-Access Controller 3 (EDMA3)– 2 Channel Controllers– 3 Transfer Controllers– 64 Independent DMA Channels– 16 Quick DMA Channels– Programmable Transfer Burst Size

11

Page 12: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

C6748 Floating-Point VLIW DSP Core Load-Store Architecture With Non-Aligned

VLIW DSP Support Supports TI’s Basic Secure Boot – 64

General-Purpose Registers (32 Bit) Six ALU (32-/40-Bit) Functional Units

• Supports 32-Bit Integer, SP (IEEE Single Precision/32-Bit) and DP (IEEE Double Precision/64-Bit) Floating Point• Supports up to Four SP Additions Per clock, Four DP Additions Every 2 clocks.

12

Page 13: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

C6748 Floating-Point VLIW DSP Core (Contd.)

Two Multiply Functional Units Mixed-Precision IEEE Floating Point Multiply

Supported up to:– 2 SP x SP → SP Per Clock– 2 SP x SP → DP Every Two Clocks– 2 SP x DP → DP Every Three Clocks– 2 DP x DP → DP Every Four Clocks Fixed Point Multiply Supports Two 32 x 32-Bit

Multiplies, Four 16 x 16-Bit Multiplies, or Eight 8 x 8-Bit Multiplies per Clock Cycle, and Complex Multiples

13

Page 14: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

C6748 Instruction Set

Superset of C67x+ and C64x+ ISAs. Byte-Addressable (8-/16-/32-/64-Bit

Data) 8-Bit Overflow Protection Bit-Field Extract, Set, Clear Normalization, Saturation, Bit-

Counting Compact 16-Bit Instructions.

14

Page 15: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

15

Code Composer Studio

CCS is TI’s proprietary IDE that provides a transition between a high-level DSP program and an on-board machine language program. It is used to: Generate programs for the C6748 DSP using

C language, Load them into the DSK, Run them, Monitor program execution.

Page 16: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

InputInput

Need for an Operating System (BIOS)

Input

• Simple system: single I-P-O is easy to manage• As system complexity increases (multiple threads):

Can they all meet real time ? Priorities of threads/algos ? Synchronization of events? Data sharing/passing ?

• 2 options: “home-grown” or use existing (DSP/BIOS) (either option requires overhead)

• If you choose an existing O/S, what should you consider ? Is it modular ? Is it easy to use ? How much does it cost ?

Is it reliable? Data sharing/passing ? What code overhead exists?

Event + ISRDevice Driver

Data ProcessingAlgorithm

Event + ISRDevice Driver

InputInput

ProcessInput

InputOutput

Page 17: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

DSP/BIOS Environment

DSP/BIOS is a library that contains modules with a particularinterface and data structures

Application Program Interfaces (API) define the interactions (methods)with a module and data structures (objects)

Objects - are structures that define the state of a component Pointers to objects are called handles Object based programming offers:

Better encapsulation and abstraction Multiple instance ability

Technical TrainingOrganization

T TO

Page 18: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

Definitions / Vocabulary

Technical TrainingOrganization

T TO

Real-time System Where processing must keep up with the rate of I/O

DSP/BIOS Scalable, real-time kernel, that offers OS services to the user via APIs. No licensing fees required.

Function Sequence of program instructions that produce a given result

Thread Function that executes within a specific context (regs, stack, PRIORITY)

API Application Programming Interface – “methods” for interacting with library routines and data objects

Page 19: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

DSP/BIOS Thread TypesP

rio

rity

HWIHardware Interrupts

Implements ‘urgent’ part of real-time event Hardware interrupt triggers ISRs to run Priorities set by hardware

SWISoftware Interrupts

Performs HWI ‘follow-up’ activity ‘posted’ by software PRDs (periodic functions) are prioritized as SWIs 14 priority levels

TSKTasks

Runs programs concurrently under separate contexts Usually enabled to run by posting a ‘semaphore’

(a task signaling mechanism) 15 priority levels

IDLBackground

Multiple IDL functions Runs as an infinite loop (like traditional while loop) Single priority level

Page 20: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

TCF file:

Clock & Cache• BIOS Clk freq, cache settings

MEM• Memory Areas (origin, length, …)• Stack/heap sizes

Instrumentation• LOG and Statistics (STS) Objects

Scheduling• CLK objects (tick rate)• PRD, HWI, SWI, TSK, IDL fxns

Synchronization• Semaphores (SEM)

System Config

BIOS Config

The GUI creates a TCF script…

Page 21: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

Adding a New TCF File to Your Project

Technical TrainingOrganization

T TO

• Clock settings• Memory Map & Cache settings

Platform file sets up…

Select: File New DSP/BIOS v5.x Config File1 Give the new file a name:2

Pick the proper platform (e.g. evm6748)3

The TCF file does some work for us…

Page 22: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

22

LabVIEW

Laboratory Virtual Instrumentation Engineering Workbench.

It is a powerful IDE for data acquisition, instrumentation, analysis, signal processing, control…

LabVIEW programs called Virtual Instruments (VI’s). Each VI has 2 components:

Front Panel: user interface of the VI, has all controls and indicators for I/O.

Block Diagram: code is added using graphical representations of functions to control front panel objects.

Page 23: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

23

LabVIEW

Front Panel

Block Diagram

Online LabView Interactive Tutorial can be found at:

http://www.ni.com/gettingstarted/labviewbasics/

Page 24: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

24

MATLAB

MATrix LABoratory. It is a numerical computing environment

and programming language. Allows easy matrix manipulation, plotting of

functions and data, implementation of algorithms, creation of GUI’s…

Includes many specialized toolboxes that extend the regular MATLAB environment (communications, Control, Signal Processing…).

Page 25: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

25

MATLABCommand Window

Current Directory

Workspace

Command History

Page 26: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

26

MATLAB

MATLAB Help is very practical and user-friendly. Can access the MATLAB Help by pressing F1, or

going to “Help → MATLAB Help”. Also, in the Command Window, can type

help <function_name> to show the help document of a given function.

lookfor <keyword> to searche all help documents for a given keyword.

MATLAB Tutorial can be found athttp://www.mathworks.com/academia/student_center/tutorials/

Page 27: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

27

MathScript

Software from LabVIEW. Same as MATLAB but does not support all

functions available in MATLAB. Appendix D in course reader http://zone.ni.com/devzone/cda/tut/p/id/3502

Page 28: EE 445S Real-Time Digital Signal Processing Lab Fall 2011 Lab #1 Introduction to Hardware & Software Tools of TMS320C6748 DSK.

28

…The End!

See You Next Week!