Prints a message in simulation.
Does not fire when in reset (defined as the encapsulating Module's
reset). If your definition of reset is not the encapsulating Module's
reset, you will need to gate this externally.
May be called outside of a Module (like defined in a function), so
functions using printf make the standard Module assumptions (single clock
and single reset).
Printable to print
May be called outside of a Module (like defined in a function), uses
whatever clock and reset are in scope.
printf format string
format string varargs containing data to print