.TH SMOKE 10.1
.SH NAME
smoke \- static circuit checks
.SH SYNOPSIS
.B cda/smoke
[
.B -l load
]
[
.B -abcmnpsxL
]
.I files
.SH DESCRIPTION
.I Smoke
reads and checks a circuit and reports simple
errors like typechecking in C.
.PP
The circuit description language is 
.IR cdl (10.6).
The
.I files
are usually a circuit description file(s) made with
.IR gnet (10.1)
and/or
.IR cdmglob (10.1)
and the pins files with
.B .tt
lines like those given to
.IR cdmglob (10.1).
Files with net lists come first, pins files come second.
.PP
The
.B .tt
line contains one character per pin on the chip according to
the following table:
.sp
.nf
	\fL1\fP	open collector output
	\fL2\fP	totem pole ttl output
	\fL3\fP	3-state output
	\fLi\fP	input
	\fLp\fP	pull-up (for 1)
	\fL0\fP	1 and p
	\fL4\fP	3 and i
	\fL5\fP	1 and i
	\fL6\fP	1 and p and i
	\fLj\fP	p and i
	\fLk\fP	d and i
	\fL9\fP	voltage source
	\fLv\fP	vcc sink (.vb 1)
	\fLw\fP	.vb 2 sink
	\fLx\fP	.vb 3 sink
	\fLy\fP	.vb 4 sink
	\fLz\fP	.vb 5 sink
	\fLg\fP	ground
	\fLn\fP	no connect (use as tie point prohibited)
	\fL8\fP	analog output
	\fLa\fP	analog input
	\fLA\fP	analog input/output pin
	\fLs\fP	switch contact
	\fLt\fP	terminator
	\fLb\fP	PAL undeclared pin
	\fLI\fP	current source (not supported)
	\fLJ\fP	current sink (not supported)
	\fLD\fP	+ driver
	\fLd\fP	- driver
	\fLR\fP	+ receiver
	\fLr\fP	- receiver
	\fLP\fP	pulldown
	\fL.\fP	no type
.fi
.sp
.PP
The various options for
.I 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
.I not
do any checking.
.TP 7
.B -l
takes an optional loading count; only nets with more loads will be
flagged for load complaints.
.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;
.I 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
.I smoke,
the last definition of the chip is the one that counts.
