Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sim:start [2023/04/16 11:30] rajit [Exported processes] |
sim:start [2024/02/27 10:43] (current) fabian [Components] |
||
---|---|---|---|
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 |