TMS320C6000 Programmer s Guide

Size: px
Start display at page:

Download "TMS320C6000 Programmer s Guide"

Transcription

1 TMS320C6000 Programmer s Guide Literature Number: SPRU198E October 2000 Printed on Recycled Paper

2 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any semiconductor product or service without notice, and advises its customers to obtain the latest version of relevant information to verify, before placing orders, that the information being relied on is current. TI warrants performance of its semiconductor products and related software to the specifications applicable at the time of sale in accordance with TI s standard warranty. Testing and other quality control techniques are utilized to the extent TI deems necessary to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except those mandated by government requirements. Certain applications using semiconductor products may involve potential risks of death, personal injury, or severe property or environmental damage ( Critical Applications ). TI SEMICONDUCTOR PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED, OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS. Inclusion of TI products in such applications is understood to be fully at the risk of the customer. Use of TI products in such applications requires the written approval of an appropriate TI officer. Questions concerning potential risk applications should be directed to TI through a local SC sales office. In order to minimize risks associated with the customer s applications, adequate design and operating safeguards should be provided by the customer to minimize inherent or procedural hazards. TI assumes no liability for applications assistance, customer product design, software performance, or infringement of patents or services described herein. Nor does TI warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right of TI covering or relating to any combination, machine, or process in which such semiconductor products or services might be or are used. Copyright 2000, Texas Instruments Incorporated

3 Preface Read This First About This Manual This manual is a reference for programming TMS320C6000 digital signal processor (DSP) devices. Before you use this book, you should install your code generation and debugging tools. This book is organized in five major parts: Part I: Introduction includes a brief description of the C6000 architecture and code development flow. It also includes a tutorial that introduces you to the tools you will use in each phase of development and an optimization checklist to help you achieve optimal performance from your code. Part II: C Code includes C code examples and discusses optimization methods for the code. This information can help you choose the most appropriate optimization techniques for your code. Part III: Assembly Code describes the structure of assembly code. It provides examples and discusses optimizations for assembly code. It also includes a chapter on interrupt subroutines. Part IV: C64x Programming Techniques describes programming considerations for the C64x. Part V: Appendix provides a summary of feedback solutions. Contents iii

4 Related Documentation From Texas Instruments Related Documentation From Texas Instruments The following books describe the TMS320C6000 devices and related support tools. To obtain a copy of any of these TI documents, call the Texas Instruments Literature Response Center at (800) When ordering, please identify the book by its title and literature number. TMS320C6000 Assembly Language Tools User s Guide (literature number SPRU186) describes the assembly language tools (assembler, linker, and other tools used to develop assembly language code), assembler directives, macros, common object file format, and symbolic debugging directives for the C6000 generation of devices. TMS320C6000 Optimizing C Compiler User s Guide (literature number SPRU187) describes the C6000 C compiler and the assembly optimizer. This C compiler accepts ANSI standard C source code and produces assembly language source code for the C6000 generation of devices. The assembly optimizer helps you optimize your assembly code. TMS320C6000 CPU and Instruction Set Reference Guide (literature number SPRU189) describes the C6000 CPU architecture, instruction set, pipeline, and interrupts for these digital signal processors. TMS320C6000 Peripherals Reference Guide (literature number SPRU190) describes common peripherals available on the TMS320C6201/6701 digital signal processors. This book includes information on the internal data and program memories, the external memory interface (EMIF), the host port interface (HPI), multichannel buffered serial ports (McBSPs), direct memory access (DMA), enhanced DMA (EDMA), expansion bus, clocking and phase-locked loop (PLL), and the power-down modes. TMS320C64x Technical Overview (SPRU395) The TMS320C64x technical overview gives an introduction to the C64x digital signal processor, and discusses the application areas that are enhanced by the C64x VelociTI. TMS320 DSP Designer s Notebook: Volume 1 (literature number SPRT125) presents solutions to common design problems using C2x, C3x, C4x, C5x, and other TI DSPs. iv

5 Trademarks Trademarks Solaris and SunOS are trademarks of Sun Microsystems, Inc. VelociTI is a trademark of Texas Instruments Incorporated. Windows and Windows NT are registered trademarks of Microsoft Corporation. Read This First v

6 Contents Contents 1 Introduction Introduces some features of the C6000 microprocessor and discusses the basic process for creating code and understanding feedback. 1.1 TMS320C6000 Architecture TMS320C6000 Pipeline Code Development Flow To Increase Performance Understanding Feedback Stage 1: Qualify the Loop for Software Pipelining Stage 2: Collect Loop Resource and Dependency Graph Information Stage 3: Software Pipeline the Loop Compiler Optimization Tutorial Uses example code to walk you through the code development flow for the TMS320C Introduction: Simple C Tuning Lesson 1: Loop Carry Path From Memory Pointers Lesson 2: Balancing Resources With Dual-Data Paths Lesson 3: Packed Data Optimization of Memory Bandwidth Lesson 4: Program Level Optimization Lesson 5: Writing Linear Assembly Optimizing C/C++ Code Explains how to maximize C performance by using compiler options, intrinsics, and code transformations. 3.1 Writing C/C++ Code Tips on Data Types Analyzing C Code Performance Compiling C/C++ Code Compiler Options Memory Dependencies Performing Program-Level Optimization ( pm Option) Profiling Your Code Using the Standalone Simulator (load6x) to Profile Refining C/C++ Code Using Intrinsics Using Word Access for Short Data Software Pipelining vii

7 Contents 4 Linking Issues Explains linker messages and how to use RTS functions. 4.1 How to Use Linker Error Messages How to Find The Problem Executable Flag How to Save On-Chip Memory by Placing RTS Off-Chip How to Compile Must #include Header Files RTS Data How to Link Example Compiler Invocation Header File Details Changing RTS Data to near Structure of Assembly Code Describes the structure of the assembly code, including labels, conditions, instructions, functional units, operands, and comments. 5.1 Labels Parallel Bars Conditions Instructions Functional Units Operands Comments Optimizing Assembly Code via Linear Assembly Describes methods that help you develop more efficient assembly language programs. 6.1 Assembly Code Assembly Optimizer Options and Directives The on Option The mt Option and the.no_mdep Directive The.mdep Directive The.mptr Directive The.trip Directive Writing Parallel Code Dot Product C Code Translating C Code to Linear Assembly Linear Assembly Resource Allocation Drawing a Dependency Graph Nonparallel Versus Parallel Assembly Code Comparing Performance viii

8 Contents 6.4 Using Word Access for Short Data and Doubleword Access for Floating-Point Data Unrolled Dot Product C Code Translating C Code to Linear Assembly Drawing a Dependency Graph Linear Assembly Resource Allocation Final Assembly Comparing Performance Software Pipelining Modulo Iteration Interval Scheduling Using the Assembly Optimizer to Create Optimized Loops Final Assembly Comparing Performance Modulo Scheduling of Multicycle Loops Weighted Vector Sum C Code Translating C Code to Linear Assembly Determining the Minimum Iteration Interval Drawing a Dependency Graph Linear Assembly Resource Allocation Modulo Iteration Interval Scheduling Using the Assembly Optimizer for the Weighted Vector Sum Final Assembly Loop Carry Paths IIR Filter C Code Translating C Code to Linear Assembly (Inner Loop) Drawing a Dependency Graph Determining the Minimum Iteration Interval Linear Assembly Resource Allocation Modulo Iteration Interval Scheduling Using the Assembly Optimizer for the IIR Filter Final Assembly If-Then-Else Statements in a Loop If-Then-Else C Code Translating C Code to Linear Assembly Drawing a Dependency Graph Determining the Minimum Iteration Interval Linear Assembly Resource Allocation Final Assembly Comparing Performance Contents ix

