This is an old revision of the document!
Namespace std
The std
namespace contains a collection of standard definitions for channels, data types, and other components. This can be viewed as ACT's equivalent of the C++ standard template library.
Functions
export function max(pint a, b) : pint;
Returns the larger of the two pint
s.
export function min(pint a, b) : pint;
Returns the smaller of the two pint
s.
export function ceil_log2 (pint a) : pint;
Computes the smallest power of two that is at least as large as a
.
export function pow(pint n, m) : pint;
Computes the quantity n
to the power of m
. Note that pint
s use 64-bit representation.
Definitions
export template<pint ID, N,W> defproc rom (chan?(int<std::ceil_log2(N)>) addr; chan!(int<W>) dout);
(This can be used after actsim
is installed.)
export template<pint N, W> defproc ram (chan?(int<2>) rd; chan?(int<std::ceil_log2(N)>) addr; chan?(int<W>) din; chan!(int<W>) dout);
export defcell buf_arbiter(bool? a, b; bool! u, v) ;
export defcell ideal_arbiter(bool? a, b; bool! u, v) ;
export template<pint N, M> defproc arbiter(chan?(int<N>) A; chan?(int<M>) B; chan!(int<N>) Ap; chan!(int<M>) Bp);