CDL Support Libraries

The CDL support libraries include many modules including:

c_sl_error
TBA
sl_cons
TBA
sl_data_stream
TBA
sl_debug
TBA
sl_exec_file
Okay, the exec files are crude and horrible. But they work. Okay, got that off my chest.

Exec files are very simple extensible multithreaded control files, basically. They are exceedling primitive in their structure (one command per line, weird or no syntax, etc). But they support multithreading where any thread may be waiting for any particular external event, for example; they are also very lightweight, which is required for the simulation engine. Exec files are used for regression batch files and for primitive test harnesses in simulation. Use for anything else is not, er, recommended.

sl_fifo
TBA
sl_general
This is the basic top level of the support library, and is included most of the time. It defines useful items such as t_sl_uint64, the unsigned 64-bit integer. It also has many simple functions that just make life easier.
sl_hier_mem
This module implements hierarchical memories; these are sparse memories that utilize multiple layers of page tables to provide a wide address space where only a small portion of the address space is used. The memory may be read or written, and an iterator function is supplied to ease determination as to what addresses are actually in use (for checkpoint/restore reasons, for example).
sl_indented_file
TBA
sl_mif
MIF files are memory interface format files. This module is designed to support simple hex, decimal or binary loading of memories for the simulation engine, in a standard format.
sl_option
TBA
sl_random
TBA
sl_timer.h
This is purely a header file; it defines a number of macros and various types for profiling. Particularly on Intel x86 systems (and probably AMD systems), it is very useful for code profiling as it uses the internal CPU tick counter for its 'clock'. This is a very precise and low overhead timing mechanism; it suffers, though, if your process can be switched out, so ensure that you do not try to use the timing macros across potential scheduling events (or where your code may get timesliced by the OS); or if you do, manage the effects.
sl_token
TBA
Main links

SourceForge.net Logo

Site map