Representation-specific binders

The general-purpose vl-binders provide for the selection of representations (as wires, registers, and constants) for bindings. However, sometimes a block of bindings with the same representation is needed, and these can be declared using the representation-specific binder macros.

There are three macros for the three different representations.

(let-wires ((clk 0 :width 1))
   ...)

(let-registers ((a 0 :width 8))
   ...)

(let-constants ((mask #2r111000 ))
   ...)

In each case the variables declared are given the corresponding representation. These constructs can be freely mixed with “ordinary” binders as appropriate to make the code clearer.