This namespace contains standard names for commonly used data encodings in asynchronous circuits.
template<pint N> deftype d1of <: enum<N> (bool?! d[N]);
This data-type specifies a one-of-
N encoding (a.k.a. a one-hot encoded value). The all zero/false state is used to indicate an neutral value (i.e. the absence of data). The
d array corresponds to the data wires/rails.
deftype d1of2 <: d1of<2> (bool?! t, f);
This type contains a special name for a one-of-two encoding, with additional signals
f used as the true and false wires/rails.
deftype dualrail <: d1of2();
d1of2 type is also commonly known as dual-rail encoding, this provides another name for the same type.
template<pint M> deftype Mx1of2 <: int<M> (dualrail d[M])
This defines an
M-bit dual-rail encoding. It contains an array of data bits
d, each of which are of type