9 Contents 6.9 Loop Unrolling Unrolled If-Then-Else C Code Translating C Code to Linear Assembly Drawing a Dependency Graph Determining the Minimum Iteration Interval Linear Assembly Resource Allocation Final Assembly Comparing Performance Live-Too-Long Issues C Code With Live-Too-Long Problem Translating C Code to Linear Assembly Drawing a Dependency Graph Determining the Minimum Iteration Interval Linear Assembly Resource Allocation Final Assembly With Move Instructions Redundant Load Elimination FIR Filter C Code Translating C Code to Linear Assembly Drawing a Dependency Graph Determining the Minimum Iteration Interval Linear Assembly Resource Allocation Final Assembly Memory Banks FIR Filter Inner Loop Unrolled FIR Filter C Code Translating C Code to Linear Assembly Drawing a Dependency Graph Linear Assembly for Unrolled FIR Inner Loop With.mptr Directive Linear Assembly Resource Allocation Determining the Minimum Iteration Interval Final Assembly Comparing Performance Software Pipelining the Outer Loop Unrolled FIR Filter C Code Making the Outer Loop Parallel With the Inner Loop Epilog and Prolog Final Assembly Comparing Performance Outer Loop Conditionally Executed With Inner Loop Unrolled FIR Filter C Code Translating C Code to Linear Assembly (Inner Loop) Translating C Code to Linear Assembly (Outer Loop) Unrolled FIR Filter C Code Translating C Code to Linear Assembly (Inner Loop) Translating C Code to Linear Assembly (Inner Loop and Outer Loop) Determining the Minimum Iteration Interval Final Assembly Comparing Performance x

10 Contents 7 Interrupts Describes interrupts from a software programming point of view. 7.1 Overview of Interrupts Single Assignment vs. Multiple Assignment Interruptible Loops Interruptible Code Generation Level 0 - Specified Code is Guaranteed to Not Be Interrupted Level 1 Specified Code Interruptible at All Times Level 2 Specified Code Interruptible Within Threshold Cycles Getting the Most Performance Out of Interruptible Code Interrupt Subroutines ISR with the C/C++ Compiler ISR with Hand-Coded Assembly Nested Interrupts C64x Programming Considerations Describes programming considerations for the C64x. 8.1 Overview of C64x Architectural Enhancements Improved Scheduling Flexibility Greater Memory Bandwidth Support for Packed Data Types Non-aligned Memory Accesses Additional Specialized Instructions Packed-Data Processing on the C64x Introduction to Packed Data Processing Techniques Packed Data Types Storing Multiple Elements in a Single Register Packing and Unpacking Data Optimizing for Packed Data Processing Vectorizing With Packed Data Processing Combining Multiple Operations in a Single Instruction Non-Aligned Memory Accesses Performing Conditional Operations with Packed Data Linear Assembly Considerations Using BDEC and BPOS in Linear Assembly Avoiding Cross Path Stalls FeedbackSolutions A-1 A.1 Loop Disqualification Messages A-2 A.2 Pipeline Failure Messages A-4 A.3 Investigative Feedback A-10 Contents xi

11 Figures Figures 3 1 Dependency Graph for Vector Sum # Software-Pipelined Loop Labels in Assembly Code Parallel Bars in Assembly Code Conditions in Assembly Code Instructions in Assembly Code TMS320C6x Functional Units Units in the Assembly Code Operands in the Assembly Code Operands in Instructions Comments in Assembly Code Dependency Graph of Fixed-Point Dot Product Dependency Graph of Floating-Point Dot Product Dependency Graph of Fixed-Point Dot Product with Parallel Assembly Dependency Graph of Floating-Point Dot Product with Parallel Assembly Dependency Graph of Fixed-Point Dot Product With LDW Dependency Graph of Floating-Point Dot Product With LDDW Dependency Graph of Fixed-Point Dot Product With LDW (Showing Functional Units) Dependency Graph of Floating-Point Dot Product With LDDW (Showing Functional Units) Dependency Graph of Fixed-Point Dot Product With LDW (Showing Functional Units) Dependency Graph of Floating-Point Dot Product With LDDW (Showing Functional Units) Dependency Graph of Weighted Vector Sum Dependency Graph of Weighted Vector Sum (Showing Resource Conflict) Dependency Graph of Weighted Vector Sum (With Resource Conflict Resolved) Dependency Graph of Weighted Vector Sum (Scheduling ci +1) Dependency Graph of IIR Filter Dependency Graph of IIR Filter (With Smaller Loop Carry) Dependency Graph of If-Then-Else Code Dependency Graph of If-Then-Else Code (Unrolled) Dependency Graph of Live-Too-Long Code Dependency Graph of Live-Too-Long Code (Split-Join Path Resolved) Dependency Graph of FIR Filter (With Redundant Load Elimination) Bank Interleaved Memory xii

12 Figures Bank Interleaved Memory With Two Memory Blocks Dependency Graph of FIR Filter (With Even and Odd Elements of Each Array on Same Loop Cycle) Dependency Graph of FIR Filter (With No Memory Hits) Four Bytes Packed Into a Single General Purpose Register Two Half Words Packed Into a Single General Purpose Register Graphical Representation of _packxx2 Intrinsics Graphical Representation of _spack Graphical Representation of 8 bit Packs (_packx4 and _spacku4) Graphical Representation of 8 bit Unpacks (_unpkxu4) Graphical Representation of (_shlmb, _shrmb, and _swap4) Graphical Representation of a Simple Vector Operation Graphical Representation of Dot Product Graphical Representation of a Single Iteration of Vector Complex Multiply Array Access in Vector Sum by LDDW Array Access in Vector Sum by STDW Vector Addition Graphical Representation of a Single Iteration of Vector Multiply Packed 16x16 Multiplies Using _mpy Fine Tuning Vector Multiply (shift > 16) Fine Tuning Vector Multiply (shift < 16) Graphical Representation of the _dotp2 Intrinsic c = _dotp2(b, a) The _dotpn2 Intrinsic Performing Real Portion of Complex Multiply _packlh2 and _dotp2 Working Together Graphical Illustration of _cmpxx2 Intrinsics Graphical Illustration of _cmpxx4 Intrinsics Graphical Illustration of _xpnd2 Intrinsic Graphical Illustration of _xpnd4 Intrinsic C64x Data Cross Paths Contents xiii

