PRODUCT OVERVIEW

DSP CARDS

XP-100

XP-35

XP-30

DSP CHIP

TM-100

SOFTWARE

QuickXP

DSP Program Development Software

For years, TMS has developed software tools and techniques to harness the power of our products and to hide the complexity of large-scale multi-processor programming without resorting to overly complex parallel programming methods. The TMS Program Development System (PDS) is our suite of software tools designed to provide powerful and effective programming support for our DSP hardware products. The PDS has grown to include both X­Midas and the new QuickXP (Python scripting) development environments.  For X-Midas, the PDS includes X­Midas macro language, Fortran, C, and C++ for writing primitives.  For QuickXP, the PDS includes Python for writing applications, MacroXP for writing modules in C, and a variety of debugging / performance-measuring tools.

The TM-100 DSP chip is software compatible to three generations of TMS DSP processors.  The math library consists of over 500 routines that have evolved over ten years. Library coverage includes real and complex vector arithmetic and matrix arithmetic. It also includes 1-D and 2-D FFTs (powers of 2,3 and 5 vector sizes), DSP and image processing algorithms, as well as re-sampling, tuning, data comparison, packing and binary arithmetic utilities. Included are elementary function routines for executing trigonometric, square root, and division operations in a few nanoseconds instead of microseconds. Library documentation provides calling sequences, detailed algorithm descriptions, performance timings and examples. Programming the TM-100 is as easy as calling a math library function. Included XP-100 software is comprised of a driver and the math library of 500+ scientific algorithms.

QuickXP / VPX
QuickXP and VPX sit at the top of the TMS DSP programming toolkit.  QuickXP, TMS’ stand-alone application environment based on the Python scripting language, allows complex applications to be implemented with minimal lines of code.  New applications can be quickly and interactively pieced together and debugged.  This allows for extremely rapid application development, yet its script-based solutions are robust and efficient for implementation in final user applications.  Using the included extensions, this layer also provides many useful GUI tools.

MacroXP
Certain popular DSP algorithms are in constant use.  The MacroXP utility is used to create a higher-level routine that bundles a set of low level DSP math library routines together.  These MacroXP routines are simply called just like any math library routine.  Application programs are quickly implemented with MacroXP.  Many MacroXP routines have already been tested for users.   Available Macros are: AM/FM/PM demodulators, power spectral calculators, sub-band tuners, and TMIC. 

PipeXP
PipeXP is based on simple C programming techniques.  It transparently manages data flow, from input source through the XP processing nodes to output. Algorithms developed from MathXP are seamlessly connected to form increasingly complex data processing chains by using PipeXP’s software abstractions.  PipeXP allows programmers to focus solely on the task of implementing a single aspect of signal processing without being distracted by how it fits into the final solution.  This facilitates the development of reusable processing modules. 

PipeXP performs synchronization by managing data flow via data pipes. The biggest advantage of PipeXP is its ability to abstract synchronization issues inherent in the interaction of multiple XP processing nodes. Although each node executes operations in the order issued, synchronization concerns occur because nodes operate asynchronously from the local computer and other nodes.  This asynchronous design increases performance by hiding the overhead of calling math routines on the local computer and by allowing multiple nodes to be assigned work and to process data simultaneously. Each asynchronous task is separated into program units that are linked together by data pipes.  Data flows from node to pipe to node to pipe to local computer.

MathXP
At the heart of the TMS DSP software solution sits MathXP, our comprehensive library of mathematical routines refined over the years.  The routines are optimized for maximum efficiency on all TMS DSP platforms.  It is exceedingly easy to use.  Complex data processing algorithms have been boiled down to a simple, consistent interface for operating on large sets of data. The DSP math library is as easy to use as any other library.  MathXP gives programmers everything they need to perform sophisticated DSP operations easily by hiding the complexity of managing many DSP co-processors.

The MathXP programming paradigm should be thought of as calling library functions asynchronously for execution in the DSP Accelerator node.  Node execution begins when the host computer calls the initial math function.  Subsequent MathXP function calls are queued at the DSP node. For many applications a single local computer processor can schedule hundreds of operations for multiple DSP nodes, and still have CPU cycles available for other activities.

DriveXP
The unified DSP accelerator driver provides the glue between DSP accelerator hardware and the high-performance software suite.  DriveXP has evolved into a streamlined interface designed for performance, ease of use, and stability.  It delivers forward and backward compatibility across all TMS DSP accelerator cards with continued improvements over many years.

DriveXP provides DSP accelerators with direct access to application memory for fast data transfers.  A task queue ensures the hardware is always busy when there is work to be done.  All tasks are asynchronous, thus minimizing bottlenecks.  Many techniques are used by DriveXP to reduce software overhead on the host computer.