Capsim Text Mode Kernel
CAPSIM (CAPture and SIMulate) Text Mode Kernel (TMK) is a hierarchical interactive block diagram simulation and design system for digital signal processing and communications. All Capsim TMK models are written in C with provisions for parameters, input /output buffers, internal state maintenance, and three phases of execution: initialization, run-time and wrap-up. Capsim TMK has been the basis for advanced research projects and undergraduate and graduate courses in communications and signal processing.
Capsim TMK based designs have resulted in the rapid introduction of new products into the market. Start your projects with Capsim TMK's built in models and extensive DSP and communications applications. Then easily incorporate your own custom C models into Capsim TMK . Capsim TMK is provided with extensive documentation.
Capsim TMK has built in IIR and FIR filter design blocks. It also incorporates LMS and fast RLS adaptive filters and block LMS adaptive filters. More and more DSP and communication applications will be added to the Capsim TMK release. New stars and topologies will be available from the CVS repository at SourceForge.net.
Capsim TMK Licensing
The Capsim Text Mode Kernel is written in C and along with hundreds of stars (blocks) and a subroutine DSP library is licensed under the GNU Lesser General Public License. Tools used to develop blocks including many Perl scripts are covered by the GNU General Public License. These tools are separate from the Capsim TMK library. The intention is to provide all of the source code of the Capsim kernel, blocks and subroutine libraries as open source code with freedom to modify and enhance the code. The GNU Lesser General Public License is intended to allow the linking in of blocks developed by the community without having to expose the code for the linked blocks. However, we encourage all developers to publish the code for their blocks and subroutines. All modifications and enhancements to the Kernel, any of the supplied blocks and subroutines with the CapsimTMK distribution must be published if distributed. Any distribution of the created Capsim executable must include a statement showing links to the original CapsimTMK source code. Top
Capsim TMK History
Capsim ( Capture and Simulate ) was developed by XCAD Corporation and now by Silicon DSP Corporation. The predecessor and original model of CAPSIM was BLOSIM. BLOSIM is a block diagram signal processing simulation program, originally developed at the University of California, Berkeley, 1985. The primary authors were D. G. Messerschmitt and D. J. Hait. Since arrival at NCSU in November 1987, the program has been extensively debugged. Capsim was completely remodeled, enhanced with new commands, and improved by XCAD Corporation. The person-hours spent on this task have made Capsim a vast improvement over the original in user convenience, capability and reliability. For papers on BLOSIM visit this link.
The principal authors for the enhancements to BLOSIM are Sasan Ardalan formerly with the Dept. of Electrical and Computer Engineering, North Carolina State Univertsity, Raleigh, NC and Jim Faber, Ph.D. Top
CapsimTMK capability improvements over Blosim
Many features have been added to improve simulation design and run-time efficiency.
- program re-organization, saving 20% on executable size
- improved scheduling algorithm:Before a simulation is run, blocks are "scheduled" or put into an appropriate order of execution by the controller. The new algorithm selects a more efficient ordering.
- improved run-time control of data buffer size. Previously, certain buffers could grow abnormally large, requiring excessive memory usage. Buffer size is now balanced throughout the topology via an improved visitation algorithm.
- data buffer de-allocation, allowing multiple runs. Previously, multiple runs would overflow available memory.
- internal block (both star and galaxy) parameter model storage, specification, and definition. This provides consistency checking and prevents run-time errors. Additionally, the block author now specifies parameter default values and definitions.
- parameter broadcast (via "args") is possible even from the highest topology level.
- buffer signals can be named. These signal names are accessible by the star operational code, for printing, labeling, etc, and are displayed for reference.
- compilation is controlled internally for either UNIX or VMS operating systems. Allows maintenance of a single program version for use on several systems, and allows less painful installation.
- Argument numbers may be noncontiguous. However, when stored they become contiguous.
CAPSIM Convenience Improvements
Many features have been added or improved to aid the user in creating, editing and running simulations.
- on-line parameter changes with prompting; automatic type checking and compatibility enforcement for galaxy referenced parameters (args).
- on-line help descriptions for all commands.
- on-line review of star/galaxy source files.
- command history: repeat/review of previous commands.
- command alias mechanism allows shortened commands.
- new movement command "to": accepts full or partial name for a star or galaxy.
- change checking: prevents inadvertent exit or re-loading before saving a modification.
- run a simulation from any location in the topology
- improved information display format:block modification status, parameter descriptions, signal names,galaxy argument values and descriptions.
- improved error reporting: full block path names used; complete messages from star errors.
- simplified block creation: automatic instance name, default parameter creation.
- simplified block connection/disconnection: automatic default port numbering.
- re-loading of any sub-topology is possible.
- Buffer growth monitoring. This facility allows the user to monitor the growth of buffers during simulations.
- new command "replace": pin-for-pin block substitution.
- Galaxies can be substituted for stars, etc. Connections are saved, and parameters are modified automatically.
- new command "insert": put a block into an existing connection.Useful for temporary measurement stars, etc.
- new command "delete": remove a block, but restore connections.
- Single command to make buffer numbers contiguous. Top