13 Tables Tables 1 1 Code Development Steps Status Update: Tutorial example lesson_c lesson1_c Status Update: Tutorial example lesson_c lesson1_c lesson2_c Status Update: Tutorial example lesson_c lesson1_c lesson2_c lesson3_c Status Update: Tutorial example lesson_c lesson1_c lesson2_c lesson3_c Compiler Options to Avoid on Performance Critical Code Compiler Options for Performance Compiler Options That Slightly Degrade Performance and Improve Code Size Compiler Options for Control Code Compiler Options for Information TMS320C6000 C/C++ Compiler Intrinsics Command Line Options for RTS Calls How _FAR_RTS is Defined in Linkage.h With mr Selected TMS320C6x Directives Functional Units and Operations Performed Comparison of Nonparallel and Parallel Assembly Code for Fixed-Point Dot Product Comparison of Nonparallel and Parallel Assembly Code for Floating-Point Dot Product Comparison of Fixed-Point Dot Product Code With Use of LDW Comparison of Floating-Point Dot Product Code With Use of LDDW Modulo Iteration Interval Scheduling Table for Fixed-Point Dot Product (Before Software Pipelining) Modulo Iteration Interval Scheduling Table for Floating-Point Dot Product (Before Software Pipelining) Modulo Iteration Interval Table for Fixed-Point Dot Product (After Software Pipelining) Modulo Iteration Interval Table for Floating-Point Dot Product (After Software Pipelining) Software Pipeline Accumulation Staggered Results Due to Three-Cycle Delay Comparison of Fixed-Point Dot Product Code Examples Comparison of Floating-Point Dot Product Code Examples Modulo Iteration Interval Table for Weighted Vector Sum (2-Cycle Loop) Modulo Iteration Interval Table for Weighted Vector Sum With SHR Instructions Modulo Iteration Interval Table for Weighted Vector Sum (2-Cycle Loop) Modulo Iteration Interval Table for Weighted Vector Sum (2-Cycle Loop) Resource Table for IIR Filter Modulo Iteration Interval Table for IIR (4-Cycle Loop) xiv

14 Tables 6 18 Resource Table for If-Then-Else Code Comparison of If-Then-Else Code Examples Resource Table for Unrolled If-Then-Else Code Comparison of If-Then-Else Code Examples Resource Table for Live-Too-Long Code Resource Table for FIR Filter Code Resource Table for FIR Filter Code Comparison of FIR Filter Code Comparison of FIR Filter Code Resource Table for FIR Filter Code Comparison of FIR Filter Code Packed data types Supported Operations on Packed Data Types Instructions for Manipulating Packed Data Types Unpacking Packed 16-bit Quantities to 32-bit Values Intrinsics Which Combine Multiple Operations in one Instruction Comparison Between Aligned and Non Aligned Memory Accesses Contents xv

15 Examples Examples 1 1 Compiler and/or Assembly Optimizer Feedback Stage 1 Feedback Stage 2 Feedback Stage 3 Feedback Vector Summation of Two Weighted Vectors lesson_c.c Feedback From lesson_c.asm lesson_c.asm lesson1_c.c lesson1_c.asm lesson1_c.asm lesson2_c.c lesson2_c.asm lesson2_c.asm lesson3_c.c lesson3_c.asm Profile Statistics Using the iircas4 Function in C Software Pipelining Feedback From the iircas4 C Code Rewriting the iircas4 ( ) Function in Linear Assembly Software Pipeline Feedback from Linear Assembly Basic Vector Sum Use of the Restrict Type Qualifier With Pointers Use of the Restrict Type Qualifier With Arrays Incorrect Use of the restrict Keyword Including the clock( ) Function Saturated Add Without Intrinsics Saturated Add With Intrinsics Vector Sum With restrict Keywords, MUST_ITERATE Pragma, Word Reads Vector Sum With Non aligned Word Accesses to Memory Vector Sum With restrict Keywords, MUST_ITERATE pragma, and Word Reads (Generic Version) Dot Product Using Intrinsics FIR Filter Original Form FIR Filter Optimized Form Basic Float Dot Product xvi

16 Examples 3 15 Float Dot Product Using Intrinsics Float Dot Product With Peak Performance Int Dot Product with Nonaligned Doubleword Reads Using the Compiler to Generate a Dot Product With Word Accesses Using the _nassert() Intrinsic to Generate Word Accesses for Vector Sum Using _nassert() Intrinsic to Generate Word Accesses for FIR Filter Compiler Output From Example Compiler Output From Example Compiler Output From Example Automatic Use of Word Accesses Without the _nassert Intrinsic Trip Counters Vector Sum With Three Memory Operations Word-Aligned Vector Sum Vector Sum Using const Keywords, MUST_ITERATE pragma, Word Reads, and Loop Unrolling FIR_Type2 Original Form FIR_Type2 Inner Loop Completely Unrolled Vector Sum Use of If Statements in Float Collision Detection (Original Code) Use of If Statements in Float Collision Detection (Modified Code) Referencing Far Global Objects Defined in Other Files Linear Assembly Block Copy Block copy With.mdep Linear Assembly Dot Product Linear Assembly Dot Product With.mptr Fixed-Point Dot Product C Code Floating-Point Dot Product C Code List of Assembly Instructions for Fixed-Point Dot Product List of Assembly Instructions for Floating-Point Dot Product Nonparallel Assembly Code for Fixed-Point Dot Product Parallel Assembly Code for Fixed-Point Dot Product Nonparallel Assembly Code for Floating-Point Dot Product Parallel Assembly Code for Floating-Point Dot Product Fixed-Point Dot Product C Code (Unrolled) Floating-Point Dot Product C Code (Unrolled) Linear Assembly for Fixed-Point Dot Product Inner Loop with LDW Linear Assembly for Floating-Point Dot Product Inner Loop with LDDW Linear Assembly for Fixed-Point Dot Product Inner Loop With LDW (With Allocated Resources) Linear Assembly for Floating-Point Dot Product Inner Loop With LDDW (With Allocated Resources) Assembly Code for Fixed-Point Dot Product With LDW (Before Software Pipelining) Assembly Code for Floating-Point Dot Product With LDDW (Before Software Pipelining) Contents xvii

17 Examples 6 21 Linear Assembly for Fixed-Point Dot Product Inner Loop (With Conditional SUB Instruction) Linear Assembly for Floating-Point Dot Product Inner Loop (With Conditional SUB Instruction) Pseudo-Code for Single-Cycle Accumulator With ADDSP Linear Assembly for Full Fixed-Point Dot Product Linear Assembly for Full Floating-Point Dot Product Assembly Code for Fixed-Point Dot Product (Software Pipelined) Assembly Code for Floating-Point Dot Product (Software Pipelined) Assembly Code for Fixed-Point Dot Product (Software Pipelined With No Extraneous Loads) Assembly Code for Floating-Point Dot Product (Software Pipelined With No Extraneous Loads) Assembly Code for Fixed-Point Dot Product (Software Pipelined With Removal of Prolog and Epilog) Assembly Code for Floating-Point Dot Product (Software Pipelined With Removal of Prolog and Epilog) Assembly Code for Fixed-Point Dot Product (Software Pipelined With Smallest Code Size) Assembly Code for Floating-Point Dot Product (Software Pipelined With Smallest Code Size) Weighted Vector Sum C Code Linear Assembly for Weighted Vector Sum Inner Loop Weighted Vector Sum C Code (Unrolled) Linear Assembly for Weighted Vector Sum Using LDW Linear Assembly for Weighted Vector Sum With Resources Allocated Linear Assembly for Weighted Vector Sum Assembly Code for Weighted Vector Sum IIR Filter C Code Linear Assembly for IIR Inner Loop Linear Assembly for IIR Inner Loop With Reduced Loop Carry Path Linear Assembly for IIR Inner Loop (With Allocated Resources) Linear Assembly for IIR Filter Assembly Code for IIR Filter If-Then-Else C Code Linear Assembly for If-Then-Else Inner Loop Linear Assembly for Full If-Then-Else Code Assembly Code for If-Then-Else Assembly Code for If-Then-Else With Loop Count Greater Than If-Then-Else C Code (Unrolled) Linear Assembly for Unrolled If-Then-Else Inner Loop Linear Assembly for Full Unrolled If-Then-Else Code Assembly Code for Unrolled If-Then-Else Live-Too-Long C Code Linear Assembly for Live-Too-Long Inner Loop xviii

