This is an old revision of the document!


Namespace sim

The sim namespace contains a collection of process definitions that can be used to create simple test environments for simulation purposes.

template<pint W, V> 
defproc source (chan!(int<W>) O);

This creates a data source that has bit-width W, and that repeatedly sends the constant value V on the output port O.

template<pbool LOG; pint W> 
defproc sink(chan?(int<W>) I);

This process acts as a data sink; it repeatedly receives W-bit input on the input port I. If the LOG parameter is set to true, then it also displays the value received using the log() command.

template<pint W; pbool REP; pint N; pint data[N]>
defproc source_seq(chan!(int<W>) O);

This process also provides a W-bit source. Values generated by this source are specified in the N-entry data[] array. The outputs produced are data[0], data[1], …, data[N-1]. If REP is set to true, then this sequence is repeated forever.

export template<pint ID; pbool LOOP; pint W>
defproc file_source(chan!(int<W>) O);

This process is also a W-bit source, except the values produced are taken from a file. The identified ID is used to determine the file name, and the file is assumed to have at least one data value. By default, the file name is _infile_.{ID}. The file format is a sequence of hexadecimal values, one per line. If LOOP is set to true, then the sequence of values specified in the file is repeated forever.