1 / 28

EE 445S Real-Time Digital Signal Processing Lab Fall 2011

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.

chi
Télécharger la présentation

EE 445S Real-Time Digital Signal Processing Lab Fall 2011

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE 445S Real-Time Digital Signal Processing LabFall 2011 Lab #1Introduction 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

  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.

  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. TMS320C6748 DSP Block Diagram

  8. TMS320C6748 Megamodule Block Diagram

  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.

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

  11. 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

  12. 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.

  13. 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

  14. 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.

  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.

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

  17. 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

  18. 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

  19. 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

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

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

  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 Online LabView Interactive Tutorial can be found at: http://www.ni.com/gettingstarted/labviewbasics/ Front Panel Block Diagram

  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. MATLAB Command Window Workspace Current Directory 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 at http://www.mathworks.com/academia/student_center/tutorials/

  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

  28. …The End! See You Next Week!

More Related