18 Examples 6 58 Linear Assembly for Full Live-Too-Long Code Assembly Code for Live-Too-Long With Move Instructions FIR Filter C Code FIR Filter C Code With Redundant Load Elimination Linear Assembly for FIR Inner Loop Linear Assembly for Full FIR Code Final Assembly Code for FIR Filter With Redundant Load Elimination Final Assembly Code for Inner Loop of FIR Filter FIR Filter C Code (Unrolled) Linear Assembly for Unrolled FIR Inner Loop Linear Assembly for Full Unrolled FIR Filter Final Assembly Code for FIR Filter With Redundant Load Elimination and No Memory Hits Unrolled FIR Filter C Code Final Assembly Code for FIR Filter With Redundant Load Elimination and No Memory Hits With Outer Loop Software-Pipelined Unrolled FIR Filter C Code Linear Assembly for Unrolled FIR Inner Loop Linear Assembly for FIR Outer Loop Unrolled FIR Filter C Code Linear Assembly for FIR With Outer Loop Conditionally Executed With Inner Loop Linear Assembly for FIR With Outer Loop Conditionally Executed With Inner Loop (With Functional Units) Final Assembly Code for FIR Filter Code With Multiple Assignment of A Code Using Single Assignment Dot Product With MUST_ITERATE Pragma Guaranteeing Minimum Trip Count Dot Product With _nassert Guaranteeing Trip Count Range Dot Product With MUST_ITERATE Pragma Guaranteeing Trip Count Range and Factor of Dot Product With MUST_ITERATE Pragma Guaranteeing Trip Count Range and Factor of Hand-Coded Assembly ISR Hand-Coded Assembly ISR Allowing Nesting of Interrupts Vector Sum Vector Multiply Dot Product Vector Complex Multiply Vectorization: Using LDDW and STDW in Vector Sum Vector Addition (Complete) Using LDDW and STDW in Vector Multiply Using _mpy2() and _pack2() to Perform the Vector Multiply Vectorized Form of the Dot Product Kernel Vectorized Form of the Dot Product Kernel Contents xix

19 Examples 8 11 Final Assembly Code for Dot Product Kernel s Inner Loop Vectorized form of the Vector Complex Multiply Kernel Vectorized form of the Vector Complex Multiply Non aligned Memory Access With _mem4 and _memd Vector Sum Modified to use Non Aligned Memory Accesses Clear Below Threshold Kernel Clear Below Threshold Kernel, Using _cmpgtu4 and _xpnd4 Intrinsics Loop Trip Count in C Loop Trip Count in Linear Assembly without BDEC Loop Trip Count Using BDEC Loop Tip Count Using BDEC With Extra Loop Iterations Using the.call Directive in Linear Assembly Compiler Output Using ADDKPC Avoiding Cross Path Stalls: Weighted Vector Sum Example Avoiding Cross Path Stalls: Partitioned Linear Assembly Avoiding Cross Path Stalls: Vector Sum Loop Kernel Avoiding Cross Path Stalls: Assembly Output Generated for Weighted Vector Sum Loop Kernel xx

20 Chapter 1 Introduction This chapter introduces some features of the C6000 microprocessor and discusses the basic process for creating code and understanding feedback. Any reference to C6000 pertains to the C62x (fixed-point), C64x (fixed-point), and the C67x (floating-point) devices. Though most of the examples shown are fixed-point specific, all techniques are applicable to each device. Topic Page 1.1 TMS320C6000 Architecture TMS320C6000 Pipeline Code Development Flow to Increase Performance Understanding Feedback

21 TMS320C6000 Architecture / TMS320C6000 Pipeline 1.1 TMS320C6000 Architecture The C62x is a fixed-point digital signal processor (DSP) and is the first DSP to use the VelociTI architecture. VelociTI is a high-performance, advanced very-long-instruction-word (VLIW) architecture, making it an excellent choice for multichannel, multifunctional, and performance-driven applications. The C67x is a floating-point DSP with the same features. It is the second DSP to use the VelociTI architecture. The C64x is a fixed-point DSP with the same features. It is the third DSP to use the VelociTI architecture. The C6000 DSPs are based on the C6000 CPU, which consists of: Program fetch unit Instruction dispatch unit Instruction decode unit Two data paths, each with four functional units Thirty-two 32-bit registers ( C62x and C67x) Sixty-four 32-bit registers ( C64x) Control registers Control logic Test, emulation, and interrupt logic 1.2 TMS320C6000 Pipeline The C6000 pipeline has several features that provide optimum performance, low cost, and simple programming. Increased pipelining eliminates traditional architectural bottlenecks in program fetch, data access, and multiply operations. Pipeline control is simplified by eliminating pipeline locks. The pipeline can dispatch eight parallel instructions every cycle. Parallel instructions proceed simultaneously through the same pipeline phases. 1-2

TMS320C6000 Programmer s Guide

TMS320C6000 Programmer s Guide TMS320C6000 Programmer s Guide Literature Number: SPRU198G August 2002 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,

More information

TMS320C62x/C67x Programmer s Guide

TMS320C62x/C67x Programmer s Guide TMS320C62x/C67x Programmer s Guide Literature Number: SPRU198B February 1998 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue

More information

Dual Access into Single- Access RAM on a C5x Device

Dual Access into Single- Access RAM on a C5x Device TMS320 DSP DESIGNER S NOTEBOOK Dual Access into Single- Access RAM on a C5x Device APPLICATION BRIEF: SPRA215 Mansoor Chishtie Digital Signal Processing Products Semiconductor Group Texas Instruments February

More information

TMS320C5x Memory Paging (Expanding its Address Reach)

TMS320C5x Memory Paging (Expanding its Address Reach) TMS320 DSP DESIGNER S NOTEBOOK TMS320C5x Memory Paging (Expanding its Address Reach) APPLICATION BRIEF: SPRA242 Contributed by Joe George Digital Signal Processing Products Semiconductor Group Texas Instruments

More information

Nested Loop Optimization on the TMS320C6x

Nested Loop Optimization on the TMS320C6x Nested Loop Optimization on the TMS320C6x Richard Scales Digital Signal Processing Solutions Abstract This document descibes the process used to develop and optimize nested loops for the Texas Instruments

More information

Implementation of a CELP Speech Coder for the TMS320C30 using SPOX

Implementation of a CELP Speech Coder for the TMS320C30 using SPOX Implementation of a CELP Speech Coder for the TMS320C30 using SPOX APPLICATION REPORT: SPRA401 Mark D. Grosen Spectron Microsystems, Inc Digital Signal Processing Solutions IMPORTANT NOTICE Texas Instruments

More information

Hardware UART for the TMS320C3x

