.TH XILINX 10.1
.SH NAME
xil, xnfpins, xnffrom, xnfto \- xilinx tools
.SH SYNOPSIS
.B cda/xil
[
.B -x
]
.IB name .m
.B >
.IB new .xnf
.br
.B cda/xnfpins
.I name
.I part
[
.I pin...
]
.B >
.IB new .pins
.br
.B cda/xnffrom
.I part
.IB old .pins
.IB new .xnf
.B >
.IB new .pins
.br
.B cda/xnfto
.I part
.IB name .pins
.IB name .xnf
.B >
.IB name .cst
.SH DESCRIPTION
.PP
.I Xil
factors and translates input in
.IR minterm (10.6)
format to Xilinx Netlist Format suitable for processing
by the proprietary Xilinx
program
.I ppr
(partition, place & route) and subsequent
programs.
.PP
Xilinx hard macros and RAM/ROM symbols generated by the
Xilinx
.I memgen
program can be used via the
.IR lde (10.1)
.B .m
facility.
.PP
.IR Xnfpins ,
.IR xnfto ,
and
.I xnffrom
create
and maintain CDA pins and Xilinx constraint files.
.I Xnfpins
produces an initial
.B .pins
file given the Xilinx part
number (e.g.
.BR 4005pg156 )
and a list of statically assigned
pin names, typically those used for initializing the part.
Subsequent programs retain this initial information in the
face of changes in automatically assigned pins.
.PP
.I Xnffrom
takes
.B EXT
lines in an
.B .xnf
file
produced by
.IR lca2xnf (10.1)
as back annotation to update
the corresponding CDA
.B .pins
file and subsequently
constrain
.IR ppr 's
choice of pins.
.PP
.I Xnfto
takes
.B .tp
lines following
.B #float
in
the
.B .pins
file that appear in the
.B .xnf
file
and fixes them in the
.B .cst
(constraints) file used
by
.I ppr.
.I Xnfto
should be used only to maintain
pinouts generated by
.I ppr
and
.I xnffrom
and
.I only
after said pinouts have been set in physical design concrete.
.PP
The files used and generated by these programs have to be
shipped back and forth between Plan 9 and a suitably licensed
Xilinx platform.  Use
.IR mk (1)
to control this.
.SH FILES
.BI /sys/lib/cda/40 nn .pin
.SH SEE ALSO
.IR lde (10.1)
.br
.IR ppr (Xilinx)
.br
.IR memgen (Xilinx)
.br
.IR lca2xnf (Xilinx)
.SH BUGS
It may be complicated, but Actel is worse.
.br
.I Ppr
gets very confused if it sees a constraint against using a
pin it wasn't going to use anyway.
