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

Post on 22-Dec-2015

224 views 8 download

Tags:

transcript

EE 345S Real-Time Digital Signal Processing Lab

Fall 2008

Lab #1Introduction to Hardware & Software

Tools of TMS320C6713 DSK

2

Outline

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

3

Introduction

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

C6713 DSP resides on the TI TMS320C6713 DSP Starter Kit (DSK) which connects to the PC by USB.

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.

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)

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.

7

TMS320C6713 DSK Block Diagram

8

DSK Features

Has a TMS320C6713 DSP operating at 225 MHz.

AIC32 stereo codec line with Line In, Line Out, MIC and headphone jacks to interface with analog audio signals that are sampled and digitized so it can be processed by DSP.

9

DSK Features

5V Power Supply. 16 MB of synchronous DRAM. 512 KB of non-volatile flash memory. 4 user accessible LED’s and DIP (Dual In-

line Package) switches to provide user with some interactive feedback (I/O).

Expansion connectors for daughter cards, external memories and other DSP’s.

10

C6713 DSP Features

VLIW (Very Long Instruction Word) CPU Core that takes advantage of parallelism (ILP). Fetches 8 32-bit instructions at once (total of 256

bits). Has 8 independent functional units:

4 ALU’s (fixed and floating-point): .L1, .L2, .S1 and .S2. 2 ALU’s (fixed-point): .D1 and .D2. 2 Multipliers (fixed and floating-point): .M1 and .M2.

Load/Store architecture with 32 32-bit general purpose registers (all instructions operate on registers as opposed to data in memory using .D1/.D2).

11

C6713 DSP Features

8 functional units are divided into 2 sets each with 4 different units and their own 16 general purpose registers (A0-A15 and B0-B15).

There is a single data bus connecting the 2 sides. Register files support data ranging in size from

16-bit through 40-bit fixed point & 64-bit floating point.

Register access using the register file across the CPU supports one read and one write per cycle.

12

C6700 DSP Simplified Architecture

Program RAM Data Cacheor Cache

Internal Buses

Control Regs

Regs (B

0-B

15

)

Regs (A

0-A

15

)

.D1

.M1

.L1

.S1

.D2

.M2

.L2

.S2

CPU

Addr

Data

ExternalMemory -Sync -Async

DMA

Serial Port

Host Port

Boot Load

Timers

Pwr Down

13

C6713 DSP Features

Instruction Set Features Hardware support for IEEE 754 standard on single

and double precision floating-point operations. 8, 16 or 32-bit addressable load/store instructions.

L1/L2 Memory Architecture (2 level cache). Can be configured to support Little Endian or

Big Endian. 16-bit HPI to allow other processor access to

memory space.

14

DSP Units

.M Multiplication Unit: 16-bit × 16-bit, 32-bit × 32-bit, 64-bit × 64-bit

.L Logic Unit: Arithmetic, comparisons and logic operations.

.S Shifter Unit: Bit manipulation (set, get, shift, rotate).

.D Data Unit: Load/Store to/from memory (exclusively) Performs addition and pointer arithmetic.

15

C67xx Instruction Set

16

Parallel Operations

Instruction word for each functional unit is 32-bits.

Instructions are fetched 8 at a time in 256 bit packets called fetch packets.

Up to 8 instructions can be executed in parallel, one in each functional unit.

Bit 0 of 32-bit instruction indicates if next instruction belongs to same execute packet.

Fetch packet ≠ Execute packet (execute packet can be larger than 256 bits, so it spans more fetch packets).

17

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 C6713 DSP using

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

18

Code Composer Studio - Example

Make sure DSK is connected to PC via USB and to power outlet before opening CCS.

Open CCS by double clicking on the CCS icon

To connect to the DSK, go to: “Debug → Connect”.

To start a new project, go to: “Project → New…”

Choose Appropriate DSP

Family

19

Code Composer Studio - Example

“Skeleton.exe” is a project skeleton we will use where we only need to insert our code.

Available online on course website.

20

Code Composer Studio - Example

Add C source file to “labmain.c”:

21

Code Composer Studio - Example

Now, Compile code: “Project → Compile File”, Build project: “Project → Build”, Load program to DSK: “File → Load Program”

and choose “.out” file in “Debug” folder, Run the program on DSP: “Debug → Run”.

Profiling is a feature in CCS that allows us to get the time needed to execute certain sequence of instructions.

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.

23

LabVIEW

Front Panel

Block Diagram

Online LabView Interactive Tutorial can be found at: http://zone.ni.com/devzone/cda/tut/p/id/4425

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…).

25

MATLABCommand Window

Current Directory

Workspace

Command History

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.utexas.edu/its-archive/rc/tutorials/matlab/matlab73.pdf

27

MathScript

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

functions available in MATLAB. Appendix D in course reader: http://users.ece.utexas.edu/~bevans/courses/

realtime/handouts/matlab/index.html

28

…The End!

See You Next Week!