Hardware UART for the TMS320C3x TMS320 DSP DESIGNER S NOTEBOOK Hardware UART for the TMS320C3x APPLICATION BRIEF: SPRA223 Contributed by Lawrence Wong Digital Signal Processing Products Semiconductor Group Texas Instruments June 1993

More information

TMS320C5x Interrupt Response Time

TMS320C5x Interrupt Response Time TMS320 DSP DESIGNER S NOTEBOOK TMS320C5x Interrupt Response Time APPLICATION BRIEF: SPRA220 Jeff Beinart Digital Signal Processing Products Semiconductor Group Texas Instruments March 1993 IMPORTANT NOTICE

More information

Reading a 16-Bit Bus With the TMS320C5x Serial Port

Reading a 16-Bit Bus With the TMS320C5x Serial Port TMS320 DSP DESIGNER S NOTEBOOK Reading a 16-Bit Bus With the TMS320C5x Serial Port APPLICATION BRIEF: SPRA270 Manuel Rodrigues Digital Signal Processing Products Semiconductor Group Texas Instruments May

More information

DSP Mapping, Coding, Optimization

DSP Mapping, Coding, Optimization DSP Mapping, Coding, Optimization On TMS320C6000 Family using CCS (Code Composer Studio) ver 3.3 Started with writing a simple C code in the class, from scratch Project called First, written for C6713

More information

Writing TMS320C8x PP Code Under the Multitasking Executive

Writing TMS320C8x PP Code Under the Multitasking Executive TMS320 DSP DESIGNER S NOTEBOOK Writing TMS320C8x PP Code Under the Multitasking Executive APPLICATION BRIEF: SPRA269 Leor Brenman Digital Signal Processing Products Semiconductor Group Texas Instruments

More information

Bit-reversed Addressing without Data Alignment on the C3x

Bit-reversed Addressing without Data Alignment on the C3x TMS320 DSP DESIGNER S NOTEBOOK Bit-reversed Addressing without Data Alignment on the C3x APPLICATION BRIEF: SPRA199 Tim Grady Digital Signal Processing Products Semiconductor Group Texas Instruments December

More information

Writing Interruptible Looped Code for the TMS320C6x DSP

Writing Interruptible Looped Code for the TMS320C6x DSP Writing Interruptible Looped Code for the TMS320C6x DSP Jackie Brenner DSP Applications Abstract Digital signal processing algorithms are loop intensive by nature, which presents a set of choices for the

More information

C Routines for Setting Up the AIC on the TMS320C5x EVM

C Routines for Setting Up the AIC on the TMS320C5x EVM TMS320 DSP DESIGNER S NOTEBOOK C Routines for Setting Up the AIC on the TMS320C5x EVM APPLICATION BRIEF: SPRA251 Leor Brenman Digital Signal Processing Products Semiconductor Group Texas Instruments February

More information

TMS320C6000 Assembly Language Tools User s Guide

TMS320C6000 Assembly Language Tools User s Guide TMS320C6000 Assembly Language Tools User s Guide Literature Number: SPRU186G Janurary 2000 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make

More information

TMS320 DSP DESIGNER S NOTEBOOK. Serial ROM Boot APPLICATION BRIEF: SPRA233. Alex Tessarolo Digital Signal Processing Products Semiconductor Group

TMS320 DSP DESIGNER S NOTEBOOK. Serial ROM Boot APPLICATION BRIEF: SPRA233. Alex Tessarolo Digital Signal Processing Products Semiconductor Group TMS320 DSP DESIGNER S NOTEBOOK Serial ROM Boot APPLICATION BRIEF: SPRA233 Alex Tessarolo Digital Signal Processing Products Semiconductor Group Texas Instruments May 1994 IMPORTANT NOTICE Texas Instruments

More information

TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks

TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks Application Report SPRA642 - March 2000 TMS320C62x, TMS320C67x DSP Cache Performance on Vocoder Benchmarks Philip Baltz C6000 DSP Applications ABSTRACT This application report discusses several multichannel

More information

The PCMCIA DSP Card: An All-in-One Communications System

The PCMCIA DSP Card: An All-in-One Communications System The PCMCIA DSP Card: An All-in-One Communications System Application Report Raj Chirayil Digital Signal Processing Applications Semiconductor Group SPRA145 October 1994 Printed on Recycled Paper IMPORTANT

More information

Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201

Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201 Performance Analysis of Line Echo Cancellation Implementation Using TMS320C6201 Application Report: SPRA421 Zhaohong Zhang and Gunter Schmer Digital Signal Processing Solutions March 1998 IMPORTANT NOTICE

More information

C Fast RTS Library User Guide (Rev 1.0)

C Fast RTS Library User Guide (Rev 1.0) C Fast RTS Library User Guide (Rev 1.0) Revision History 22 Sep 2008 Initial Revision v. 1.0 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products

More information

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C5510 DSK

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C5510 DSK Application Report SPRA856A June 2003 A DSP/BIOS AIC23 Codec Device for the TMS320C5510 DSK ABSTRACT Software Development Systems This document describes the implementation of a DSP/BIOS device driver

More information

TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide

TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide TMS320C6000 DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide Literature Number: April 2003 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve

More information

Developing Plug-and-Play COM Ports using TI Plug-and-Play Controllers

Developing Plug-and-Play COM Ports using TI Plug-and-Play Controllers Developing Plug-and-Play COM Ports using TI Plug-and-Play Controllers Heinz-Peter Beckemeyer July 1997 SLLAE02 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products

More information

Speech Control for Virtual Instruments Using the TMS320C30 DSP

Speech Control for Virtual Instruments Using the TMS320C30 DSP Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the

More information

TMS320C620x/C670x DSP Boot Modes and Configuration Reference Guide

TMS320C620x/C670x DSP Boot Modes and Configuration Reference Guide TMS320C620x/C670x DSP Reference Guide Literature Number: July 2003 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,

More information

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C6416 DSK

A DSP/BIOS AIC23 Codec Device Driver for the TMS320C6416 DSK Application Report SPRA909A June 2003 A DSP/BIOS AIC23 Codec Device for the TMS320C6416 DSK ABSTRACT Software Development Systems This document describes the usage and design of a device driver for the

More information

TMS320C6000 DSP Interrupt Selector Reference Guide

TMS320C6000 DSP Interrupt Selector Reference Guide TMS320C6000 DSP Interrupt Selector Reference Guide Literature Number: January 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,

More information

Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface

Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface Application Report SPRA607 - November 1999 Understanding the TMS320C54x Memory Map and Examining an Optimum C5000 Memory Interface Mathew George, Jr. (Joe) Texas Instruments Incorporated Natural Microsystems

More information

TMS320 DSP DESIGNER S NOTEBOOK. Multipass Linking APPLICATION BRIEF: SPRA257. Tom Horner Digital Signal Processing Products Semiconductor Group

TMS320 DSP DESIGNER S NOTEBOOK. Multipass Linking APPLICATION BRIEF: SPRA257. Tom Horner Digital Signal Processing Products Semiconductor Group TMS320 DSP DESIGNER S NOTEBOOK Multipass Linking APPLICATION BRIEF: SPRA257 Tom Horner Digital Signal Processing Products Semiconductor Group Texas Instruments February 1995 IMPORTANT NOTICE Texas Instruments

