Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sim:start [2023/04/16 15:30] – [Exported processes] rajit | sim:start [2024/02/27 15:43] (current) – [Components] fabian | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | The '' | + | The simulation library is a collection of components which will aid you in testing and verifying your designs. Components in this library are decidedly not synthesizable and should never be included in a final design. A lot of the components use actsim' |
| + | |||
| + | All components of the simulation | ||
| <code act> | <code act> | ||
| Line 7: | Line 9: | ||
| </ | </ | ||
| - | ===== Exported processes | + | ===== Components |
| - | + | ||
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc source (chan!(int< | + | |
| - | </ | + | |
| - | This creates a data source that has bit-width '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc sink(chan? | + | |
| - | </ | + | |
| - | This process acts as a data sink; it repeatedly receives '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc source_seq(chan!(int< | + | |
| - | </ | + | |
| - | This process also provides a '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc file_source(chan!(int< | + | |
| - | </ | + | |
| - | This process is also a '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc check_sink(chan? | + | |
| - | </ | + | |
| - | This process is a '' | + | |
| - | + | ||
| - | ===== Namespace sim::rand ===== | + | |
| - | + | ||
| - | The '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | template< | + | |
| - | defproc source(chan!(int< | + | |
| - | </ | + | |
| - | This defines a source whose output is generated using the underlying library' | + | |
| - | + | ||
| - | <code act> | + | |
| - | function init(int< | + | |
| - | function init_range(int< | + | |
| - | </ | + | |
| - | These functions are used to initialize a (pseudo) random number generator. They return an identifier to be used in subsequent calls to the functions below to access the generator. The first one initializes a random number generator of the specified bit-width, while the second one specifies an interval over which the random number is supposed to be uniformly distributed. | + | |
| - | + | ||
| - | <code act> | + | |
| - | function get(int< | + | |
| - | </ | + | |
| - | Returns the next random number from the generator specified by index '' | + | |
| - | + | ||
| - | <code act> | + | |
| - | function seed(int< | + | |
| - | </ | + | |
| - | Set the seed for the random number generator '' | + | |
| + | * [[sources | Sources]]: Components which emit tokens onto channels; multiple data origins are supported | ||
| + | * [[sinks | Sinks]]: Absorbs tokens | ||
| + | * [[scoreboards | Scoreboards]]: | ||
| + | * [[loggers | Loggers]]: Can be fitted onto a channel between two components to log transferred data without being visible to either end | ||
| + | * [[ inf_buffer | Infinite capacity buffer]]: Can be used to remove possible timing influences of the simulation harness on the design under test | ||
| + | * [[rng | Random number generators]]: | ||
| + | * [[file | File interaction functions]]: | ||
| + | * [[splitter | Splitter]]: Replicates incoming token onto a specified number of output channels without influencing slack | ||