|
Timepic is a pic(1) and troff(1) preprocessor for drawing timing
diagrams. Timepic code is contained between .TPS and .TPE lines:
| |
.TPS width row–height
statement–list
.TPE
|
There are two types of timepic statements: variable definitions
and signal definitions. Variables are defined with the syntax
where expr is an arithmetic expression involving floating–point
constants and previously defined variables. Currently only basic
arithmetic (+, –, * and /) is supported. Signals are defined with
the syntax
where name is a name that must be quoted unless it's a valid symbol.
Events is a list consisting of the following things:
* The current time can be set using an arithmetic expression, that
may be followed by a symbol interpreted as a unit. For instance
if you defined μs = 1000; then 1μs and (x+2)*3μs are both valid
time expressions. Note that x+2μs is interpreted as (x+2)μs which
may or may not be intended behaviour.
| |
A time expression can be preceded by + to mark it as relative
to the previous time. The first time is zero.
A time expression can be followed by a symbol name in square brackets.
The symbol is then defined with the time.
*
|
An expression of the form :name creates an `event' at the current
time, changing the value of the signal to name. name can be a
symbol (which is not evaluated), a numerical constant or a string
in single quotes. The values 0, 1, x and z have special meaning,
unless they are quoted.
* A pipe symbol | draws a vertical dashed line at the next event.
* An expression of the form expr{events} evaluates the expression,
rounded to the nearest integer, and then repeats the events the
specified number of times. It is illegal if the expression evaluates
to a negative number. It is also illegal to use absolute times
in the events list. It is however legal to nest this
|