More information

TMS320C54x DSP Programming Environment APPLICATION BRIEF: SPRA182

TMS320C54x DSP Programming Environment APPLICATION BRIEF: SPRA182 TMS320C54x DSP Programming Environment APPLICATION BRIEF: SPRA182 M. Tim Grady Senior Member, Technical Staff Texas Instruments April 1997 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to

More information

SN5446A, 47A, 48, SN54LS47, LS48, LS49 SN7446A, 47A, 48, SN74LS47, LS48, LS49 BCD-TO-SEVEN-SEGMENT DECODERS/DRIVERS

SN5446A, 47A, 48, SN54LS47, LS48, LS49 SN7446A, 47A, 48, SN74LS47, LS48, LS49 BCD-TO-SEVEN-SEGMENT DECODERS/DRIVERS PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments standard warranty. Production processing does not necessarily include

More information

1996 Digital Signal Processing Solutions

1996 Digital Signal Processing Solutions Application Report 996 Digital Signal Processing Solutions Printed in U.S.A., June 996 SPR40A Application Report 995 Interfacing Memory to the TMS0C DSP Peter Galicki Digital Signal Processing Solutions

More information

1998 Technical Documentation Services

1998 Technical Documentation Services Technical Reference 1998 Technical Documentation Services Printed in U.S.A., January 1998 SMMU001 Book Type Two Lines Volume # Book Type Volume # Book Type Two Lines year Book Type year Serial Presence

More information

TMS320C6000 DSP General-Purpose Input/Output (GPIO) Reference Guide

TMS320C6000 DSP General-Purpose Input/Output (GPIO) Reference Guide TMS320C6000 DSP General-Purpose Input/Output (GPIO) Reference Guide Literature Number: March 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,

More information

Debugging Shared Memory Systems

Debugging Shared Memory Systems Application Report SPRA754 - May 2001 Debugging Shared Memory Systems Jeff Hunter Software Development Systems/Emulation Team ABSTRACT Multiple cores on a single processor often share a common block of

More information

A Multichannel/Algorithm Implementation on the TMS320C6000 DSP

A Multichannel/Algorithm Implementation on the TMS320C6000 DSP Application Report SPRA556B- February 2000 A Multichannel/Algorithm Implementation on the TMS320C6000 DSP Xiangdong Fu Zhaohong Zhang C6000 Applications ABSTRACT This application report describes how to

More information

Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE

Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE Application Report SPRA864 November 2002 Choosing the Appropriate Simulator Configuration in Code Composer Studio IDE Pankaj Ratan Lal, Ambar Gadkari Software Development Systems ABSTRACT Software development

More information

Leveraging DSP: Basic Optimization for C6000 Digital Signal Processors

Leveraging DSP: Basic Optimization for C6000 Digital Signal Processors Leveraging DSP: Basic Optimization for C6000 Digital Signal Processors Agenda C6000 VLIW Architecture Hardware Pipeline Software Pipeline Optimization Estimating performance Ui Using CCS to optimize i

More information

TMS320C6000 DSP 32-Bit Timer Reference Guide

TMS320C6000 DSP 32-Bit Timer Reference Guide TMS320C6000 DSP 32-Bit Timer Reference Guide Literature Number: SPRU582A July 2003 Revised October 2004 Contents TMS320C6000 DSP 32-Bit Timer... 2 Table of Contents... 2 Preface... 3 1 Overview... 5 2

More information

TMS370 Family C Source Debugger User s Guide

TMS370 Family C Source Debugger User s Guide TMS370 Family C Source Debugger User s Guide 2547295-9721 revision * SPNU028 October 1992 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated (TI) reserves the right to make changes

More information

Techniques for Profiling on ROM-Based Applications

Techniques for Profiling on ROM-Based Applications Application Report SPRA761 June 2001 Techniques for Profiling on ROM-Based Applications Harsh Sabikhi Code Composer Studio, Applications Engineering ABSTRACT This application report describes the methods

More information

As of October 1, 1998, our address is:

As of October 1, 1998, our address is: 3 Hi/fn TM supplies two of the Internet s most important raw materials: compression and encryption. Hi/fn is also the world s first company to put both on a single chip, creating a processor that performs

More information

Distributed by: www.jameco.com -800-83-4242 The content and copyrights of the attached material are the property of its owner. SOLID-STATE HEXADECIMAL DISPLAY WITH INTEGRAL TTL CIRCUIT TO ACCEPT, STORE,

More information

System Testability Using Standard Logic

System Testability Using Standard Logic System Testability Using Standard Logic SCTA037A October 1996 Reprinted with permission of IEEE 1 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue

More information

TMS320C55x DSP Peripherals Overview Reference Guide. Preliminary Draft

TMS320C55x DSP Peripherals Overview Reference Guide. Preliminary Draft TMS320C55x DSP Peripherals Overview Reference Guide Preliminary Draft Literature Number: SPRU317G February 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right

More information

TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata

TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata TMS320UC5409/TMS320VC5409 Digital Signal Processors Silicon Errata January 2000 Revised October 2001 Copyright 2001, Texas Instruments Incorporated Contents 1 Introduction........................................................................................

More information

Connecting TMS320C54x DSP with Flash Memory

Connecting TMS320C54x DSP with Flash Memory Connecting TMS32C54x DSP with Flash Memory Jason Jiang Customer Application Center TI (Shanghai) Abstract Flash memory offers better cost per bit than traditional EPROM when storage density increases.

More information

Impact of JTAG/ Testability on Reliability

Impact of JTAG/ Testability on Reliability Impact of JTAG/1149.1 Testability on Reliability SCTA041A January 1997 1 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any semiconductor product

More information

Using the bq3285/7e in a Green or Portable Environment

Using the bq3285/7e in a Green or Portable Environment in a Green or Portable Environment Introduction The bq3285/7e Real-Time Clock is a PC/AT-compatible real-time clock that incorporates three enhanced features to facilitate power management in Green desktop

More information

TMS320C54x C Source Debugger User s Guide

TMS320C54x C Source Debugger User s Guide TMS320C54x C Source Debugger User s Guide Literature Number: SPRU099D July1998 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to

More information

Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit

Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit Getting Started Guide: TMS-FET470A256 IAR Kickstart Development Kit Skrtic/Mangino Page 1 of 11 SPNU250 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to

More information

SN54BCT760, SN74BCT760 OCTAL BUFFERS/DRIVERS WITH OPEN-COLLECTOR OUTPUTS

SN54BCT760, SN74BCT760 OCTAL BUFFERS/DRIVERS WITH OPEN-COLLECTOR OUTPUTS SNBCT0, SNBCT0 SCBS0B JULY REVISED NOVEMBER Open-Collector Version of BCT Open-Collector Outputs Drive Bus Lines or Buffer Memory Address Registers ESD Protection Exceeds 000 V Per MIL-STD-C Method 0 Packages

More information

TMS320VC5503/5507/5509/5510 DSP Direct Memory Access (DMA) Controller Reference Guide

TMS320VC5503/5507/5509/5510 DSP Direct Memory Access (DMA) Controller Reference Guide TMS320VC5503/5507/5509/5510 DSP Direct Memory Access (DMA) Controller Reference Guide Literature Number: January 2007 This page is intentionally left blank. Preface About This Manual Notational Conventions

