EE 345S Real-Time Digital Signal Processing Lab Fall 2007

Download Report

Transcript EE 345S Real-Time Digital Signal Processing Lab Fall 2007

EE 445S Real-Time Digital
Signal Processing Lab
Fall 2011
Lab #1
Introduction to Hardware & Software
Tools of TMS320C6748 DSK
Outline







Introduction
C6748 DSK Board
C6748 DSP
C6700 Instruction Set Architecture
Code Composer Studio
LabVIEW
MATLAB/MathScript
2
Introduction


Goal is to implement communication system
components by writing C and/or assembly language
programs for the TI TMS320C6748 fixed/floatingpoint DSP.
C6748 DSP resides on the OMAP-L138EVM board
which connects to the PC by USB.
3
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.
4
TI DSP Families

Low cost, Fixed-Point, 16-bit (for control):


Power Efficient, Fixed-Point, 16-Bit (for wireless
phones and modems):


TMS320C1x, ’C2x, ’C20x, ’C24x
’C5x, ’C54x, ’C55x
High Performance DSP’s (DSL, Imaging, Video…):


’C62x, ’C64x (16-bit fixed-point)
’C3x, ’C4x, ’C67x (32-bit floating-point)
5
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.
6
TMS320C6748 DSP Block Diagram
7
TMS320C6748 Megamodule Block
Diagram
8
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.
9
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
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
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/64Bit) Floating Point
• Supports up to Four SP Additions Per clock,
Four DP Additions Every 2 clocks.

12
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
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
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.
15
Need for an Operating System (BIOS)
Input
Input
Input
Event + ISR
Device Driver
Input
Input
Process
Data Processing
Algorithm
• 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 ?
Input
Input
Output
Event + ISR
Device Driver
 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?
DSP/BIOS Environment

DSP/BIOS is a library that contains modules
with a particular
interface 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

T TO
Technical Training
Organization
Definitions / Vocabulary
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
T TO
Technical Training
Organization
with library routines and data objects
DSP/BIOS Thread Types
HWI
Hardware Interrupts
Priority
SWI
Software Interrupts
TSK
Tasks
IDL
Background

Implements ‘urgent’ part of real-time event
Hardware interrupt triggers ISRs to run
Priorities set by hardware

Performs HWI ‘follow-up’ activity

‘posted’ by software

PRDs (periodic functions) are prioritized as SWIs

14 priority levels

Runs programs concurrently under separate contexts
Usually enabled to run by posting a ‘semaphore’
(a task signaling mechanism)
15 priority levels







Multiple IDL functions
Runs as an infinite loop (like traditional while loop)
Single priority level
TCF file:
System Config
Clock & Cache
• BIOS Clk freq, cache settings
MEM
• Memory Areas (origin, length, …)
• Stack/heap sizes
BIOS Config
Instrumentation
• LOG and Statistics (STS) Objects
Scheduling
• CLK objects (tick rate)
• PRD, HWI, SWI, TSK, IDL fxns
Synchronization
• Semaphores (SEM)
The GUI creates a TCF script…
Adding a New TCF File to Your Project
1 Select: File  New  DSP/BIOS v5.x Config File
3 Pick the proper platform (e.g. evm6748)
2 Give the new file a name:
Platform file sets up…
• Clock settings
• Memory Map & Cache settings
T TO
Technical Training
Organization
The TCF file does some work for us…
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.
22
LabVIEW
Front Panel
Block Diagram
Online LabView Interactive Tutorial can be found at:
http://www.ni.com/gettingstarted/labviewbasics/
23
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…).


24
MATLAB
Command Window
Workspace
Current Directory
Command History
25
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 at
http://www.mathworks.com/academia/student_center/tutorial
s/
26
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


27
…The End!
See You Next Week!
28