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
|
|
|
|