More information

TMS320C55x Assembly Language Tools User s Guide

TMS320C55x Assembly Language Tools User s Guide TMS320C55x Assembly Language Tools User s Guide Literature Number: SPRU280D June 2001 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes

More information

Programming the TMS320VC5509 RTC Peripheral

Programming the TMS320VC5509 RTC Peripheral Application Report SPRA384A - September 2002 Programming the TMS320VC5509 RTC Peripheral Scott Tater ABSTRACT DSP Applications Semiconductor Group This application report demonstrates the procedure used

More information

Application Report SPRA582

Application Report SPRA582 Application Report September 1999 Wireless ASP Products SPRA582 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product

More information

Using Boundary Scan on the TMS320VC5420

Using Boundary Scan on the TMS320VC5420 Application Report SPRA597 - November 1999 Using Boundary Scan on the TMS320VC5420 Clay Turner C5000 Applications Team ABSTRACT The Texas Instruments (TI ) TMS320VC5420 DSP implements limited boundary

More information

TMS320C672x DSP Software-Programmable Phase-Locked Loop (PLL) Controller. Reference Guide

TMS320C672x DSP Software-Programmable Phase-Locked Loop (PLL) Controller. Reference Guide TMS320C672x DSP Software-Programmable Phase-Locked Loop (PLL) Controller Reference Guide Literature Number: SPRU879A May 2005 2 SPRU879A May 2005 Contents Preface... 5 1 Overview... 7 2 Functional Description...

More information

As of October 1, 1998, our address is:

As of October 1, 1998, our address is: 033& 6 Hi/fn TM supplies two of the Internet s most important raw materials: compression and encryption. Hi/fn is also the world s first company to put both on a single chip, creating a processor that

More information

Storage I/O Summary. Lecture 16: Multimedia and DSP Architectures

Storage I/O Summary. Lecture 16: Multimedia and DSP Architectures Storage I/O Summary Storage devices Storage I/O Performance Measures» Throughput» Response time I/O Benchmarks» Scaling to track technological change» Throughput with restricted response time is normal

More information

Creating Single Section for Boot Load When.const Section is Defined

Creating Single Section for Boot Load When.const Section is Defined Creating Single Section for Boot Load When.const Section is Defined APPLICATION REPORT: SPRA409 Jeff Axelrod Digital Signal Processing Solutions May 1998 IMPORTANT NOTICE Texas Instruments (TI) reserves

More information

27 - Line SCSI Terminator With Split Reverse Disconnect

27 - Line SCSI Terminator With Split Reverse Disconnect 27 - Line SCSI Terminator With Split Reverse Disconnect FEATURES Complies with SCSI, SCSI-2, SCSI-3, SPI and FAST-20 (Ultra) Standards 2.5pF Channel Capacitance During Disconnect 100µA Supply Current in

More information

Using LDOs and Power Managers in Systems With Redundant Power Supplies

Using LDOs and Power Managers in Systems With Redundant Power Supplies Application Report SLVA094 - November 000 Using LDOs and Power Managers in Systems With Redundant Power Supplies Ludovic de Graaf TI Germany ABSTRACT For reasons of continuity in some systems, independent

More information

SN54F38, SN74F38 QUADRUPLE 2-INPUT POSITIVE-NAND BUFFERS WITH OPEN-COLLECTOR OUTPUTS

SN54F38, SN74F38 QUADRUPLE 2-INPUT POSITIVE-NAND BUFFERS WITH OPEN-COLLECTOR OUTPUTS SNF, SN7F SDFS0A MARCH 7 REVISED OCTOBER Package Options Include Plastic Small-Outline Packages, Ceramic Chip Carriers, and Standard Plastic and Ceramic 00-mil DIPs description These devices contain four

More information

TMS320C672x DSP Dual Data Movement Accelerator (dmax) Reference Guide

TMS320C672x DSP Dual Data Movement Accelerator (dmax) Reference Guide TMS320C672x DSP Dual Data Movement Accelerator (dmax) Reference Guide Literature Number: SPRU795D November 2005 Revised October 2007 2 SPRU795D November 2005 Revised October 2007 Contents Preface... 11

More information

Logic Solutions for IEEE Std 1284

Logic Solutions for IEEE Std 1284 Logic Solutions for IEEE Std SCEA013 June 1999 1 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product or service

More information

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin

DSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin Product Bulletin TM DSP/BIOS Kernel Scalable, Real-Time Kernel TM for TMS320 DSPs Key Features: Fast, deterministic real-time kernel Scalable to very small footprint Tight integration with Code Composer

More information

bq2056 Designed to Go Parts List General Description bq2056 Charge Algorithm Current Voltage

bq2056 Designed to Go Parts List General Description bq2056 Charge Algorithm Current Voltage Designed to GO... Practical and Cost-Effective Battery Management Design Examples by Benchmarq Series 2056, Number One Single- and Double-Cell Low-Dropout Lithium-Ion Charger Using the bq2056 Features

More information

Using the TMS320C5509 USB Bootloader

Using the TMS320C5509 USB Bootloader Application Report SPRA840 - October 2002 Using the TMS320C5509 USB Bootloader Mathew George, Jr. (Joe) Clay Turner ABSTRACT C5000 DSP Applications Boot loading the TMS320VC5509 digital signal processor

More information

Texas Instruments Voltage-Level-Translation Devices

Texas Instruments Voltage-Level-Translation Devices Application Report SCEA21 - February 21 Texas Instruments -Level-Translation Devices Nadira Sultana and Chris Cockrill Standard Linear & Logic ABSTRACT In electronic systems design, there is a need to

More information

Understanding Basic DSP/BIOS Features

Understanding Basic DSP/BIOS Features Application Report SPRA653 - April 2000 Understanding Basic DSP/BIOS Features Henry Yiu Texas Instruments, China ABSTRACT DSP/BIOS is a small firmware that runs on digital signal processor (DSP) chips.

More information

TMS320VC5409A Digital Signal Processor Silicon Errata

TMS320VC5409A Digital Signal Processor Silicon Errata TMS320VC5409A Digital Signal Processor Silicon Errata June 2001 Revised May 2003 Copyright 2003, Texas Instruments Incorporated Literature Number REVISION HISTORY This revision history highlights the technical

More information

Faster Scan Conversion Using the TMS320C80

Faster Scan Conversion Using the TMS320C80 Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the

More information

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor 1 This presentation was part of TI s Monthly TMS320 DSP Technology Webcast Series April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor To view this 1-hour 1 webcast

More information

TMS320VC5501/5502 DSP Host Port Interface (HPI) Reference Guide

TMS320VC5501/5502 DSP Host Port Interface (HPI) Reference Guide TMS320VC5501/5502 DSP Reference Guide Literature Number: November 2004 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,

More information

PCIxx12 Single Socket CardBus Controller with Integrated 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller

PCIxx12 Single Socket CardBus Controller with Integrated 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller PCIxx12 Single Socket CardBus Controller with Integrated 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller Data Manual Includes: PCI4512GHK, PCI4512ZHK, PCI6412GHK, PCI6412ZHK, PCI6612GHK, PCI6612ZHK,

More information

Increase Current Drive Using LVDS

Increase Current Drive Using LVDS Application Report SLLA100 May 2001 Increase Current Drive Using LVDS Steve Corrigan DSBU LVDS ABSTRACT The most common configuration for an LVDS connection is the one-way transmission topology. A single

