310 likes | 498 Views
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. Introduction.
E N D
EE 445S Real-Time Digital Signal Processing LabFall 2011 Lab #1Introduction to Hardware & Software Tools of TMS320C6748 DSK
Outline • Introduction • C6748 DSK Board • C6748 DSP • C6700 Instruction Set Architecture • Code Composer Studio • LabVIEW • MATLAB/MathScript
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.
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.
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)
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.
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.
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)
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
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.
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
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.
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.
Need for an Operating System (BIOS) Input Input Input Input Input Input Input Process Output Event + ISRDevice Driver Data ProcessingAlgorithm Event + ISRDevice Driver • 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?
TTO Technical Training Organization 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
TTO 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 with library routines and data objects
DSP/BIOS Thread Types • Implements ‘urgent’ part of real-time event • Hardware interrupt triggers ISRs to run • Priorities set by hardware HWI Hardware Interrupts • Performs HWI ‘follow-up’ activity • ‘posted’ by software • PRDs (periodic functions) are prioritized as SWIs • 14 priority levels SWI Software Interrupts Priority • Runs programs concurrently under separate contexts • Usually enabled to run by posting a ‘semaphore’(a task signaling mechanism) • 15 priority levels TSK Tasks IDL Background • 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…
TTO Technical Training Organization Adding a New TCF File to Your Project 2 1 Give the new file a name: Select: File New DSP/BIOS v5.x Config File 3 Pick the proper platform (e.g. evm6748) Platform file sets up… • Clock settings • Memory Map & Cache settings 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.
LabVIEW Online LabView Interactive Tutorial can be found at: http://www.ni.com/gettingstarted/labviewbasics/ Front Panel Block Diagram
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…).
MATLAB Command Window Workspace Current Directory Command History
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/tutorials/
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
…The End! See You Next Week!