These functions are the "pure" interface to defining signals and pins. They were created after the macro interface of the next section.
Check expressions are evaluated in the order in which they are defined
by synch:insert-check.
reset-state is the value held by this signal while reset-name for this block is asserted. reset-state should be a boolean for single signals and an integer for vectorized signals. If reset-name is a list with first element `synchronous', then the reset state is unspecified if no clock is present during reset; and the second element of reset-name otherwise. If reset-name is `*xxxx*', then the reset state is unspecified if no clock is present during reset; next-function otherwise.
The scheme expression next-function determines the values for signal when the block reset is deasserted.
signal-type is one of
combinatorial is not
yet implemented.
hidden is used to specify the input side of input/output pins.
synch:define-pin and synch:define-signal store the
documentation strings specified before them by `#;' or calls
comment.
If the last clause is (#t value), then value is
returned whenever no other clause is active.
synch:define-bus instantiates checks whether name is being
driven from multiple sources to different values. It also creates a
check whether name is undriven for float-limit cycles. If
the feature check-turnaround is provided when `simsynch.scm'
is loaded, synch:define-bus will also check the at least one
cycle separates driving of name from different sources.