More information

Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System

Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System Application Report SPRA580B Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System Carl Bergman Digital Signal Processing Solutions Abstract This application note illustrates some techniques used

More information

Application Report. Mixed Signal Products SLOA028

Application Report. Mixed Signal Products SLOA028 Application Report July 1999 Mixed Signal Products SLOA028 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product

More information

TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance

TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance Application Report SPRA965 October 2003 TMS320C64x DSP Peripheral Component Interconnect (PCI) Performance Stéphane Smith C6x Device Applications ABSTRACT This application report describes the number of

More information

TMS320C6414T/15T/16T Power Consumption Summary

TMS320C6414T/15T/16T Power Consumption Summary Application Report SPRAA45A February 2008 TMS320C6414T/15T/16T Power Consumption Summary Todd Hiers Matthew Webster C6000 Hardware Applications ABSTRACT This document discusses the power consumption of

More information

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT Application Report SLEA001 February 2001 I2C and the TAS3001C Digital Audio Group ABSTRACT The TAS3001C stereo audio digital equalizer provides a serial control interface using the I2C protocol. Since

More information

Using Endianess Conversion in the OMAP5910 Device

Using Endianess Conversion in the OMAP5910 Device Application Report SWPA027 May 2004 Using Endianess Conversion in the OMAP5910 Device Matthias Kassner ABSTRACT The OMAP5910 device features a new dual-core architecture from Texas Instruments (TI) that

More information

TMS320C55x Assembly Language Tools User s Guide

TMS320C55x Assembly Language Tools User s Guide TMS320C55x Assembly Language Tools User s Guide Literature Number: SPRU280G March 2003 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right

More information

Recent Advancements in Bus-Interface Packaging and Processing

Recent Advancements in Bus-Interface Packaging and Processing Recent Advancements in Bus-Interface Packaging and Processing SCZA001A February 1997 1 IMPORTANT NOTICE Texas Instruments (TI) reserves the right to make changes to its products or to discontinue any semiconductor

More information

SAD implementation and optimization for H.264/AVC encoder on TMS320C64 DSP

SAD implementation and optimization for H.264/AVC encoder on TMS320C64 DSP SETIT 2007 4 th International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 25-29, 2007 TUNISIA SAD implementation and optimization for H.264/AVC encoder

More information

Digital IP Cell 8-bit Microcontroller PE80

Digital IP Cell 8-bit Microcontroller PE80 1. Description The is a Z80 compliant processor soft-macro - IP block that can be implemented in digital or mixed signal ASIC designs. The Z80 and its derivatives and clones make up one of the most commonly

More information

An Optimizing Compiler for the TMS320C25 DSP Chip

An Optimizing Compiler for the TMS320C25 DSP Chip An Optimizing Compiler for the TMS320C25 DSP Chip Wen-Yen Lin, Corinna G Lee, and Paul Chow Published in Proceedings of the 5th International Conference on Signal Processing Applications and Technology,

More information

DV2003S1. Fast Charge Development System. Control of On-Board P-FET Switch-Mode Regulator. Features. Connection Descriptions. General Description

DV2003S1. Fast Charge Development System. Control of On-Board P-FET Switch-Mode Regulator. Features. Connection Descriptions. General Description DV003S1 Fast Charge Development System Control of On-Board P-FET Switch-Mode Regulator Features bq003 fast-charge control evaluation and development Charge current sourced from an on-board switch-mode

More information

SN54ALS74A, SN54AS74, SN74ALS74A, SN74AS74 DUAL D-TYPE POSITIVE-EDGE-TRIGGERED FLIP-FLOPS WITH CLEAR AND PRESET

SN54ALS74A, SN54AS74, SN74ALS74A, SN74AS74 DUAL D-TYPE POSITIVE-EDGE-TRIGGERED FLIP-FLOPS WITH CLEAR AND PRESET SNALS7A, SNAS7, SN7ALS7A, SN7AS7 SDASA D, APRIL 9 REVISED SEPTEMBER 97 Package Optio Include Plastic Small Outline Packages, Ceramic Chip Carriers, and Standard Plastic and Ceramic 00-mil DIPs Dependable

More information

Code Composer Studio Getting Started Guide

Code Composer Studio Getting Started Guide Code Composer Studio Getting Started Guide Literature Number: SPRU509 May 2001 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to

More information

UNIT II SYSTEM BUS STRUCTURE 1. Differentiate between minimum and maximum mode 2. Give any four pin definitions for the minimum mode. 3. What are the pins that are used to indicate the type of transfer

More information

DatasheetDirect.com. Visit to get your free datasheets. This datasheet has been downloaded by

DatasheetDirect.com. Visit  to get your free datasheets. This datasheet has been downloaded by DatasheetDirect.com Your dedicated source for free downloadable datasheets. Over one million datasheets Optimized search function Rapid quote option Free unlimited downloads Visit www.datasheetdirect.com

More information

EV Evaluation System User Guide. Contents. Kit Contents. Introduction

EV Evaluation System User Guide. Contents. Kit Contents. Introduction Contents EV2200 40 Evaluation System User Guide Section Page No. Introduction 1 Kit Contents 1 Hardware and Software Setup 2 Software Installation 2 Hardware Connection 2 Operation 2 Starting the Program

More information

SN54ALS32, SN54AS32, SN74ALS32, SN74AS32 QUADRUPLE 2-INPUT POSITIVE-OR GATES

SN54ALS32, SN54AS32, SN74ALS32, SN74AS32 QUADRUPLE 2-INPUT POSITIVE-OR GATES Package Options Include Plastic Small-Outline (D) Packages, Ceramic Chip Carriers (FK), and Standard Plastic (N) and Ceramic (J) 00-mil DIPs description These devices contain four independent -input positive-or

More information

TMS320C6678 Memory Access Performance

TMS320C6678 Memory Access Performance Application Report Lit. Number April 2011 TMS320C6678 Memory Access Performance Brighton Feng Communication Infrastructure ABSTRACT The TMS320C6678 has eight C66x cores, runs at 1GHz, each of them has

More information

Chapter 7. Hardware Implementation Tools

Chapter 7. Hardware Implementation Tools Hardware Implementation Tools 137 The testing and embedding speech processing algorithm on general purpose PC and dedicated DSP platform require specific hardware implementation tools. Real time digital

More information

Computers as Components Principles of Embedded Computing System Design

Computers as Components Principles of Embedded Computing System Design Computers as Components Principles of Embedded Computing System Design Third Edition Marilyn Wolf ELSEVIER AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY

More information

Configuring Code Composer Studio for OMAP Debugging

Configuring Code Composer Studio for OMAP Debugging Application Report SPRA807 - November 2001 Configuring Code Composer Studio for OMAP Debugging Harry Thompson Software Development Systems/Customer Support ABSTRACT The OMAP Code Composer Studio (CCStudio)

More information

Bootloading the TMS320VC5402 in HPI Mode

Bootloading the TMS320VC5402 in HPI Mode Application Report SPRA382 April 2002 Bootloading the TMS320VC5402 in HPI Mode Scott Tater DSP Applications Semiconductor Group ABSTRACT The TMS320VC5402 bootloader allows the system designer flexibility

More information