V10/man/man10/smoke.10
.TH SMOKE 10.1 UCDS
.SH NAME
smoke \- static circuit checks
.br
wcheck \- static circuit checker
.SH SYNOPSIS
.B smoke
[
.B -abclmnpsxL
]
.I files
.br
.B wcheck
.I files
.SH DESCRIPTION
.I Smoke
reads and checks a circuit and reports simple
errors like
.IR lint(1)
would find in C programs.
.PP
The circuit description language is
.IR cdl (7).
The
.I files
are usually a circuit description file(s) made with
.IR jraw -w (10.1)
and/or
.IR cdmglob (10.1)
and the pins files with
.B \&.tt
lines like those given to
.IR cdmglob.
Files with net lists come first, pins files come second.
.PP
.I Wcheck
reads and checks a circuit description and reports simple errors found.
.PP
The circuit description language is
.IR cdl (7).
The
.I files
are usually a board description file
.RB ( .wb )
made with
.BR "board -w",
a chips description file made with
.BR "mkchip -t" ,
and
(a) circuit description file(s) made with
.B "draw -w"
and/or
.BR cdm .
.PP
The .tt line contains one character per pin on the chip according to
the following table:
.sp
.nf
\fB1\fP open collector output
\fB2\fP totem pole ttl output
\fB3\fP 3-state output
\fBi\fP input
\fBp\fP pull-up (for 1)
\fBd\fP pull-down
\fB0\fP 1 and p
\fB4\fP 3 and i
\fB5\fP 1 and i
\fB6\fP 1 and p and i
\fBj\fP p and i
\fBk\fP d and i
\fB9\fP voltage source
\fBv\fP vcc sink (.vb 1)
\fBw\fP .vb 2 sink
\fBx\fP .vb 3 sink
\fBy\fP .vb 4 sink
\fBz\fP .vb 5 sink
\fBg\fP ground
\fBn\fP no connect (use as tie point prohibited)
\fB8\fP analog output
.fi
.sp
The following are
.IR smoke
declarations only.
.nf
\fBa\fP analog input
\fBA\fP analog input/output pin
\fBs\fP switch contact
\fBt\fP terminator
\fBb\fP PAL undeclared pin
\fBI\fP current source (not supported)
\fBJ\fP current sink (not supported)
\fBD\fP + driver
\fBd\fP - driver
\fBR\fP + receiver
\fBr\fP - receiver
\fBP\fP pulldown
\fB.\fP no type
.fi
.sp
.PP
The various options for
.IR smoke
are
.TP 7
.B -a
Don't print out errors on analog nets.
.TP 7
.B -b
Don't print out errors on nets with bidirectional pins.
.TP 7
.B -c
Print out the entire circuit with type declarations by each pin (but
Does \fBnot\fP do any checking.
.TP 7
.B -l
Don't complain about loading errors.
.TP 7
.B -m
Don't complain about lone pins on macro signals.
.TP 7
.B -n
Turn on `complete' nets; when errors occur, nets will be completely printed
out (when used with
.BR -x ).
.TP 7
.B -p
Turn on paranoid mode;
.IR smoke
normally doesn't complain if
there are any undeclared pins in a net. Now it will.
.TP 7
.B -s
Ignore multiple source messages. Not recommended for general use.
.TP 7
.B -x
Turn on extra (excessive) mode. Offending nets will be printed out in
gory detail; \fIvery\fP useful for debugging the nets it complains about.
.TP 7
.B \-L
Ignore lonely pins with names beginning with
.B $
(local names).
.SH BUGS
In
.IR smoke,
the last definition of the chip is the one that counts.
Doesn't handle ECL.