Transcription of TMS320C67x DSP Library Programmer's Reference …
1 TMS320C67x DSP LibraryProgrammer s Reference GuideLiterature Number: SPRU657 CJanuary 2010iiiRead This FirstPrefaceRead This FirstAbout This ManualWelcome to the TMS320C67x digital signal processor (DSP) Library orDSPLIB, for short. The DSPLIB is a collection of 64 high-level optimized DSPfunctions for the TMS320C67x device. This source code Library includes C-callable functions (ANSI-C language compatible) for general signal process-ing math and vector document contains a Reference for the DSPLIB functions and is organizedas follows:-Overview an introduction to the TI C67x DSPLIB-Installation information on how to install and rebuild DSPLIB-DSPLIB Functions a quick Reference table listing of routines in the Library -DSPLIB Reference a description of all DSPLIB functions complete withcalling convention, algorithm details, special requirements and imple-mentation notes-Information about performance, fractional Q format and customer supportHow to Use This ManualThe information in this document describes the contents of the TMS320C67xDSPLIB in several different 1 provides a brief introduction to the TI C67x DSPLIB, shows theorganization of the routines contained in the Library , and lists the featuresand benefits of the 2 provides information on how to install, use, and rebuild the TIC67x 3 provides a quick overview of all DSPLIB functions in table for-mat for easy Reference .
2 The information shown for each function includesthe syntax, a brief description, and a page Reference for obtaining moredetailed Conventionsiv -Chapter 4 provides a list of the routines within the DSPLIB organized intofunctional categories. The functions within each category are listed in al-phabetical order and include arguments, descriptions, algorithms, bench-marks, and special A describes performance considerations related to the C67xDSPLIB and provides information about the Q format used by B provides information about software updates and ConventionsThis document uses the following conventions:-Program listings, program examples, and interactive displays are shownin a special syntax descriptions, the function or macro appears in a bold typefaceand the parameters appear in plainface within parentheses. Portions of asyntax that are in bold should be entered as shown; portions of syntax thatare within parentheses describe the type of information that should be names are written in uppercase text; function names are written TMS320C67x is also referred to in this Reference guide as the Documentation From Texas InstrumentsThe following books describe the TMS320C6x devices and related supporttools.
3 To obtain a copy of any of these TI documents, call the Texas Instru-ments Literature Response Center at (800) 477-8924. When ordering, pleaseidentify the book by its title and literature number. Many of these documentscan be found on the Internet at Technical Brief (literature number SPRU197) gives anintroduction to the C62x/C67x digital signal processors, development tools,and third-party CPU and Instruction Set Reference Guide (literature num-ber SPRU189) describes the C6000 CPU architecture, instruction set, pipe-line, and interrupts for these digital signal This FirstTMS320C6000 Peripherals Reference Guide (literature number SPRU190)describes common peripherals available on the TMS320C6000 digital signalprocessors. This book includes information on the internal data and programmemories, 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 programmer s Guide (literature number SPRU198) de-scribes ways to optimize C and assembly code for the TMS320C6000 DSPsand includes application program Assembly Language Tools User s Guide (literature numberSPRU186) describes the assembly language tools (assembler, linker, and oth-er tools used to develop assembly language code), assembler directives,macros, common object file format, and symbolic debugging directives for theC6000 generation of Optimizing C Compiler User s Guide (literature numberSPRU187)
4 Describes the C6000 C compiler and the assembly optimizer. ThisC compiler accepts ANSI standard C source code and produces assembly lan-guage source code for the C6000 generation of devices. The assembly opti-mizer helps you optimize your assembly Chip Support Library (literature number SPRU401) de-scribes the application programming interfaces (APIs) used to configure andcontrol all on-chip Image/Video Processing Library (literature numberSPRU400) describes the optimized image/video processing functions includ-ing many C-callable, assembly-optimized, general-purpose image/videoprocessing , TMS320C62x, TMS320C67x , and Code Composer Studioare trademarks of Texas trademarks are the property of their respective ContentsviiContents1 Introduction1-1.. Provides a brief introduction to the TI C67x DSPLIB, shows the organization of the routines con-tained in the Library , and lists the features and benefits of the to the TI C67x DSPLIB1-2.
5 And Benefits1-5.. 2 Installing and Using DSPLIB2-1.. Provides information on how to install, use, and rebuild the TI C67x to Install the DSP Library2-2.. DSPLIB2-3.. Arguments and Data Types2-3.. DSPLIB Types2-3.. DSPLIB Arguments2-3.. a DSPLIB Function From C2-4.. Code Composer Studio Users2-4.. a DSP Function From Assembly2-4.. DSPLIB is Tested Allowable Error2-4.. DSPLIB Deals With Overflow and Scaling Issues2-5.. Behavior of DSPLIB Functions2-5.. to Rebuild DSPLIB2-5.. 3 DSPLIB Function Tables3-1.. Provides tables containing all DSPLIB functions, a brief description of each, and a page refer-ence for more detailed and Conventions Used3-2.. Functions3-3.. Function Tables3-4.. Functions3-4.. Functions3-7.. Contentsviii 4 DSPLIB Reference4-1.. Provides a list of the single- and double-precision functions within the DSPLIB organized intofunctional Functions4-2.
6 Filtering4-2.. DSPF_sp_lms4-2.. DSPF_sp_autocor4-4.. DSPF_sp_bitrev_cplx4-5.. DSPF_sp_cfftr4_dif4-9.. DSPF_sp_cfftr2_dit4-13.. DSPF_sp_fftSPxSP4-17.. DSPF_sp_ifftSPxSP4-25.. DSPF_sp_icfftr2_dif4-34.. and Convolution4-38.. DSPF_sp_fir_cplx4-38.. DSPF_sp_fir_gen4-40.. DSPF_sp_fir_r24-42.. DSPF_sp_fircirc4-43.. DSPF_sp_biquad4-45.. DSPF_sp_iir4-47.. DSPF_sp_iirlat4-49.. DSPF_sp_convol4-50.. DSPF_sp_dotp_sqr4-52.. DSPF_sp_dotprod4-53.. DSPF_sp_dotp_cplx4-54.. DSPF_sp_maxval4-56.. DSPF_sp_maxidx4-57.. DSPF_sp_minval4-58.. DSPF_sp_vecrecip4-60.. DSPF_sp_vecsum_sq4-61.. DSPF_sp_w_vec4-62.. DSPF_sp_vecmul4-63.. DSPF_sp_mat_mul4-64.. DSPF_sp_mat_trans4-66.. DSPF_sp_mat_mul_cplx4-67.. DSPF_sp_blk_move4-69.. DSPF_blk_eswap164-70.. DSPF_blk_eswap324-72.. ContentsixContentsDSPF_blk_eswap644-74.. DSPF_fltoq154-76.. DSPF_sp_minerr4-77.. DSPF_q15tofl4-78.. Functions4-80.. Filtering4-80.. DSPF_dp_lms4-80.
7 DSPF_dp_autocor4-82.. DSPF_dp_bitrev_cplx4-83.. DSPF_dp_cfftr4_dif4-87.. DSPF_dp_cfftr24-91.. DSPF_dp_icfftr24-96.. and Convolution4-101.. DSPF_dp_fir_cplx4-101.. DSPF_dp_fir_gen4-103.. DSPF_dp_fir_r24-104.. DSPF_dp_fircirc4-106.. DSPF_dp_biquad4-108.. DSPF_dp_iir4-109.. DSPF_dp_iirlat4-111.. DSPF_dp_convol4-112.. DSPF_dp_dotp_sqr4-114.. DSPF_dp_dotprod4-115.. DSPF_dp_dotp_cplx4-116.. DSPF_dp_maxval4-117.. DSPF_dp_maxidx4-119.. DSPF_dp_minval4-120.. DSPF_dp_vecrecip4-121.. DSPF_dp_vecsum_sq4-122.. DSPF_dp_w_vec4-123.. DSPF_dp_vecmul4-124.. DSPF_dp_mat_mul4-126.. DSPF_dp_mat_trans4-128.. DSPF_dp_mat_mul_cplx4-129.. DSPF_dp_blk_move4-131.. Contentsx A Performance/Fractional Q FormatsA-1.. Describes performance considerations related to the C67x DSPLIB and provides informationabout the Q format used by DSPLIB ConsiderationsA-2.. Q FormatsA-3.. FormatA-3.. of IEEE Standard Single- and Double-Precision FormatsA-4.
8 B Software Updates and Customer SupportB-1.. Provides information about software updates and customer Software UpdatesB-2.. Customer SupportB-2.. IssuesB-2.. C GlossaryC-1.. FiguresxiContentsFiguresA 1 Single-Precision Floating-Point FieldsA-5.. A 2 Double-Precision Floating-Point FieldsA-7.. Tables2 1 DSPLIB Data Types2-4.. 3 1 Argument Conventions3-2.. 3 2 Adaptive Filtering3-4.. 3 3 Correlation3-4.. 3 4 FFT3-4.. 3 5 Filtering and Convolution3-5.. 3 6 Math3-6.. 3 7 Matrix3-6.. 3 8 Miscellaneous3-7.. A Bit FieldsA-3.. A 2 IEEE Floating-Point NotationsA-5.. A 3 Special Single-Precision ValuesA-6.. A 4 Hex and Decimal Representation for Selected Single-Precision ValuesA-6.. A 5 Special Double-Precision ValuesA-7.. A 6 Hex and Decimal Representation for Selected Double-Precision ValuesA-8.. xii 1-1 IntroductionThis chapter provides a brief introduction to the TI C67x DSP Library (DSPLIB), shows the organization of the routines contained in the Library , andlists the features and benefits of the to the TI C67x DSPLIB1-2.
9 And Benefits1-5.. Chapter 1 Introduction to the TI C67x DSPLIB Introduction to the TI C67x DSPLIBThe TI C67x DSPLIB is an optimized DSP Function Library for C programmersusing TMS320C67x devices. It includes C-callable, assembly-optimized gen-eral-purpose signal-processing routines. These routines are typically used incomputationally intensive real-time applications where optimal executionspeed is critical. By using these routines, you can achieve execution speedsconsiderably faster than equivalent code written in standard ANSI C addition, by providing ready-to-use DSP functions, TI DSPLIB can signifi-cantly shorten your DSP application development TI DSPLIB includes commonly used DSP routines. Source code is pro-vided that allows you to modify functions to match your specific routines contained in the Library are first classified in to single- and double-precision functions and then they are organized into seven different funtions.
10 JAdaptive filteringHDSPF_sp_lmsJCorrelationHDSPF_s p_autocorJFFTHDSPF_sp_bitrev_cplxHDSPF_s p_cfftr4_difHDSPF_sp_cfftr2_ditHDSPF_sp_ fftSPxSPHDSPF_sp_ifftSPxSPHDSPF_sp_icfft r2_difJFiltering and convolutionHDSPF_sp_fir_cplxHDSPF_sp_fir _genHDSPF_sp_fir_r2 HDSPF_sp_fircircHDSPF_sp_biquadHDSPF_sp_ iirHDSPF_sp_iirlatHDSPF_sp_convolIntrodu ction to the TI C67x DSPLIB1-3 IntroductionJMathHDSPF_sp_dotp_sqrHDSPF_ sp_dotprodHDSPF_sp_dotp_cplxHDSPF_sp_max valHDSPF_sp_maxidxHDSPF_sp_minvalHDSPF_s p_vecrecipHDSPF_sp_vecsum_sqHDSPF_sp_w_v ecHDSPF_sp_vecmulJMatrixHDSPF_sp_mat_mul HDSPF_sp_mat_transHDSPF_sp_mat_mul_cplxJ MiscellaneousHDSPF_sp_blk_moveHDSPF_sp_b lk_eswap16 HDSPF_sp_blk_eswap32 HDSPF_sp_blk_eswap64 HDSPF_fltoq15 HDSPF_sp_minerrHDSPF_q15tofl-Double-prec ision funtions:JAdaptive filteringHDSPF_dp_lmsJCorrelationHDSPF_d p_autocorJFFTHDSPF_dp_bitrev_cplxHDSPF_d p_cfftr4_difHDSPF_dp_cfftr2 HDSPF_dp_icfftr2 Introduction to the TI C67x DSPLIB 1-4 JFiltering and convolutionHDSPF_dp_fir_cplxHDSPF_dp_fir _genHDSPF_dp_fir_r2 HDSPF_dp_fircircHDSPF_dp_biquadHDSPF_dp_ iirHDSPF_dp_iirlatHDSPF_dp_convolJMathHD SPF_dp_dotp_sqrHDSPF_dp_dotprodHDSPF_dp_ dotp_cplxHDSPF_dp_maxvalHDSPF_dp_maxidxH DSPF_dp_minvalHDSPF_dp_vecrecipHDSPF_dp_ vecsum_sqHDSPF_dp_w_vecHDSPF_dp_vecmulJM atrixHDSPF_dp_mat_mulHDSPF_dp_mat_transH DSPF_dp_mat_mul_cplxJMiscellaneousHDSPF_ dp_blk_moveFeatures and Features and Benefits-Hand-coded assembly-optimized routines-C and linear assembly source code-C-callable routines, fully compatible with the TI C6x compiler-Fractional operands supported on some benchmarks-Benchmarks (time and code)
