Changing the manuals after changing the function names, ...
This commit is contained in:
parent
459009667a
commit
90923304f0
alliance/share/man/man3
GENLIB_BUS.3GENLIB_COPY_UP_ALL_CON.3GENLIB_COPY_UP_ALL_REF.3GENLIB_COPY_UP_CON.3GENLIB_COPY_UP_CON_FACE.3GENLIB_COPY_UP_REF.3GENLIB_COPY_UP_SEG.3GENLIB_DEF_AB.3GENLIB_DEF_LOFIG.3GENLIB_DEF_PHFIG.3GENLIB_DEF_PHINS.3GENLIB_DEF_PHSC.3GENLIB_ELM.3GENLIB_FLATTEN_ALL_LOINS.3GENLIB_FLATTEN_ALL_PHINS.3GENLIB_FLATTEN_LOFIG.3GENLIB_FLATTEN_PHFIG.3GENLIB_GET_CON_X.3GENLIB_GET_CON_Y.3GENLIB_GET_INS_X.3GENLIB_GET_INS_Y.3GENLIB_GET_REF_X.3GENLIB_GET_REF_Y.3GENLIB_HEIGHT.3GENLIB_LOAD_LOFIG.3GENLIB_LOAD_PHFIG.3GENLIB_LOCON.3GENLIB_LOINS.3GENLIB_LOINSE.3GENLIB_LOSIG.3GENLIB_LOSIGMERGE.3GENLIB_LOTRS.3GENLIB_OUTLINE.3GENLIB_PHCON.3GENLIB_PHREF.3GENLIB_PHSEG.3GENLIB_PHVIA.3GENLIB_PLACE.3GENLIB_PLACE_BOTTOM.3GENLIB_PLACE_CON_REF.3GENLIB_PLACE_LEFT.3GENLIB_PLACE_ON.3GENLIB_PLACE_RIGHT.3GENLIB_PLACE_SEG_REF.3GENLIB_PLACE_TOP.3GENLIB_PLACE_VIA_REF.3GENLIB_REVERSE_PHCON.3GENLIB_SAVE_LOFIG.3GENLIB_SAVE_PHFIG.3GENLIB_SAVE_PHSC.3GENLIB_SC_BOTTOM.3GENLIB_SC_LEFT.3GENLIB_SC_PLACE.3GENLIB_SC_RIGHT.3GENLIB_SC_TOP.3GENLIB_THRU_CON_H.3GENLIB_THRU_CON_V.3GENLIB_THRU_H.3GENLIB_THRU_V.3GENLIB_UNFLATTEN_LOFIG.3GENLIB_WIDTH.3GENLIB_WIRE1.3GENLIB_WIRE2.3GENLIB_WIRE3.3
|
@ -0,0 +1,81 @@
|
||||||
|
.\" $Id: GENLIB_BUS.3,v 1.1 2000/09/28 15:19:48 fred Exp $
|
||||||
|
.\" @(#)BUS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
BUS
|
||||||
|
.XE \}
|
||||||
|
.TH BUS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
BUS \- Creates a bus name for netlist
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
char \(**BUS(busname, from, to);
|
||||||
|
char \(**busname;
|
||||||
|
long from, to;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIbusname\fP
|
||||||
|
Common signal name for a bus
|
||||||
|
.TP
|
||||||
|
\fIfrom\fP
|
||||||
|
Starting index of the set of signal, \fIfrom\fP included
|
||||||
|
.TP
|
||||||
|
\fIto\fP
|
||||||
|
Ending index of the set of signal, \fIto\fP included
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fIBUS\fP Creates a set of names, based upon a common name, valid for the
|
||||||
|
genlib netlist
|
||||||
|
functions that manipulate the signal, and/or connector, concept.
|
||||||
|
They are:
|
||||||
|
.RS
|
||||||
|
\fBLOINS\fP(3)
|
||||||
|
.br
|
||||||
|
\fBLOCON\fP(3)
|
||||||
|
.RE
|
||||||
|
The \fIfrom, to\fP arguments give the boundaries of the bus to be created,
|
||||||
|
both of them beeing included in the set. The function allows increasing or
|
||||||
|
decreasing order busses, as one could expect.
|
||||||
|
.br
|
||||||
|
This function has a constant equivalent, it means that if the \fIfrom, to\fP
|
||||||
|
values are known at compilation time, one should better use,
|
||||||
|
for readability purposes, the "[n:m]" construct.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
int b = 0;
|
||||||
|
int e = 12;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON(BUS("i", b, e), INPUT, BUS("sig", b, e);
|
||||||
|
LOCON("o[2:0]", OUTPUT, "sigout[4:6]");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", BUS("sig", e/2), "sigout[6]", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR ELM (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,122 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_ALL_CON.3,v 1.1 2000/09/28 15:19:48 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_ALL_CON.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_ALL_CON
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_ALL_CON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_ALL_CON \- copy all physical connectors of an instance face in the
|
||||||
|
current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_ALL_CON(face, insname, concatenate)
|
||||||
|
char face, concatenate;
|
||||||
|
char \(**insname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIface\fP
|
||||||
|
Face of the instance
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance the connector belongs to
|
||||||
|
.TP
|
||||||
|
\fIconcatenate\fP
|
||||||
|
Indicates wheter or not to concatenate instance connectors names with instance
|
||||||
|
name
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_ALL_CON\fP copies all instance connectors of the face \fIface\fP of
|
||||||
|
the placed instance called \fIinsname\fP into the current layout.
|
||||||
|
The \fIconcatenate\fP argument may take two values:
|
||||||
|
.TP 20
|
||||||
|
\fBYES\fP
|
||||||
|
then the resulting name of a connector in the current figure is the
|
||||||
|
concatenation of the \fIinsname\fP and the \fIconname\fP.
|
||||||
|
It warranties the unicity of name at the figure level, and is to be used
|
||||||
|
most of the time.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
implies a direct copy of the connector name.
|
||||||
|
The user must take care of the unicity of connector name by itself.
|
||||||
|
.br
|
||||||
|
Two behaviour are expected, depending on each of the instance connectors
|
||||||
|
location regarding the \fIabutment box\fP of the current figure.
|
||||||
|
.TP 20
|
||||||
|
Connector on the \fIabutment box\fP
|
||||||
|
The figure connector is place right over the instance connector. The single
|
||||||
|
connector is duplicated.
|
||||||
|
.TP
|
||||||
|
Connector inside the \fIabutment box\fP
|
||||||
|
The instance connector face is computed in the figure, and then, the connector
|
||||||
|
is duplicated \fIon\fP the given face, at the right coordinates for this face.
|
||||||
|
Then a wire is drawn between the instance connector and the figure connector in
|
||||||
|
the connector layer.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_ALL_CON impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"*** genlib error *** COPY_UP_ALL_CON impossible : connector \fIconname\fP face
|
||||||
|
\fIface\fP of instance \fIinsname\fP, \fIcurrent\fP figure doesn't exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No connector matches both the \fIconname\fP and the \fIface\fP arguments.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Copy all connectors \(**/
|
||||||
|
COPY_UP_ALL_CON(NORTH, "insN", YES);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR COPY_UP_CON_FACE (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,127 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_ALL_REF.3,v 1.1 2000/09/28 15:19:49 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_ALL_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_ALL_REF
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_ALL_REF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_ALL_REF \- copy a several physical reference from an instance
|
||||||
|
in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_ALL_REF(reftype, insname, concatenate)
|
||||||
|
char \(**reftype, \(**insname;
|
||||||
|
char concatenate;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIreftype\fP
|
||||||
|
Type of the references to be duplicated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the references is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIconcatenate\fP
|
||||||
|
Indicates whether or not to concatenate the instance name to the references
|
||||||
|
names when copying
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_ALL_REF\fP duplicates all the references of type \fIreftype\fP
|
||||||
|
of the instance called \fIinsname\fP into the current layout cell.
|
||||||
|
The main purpose of this function is to copy a set references in the upper
|
||||||
|
hierarchical level, so it can be used as \fIvirtual\fP connector, for
|
||||||
|
the data-path router.
|
||||||
|
See \fBdpr\fP(1) for details.
|
||||||
|
.br
|
||||||
|
The \fIreftype\fP argument can take two values:
|
||||||
|
.TP 20
|
||||||
|
\fB"ref_con"\fP
|
||||||
|
for virtual connectors
|
||||||
|
.TP
|
||||||
|
\fB"ref_ref"\fP
|
||||||
|
for any other references
|
||||||
|
.LP
|
||||||
|
See the \fIleaf cells design for generators\fP document for details on
|
||||||
|
reference types and usage.
|
||||||
|
.br
|
||||||
|
The \fIconcatenate\fP argument can take two values:
|
||||||
|
.TP 20
|
||||||
|
A\fBYES\fP
|
||||||
|
indicates that the name of the copied references is concatenated to the
|
||||||
|
instance name.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
implies a direct duplication of the reference name
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_ALL_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsname\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_ALL_REF impossible : references of type \fIreftype\fP do not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference of type \fIreftype\fP exist in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
COPY_UP_ALL_REF("ref_con", "r1", NO);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR dpr (1),
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR PLACE_CON_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_VIA_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_CON.3,v 1.1 2000/09/28 15:19:49 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_CON.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_CON
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_CON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_CON \- copy a physical connector from an instance in the
|
||||||
|
current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_CON(index, conname, insname, newname)
|
||||||
|
long index;
|
||||||
|
char \(**insname;
|
||||||
|
char \(**conname;
|
||||||
|
char \(**newname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIindex\fP
|
||||||
|
Connector index in the instance
|
||||||
|
.TP
|
||||||
|
\fIconname\fP
|
||||||
|
Name of the connector in the instance model
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance the connector belongs to
|
||||||
|
.TP
|
||||||
|
\fInewname\fP
|
||||||
|
Name to be given to the connector in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_CON\fP copies a instance connector into the current layout figure,
|
||||||
|
and gives to the new connector the name \fInewname\fP. The instance connector
|
||||||
|
is identified by its name, \fIconname\fP, and index, \fIindex\fP.
|
||||||
|
.br
|
||||||
|
Two behaviour are expected, depending on the instance connector location
|
||||||
|
regarding the \fIabutment box\fP of the current figure.
|
||||||
|
.TP 20
|
||||||
|
Connector on the \fIabutment box\fP
|
||||||
|
The figure connector is place right over the instance connector. The single
|
||||||
|
connector is duplicated.
|
||||||
|
.TP
|
||||||
|
Connector inside the \fIabutment box\fP
|
||||||
|
The instance connector face is computed in the figure, and then, the connector
|
||||||
|
is duplicated \fIon\fP the given face, at the right coordinates for this face.
|
||||||
|
Then a wire is drawn between the instance connector and the figure connector in
|
||||||
|
the connector layer.
|
||||||
|
.LP
|
||||||
|
If \fInewname\fP is \fBNULL\fP, then not connector is copied up, on the segment
|
||||||
|
is drawn to the side of the \fIabutment\fP box.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_CON impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"*** genlib error *** COPY_UP_CON impossible : connector \fIconname\fP index
|
||||||
|
\fIindex\fP of instance \fIinsname\fP, \fIcurrent\fP figure doesn't exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The given connector does not exist in the current figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a connector \(**/
|
||||||
|
COPY_UP_CON("i0", 1, "insN", "inz0");
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR COPY_UP_CON_FACE (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_CON_FACE.3,v 1.1 2000/09/28 15:19:49 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_CON_FACE.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_CON_FACE
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_CON_FACE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_CON_FACE \- copy a physical connector from an instance in the
|
||||||
|
current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_CON_FACE(face, conname, insname, newname)
|
||||||
|
long index;
|
||||||
|
char \(**insname;
|
||||||
|
char \(**conname;
|
||||||
|
char \(**newname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIface\fP
|
||||||
|
Connector face in the instance
|
||||||
|
.TP
|
||||||
|
\fIconname\fP
|
||||||
|
Name of the connector in the instance model
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance the connector belongs to
|
||||||
|
.TP
|
||||||
|
\fInewname\fP
|
||||||
|
Name to be given to the connector in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_CON_FACE\fP copies a instance connector into the current layout
|
||||||
|
figure, and gives to the new connector the name \fInewname\fP.
|
||||||
|
The \fIface\fP and \fIconname\fP arguments are not suffiscient for non
|
||||||
|
ambiguiously identify a single connector.
|
||||||
|
So, if more than one connector matches these arguments, the behaviour described
|
||||||
|
below is applied on all of them.
|
||||||
|
.br
|
||||||
|
Two behaviour are expected, depending on the instance connector location
|
||||||
|
regarding the \fIabutment box\fP of the current figure.
|
||||||
|
.TP 20
|
||||||
|
Connector on the \fIabutment box\fP
|
||||||
|
The figure connector is place right over the instance connector. The single
|
||||||
|
connector is duplicated.
|
||||||
|
.TP
|
||||||
|
Connector inside the \fIabutment box\fP
|
||||||
|
The instance connector face is computed in the figure, and then, the connector
|
||||||
|
is duplicated \fIon\fP the given face, at the right coordinates for this face.
|
||||||
|
Then a wire is drawn between the instance connector and the figure connector in
|
||||||
|
the connector layer.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_CON_FACE impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"*** genlib error *** COPY_UP_CON_FACE impossible : connector \fIconname\fP face
|
||||||
|
\fIface\fP of instance \fIinsname\fP, \fIcurrent\fP figure doesn't exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No connector matches both the \fIconname\fP and the \fIface\fP arguments.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a connector \(**/
|
||||||
|
COPY_UP_CON_FACE("i0", 1, "insN", "inz0");
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_REF.3,v 1.1 2000/09/28 15:19:49 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_REF
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_REF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_REF \- copy a physical reference from an instance in the current
|
||||||
|
figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_REF(refname, insname, newname)
|
||||||
|
char \(**refname, \(**insname, \(**newname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference in the instance
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fInewname\fP
|
||||||
|
Name to be given to the reference in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_REF\fP adds a reference in the current layout cell.
|
||||||
|
All the reference's attributes are copied from the first found reference
|
||||||
|
called \fIrefname\fP in the instance \fIinsname\fP.
|
||||||
|
The designer should avoid to give to several refences the same name if
|
||||||
|
he plans to use this function.
|
||||||
|
The new reference is given the name \fInewname\fP.
|
||||||
|
The main purpose of this function is to copy a reference in the upper
|
||||||
|
hierarchical level, so it can be used as \fIvirtual\fP connector, for
|
||||||
|
the data-path router.
|
||||||
|
See \fBdpr\fP(1) for details.
|
||||||
|
layout.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsname\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_REF impossible : reference \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The reference \fIrefname\fP does not exist in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
COPY_UP_REF("mux0_s", "r1", "out_s");
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR dpr (1),
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR PLACE_CON_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_VIA_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
.\" $Id: GENLIB_COPY_UP_SEG.3,v 1.1 2000/09/28 15:19:50 fred Exp $
|
||||||
|
.\" @(#)COPY_UP_SEG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
COPY_UP_SEG
|
||||||
|
.XE \}
|
||||||
|
.TH COPY_UP_SEG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
COPY_UP_SEG \- copy a physical segment from an instance in the current
|
||||||
|
figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void COPY_UP_SEG(oldname, insname, newname)
|
||||||
|
char \(**oldname, \(**insname, \(**newname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIoldname\fP
|
||||||
|
Name of the segment in the instance
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the segment is to be searched for
|
||||||
|
.TP
|
||||||
|
\fInewname\fP
|
||||||
|
Name to be given to the segment in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBCOPY_UP_SEG\fP adds a segment in the current layout cell.
|
||||||
|
All the segment's attributes are copied from the first found segment called
|
||||||
|
\fIoldname\fP in the instance \fIinsname\fP.
|
||||||
|
The new segment is given the name \fInewname\fP. The main purpose of this
|
||||||
|
function is to rename a segment, so it can be used later, when extracting a
|
||||||
|
layout.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_SEG impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a segment inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsname\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"COPY_UP_SEG impossible : segment \fIsegname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The segment \fIsegname\fP does not exist in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a segment \(**/
|
||||||
|
COPY_UP_SEG("mux0_s", "r1", "out_s");
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3),
|
||||||
|
.BR WIRE1 (3),
|
||||||
|
.BR WIRE2 (3),
|
||||||
|
.BR WIRE3 (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
.\" $Id: GENLIB_DEF_AB.3,v 1.1 2000/09/28 15:19:50 fred Exp $
|
||||||
|
.\" @(#)DEF_AB.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
DEF_AB
|
||||||
|
.XE \}
|
||||||
|
.TH DEF_AB 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
DEF_AB \- define a new \fIabutment box\fP to the current layout cell
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void DEF_AB(dx1, dy1, dx2, dy2);
|
||||||
|
long dx1, dy1, dx2, dy2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIdx1, dy1\fP
|
||||||
|
Values to be added to the lower left corner of the previous \fIabutment box\fP
|
||||||
|
.TP
|
||||||
|
\fIdx2, dy2\fP
|
||||||
|
Values to be added to the upper right corner of the previous \fIabutment box\fP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBDEF_AB\fP give a new \fIabutment box\fP to the current physical cell.
|
||||||
|
The coordinates of
|
||||||
|
the \fIabutment box\fP are the coordinates of the envelop of the \fIabutment boxes\fP of
|
||||||
|
each instance plus the delta values given as argument. The \fI(dx1, dy1)\fP
|
||||||
|
values are added to the (x1, y1) coordinates of the bottom left corner of the
|
||||||
|
\fI"standard abutment box"\fP (the envelop), and the \fI(dx2, dy2)\fP
|
||||||
|
are added to the top right ones.
|
||||||
|
You have to call this function before saving, otherwise the figure will not
|
||||||
|
have an \fIabutment box\fP. Since it's regarding the \fIabutment box\fP
|
||||||
|
of its model that an instance is placed, any futher use of this figure
|
||||||
|
will be incorrect if \fBDEF_AB\fP isn't called, or properly defined.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"DEF_AB impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to give it a size.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("model","i1", NOSYM,0L,0L);
|
||||||
|
PLACE("model","i2", NOSYM,120L,40L);
|
||||||
|
DEF_PHINS("i1");
|
||||||
|
PLACE_TOP("model2", "i3", NOSYM);
|
||||||
|
/\(** define the new abutment box as the standard envelop \(**/
|
||||||
|
DEF_AB(0, 0, 0, 0);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR SAVE_PHFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
.\" $Id: GENLIB_DEF_LOFIG.3,v 1.1 2000/09/28 15:19:50 fred Exp $
|
||||||
|
.\" @(#)DEF_LOFIG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
DEF_LOFIG
|
||||||
|
.XE \}
|
||||||
|
.TH DEF_LOFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
DEF_LOFIG \- open a netlist model as current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void DEF_LOFIG(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which all futher calls to genlib logical functions will work on
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBDEF_LOFIG\fP defines the current working structural figure by it's name,
|
||||||
|
the \fIcellname\fP argument. It can be use anywhere in the \fBgenlib\fP
|
||||||
|
program, but must appear at least once at the top of it, since it also
|
||||||
|
initalize the user's preferences through environment variables.
|
||||||
|
.br
|
||||||
|
If the figure called cellname doesn't exists in memory, it is created.
|
||||||
|
If it already exists in memory, it makes it the current working figure.
|
||||||
|
\fBDEF_LOFIG\fP doesn't look on disk for the figure \fIcellname\fP,
|
||||||
|
so be careful not to overwrite an existing file while saving later on.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("cell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", "sig3", "vdd", "vss", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR SAVE_LOFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
.\" $Id: GENLIB_DEF_PHFIG.3,v 1.1 2000/09/28 15:19:50 fred Exp $
|
||||||
|
.\" @(#)DEF_PHFIG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
DEF_PHFIG
|
||||||
|
.XE \}
|
||||||
|
.TH DEF_PHFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
DEF_PHFIG \- open a layout model as current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void DEF_PHFIG(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which all futher calls to genlib physical functions will work on
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBDEF_PHFIG\fP defines the current physical working figure by it's name,
|
||||||
|
the \fIcellname\fP argument. It can be use anywhere in the \fBgenlib\fP
|
||||||
|
program, but must appear at least once at the top of it, since it also
|
||||||
|
initalize the user's preferences through environment variables.
|
||||||
|
.br
|
||||||
|
If the figure called cellname doesn't exists in memory, it is created.
|
||||||
|
If it already exists in memory, it makes it the current working figure.
|
||||||
|
\fBDEF_PHFIG\fP doesn't look on disk for the figure \fIcellname\fP,
|
||||||
|
so be careful not to overwrite an existing file while saving later on.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("mycell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("mymodel","firstinstance", NOSYM,0L,0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHSC (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
.\" $Id: GENLIB_DEF_PHINS.3,v 1.1 2000/09/28 15:19:50 fred Exp $
|
||||||
|
.\" @(#)DEF_PHINS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
DEF_PHINS
|
||||||
|
.XE \}
|
||||||
|
.TH DEF_PHINS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
DEF_PHINS \- define a new reference instance
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void DEF_PHINS(instancename);
|
||||||
|
char \(**instancename;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinstancename\fP
|
||||||
|
Defines the instance called \fIinstancename\fP as the new "reference instance"
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBDEF_PHINS\fP define the new "reference instance", used as starting point
|
||||||
|
in the relative placement functions of genlib. It's regarding the \fBabutment
|
||||||
|
box\fP of the instance \fIinstancename\fP that the next instance is going to be
|
||||||
|
placed, if using the appropriate functions. Notice that the more recently
|
||||||
|
placed instance becomes automaticaly the "reference instance", if
|
||||||
|
\fBDEF_PHINS\fP isn't called.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"DEF_PHINS impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to refer to an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"instance instancename doesn't exist in current figure"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinstancename\fP hasn't currently been placed in the figure,
|
||||||
|
so it's impossible do to any placement from it.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("model","i1", NOSYM,0L,0L);
|
||||||
|
PLACE("model","i2", NOSYM,120L,40L);
|
||||||
|
DEF_PHINS("i1");
|
||||||
|
PLACE_TOP("model2", "i3", NOSYM);
|
||||||
|
DEF_AB(0, 0, 0, 0);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR SC_PLACE (3),
|
||||||
|
.BR SC_TOP (3),
|
||||||
|
.BR SC_RIGHT (3),
|
||||||
|
.BR SC_LEFT (3),
|
||||||
|
.BR SC_BOTTOM (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
.\" $Id: GENLIB_DEF_PHSC.3,v 1.1 2000/09/28 15:19:51 fred Exp $
|
||||||
|
.\" @(#)DEF_PHSC.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
DEF_PHSC
|
||||||
|
.XE \}
|
||||||
|
.TH DEF_PHSC 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
DEF_PHSC \- load a netlist and open a layout model as current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void DEF_PHSC(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the netlist figure to be looked for in memory or on disk, for
|
||||||
|
futher physical placement.
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBDEF_PHSC\fP defines the current working figure by it's name,
|
||||||
|
the \fIcellname\fP argument, for layout and netlist operations.
|
||||||
|
It can be use anywhere in the \fBgenlib\fP
|
||||||
|
program, but must appear at least once at the top of it, since it also
|
||||||
|
initalize the user's preferences through environment variables.
|
||||||
|
.br
|
||||||
|
\fBDEF_PHSC\fP looks for the netlist figure \fIcellname\fP in memory, and if
|
||||||
|
not found, on disk. If it fails, an error occurs and the process terminates.
|
||||||
|
.br
|
||||||
|
The main issue of this function is to allow the netlist and physical
|
||||||
|
descriptions of a circuit in two separate files,
|
||||||
|
for standard cell approach. So there is
|
||||||
|
no need to recreate the netlist view each time the placement changes.
|
||||||
|
.br
|
||||||
|
If the physical figure called \fIcellname\fP doesn't exists in memory,
|
||||||
|
it is created.
|
||||||
|
If it already exists in memory, it makes it the current working figure.
|
||||||
|
\fBDEF_PHSC\fP doesn't look on disk for the figure \fIcellname\fP,
|
||||||
|
so be careful not to overwrite an existing file while saving later on.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("mycell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
SC_PLACE("instance", NOSYM,0L,0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR SAVE_PHSC (3),
|
||||||
|
.BR SC_PLACE (3),
|
||||||
|
.BR SC_TOP (3),
|
||||||
|
.BR SC_BOTTOM (3),
|
||||||
|
.BR SC_LEFT (3),
|
||||||
|
.BR SC_RIGHT (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
.\" $Id: GENLIB_ELM.3,v 1.1 2000/09/28 15:19:51 fred Exp $
|
||||||
|
.\" @(#)ELM.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
ELM
|
||||||
|
.XE \}
|
||||||
|
.TH ELM 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
ELM \- Creates a single element bus name for netlist
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
char \(**ELM(busname, index);
|
||||||
|
char \(**busname;
|
||||||
|
long index;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIbusname\fP
|
||||||
|
Common signal name for a bus
|
||||||
|
.TP 20
|
||||||
|
\fIindex\fP
|
||||||
|
Index of the demanded signal belonging to the bus
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fIELM\fP Creates a single element bus names valid for the genlib netlist
|
||||||
|
functions that manipulate the signal, and/or connector, concept.
|
||||||
|
They are:
|
||||||
|
.RS
|
||||||
|
\fBLOINS\fP(3)
|
||||||
|
.br
|
||||||
|
\fBLOCON\fP(3)
|
||||||
|
.RE
|
||||||
|
The \fIindex\fP argument gives the index of the name to be created.
|
||||||
|
.br
|
||||||
|
This function has a constant equivalent, it means that if the \fIindex\fP
|
||||||
|
value is known at compilation time, one should better use,
|
||||||
|
for readability purposes, the "[n]" construct.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
int b = 0;
|
||||||
|
int e = 12;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON(BUS("i", b, e), INPUT, BUS("sig", b, e);
|
||||||
|
LOCON("o[2:0]", OUTPUT, "sigout[4:6]");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", ELM("sig", e/2), "sigout[6]", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR BUS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
.\" $Id: GENLIB_FLATTEN_ALL_LOINS.3,v 1.1 2000/09/28 15:19:51 fred Exp $
|
||||||
|
.\" @(#)FLATTEN_ALL_LOINS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
FLATTEN_ALL_LOINS
|
||||||
|
.XE \}
|
||||||
|
.TH FLATTEN_ALL_LOINS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
FLATTEN_ALL_LOINS \- flatten all instances in the current netlist figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void FLATTEN_ALL_LOINS(concat)
|
||||||
|
char concat;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETER
|
||||||
|
.TP 20
|
||||||
|
\fIconcat\fP
|
||||||
|
Indicate whether or not to concatenate instance name to instance' objects name
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBFLATTEN_ALL_LOINS\fP inserts the contents of all the instances of the
|
||||||
|
current figure in the current figure.
|
||||||
|
All these instances are destroyed during the process, and therefore cannot be
|
||||||
|
refered to later in the netlist description.
|
||||||
|
.br
|
||||||
|
The \fIconcat\fP parameter may take two values:
|
||||||
|
.TP
|
||||||
|
\fBYES\fP
|
||||||
|
to concatenate object name with instance names.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
to copy object names.
|
||||||
|
.LP
|
||||||
|
In most case, the \fIconcat\fP value must be \fBYES\fP, in order to warranty
|
||||||
|
the unicity of names in the figure.
|
||||||
|
It may otherwise fail, because the function would try to add in the current
|
||||||
|
figure some object with an already existing name.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** flatten all figure instance \(**/
|
||||||
|
FLATTEN_ALL_LOINS(YES);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR LOINS (3)
|
||||||
|
.BR FLATTEN_LOFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
.\" $Id: GENLIB_FLATTEN_ALL_PHINS.3,v 1.1 2000/09/28 15:19:51 fred Exp $
|
||||||
|
.\" @(#)FLATTEN_ALL_PHINS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
FLATTEN_ALL_PHINS
|
||||||
|
.XE \}
|
||||||
|
.TH FLATTEN_ALL_PHINS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
FLATTEN_ALL_PHINS \- flatten all instances in the current layout figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void FLATTEN_ALL_PHINS(concat, catal)
|
||||||
|
char concat, catal;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETER
|
||||||
|
.TP 20
|
||||||
|
\fIconcat\fP
|
||||||
|
Indicate whether or not to concatenate instance name to instance' objects name
|
||||||
|
.TP 20
|
||||||
|
\fIconcat\fP
|
||||||
|
Indicate whether or not to look in the catalog file before flattening a cell
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBFLATTEN_ALL_PHINS\fP inserts the contents of all the instances of the
|
||||||
|
current figure in the current figure.
|
||||||
|
All these instances are destroyed during the process, and therefore cannot be
|
||||||
|
refered to later in the layout description.
|
||||||
|
.br
|
||||||
|
The \fIconcat\fP parameter may take two values:
|
||||||
|
.TP
|
||||||
|
\fBYES\fP
|
||||||
|
to concatenate object name with instance names.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
to copy object names.
|
||||||
|
.LP
|
||||||
|
In most case, the \fIconcat\fP value must be \fBYES\fP, in order to warranty
|
||||||
|
the unicity of names in the figure.
|
||||||
|
It may otherwise fail, because the function would try to add in the current
|
||||||
|
figure some object with an already existing name.
|
||||||
|
.br
|
||||||
|
The \fIcatal\fP parameter may also take two values:
|
||||||
|
.TP
|
||||||
|
\fBYES\fP
|
||||||
|
to check the catalog file to see if the model of an instance is in it.
|
||||||
|
If the model belong to the catalog, then it is \fInot\fR flattened.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
in this case, no checks are done, and every instance is flattened.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("mycell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PHINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** flatten all figure instance \(**/
|
||||||
|
FLATTEN_ALL_PHINS(YES, YES);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_ON (3),
|
||||||
|
.BR FLATTEN_PHFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
.\" $Id: GENLIB_FLATTEN_LOFIG.3,v 1.1 2000/09/28 15:19:51 fred Exp $
|
||||||
|
.\" @(#)FLATTEN_LOFIG.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
FLATTEN_LOFIG
|
||||||
|
.XE \}
|
||||||
|
.TH FLATTEN_LOFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
FLATTEN_LOFIG \- flatten an instance in the current netlist figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void FLATTEN_LOFIG(insname,concat)
|
||||||
|
char \(**insname;
|
||||||
|
char concat;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance to be flattened
|
||||||
|
.TP
|
||||||
|
\fIconcat\fP
|
||||||
|
Indicate whether or not to concatenate instance name to instance' objects name
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBFLATTEN_LOFIG\fP inserts the contents of an instance, but its connectors,
|
||||||
|
in the current figure, and then destroys the instance.
|
||||||
|
.br
|
||||||
|
The \fIconcat\fP parameter may take two values:
|
||||||
|
.TP
|
||||||
|
\fBYES\fP
|
||||||
|
to concatenate object name with instance names.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
to copy object names.
|
||||||
|
.LP
|
||||||
|
In most case, the \fIconcat\fP value must be \fBYES\fP, in order to warranty
|
||||||
|
the unicity of names in the figure.
|
||||||
|
It may otherwise fail, because the function would try to add in the current
|
||||||
|
figure some object with an already existing name.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** flatten an instance \(**/
|
||||||
|
FLATTEN_LOFIG("instance", YES);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR UNFLATTEN_LOFIG (3).
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
.\" $Id: GENLIB_FLATTEN_PHFIG.3,v 1.1 2000/09/28 15:19:52 fred Exp $
|
||||||
|
.\" @(#)FLATTEN_PHFIG.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
FLATTEN_PHFIG
|
||||||
|
.XE \}
|
||||||
|
.TH FLATTEN_PHFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
FLATTEN_PHFIG \- flatten an instance in the current layout figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void FLATTEN_PHFIG(insname,concat)
|
||||||
|
char \(**insname;
|
||||||
|
char concat;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance to be flattened
|
||||||
|
.TP
|
||||||
|
\fIconcat\fP
|
||||||
|
Indicate whether or not to concatenate instance name to instance' objects name
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBFLATTEN_PHFIG\fP inserts the contents of an instance, but its connectors,
|
||||||
|
in the current figure, and then destroys the instance.
|
||||||
|
.br
|
||||||
|
The \fIconcat\fP parameter may take two values:
|
||||||
|
.TP 20
|
||||||
|
\fBYES\fP
|
||||||
|
to concatenate object name with instance names.
|
||||||
|
.TP
|
||||||
|
\fBNO\fP
|
||||||
|
to copy object names.
|
||||||
|
.LP
|
||||||
|
In most case, the \fIconcat\fP value must be \fBYES\fP, in order to warranty
|
||||||
|
the unicity of names in the figure.
|
||||||
|
It may otherwise fail, because the function would try to add in the current
|
||||||
|
figure some object with an already existing name.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("mycell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("model","instance", SYM_X, 0, 0);
|
||||||
|
/\(** flatten an instance \(**/
|
||||||
|
FLATTEN_PHFIG("instance", YES);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
.\" $Id: GENLIB_GET_CON_X.3,v 1.1 2000/09/28 15:19:52 fred Exp $
|
||||||
|
.\" @(#)GET_CON_X.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_CON_X
|
||||||
|
.XE \}
|
||||||
|
.TH GET_CON_X 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_CON_X \- retrieve the x coordinate of an instance connector
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_CON_X(insname, conname, index)
|
||||||
|
char \(**insname, \(**conname;
|
||||||
|
long index;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the connector is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIconname\fP
|
||||||
|
Name of the connector
|
||||||
|
.TP
|
||||||
|
\fIindex\fP
|
||||||
|
Connector index
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBGET_CON_X\fP looks for
|
||||||
|
the connector, \fIconname\fP, in the instance called \fIinsname\fP.
|
||||||
|
Then it computes its absolute coordinates in the figure, and gives back the
|
||||||
|
x coordinate.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the x position of the connector
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_CON_X impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphcon : connectors \fIconname\fP, index \fIindex\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No connector called \fIconname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
long x, y;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Get a connector \(**/
|
||||||
|
x = GET_CON_X("r1", "a", 1);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PHVIA(x, y, CONT_VIA);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR GET_CON_Y (3),
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_Y (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
.\" $Id: GENLIB_GET_CON_Y.3,v 1.1 2000/09/28 15:19:52 fred Exp $
|
||||||
|
.\" @(#)GET_CON_Y.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_CON_Y
|
||||||
|
.XE \}
|
||||||
|
.TH GET_CON_Y 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_CON_Y \- retrieve the x coordinate of an instance connector
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_CON_Y(insname, conname, index)
|
||||||
|
char \(**insname, \(**conname;
|
||||||
|
long index;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the connector is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIconname\fP
|
||||||
|
Name of the connector
|
||||||
|
.TP
|
||||||
|
\fIindex\fP
|
||||||
|
Connector index
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBGET_CON_Y\fP looks for
|
||||||
|
the connector, \fIconname\fP, in the instance called \fIinsname\fP.
|
||||||
|
Then it computes its absolute coordinates in the figure, and gives back the
|
||||||
|
y coordinate.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the y position of the connector
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_CON_Y impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphcon : connectors \fIconname\fP, index \fIindex\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No connector called \fIconname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
long x, y;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Get a connector \(**/
|
||||||
|
y = GET_CON_Y("r1", "a", 1);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PHVIA(x, y, CONT_VIA);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR GET_CON_X (3),
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_Y (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
.\" $Id: GENLIB_GET_INS_X.3,v 1.1 2000/09/28 15:19:52 fred Exp $
|
||||||
|
.\" @(#)GET_INS_X.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_INS_X
|
||||||
|
.XE \}
|
||||||
|
.TH GET_INS_X 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_INS_X \- retrieve the x coordinate of an instance
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_INS_X(insname)
|
||||||
|
char \(**insname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETER
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance which x coordinate is to be given back
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBGET_INS_X\fP looks for
|
||||||
|
the instance called \fIinsname\fP in the current figure.
|
||||||
|
Then it computes its absolute coordinates in the figure, and gives back its
|
||||||
|
x coordinate.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the x position of the instance
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_INS_X impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
long x, y;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
PLACE_TOP("gaci0_b", "r2", SYM_X);
|
||||||
|
PLACE_RIGHT("gaci0_b", "r3", SYM_Y);
|
||||||
|
/\(** Get a connector \(**/
|
||||||
|
x = GET_INS_X("r3");
|
||||||
|
y = GET_INS_Y("r3");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHINS (3),
|
||||||
|
.BR GET_INS_Y (3),
|
||||||
|
.BR GET_CON_X (3),
|
||||||
|
.BR GET_CON_Y (3).
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_Y (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
.\" $Id: GENLIB_GET_INS_Y.3,v 1.1 2000/09/28 15:19:53 fred Exp $
|
||||||
|
.\" @(#)GET_INS_Y.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_INS_Y
|
||||||
|
.XE \}
|
||||||
|
.TH GET_INS_Y 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_INS_Y \- retrieve the y coordinate of an instance
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_INS_Y(insname)
|
||||||
|
char \(**insname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETER
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance which y coordinate is to be given back
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBGET_INS_Y\fP looks for
|
||||||
|
the instance called \fIinsname\fP in the current figure.
|
||||||
|
Then it computes its absolute coordinates in the figure, and gives back its
|
||||||
|
y coordinate.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the y position of the instance
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_INS_Y impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
long x, y;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
PLACE_TOP("gaci0_b", "r2", SYM_Y);
|
||||||
|
PLACE_RIGHT("gaci0_b", "r3", SYM_Y);
|
||||||
|
/\(** Get a connector \(**/
|
||||||
|
x = GET_INS_X("r3");
|
||||||
|
y = GET_INS_Y("r3");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHINS (3),
|
||||||
|
.BR GET_INS_X (3),
|
||||||
|
.BR GET_CON_X (3),
|
||||||
|
.BR GET_CON_Y (3).
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_Y (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
.\" $Id: GENLIB_GET_REF_X.3,v 1.1 2000/09/28 15:19:53 fred Exp $
|
||||||
|
.\" @(#)GET_REF_X.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_REF_X
|
||||||
|
.XE \}
|
||||||
|
.TH GET_REF_X 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_REF_X \- retrieve the x coordinate of an instance reference
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_REF_X(insname, refname)
|
||||||
|
char \(**insname, \(**refname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference
|
||||||
|
SH DESCRIPTION
|
||||||
|
\fBGET_REF_X\fP looks for
|
||||||
|
the reference, \fIrefname\fP, in the instance called \fIinsname\fP.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the x position of the reference
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_REF_X impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_REF_X impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_REF_X impossible : no abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure does not have an \fIabutment box\fI. Use \fIDEF_AB\fP(3)
|
||||||
|
before this function.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal GET_REF_X : orientation is XX"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIface\fP parameter does not have a legal value, but \fIXX\fP.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphref : references called \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference called \fIrefname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
GET_REF_X("r1", "a_0", ALU2, 2, NORTH);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR COPY_UP_REF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_X (3),
|
||||||
|
.BR GET_REF_X (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
.\" $Id: GENLIB_GET_REF_Y.3,v 1.1 2000/09/28 15:19:53 fred Exp $
|
||||||
|
.\" @(#)GET_REF_Y.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
GET_REF_Y
|
||||||
|
.XE \}
|
||||||
|
.TH GET_REF_Y 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
GET_REF_Y \- retrieve the y coordinate of an instance reference
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
long GET_REF_Y(insname, refname)
|
||||||
|
char \(**insname, \(**refname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBGET_REF_Y\fP looks for
|
||||||
|
the reference, \fIrefname\fP, in the instance called \fIinsname\fP.
|
||||||
|
Then it computes its absolute coordinates in the figure, and gives back the
|
||||||
|
y coordinate.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
The function returns a long int beeing the y position of the reference
|
||||||
|
in the current figure
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"GET_REF_Y impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphref : references called \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference called \fIrefname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
long x, y;
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Get a reference \(**/
|
||||||
|
y = GET_REF_Y("r1", "a_0");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PHVIA(x, y, CONT_VIA);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR COPY_UP_REF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR GET_CON_X (3),
|
||||||
|
.BR GET_CON_Y (3),
|
||||||
|
.BR GET_REF_X (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
.\" $Id: GENLIB_HEIGHT.3,v 1.1 2000/09/28 15:19:53 fred Exp $
|
||||||
|
.\" @(#)HEIGHT.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
HEIGHT
|
||||||
|
.XE \}
|
||||||
|
.TH HEIGHT 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
HEIGHT \- compute the height of a model
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
long HEIGHT(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which height is needed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBHEIGHT\fP looks for the figure called \fIcellname\fP on memory, and then on
|
||||||
|
disk. When found, the figure \fIabutment box\fP height is calculated, and
|
||||||
|
returned.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
\fIHEIGHT\fP returns a long int beeing the cell \fIabutment box\fP height.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
long cellHeight;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
cellHeight = HEIGHT("mycell");
|
||||||
|
DEF_PHFIG("grumf_z");
|
||||||
|
PLACE("na2_y","ins1", NOSYM, 3 * cellHeight, 0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR WIDTH (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
.\" $Id: GENLIB_LOAD_LOFIG.3,v 1.1 2000/09/28 15:19:53 fred Exp $
|
||||||
|
.\" @(#)LOAD_LOFIG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOAD_LOFIG
|
||||||
|
.XE \}
|
||||||
|
.TH LOAD_LOFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOAD_LOFIG \- loads a netlist form disk and opens it as current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOAD_LOFIG(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which all futher calls to genlib logical functions will
|
||||||
|
work on
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOAD_LOFIG\fP loads a netlist from disk and defines it as current working
|
||||||
|
structural figure.
|
||||||
|
This overrides the working figure initialized by \fBDEF_LOFIG\fP(3), if any.
|
||||||
|
So the next call to \fBSAVE_LOFIG\fP will save the cell called \fIcellname\fP.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Loads the figure to work on \(**/
|
||||||
|
LOAD_LOFIG("cell");
|
||||||
|
/\(** Add an instance in cell \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", "sig3", "vdd", "vss", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_LOFIG (3).
|
||||||
|
.BR SAVE_LOFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
.\" $Id: GENLIB_LOAD_PHFIG.3,v 1.1 2000/09/28 15:19:54 fred Exp $
|
||||||
|
.\" @(#)LOAD_PHFIG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOAD_PHFIG
|
||||||
|
.XE \}
|
||||||
|
.TH LOAD_PHFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
\fBPHAD_PHFIG\fP \- loads a layout form disk and opens it as current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOAD_PHFIG(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which all futher calls to genlib layout functions will
|
||||||
|
work on
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPHAD_PHFIG\fP loads a physical view from disk and defines it as current
|
||||||
|
working layout figure.
|
||||||
|
This overrides the working figure initialized by \fBDEF_PHFIG\fP(3), if any.
|
||||||
|
So the next call to \fBSAVE_PHFIG\fP will save the cell called \fIcellname\fP.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Loads the figure to work on \(**/
|
||||||
|
LOAD_PHFIG("cell");
|
||||||
|
/\(** Add an instance in cell \(**/
|
||||||
|
PLACE("model","instance", NOSYM, 200, 600);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3).
|
||||||
|
.BR SAVE_PHFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
.\" $Id: GENLIB_LOCON.3,v 1.1 2000/09/28 15:19:54 fred Exp $
|
||||||
|
.\" @(#)LOCON.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOCON
|
||||||
|
.XE \}
|
||||||
|
.TH LOCON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOCON \- adds a logical connector to the current netlist figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOCON(connector, direction, signal);
|
||||||
|
char \(**connector, \(**signal;
|
||||||
|
char direction;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIconnector\fP
|
||||||
|
Name of the connector to be created in the current figure
|
||||||
|
.TP
|
||||||
|
\fIdirection\fP
|
||||||
|
Indicates the connector behaviour regarding signals propagation
|
||||||
|
.TP
|
||||||
|
\fIsignal\fP
|
||||||
|
Name of the signal on which the connector is linked
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOCON\fP add a logical connector to the interface of the actual
|
||||||
|
working figure. This connector is logicaly linked to the signal \fIsignal\fP.
|
||||||
|
The \fIdirection\fP attribut may take the following values:
|
||||||
|
.TP
|
||||||
|
\fBIN\fP
|
||||||
|
as input.
|
||||||
|
.TP
|
||||||
|
\fBOUT\fP
|
||||||
|
as output.
|
||||||
|
.TP
|
||||||
|
\fBINOUT\fP
|
||||||
|
as input/output, like supplies or clock for example.
|
||||||
|
.TP
|
||||||
|
\fBUNKNOWN\fP
|
||||||
|
if one doesn't know what it is.
|
||||||
|
.TP
|
||||||
|
\fBTRISTATE\fP
|
||||||
|
as high impedance input.
|
||||||
|
.TP
|
||||||
|
\fBTRANSV\fP
|
||||||
|
as transciever. That means \fBTRISTATE\fP input plus output.
|
||||||
|
.SH ERROR
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOCON impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
|
||||||
|
possible to add anything. you must call \fBDEF_LOFIG\fP before any other
|
||||||
|
netlist call.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOCON : Bad signal or connector bus name"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A signal or connector, described under a bus form, has an illegal syntax.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOCON : All LOCON should be defined befor any LOINS"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A connector is added after instances. This is a methodological error.
|
||||||
|
Only move your \fBLOCON\fP before the first \fBLOINS\fP in your code.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOCON : different number of signals and connectors"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A bussed form of signal and connector has been used, but the width of
|
||||||
|
the busses are not equal. This is an obvious error, check it.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"Illegal addlocon. Connector connector already exist in figure figname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A connector name must be unique in a given figure at a given hierachy level.
|
||||||
|
.RE
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
Due to the \fBvti\fP file format, the direction of connectors is lost if
|
||||||
|
one uses it as starting point of a netlist desciption. All the connectors
|
||||||
|
have then the \fBUNKNOWN\fP direction.
|
||||||
|
.br
|
||||||
|
Alliance and edif file format know only about \fBIN\fP, \fBOUT\fP, and
|
||||||
|
\fBUNKNOWN\fP.
|
||||||
|
Only vhdl format fully supports the whole thing.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON("i", INPUT, "sig1");
|
||||||
|
LOCON("o", OUTPUT, "sig2");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR BUS (3),
|
||||||
|
.BR ELM (3),
|
||||||
|
.BR LOSIG (3),
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,152 @@
|
||||||
|
.\" $Id: GENLIB_LOINS.3,v 1.1 2000/09/28 15:19:54 fred Exp $
|
||||||
|
.\" @(#)LOINS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOINS
|
||||||
|
.XE \}
|
||||||
|
.TH LOINS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOINS \- add a logical instance to the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOINS(model, instance, sig1, sig2, ..., sign, EOL);
|
||||||
|
char \(**model, \(**instance;
|
||||||
|
char \(**sig1, \(**sig2, ..., \(**sign;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodel\fP
|
||||||
|
Name of the model to be logically instanciated
|
||||||
|
.TP
|
||||||
|
\fIinstance\fP
|
||||||
|
Name to be given to the new instance
|
||||||
|
.TP
|
||||||
|
\fIsig1, sig2, ..., sign\fP
|
||||||
|
List of signals to be linked to the implicit connector list of the instance
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOINS\fP add a logical instance in the actual working figure.
|
||||||
|
\fBLOINS\fP uses environment variables to
|
||||||
|
choose the file format and the path to the file.
|
||||||
|
.br
|
||||||
|
\fBMBK_IN_LO\fP set up the input file format, the valid ones beeing :
|
||||||
|
.RS
|
||||||
|
.br
|
||||||
|
\fBhns
|
||||||
|
.br
|
||||||
|
fne
|
||||||
|
.br
|
||||||
|
al
|
||||||
|
.br
|
||||||
|
alx\fP
|
||||||
|
.RE
|
||||||
|
\fBMBK_WORK_LIB\fP set up the output file path. Any valid unix path is
|
||||||
|
ok.
|
||||||
|
\fBLOINS\fP look in memory and then, if not found, on disk for the
|
||||||
|
figure \fImodelname\fP. This is due to the need to ensure consistency
|
||||||
|
between the model and its ascociated instances.
|
||||||
|
.br
|
||||||
|
The instance is added with the name \fIinstance\fP, and each of the
|
||||||
|
signals are connected to an instance connector. The connectors are
|
||||||
|
implicitly matched from the order of the signal on the list.
|
||||||
|
This order is the one given
|
||||||
|
in the netlist file, \fBhns\fP or \fBal\fP, or in the \fIsclib\fP
|
||||||
|
documentation, for standard cell circuits.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOINS impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
|
||||||
|
possible to add anything. you must call \fBDEF_LOFIG\fP before any other
|
||||||
|
netlist call.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOINS : Bad signal bus name"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
A signal, described under a bus form, has an illegal syntax.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"Illegal addloins. Instance insname already exist in figure figname"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
An instance name must be unique in a given figure at a given hierachy level.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"Illegal addloins. Instance model is the figure figname itself"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
A figure cannot be included in itself. Be careful, the check is only
|
||||||
|
made at current hierarchy level.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
.br
|
||||||
|
"Illegal addloins. Connector number discrepancy between
|
||||||
|
figure modelname and instance insname in figure figname"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
The number of connector in the model is not equal to the number of signals
|
||||||
|
describing the connectivity during the \fBLOINS\fP call.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON("i", INPUT, "sig1");
|
||||||
|
LOCON("o", OUTPUT, "sig2");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_LOFIG (3),
|
||||||
|
.BR MBK_IN_LO (1),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,159 @@
|
||||||
|
.\" $Id: GENLIB_LOINSE.3,v 1.1 2000/09/28 15:19:54 fred Exp $
|
||||||
|
.\" @(#)LOINSE.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOINSE
|
||||||
|
.XE \}
|
||||||
|
.TH LOINSE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOINSE \- add a logical instance to the current figure, with explicit connections
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOINSE(model, instance, couple1, couple2, ..., couplen, EOL);
|
||||||
|
char \(**model, \(**instance;
|
||||||
|
char \(**couple1, \(**couple2, ..., \(**couplen;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodel\fP
|
||||||
|
Name of the model to be logically instanciated
|
||||||
|
.TP
|
||||||
|
\fIinstance\fP
|
||||||
|
Name to be given to the new instance
|
||||||
|
.TP
|
||||||
|
\fIcouple1, couple2, ..., couplen\fP
|
||||||
|
Explicit list of connections between connectors and signals.
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOINSE\fP add a logical instance in the actual working figure.
|
||||||
|
\fBLOINSE\fP uses environment variables to
|
||||||
|
choose the file format and the path to the file.
|
||||||
|
.br
|
||||||
|
\fBMBK_IN_LO\fP set up the input file format, the valid ones beeing :
|
||||||
|
.RS
|
||||||
|
.br
|
||||||
|
\fBhns
|
||||||
|
.br
|
||||||
|
fne
|
||||||
|
.br
|
||||||
|
al
|
||||||
|
.br
|
||||||
|
alx\fP
|
||||||
|
.RE
|
||||||
|
\fBMBK_WORK_LIB\fP set up the output file path. Any valid unix path is
|
||||||
|
ok.
|
||||||
|
\fBLOINSE\fP look in memory and then, if not found, on disk for the
|
||||||
|
figure \fImodelname\fP. This is due to the need to ensure consistency
|
||||||
|
between the model and its ascociated instances.
|
||||||
|
.br
|
||||||
|
The instance is added with the name \fIinstance\fP, and each of the
|
||||||
|
signals are connected to an instance connector.
|
||||||
|
The connector signal link is explicit, and described in the \fBcouple\fRs
|
||||||
|
arguments.
|
||||||
|
The \fBcouple\fRs arguments are supposed to have the form:
|
||||||
|
.nf
|
||||||
|
\fBconector => signal\fP
|
||||||
|
.br
|
||||||
|
or
|
||||||
|
\fBconector[a:b] => signal[n:m]\fP
|
||||||
|
where \fIa - b\fP equals, in absolute value, \fIn - m\fR.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOINSE impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
|
||||||
|
possible to add anything. you must call \fBDEF_LOFIG\fP before any other
|
||||||
|
netlist call.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOINSE : Bad signal bus name"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
A signal, described under a bus form, has an illegal syntax.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"Illegal addloins. Instance insname already exist in figure figname"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
An instance name must be unique in a given figure at a given hierachy level.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"Illegal addloins. Instance model is the figure figname itself"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
A figure cannot be included in itself. Be careful, the check is only
|
||||||
|
made at current hierarchy level.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
.br
|
||||||
|
"Illegal addloins. Connector number discrepancy between
|
||||||
|
figure modelname and instance insname in figure figname"
|
||||||
|
.ft R
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
The number of connector in the model is not equal to the number of signals
|
||||||
|
describing the connectivity during the \fBLOINSE\fP call.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON("i", INPUT, "sig1");
|
||||||
|
LOCON("o", OUTPUT, "sig2");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINSE("model","instance", "con1 => sig1", "con2 => sig2", 0L);
|
||||||
|
LOINSE("stuff","shirt", "i[31:0] => out[32:63]", "j[2] => sig2", 0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_LOFIG (3),
|
||||||
|
.BR LOINS (3),
|
||||||
|
.BR MBK_IN_LO (1),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
.\" $Id: GENLIB_LOSIG.3,v 1.1 2000/09/28 15:19:55 fred Exp $
|
||||||
|
.\" @(#)LOSIG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOSIG
|
||||||
|
.XE \}
|
||||||
|
.TH LOSIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOSIG \- declare an internal logical signal, or a vector of internal
|
||||||
|
logical signals
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOSIG(name)
|
||||||
|
char \(**name;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIname\fP
|
||||||
|
Name of a signal to be declared
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOSIG\fP creates the internal signal, or the set of internal signals
|
||||||
|
coresponding to a vector description, represented by \fIname\fP.
|
||||||
|
See \fBBUS(3)\fP and \fBELM(3)\fP for more details on vectors.
|
||||||
|
.br
|
||||||
|
The need for declaring signal is mostly felt when one wants to create a
|
||||||
|
consistent vector declaration, for file formats that do not allow partial or
|
||||||
|
multiple declarations, like \fIvhdl\fP.
|
||||||
|
This way, a user can create a vector and access its member the way he wants,
|
||||||
|
but still having an internal consistent form.
|
||||||
|
.TP 20
|
||||||
|
Warning
|
||||||
|
If a signal is declared with \fBLOSIG\fP, but not used, the resulting file
|
||||||
|
will have an internal node floating.
|
||||||
|
This is not an error from a genlib point of view, so the user must be aware
|
||||||
|
of it.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("cell");
|
||||||
|
/\(** Define interface \(**
|
||||||
|
LOCON(...
|
||||||
|
/\(** declare buses \(**/
|
||||||
|
LOSIG("grum[23:0]");
|
||||||
|
LOSIG("iconection[0:7]");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("no2_y" ,"no3" ,"grum[12]" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
|
||||||
|
LOINS("no2_y" ,"no4" ,"a12_s" ,"grum[6]" ,"no4_s" ,"vdd" ,"vss" ,0);
|
||||||
|
LOINS("a2_y" ,"a22" ,"no3_s" ,"grum[15]" ,"a22_s" ,"vdd" ,"vss" ,0);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR LOINS (3),
|
||||||
|
.BR LOCON (3),
|
||||||
|
.BR BUS (3),
|
||||||
|
.BR ELM (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
.\" $Id: GENLIB_LOSIGMERGE.3,v 1.1 2000/09/28 15:19:55 fred Exp $
|
||||||
|
.\" @(#)LOSIGMERGE.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOSIGMERGE
|
||||||
|
.XE \}
|
||||||
|
.TH LOSIGMERGE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOSIGMERGE \- merge two logical signals
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOSIGMERGE(signal1, signal2)
|
||||||
|
char \(**signal1, \(**signal2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIsignal1\fP
|
||||||
|
Name of a signal to be merged
|
||||||
|
.TP 20
|
||||||
|
\fIsignal2\fP
|
||||||
|
Name of a signal to be merged
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOSIGMERGE\fP merges the two signals, \fIsignal1\fP and \fIsignal2\fP.
|
||||||
|
This function can be used anywhere in the \fBgenlib\fP program, but its
|
||||||
|
resultings actions must be known by the user.
|
||||||
|
.TP 10
|
||||||
|
1)
|
||||||
|
If \fIsignal1\fP and \fIsignal2\fP have not been used yet, then the
|
||||||
|
corresponding signal can be later accessed through any of these aliases.
|
||||||
|
.TP 10
|
||||||
|
2)
|
||||||
|
If one of \fIsignal1\fP or \fIsignal2\fP has not been used yet, then all
|
||||||
|
further reference to the not defined name will be made on the same signal than
|
||||||
|
the defined signal.
|
||||||
|
.TP 10
|
||||||
|
3)
|
||||||
|
If both signals exist, then they are merged, and both can be used for reference
|
||||||
|
to the same signal later on.
|
||||||
|
.LP
|
||||||
|
Since most of the file formats do not allow multiple name for a
|
||||||
|
single signal, the choice is made to keep for disk usage the name that appears
|
||||||
|
in the cell interface, if any.
|
||||||
|
Otherwise, the choice is randomly made by \fBLOSIGMERGE\fP.
|
||||||
|
.TP 10
|
||||||
|
Warning
|
||||||
|
This function allows the user to internally connect two external connectors.
|
||||||
|
This is \fInot\fP a valid disk representation for netlist generated by
|
||||||
|
\fBgenlib\fP.
|
||||||
|
The \fBSAVE_LOFIG\fP function will exit if encountering such a situation.
|
||||||
|
.br
|
||||||
|
In order to avoid it, either take care not to link such signals, or build
|
||||||
|
all your hierarchy in memory, make sure your block does not have such signals,
|
||||||
|
and call \fPFLATTEN_LOFIG\fP(3) just before saving.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("cell");
|
||||||
|
/\(** Define interface \(**
|
||||||
|
LOCON(...
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("no2_y" ,"no3" ,"a8_s" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
|
||||||
|
LOINS("no2_y" ,"no4" ,"a12_s" ,"a15_s" ,"no4_s" ,"vdd" ,"vss" ,0);
|
||||||
|
LOINS("a2_y" ,"a22" ,"no3_s" ,"no4_s" ,"a22_s" ,"vdd" ,"vss" ,0);
|
||||||
|
LOSIGMERGE("new_no3_s", "no3_s");
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR LOINS (3),
|
||||||
|
.BR LOCON (3),
|
||||||
|
.BR FLATTEN_LOFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
.\" $Id: GENLIB_LOTRS.3,v 1.1 2000/09/28 15:19:55 fred Exp $
|
||||||
|
.\" @(#)LOTRS.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
LOTRS
|
||||||
|
.XE \}
|
||||||
|
.TH LOTRS 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
LOTRS \- adds a logical transistor to the current netlist figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void LOTRS(type,width,length,grid,source,drain)
|
||||||
|
char type;
|
||||||
|
long width, length;
|
||||||
|
char \(**grid, \(**source, \(**drain;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fItype\fP
|
||||||
|
Type of the transistor to be created in the current figure
|
||||||
|
.TP
|
||||||
|
\fIwidth, length\fP
|
||||||
|
Size of the transistor
|
||||||
|
.TP
|
||||||
|
\fIgrid, source, drain\fP
|
||||||
|
Name of the signals on which the given transitor connector are to be linked
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBLOTRS\fP add a logical transistor to the current
|
||||||
|
working figure. This transitor has each of its pin logicaly linked to the signal
|
||||||
|
adequat signal given as parameter.
|
||||||
|
The \fItype\fP attribut may take the following values:
|
||||||
|
.TP
|
||||||
|
\fBTRANSN\fP
|
||||||
|
for a N type mos transistor.
|
||||||
|
.TP
|
||||||
|
\fBTRANSP\fP
|
||||||
|
for a P type mos transistor.
|
||||||
|
.SH ERROR
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"LOTRS impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
|
||||||
|
possible to add anything. you must call \fBDEF_LOFIG\fP before any other
|
||||||
|
netlist call.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on, an inverter \(**/
|
||||||
|
DEF_LOFIG("n1");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON("i", IN, "input");
|
||||||
|
LOCON("f", OUT, "output");
|
||||||
|
LOCON("vdd", IN, "vdd");
|
||||||
|
LOCON("vss", IN, "vss");
|
||||||
|
/\(** Place transistors \(**/
|
||||||
|
LOTRS(TRANSP, 5, 4, "input", "vdd", "output");
|
||||||
|
LOTRS(TRANSN, 2, 4, "input", "vss", "output");
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR BUS (3),
|
||||||
|
.BR ELM (3),
|
||||||
|
.BR LOINS (3),
|
||||||
|
.BR LOCON (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
.\" $Id: GENLIB_OUTLINE.3,v 1.1 2000/09/28 15:19:55 fred Exp $
|
||||||
|
.\" @(#)OUTLINE.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
OUTLINE
|
||||||
|
.XE \}
|
||||||
|
.TH OUTLINE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
OUTLINE \- build an outline from the current layout cell
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void OUTLINE();
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBOUTLINE\fP build a black box from a layout.
|
||||||
|
After a call to \fBOUTLINE\fP, the figure has only its abutment box,
|
||||||
|
its connectors, references and feed through.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("model","i1", NOSYM,0L,0L);
|
||||||
|
PLACE("model","i2", NOSYM,120L,40L);
|
||||||
|
DEF_PHINS("i1");
|
||||||
|
PLACE_TOP("model2", "i3", NOSYM);
|
||||||
|
/\(** define the new abutment box as the standard envelop \(**/
|
||||||
|
DEF_AB(0, 0, 0, 0);
|
||||||
|
OUTLINE();
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
.\" $Id: GENLIB_PHCON.3,v 1.1 2000/09/28 15:19:55 fred Exp $
|
||||||
|
.\" @(#)PHCON.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PHCON
|
||||||
|
.XE \}
|
||||||
|
.TH PHCON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PHCON \- place a physical connector in the current figure at absolute coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PHCON(layer, width, name, orient, x, y)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**name, orient;
|
||||||
|
long x, y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the connector
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the connector
|
||||||
|
.TP
|
||||||
|
\fIname\fP
|
||||||
|
Name to be given to the connector
|
||||||
|
.TP
|
||||||
|
\fIorient\fP
|
||||||
|
Face of the cell on witch the connector belongs
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Absolute coordinates of the connector
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPHCON\fP adds a connector in the current layout cell, at the specified
|
||||||
|
coordinates, with the given attributs.
|
||||||
|
The \fIlayer\fP argument can take the following legal values:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.LP
|
||||||
|
The name argument is not enough of an information to non ambigiously identify
|
||||||
|
a connector.
|
||||||
|
In order to be able to do so, an \fIindex\fP is computed for each connector
|
||||||
|
that has an already existing name, following a topological order.
|
||||||
|
Each time a connector is created, the \fIindex\fP is updated, regarding the
|
||||||
|
name of the connector.
|
||||||
|
Since someone writting a tiler needs to know exactly what connector to access,
|
||||||
|
the indexation algorithm must be known by the user.
|
||||||
|
.TP 20
|
||||||
|
Connectors with a unique name:
|
||||||
|
Such connectors have the index \fB0\fP
|
||||||
|
.TP 20
|
||||||
|
Connectors with a name apearing many times:
|
||||||
|
The indexes are computed from left to right, and then from bottom to top,
|
||||||
|
starting at \fB0\fP.
|
||||||
|
If two connectors are on the same location, with the same name, then the
|
||||||
|
\fIlayer\fP decides which one is has the greater number, from lower level,
|
||||||
|
\fBNWELL\fP to upper level, \fBALU3\fP.
|
||||||
|
.LP
|
||||||
|
The \fIorient\fP paramater may take the following values:
|
||||||
|
.TP 20
|
||||||
|
\fBNORTH\fP
|
||||||
|
for a connector placed on the top of the cell.
|
||||||
|
.TP
|
||||||
|
\fBSOUTH\fP
|
||||||
|
for a connector placed on the bottom of the cell.
|
||||||
|
.TP
|
||||||
|
\fBEAST\fP
|
||||||
|
for a connector placed on the right side of the cell.
|
||||||
|
.TP
|
||||||
|
\fBWEST\fP
|
||||||
|
for a connector placed on the left side of the cell.
|
||||||
|
.TP
|
||||||
|
Remark:
|
||||||
|
Connectors placed on corners of leaf cells are given the \fBEAST\fP orientation
|
||||||
|
if on top/right or bottom/right corner, and \fBWEST\fP if top/left or
|
||||||
|
bottom/left.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PHCON impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphcon : orientation is XX in \fIname\fP"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIorient\fP parameter does not have a legal value, but \fIXX\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a connector \(**/
|
||||||
|
PHCON(ALU1, 1, "cin", SOUTH, 12L, 0L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR COPY_UP_CON_FACE (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
.\" $Id: GENLIB_PHREF.3,v 1.1 2000/09/28 15:19:56 fred Exp $
|
||||||
|
.\" @(#)PHREF.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PHREF
|
||||||
|
.XE \}
|
||||||
|
.TH PHREF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PHREF \- place a physical reference in the current figure at absolute
|
||||||
|
coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PHREF(type, name, x, y)
|
||||||
|
char \(**type, \(**name;
|
||||||
|
long x, y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fItype\fP
|
||||||
|
Type of the reference to be added
|
||||||
|
.TP
|
||||||
|
\fIname\fP
|
||||||
|
Name of the reference
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Absolute coordinates of the reference
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPHREF\fP adds a reference in the current layout cell, at the specified
|
||||||
|
coordinates.
|
||||||
|
A reference is an object that allows to symbolicaly name a point for
|
||||||
|
futur use by the designer.
|
||||||
|
They have been mainly used in the past to \fIprogram\fP decoders, in order
|
||||||
|
to obtain many cells from a unique cell.
|
||||||
|
.LP
|
||||||
|
The \fItype\fP argument may take the two following legal values:
|
||||||
|
.TP 20
|
||||||
|
\fBref_con\fP
|
||||||
|
for virtual connectors, see \fBdpr\fP(1) for details.
|
||||||
|
.TP
|
||||||
|
\fBref_ref\fP
|
||||||
|
for any other need from the designer.
|
||||||
|
.LP
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PHREF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
PHREF("ref_con", "in_a[0]", 102L, 10L);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE_CON_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_VIA_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
.\" $Id: GENLIB_PHSEG.3,v 1.1 2000/09/28 15:19:56 fred Exp $
|
||||||
|
.\" @(#)PHSEG.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PHSEG
|
||||||
|
.XE \}
|
||||||
|
.TH PHSEG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PHSEG \- place a physical segment in the current figure at absolute coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PHSEG(layer, width, name, x1, y1, x2, y2)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**name;
|
||||||
|
long x1, y1, x2, y2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the segment
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the segment
|
||||||
|
.TP
|
||||||
|
\fIname\fP
|
||||||
|
Name to be given to the segment
|
||||||
|
.TP
|
||||||
|
\fIx1, y1, x2, y2\fP
|
||||||
|
Coordinates of the segment's end points in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPHSEG\fP adds a segment in the current layout cell, at the specified
|
||||||
|
coordinates, with the given attributs.
|
||||||
|
The \fIlayer\fP argument can take the following legal values :
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.LP
|
||||||
|
The name argument needs not to be specified, since one usually doesn't need to
|
||||||
|
give a segment a name. To do so, just type "" as name.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PHSEG impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphseg : x1, y1, x2, y2"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A symbolic segment must be either vertical or horizontal, so either
|
||||||
|
\fIx1 = x2\fP, or \fIy1 = y2\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Put a segment \(**/
|
||||||
|
PHSEG(ALU1, 1, "", 0L, 0L, 12L, 0L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_SEG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3),
|
||||||
|
.BR WIRE1 (3),
|
||||||
|
.BR WIRE2 (3),
|
||||||
|
.BR WIRE3 (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
.\" $Id: GENLIB_PHVIA.3,v 1.1 2000/09/28 15:19:56 fred Exp $
|
||||||
|
.\" @(#)PHVIA.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PHVIA
|
||||||
|
.XE \}
|
||||||
|
.TH PHVIA 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PHVIA \- place a physical via in the current figure at absolute coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PHVIA(type, x, y)
|
||||||
|
char type;
|
||||||
|
long x, y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fItype\fP
|
||||||
|
Type of the contact to be made
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Absolute coordinates of the via
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPHVIA\fP adds a via in the current layout cell, at the specified
|
||||||
|
coordinates.
|
||||||
|
The \fItype\fP argument may take the following legal values:
|
||||||
|
.TP 20
|
||||||
|
\fBCONT_POLY\fP
|
||||||
|
links \fBPOLY\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_DIF_N\fP
|
||||||
|
links \fBNDIF\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_DIF_P\fP
|
||||||
|
links \fBPDIF\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_BODY_N\fP
|
||||||
|
links \fBNTIE\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_BODY_P\fP
|
||||||
|
links \fBPTIE\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_VIA\fP
|
||||||
|
links \fBALU1\fP and \fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_VIA2\fP
|
||||||
|
links \fBALU2\fP and \fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBC_X_N\fP
|
||||||
|
corner for L-shaped (and S-shaped) N transistor
|
||||||
|
.TP
|
||||||
|
\fBC_X_P\fP
|
||||||
|
corner for L-shaped (and S-shaped) P transistor
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PHVIA impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a via inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphvia : type is XX at \fIx, y\fP"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fItype\fP parameter does not have a legal value, but \fIXX\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
/\(** Put a via \(**/
|
||||||
|
PHVIA(CONT_VIA, 12L, 10L);
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE_VIA_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
.\" $Id: GENLIB_PLACE.3,v 1.1 2000/09/28 15:19:56 fred Exp $
|
||||||
|
.\" @(#)PLACE.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE \- place a physical instance in the current figure at absolute coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE(modelname, insname, symetry, x, y)
|
||||||
|
char \(**modelname, \(**insname;
|
||||||
|
char symetry;
|
||||||
|
long x,y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodelname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Coordinates of the lower left corner of the abutment box on the instance in
|
||||||
|
the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE\fP add an instance in the current layout cell. The bottom left corner
|
||||||
|
of the instance of the model \fImodelname\fP is placed, after beeing
|
||||||
|
symetrized and/or rotated, at \fI(x, y)\fP coordinates.
|
||||||
|
The placed instance becomes the new "reference instance", used in
|
||||||
|
the relative placement functions.
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE("gapg0_b","ins1", NOSYM, 0L, 0L);
|
||||||
|
PLACE("gapg8_b","ins2", SYM_X, 80L, 100L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_BOTTOM.3,v 1.1 2000/09/28 15:19:56 fred Exp $
|
||||||
|
.\" @(#)PLACE_BOTTOM.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_BOTTOM
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_BOTTOM 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_BOTTOM \- place a physical instance in the current figure under
|
||||||
|
the "reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_BOTTOM(modelname, insname, symetry)
|
||||||
|
char \(**modelname, \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodelname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_BOTTOM\fP add a instance of model \fImodelname\fP
|
||||||
|
in the current layout cell.
|
||||||
|
The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_BOTTOM impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_BOTTOM impossible : No previous instance"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
There are no instances placed in the current layout cell, so it's
|
||||||
|
impossible to know where to place from. Use a \fBPLACE\fP call before.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE_PLACE("grbos", "ins1", SYMXY, -3L, 0L);
|
||||||
|
PLACE_BOTTOM("gln", "ins2", NOSYM);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,173 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_CON_REF.3,v 1.1 2000/09/28 15:19:57 fred Exp $
|
||||||
|
.\" @(#)PLACE_CON_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_CON_REF
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_CON_REF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_CON_REF \- put a connector on top of a reference belonging an
|
||||||
|
instance in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_CON_REF(insname, refname, conname, layer, width, face)
|
||||||
|
char \(**insname, \(**refname, \(**conname;
|
||||||
|
char layer, face;
|
||||||
|
long width;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference to be used for the connector placement
|
||||||
|
.TP
|
||||||
|
\fIconname\fP
|
||||||
|
Name of the connector to be placed
|
||||||
|
.TP
|
||||||
|
\fIlayer\fP
|
||||||
|
Physical layer of the connector
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the connector
|
||||||
|
.TP
|
||||||
|
\fIface\fP
|
||||||
|
Face of the figure on which the connector is to be placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_CON_REF\fP places a connector called \fIconname\fP ragarding the
|
||||||
|
position of the reference, \fIrefname\fP, in the instance called \fIinsname\fP.
|
||||||
|
The connector coordinates are computed from the reference coordinates and
|
||||||
|
the face given as argument.
|
||||||
|
.br
|
||||||
|
Two behaviours are expected, regarding the reference coordinates:
|
||||||
|
.TP 20
|
||||||
|
the reference is on the given face of the \fIabutment box\fP
|
||||||
|
a connector called \fIconname\fP is added on top of the reference, with
|
||||||
|
the given \fIlayer\fP and \fIwidth\fP.
|
||||||
|
.TP
|
||||||
|
the reference is anywhere else
|
||||||
|
a connector called \fIconname\fP is added on the given face, \fIface\fP, of the
|
||||||
|
\fIabutment box\fP, at the y coordinates of the reference if the \fIface\fP
|
||||||
|
is \fBEAST\fP or \fBWEST\fP, or x one if the \fIface\fP is \fBNORTH\fP or
|
||||||
|
\fBSOUTH\fP. Then a segment is drawn between the reference and the connector.
|
||||||
|
All drawn objects are given \fIlayer\fP and \fIwidth\fP as caracteristics.
|
||||||
|
.br
|
||||||
|
The \fIface\fP argument is meant in the placed instance, and can take any of
|
||||||
|
the following values:
|
||||||
|
.TP 20
|
||||||
|
\fBNORTH\fP
|
||||||
|
for a connector placed on the top of the cell.
|
||||||
|
.TP
|
||||||
|
\fBSOUTH\fP
|
||||||
|
for a connector placed on the bottom of the cell.
|
||||||
|
.TP
|
||||||
|
\fBEAST\fP
|
||||||
|
for a connector placed on the right side of the cell.
|
||||||
|
.TP
|
||||||
|
\fBWEST\fP
|
||||||
|
for a connector placed on the left side of the cell.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_CON_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_CON_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_CON_REF impossible : no abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure does not have an \fIabutment box\fI. Use \fIDEF_AB\fP(3)
|
||||||
|
before this function.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal PLACE_CON_REF : orientation is XX"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIface\fP parameter does not have a legal value, but \fIXX\fP.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphref : references called \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference called \fIrefname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
PLACE_CON_REF("r1", "a_0", ALU2, 2, NORTH);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR COPY_UP_REF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR PLACE_CON_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_CON_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_LEFT.3,v 1.1 2000/09/28 15:19:57 fred Exp $
|
||||||
|
.\" @(#)PLACE_LEFT.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_LEFT
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_LEFT 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_LEFT \- place a physical instance in the current figure at the left of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_LEFT(modelname, insname, symetry)
|
||||||
|
char \(**modelname, \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodelname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_LEFT\fP add an instance of model \fImodelname\fP
|
||||||
|
in the current layout cell.
|
||||||
|
The bottom right corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_LEFT impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_LEFT impossible : No previous instance"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
There are no instances placed in the current layout cell, so it's
|
||||||
|
impossible to know where to place from. Use a \fBPLACE\fP call before.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE("grbdo_3","ins1", NOSYM, 0L, 0L);
|
||||||
|
/\(** negative placement values are allowed \(**/
|
||||||
|
PLACE_LEFT("grxwh_k","ins2", SYMXY);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,152 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_ON.3,v 1.1 2000/09/28 15:19:57 fred Exp $
|
||||||
|
.\" @(#)PLACE_ON.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_ON
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_ON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_ON \- place a physical instance in the current figure matching
|
||||||
|
connectors
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_ON(figname,ins1,con1,index1,symetry,ins2,con2,index2)
|
||||||
|
char \(**figname, \(**ins1, \(**con1, \(**ins2, \(**con2;
|
||||||
|
char symetry;
|
||||||
|
long index1, index2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIfigname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIins1\fP
|
||||||
|
Name to be given to the instance in the model
|
||||||
|
.TP
|
||||||
|
\fIcon1\fP
|
||||||
|
Name of the connector of the instance to be used for placement
|
||||||
|
.TP
|
||||||
|
\fIindex1\fP
|
||||||
|
Index of the connector, or reference, \fIcon1\fP of the model to be used
|
||||||
|
for placement
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.TP
|
||||||
|
\fIins2\fP
|
||||||
|
Name of the instance to be used for relative placement
|
||||||
|
.TP
|
||||||
|
\fIcon2\fP
|
||||||
|
Name of the connector of the instance \fIins2\fP on which the placement will
|
||||||
|
take place
|
||||||
|
.TP
|
||||||
|
\fIindex2\fP
|
||||||
|
Index of the connector \fIcon2\fP of the instance to be used for relative
|
||||||
|
placement
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_ON\fP add an instance in the current layout cell. The bottom left corner
|
||||||
|
of the instance of the model \fImodelname\fP is placed, after beeing
|
||||||
|
symetrized and/or rotated, at \fI(x, y)\fP coordinates.
|
||||||
|
The placed instance becomes the new "reference instance", used in
|
||||||
|
the relative placement functions.
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_ON impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE_ON("gapg0_b","ins1", NOSYM, 0L, 0L);
|
||||||
|
PLACE_ON("gapg8_b","ins2", SYM_X, 80L, 100L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,145 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_RIGHT.3,v 1.1 2000/09/28 15:19:57 fred Exp $
|
||||||
|
.\" @(#)PLACE_RIGHT.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_RIGHT
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_RIGHT 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_RIGHT \- place a physical instance in the current figure at
|
||||||
|
the right of the "reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_RIGHT(modelname, insname, symetry)
|
||||||
|
char \(**modelname, \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodelname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_RIGHT\fP add an instance of model \fImodelname\fP
|
||||||
|
in the current layout cell.
|
||||||
|
The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom right corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_RIGHT impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_RIGHT impossible : No previous instance"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
There are no instances placed in the current layout cell, so it's
|
||||||
|
impossible to know where to place from. Use a \fBPLACE\fP call before.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE("rsa16","ins1", ROT_P, -5L, 5L);
|
||||||
|
PLACE_RIGHT("gnr32x16", "ins2", SYM_X);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_TOP (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,175 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_SEG_REF.3,v 1.1 2000/09/28 15:19:58 fred Exp $
|
||||||
|
.\" @(#)PLACE_SEG_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_SEG_REF
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_SEG_REF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_SEG_REF \- put a segment on a reference belonging an
|
||||||
|
instance in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_SEG_REF(insname, refname, layer, width, face)
|
||||||
|
char \(**insname, \(**refname;
|
||||||
|
char layer, face;
|
||||||
|
long width;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference to be used for the segment placement
|
||||||
|
.TP
|
||||||
|
\fIlayer\fP
|
||||||
|
Physical layer of the segment
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the segment
|
||||||
|
.TP
|
||||||
|
\fIface\fP
|
||||||
|
Face of the figure on which the segment is to be placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_SEG_REF\fP places a segment regarding the position
|
||||||
|
of the reference, \fIrefname\fP, in the instance called \fIinsname\fP.
|
||||||
|
The segment coordinates are computed from the reference coordinates and
|
||||||
|
the face given as argument.
|
||||||
|
.br
|
||||||
|
Two behaviours are expected, regarding the reference coordinates:
|
||||||
|
.TP 20
|
||||||
|
the reference is on the given face of the \fIabutment box\fP
|
||||||
|
the segment is not added, since it would have zero as length
|
||||||
|
.TP
|
||||||
|
the reference is anywhere else
|
||||||
|
A segment is drawn between the reference and the \fIabutment box\fP, and is
|
||||||
|
given \fIlayer\fP and \fIwidth\fP as attributs.
|
||||||
|
One of its endpoint is given by the reference coordinates, the other one
|
||||||
|
comes from the \fIface\fP.
|
||||||
|
The \fIface\fP argument is meant in the placed instance, and can take any of
|
||||||
|
the following values:
|
||||||
|
.TP 20
|
||||||
|
\fBNORTH\fP
|
||||||
|
the other endpoint has, for absissa, the x coordinate of the top of the
|
||||||
|
\fIabutment box\fP of the cell, and for ordinate, the y coordinate of
|
||||||
|
the reference.
|
||||||
|
.TP
|
||||||
|
\fBSOUTH\fP
|
||||||
|
the other endpoint has, for absissa, the x coordinate of the bottom of the
|
||||||
|
\fIabutment box\fP of the cell, and for ordinate, the y coordinate of
|
||||||
|
the reference.
|
||||||
|
.TP
|
||||||
|
\fBEAST\fP
|
||||||
|
the other endpoint has, for absissa, the x coordinate of the reference and
|
||||||
|
for ordinate, the y coordinate of the right of the \fIabutment box\fP of the
|
||||||
|
cell.
|
||||||
|
.TP
|
||||||
|
\fBWEST\fP
|
||||||
|
the other endpoint has, for absissa, the x coordinate of the reference and
|
||||||
|
for ordinate, the y coordinate of the left of the \fIabutment box\fP of the
|
||||||
|
cell.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_SEG_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_SEG_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_SEG_REF impossible : no abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure does not have an \fIabutment box\fI. Use \fIDEF_AB\fP(3)
|
||||||
|
before this function.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal PLACE_SEG_REF : orientation is XX"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIface\fP parameter does not have a legal value, but \fIXX\fP.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance called \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No instance called \fIinsname\fP exists in the current figure
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphref : references called \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference called \fIrefname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
PLACE_SEG_REF("r1", "a_0", ALU2, 2, NORTH);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR COPY_UP_REF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,146 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_TOP.3,v 1.1 2000/09/28 15:19:58 fred Exp $
|
||||||
|
.\" @(#)PLACE_TOP.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_TOP
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_TOP 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_TOP \- place a physical instance in the current figure on the top of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_TOP(modelname, insname, symetry)
|
||||||
|
char \(**modelname, \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fImodelname\fP
|
||||||
|
Name of the layout figure to be instanciated
|
||||||
|
.TP
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_TOP\fP add an instance of model \fImodelname\fP
|
||||||
|
in the current layout cell.
|
||||||
|
The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the top left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
.br
|
||||||
|
The \fIinsname\fP is the name given to the instance and must be unique at
|
||||||
|
a given hierarchy level.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.PP
|
||||||
|
The model of the figure to be placed must be available, on disk or in memory.
|
||||||
|
The path to the library is specified in the \fBMBK_CATA_LIB\fP (1) and
|
||||||
|
\fBMBK_WORK_LIB\fP (1) environment
|
||||||
|
variables, and its format is given by the \fBMBK_IN_PH\fP (1) environment
|
||||||
|
variable.
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_TOP impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_TOP impossible : No previous instance"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
There are no instances placed in the current layout cell, so it's
|
||||||
|
impossible to know where to place from. Use a \fBPLACE\fP call before.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
PLACE("dgl", "ins1", ROT_P, 0L, 0L);
|
||||||
|
PLACE_TOP("idv", "ins2", SY_RP);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PLACE (3),
|
||||||
|
.BR PLACE_RIGHT (3),
|
||||||
|
.BR PLACE_BOTTOM (3),
|
||||||
|
.BR PLACE_LEFT (3),
|
||||||
|
.BR MBK_CATA_LIB (1),
|
||||||
|
.BR MBK_WORK_LIB (1),
|
||||||
|
.BR MBK_IN_PH (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
.\" $Id: GENLIB_PLACE_VIA_REF.3,v 1.1 2000/09/28 15:19:58 fred Exp $
|
||||||
|
.\" @(#)PLACE_VIA_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
PLACE_VIA_REF
|
||||||
|
.XE \}
|
||||||
|
.TH PLACE_VIA_REF 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
PLACE_VIA_REF \- put a via on top of a reference belonging to an instance
|
||||||
|
in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void PLACE_VIA_REF(insname, refname, viatype)
|
||||||
|
char \(**insname, \(**refname;
|
||||||
|
char viatype;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name of the instance in the which the reference is to be searched for
|
||||||
|
.TP
|
||||||
|
\fIrefname\fP
|
||||||
|
Name of the reference to be used as target point
|
||||||
|
.TP
|
||||||
|
\fIviatype\fP
|
||||||
|
Type of via to be placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBPLACE_VIA_REF\fP places a via of type \fIviatype\fP on top of the specified
|
||||||
|
reference, \fIrefname\fP, in the instance called \fIinsname\fP.
|
||||||
|
This function may be used to generate many cells from a single one, in order
|
||||||
|
to "program" decoders for example, or in conjuction with \fBPLACE_SEG_REF\fP(3)
|
||||||
|
or \fBPLACE_CON_REF\fP(3) to translate virtual connectors into fixed ones.
|
||||||
|
.br
|
||||||
|
The \fIviatype\fP argument may take the following legal values:
|
||||||
|
.TP 20
|
||||||
|
\fBCONT_POLY\fP
|
||||||
|
links \fBPOLY\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_DIF_N\fP
|
||||||
|
links \fBNDIF\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_DIF_P\fP
|
||||||
|
links \fBPDIF\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_BODY_N\fP
|
||||||
|
links \fBNTIE\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_BODY_P\fP
|
||||||
|
links \fBPTIE\fP and \fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_VIA\fP
|
||||||
|
links \fBALU1\fP and \fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBCONT_VIA2\fP
|
||||||
|
links \fBALU2\fP and \fBALU3\fP
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"PLACE_VIA_REF impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a reference inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsname\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphref : references called \fIrefname\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No reference called \fIrefname\fP exists in the model of the instance
|
||||||
|
\fIinsname\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||||
|
/\(** Put a reference \(**/
|
||||||
|
PLACE_VIA_REF("a_0", "r1", CONT_VIA);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR dpr (1),
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR PHVIA (3),
|
||||||
|
.BR COPY_UP_REF (3),
|
||||||
|
.BR COPY_UP_ALL_REF (3),
|
||||||
|
.BR PLACE_CON_REF (3),
|
||||||
|
.BR PLACE_SEG_REF (3),
|
||||||
|
.BR PLACE_VIA_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
.\" $Id: GENLIB_REVERSE_PHCON.3,v 1.1 2000/09/28 15:19:58 fred Exp $
|
||||||
|
.\" @(#)REVERSE_PHCON.3 2.11 93/09/03 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
REVERSE_PHCON
|
||||||
|
.XE \}
|
||||||
|
.TH REVERSE_PHCON 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
REVERSE_PHCON \- reverse the order of physical connectors on a bus.
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void REVERSE_PHCON(basename)
|
||||||
|
char \(**basename;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIbasename\fP
|
||||||
|
Radical of the vector to be reversed.
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBREVERSE_PHCON\fP will change the indexes of the vector called
|
||||||
|
\fIbasename\fP, making the greatest values the smallest and so on.
|
||||||
|
Both hard connectors, created by \fBPHCON\fR(3) like functions and
|
||||||
|
virtual ones, done with \fBPHREF\fR(3), will be taken into account for
|
||||||
|
the reverse operation.
|
||||||
|
This function is mainly useful to implement the \fBmsb0\fR options of
|
||||||
|
the \fBAlliance\fR CAD system module generators, as the whole design can
|
||||||
|
be done with the designer choosen bit ordering, and modified on user
|
||||||
|
demand only before saving.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
DEF_PHFIG("rom");
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Reverse the bit ordering if needed \(**/
|
||||||
|
if (msb0)
|
||||||
|
REVERSE_PHCON("adr");
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR PHCON (3),
|
||||||
|
.BR PHREF (3),
|
||||||
|
.BR COPY_UP_CON (3),
|
||||||
|
.BR COPY_UP_ALL_CON (3),
|
||||||
|
.BR COPY_UP_CON_FACE (3),
|
||||||
|
.BR COPY_UP_REF (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
.\" $Id: GENLIB_SAVE_LOFIG.3,v 1.1 2000/09/28 15:19:58 fred Exp $
|
||||||
|
.\" @(#)SAVE_LOFIOG.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SAVE_LOFIG
|
||||||
|
.XE \}
|
||||||
|
.TH SAVE_LOFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SAVE_LOFIG \- save a netlist on disk
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SAVE_LOFIG();
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSAVE_LOFIG\fP saves the current working figure previously definded by
|
||||||
|
a \fBDEF_LOFIG\fP call. \fBSAVE_LOFIG\fP uses environment variables to
|
||||||
|
choose the file format and the path to the file.
|
||||||
|
\fBMBK_OUT_LO\fP set up the output file format, the valid ones beeing :
|
||||||
|
.RS
|
||||||
|
\fBhns
|
||||||
|
.br
|
||||||
|
fne
|
||||||
|
.br
|
||||||
|
al
|
||||||
|
.br
|
||||||
|
alx\fP
|
||||||
|
.RE
|
||||||
|
you could for example do :
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
\fBsetenv MBK_OUT_LO al\fP
|
||||||
|
.RE
|
||||||
|
\fBMBK_WORK_LIB\fP set up the output file path. Any valid unix path is
|
||||||
|
ok.
|
||||||
|
.br
|
||||||
|
for example :
|
||||||
|
.RS
|
||||||
|
\fBsetenv MBK_WORK_LIB ~fred/booth/genlib\fP
|
||||||
|
.RE
|
||||||
|
\fBSAVE_LOFIG\fP doesn't look on disk for the figure \fIcellname\fP,
|
||||||
|
so be careful not to overwrite an existing file while saving.
|
||||||
|
.SH ERROR
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SAVE_LOFIG impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_LOFIG\fP. So it isn't
|
||||||
|
possible to save anything. you must call \fBDEF_LOFIG\fP before any other
|
||||||
|
netlist call.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
/\(** define interface \(**/
|
||||||
|
LOCON("i", INPUT, "sig1");
|
||||||
|
LOCON("o", OUTPUT, "sig2");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_LOFIG(3),
|
||||||
|
.BR MBK_OUT_LO (1),
|
||||||
|
.BR MBK_WORK_LIB (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
.\" $Id: GENLIB_SAVE_PHFIG.3,v 1.1 2000/09/28 15:19:59 fred Exp $
|
||||||
|
.\" @(#)SAVE_PHFIG.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SAVE_PHFIG
|
||||||
|
.XE \}
|
||||||
|
.TH SAVE_PHFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SAVE_PHFIG \- save a layout on disk
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SAVE_PHFIG();
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSAVE_PHFIG\fP saves the current working figure previously definded by
|
||||||
|
a \fBDEF_PHFIG\fP call. \fBSAVE_PHFIG\fP uses environment variables to
|
||||||
|
choose the file format and the path to the file.
|
||||||
|
.br
|
||||||
|
\fBMBK_OUT_PH\fP set up the output file format, the valid ones beeing :
|
||||||
|
.RS
|
||||||
|
\fBcp
|
||||||
|
.br
|
||||||
|
ap\fP
|
||||||
|
.RE
|
||||||
|
you could for example do :
|
||||||
|
.RS
|
||||||
|
\fBsetenv MBK_OUT_PH ap\fP
|
||||||
|
.RE
|
||||||
|
\fBMBK_WORK_LIB\fP set up the output file path. Any valid unix path is
|
||||||
|
ok.
|
||||||
|
.br
|
||||||
|
for example :
|
||||||
|
.RS
|
||||||
|
\fBsetenv MBK_WORK_LIB ~fred/booth/genlib\fP
|
||||||
|
.RE
|
||||||
|
\fBSAVE_PHFIG\fP doesn't look on disk for the figure \fIcellname\fP,
|
||||||
|
so be careful not to overwrite an existing file while saving.
|
||||||
|
.SH ERROR
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SAVE_PHFIG impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to save anything. you must call \fBDEF_PHFIG\fP before any other
|
||||||
|
layout action.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("mycell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
PLACE("mymodel","firstinstance", NOSYM,0L,0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR SAVE_PHSC (3),
|
||||||
|
.BR MBK_OUT_PH (1),
|
||||||
|
.BR MBK_WORK_LIB (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
.\" $Id: GENLIB_SAVE_PHSC.3,v 1.1 2000/09/28 15:19:59 fred Exp $
|
||||||
|
.\" @(#)SAVE_PHSC.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SAVE_PHSC
|
||||||
|
.XE \}
|
||||||
|
.TH SAVE_PHSC 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SAVE_PHSC \- save a layout on disk
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SAVE_PHSC();
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSAVE_PHSC\fP saves the current working figure previously definded by
|
||||||
|
a \fBDEF_PHFIG\fP or \fBDEF_PHSC\fP call, and performs a
|
||||||
|
\fBDEF_AB(0L, 0L, 0L, 0L)\fP just before saving the figure, in order to give
|
||||||
|
it the appropriate size for standard cell blocks.
|
||||||
|
\fBSAVE_PHSC\fP uses environment variables to choose the file format and
|
||||||
|
the path to the file.
|
||||||
|
.br
|
||||||
|
No check is made to see if a file with the same name already exists on disk, so
|
||||||
|
be careful not to overwrite some precious data.
|
||||||
|
.SH ERROR
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SAVE_PHSC impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP or
|
||||||
|
\fBDEF_PHSC\fB. So it isn't
|
||||||
|
possible to save anything. you must call \fBDEF_PHFIG\fP before any other
|
||||||
|
layout action.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a physical figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
SC_PLACE("finst", NOSYM,0L,0L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHSC (3),
|
||||||
|
.BR MBK_OUT_PH (1),
|
||||||
|
.BR MBK_WORK_LIB (1).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
.\" $Id: GENLIB_SC_BOTTOM.3,v 1.1 2000/09/28 15:19:59 fred Exp $
|
||||||
|
.\" @(#)SC_BOTTOM.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SC_BOTTOM
|
||||||
|
.XE \}
|
||||||
|
.TH SC_BOTTOM 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SC_BOTTOM \- place an instance in the current figure at the right of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SC_BOTTOM(insname, symetry)
|
||||||
|
char \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSC_BOTTOM\fP add an instance in the current cell. The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
The placement takes place only if the netlist is up to day,
|
||||||
|
because the model of the instance is seeked there, in order to ensure
|
||||||
|
consistency.
|
||||||
|
.LP
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_BOTTOM impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_BOTTOM impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current netlist figure is not define, so \fBSC_BOTTOM\fP doesn't know
|
||||||
|
where to pick up the model. A \fBDEF_LOFIG\fP or a \fBDEF_PHSC\fP
|
||||||
|
is to be performed to avoid this error.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_BOTTOM impossible : no logical instance insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinsname\fP does not exist in the netlist representation
|
||||||
|
of the cell. It may lead us to believe that there is a consistency
|
||||||
|
problem between the two representation of this cell.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||||
|
SC_BOTTOM("ins2", SYMXY);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHSC (3),
|
||||||
|
.BR SAVE_PHSC (3),
|
||||||
|
.BR SC_PLACE (3),
|
||||||
|
.BR SC_TOP (3),
|
||||||
|
.BR SC_RIGHT (3),
|
||||||
|
.BR SC_LEFT (3),
|
||||||
|
.BR DEF_PHINS (3),
|
||||||
|
.BR FLATTEN_PHFIG (3),
|
||||||
|
.BR FLATTEN_ALL_PHINS (3),
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,149 @@
|
||||||
|
.\" $Id: GENLIB_SC_LEFT.3,v 1.1 2000/09/28 15:19:59 fred Exp $
|
||||||
|
.\" @(#)SC_LEFT.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SC_LEFT
|
||||||
|
.XE \}
|
||||||
|
.TH SC_LEFT 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SC_LEFT \- place an instance in the current figure at the right of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SC_LEFT(insname, symetry)
|
||||||
|
char \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSC_LEFT\fP add an instance in the current cell. The bottom right corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
The placement takes place only if the netlist is up to day,
|
||||||
|
because the model of the instance is seeked there, in order to ensure
|
||||||
|
consistency.
|
||||||
|
.LP
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_LEFT impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_LEFT impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current netlist figure is not define, so \fISC_LEFT\fP doesn't know
|
||||||
|
where to pick up the model. A \fIDEF_LOFIG\fP or a \fIDEF_PHSC\fP
|
||||||
|
is to be performed to avoid this error.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_LEFT impossible : no logical instance insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinsname\fP does not exist in the netlist representation
|
||||||
|
of the cell. It may lead us to believe that there is a consistency
|
||||||
|
problem between the two representation of this cell.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||||
|
/\(** negative placement values are allowed \(**/
|
||||||
|
SC_LEFT("ins2", SYM_Y);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib(1),
|
||||||
|
.BR DEF_PHSC(3),
|
||||||
|
.BR SAVE_PHSC(3),
|
||||||
|
.BR SC_PLACE(3),
|
||||||
|
.BR SC_TOP(3),
|
||||||
|
.BR SC_BOTTOM(3),
|
||||||
|
.BR SC_RIGHT(3),
|
||||||
|
.BR DEF_PHINS (3),
|
||||||
|
.BR FLATTEN_PHFIG (3),
|
||||||
|
.BR FLATTEN_ALL_PHINS (3),
|
||||||
|
.BR LOINS(3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,150 @@
|
||||||
|
.\" $Id: GENLIB_SC_PLACE.3,v 1.1 2000/09/28 15:20:00 fred Exp $
|
||||||
|
.\" @(#)SC_PLACE.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SC_PLACE
|
||||||
|
.XE \}
|
||||||
|
.TH SC_PLACE 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SC_PLACE \- place an instance in the current figure at absolute coordinates
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SC_PLACE(insname, symetry, x, y)
|
||||||
|
char \(**insname;
|
||||||
|
char symetry;
|
||||||
|
long x,y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Coordinates of the lower left corner of the abutment box of the model in
|
||||||
|
the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fISC_PLACE\fP add an instance in the current cell. The bottom left corner
|
||||||
|
of the instance is placed, after beeing symetrized and/or rotated,
|
||||||
|
at \fI(x, y)\fP
|
||||||
|
coordinates. The placement takes place only if the netlist is up to day,
|
||||||
|
because the model of the instance is seeked there, in order to ensure
|
||||||
|
consistency.
|
||||||
|
The placed instance becomes the new "reference instance", used in
|
||||||
|
the relative placement functions.
|
||||||
|
.br
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_PLACE impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_PLACE impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current netlist figure is not define, so \fBSC_PLACE\fP doesn't know
|
||||||
|
where to pick up the model. A \fBDEF_LOFIG\fP or a \fBDEF_PHSC\fP
|
||||||
|
is to be performed to avoid this error.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_PLACE impossible : no logical instance insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinsname\fP does not exist in the netlist representation
|
||||||
|
of the cell. It may lead us to believe that there is a consistency
|
||||||
|
problem between the two representation of this cell.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||||
|
SC_PLACE("ins2", NOSYM, 80L, 100L);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHSC (3),
|
||||||
|
.BR SAVE_PHSC (3),
|
||||||
|
.BR SC_TOP (3),
|
||||||
|
.BR SC_BOTTOM (3),
|
||||||
|
.BR SC_LEFT (3),
|
||||||
|
.BR SC_RIGHT (3),
|
||||||
|
.BR DEF_PHINS (3),
|
||||||
|
.BR FLATTEN_PHFIG (3),
|
||||||
|
.BR FLATTEN_ALL_PHINS (3),
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
.\" $Id: GENLIB_SC_RIGHT.3,v 1.1 2000/09/28 15:20:00 fred Exp $
|
||||||
|
.\" @(#)SC_RIGHT.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SC_RIGHT
|
||||||
|
.XE \}
|
||||||
|
.TH SC_RIGHT 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SC_RIGHT \- place an instance in the current figure at the right of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SC_RIGHT(insname, symetry)
|
||||||
|
char \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSC_RIGHT\fP add an instance in the current cell. The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the bottom right corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
The placement takes place only if the netlist is up to day,
|
||||||
|
because the model of the instance is seeked there, in order to ensure
|
||||||
|
consistency.
|
||||||
|
.LP
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_RIGHT impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_RIGHT impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current netlist figure is not define, so \fBSC_RIGHT\fP doesn't know
|
||||||
|
where to pick up the model. A \fBDEF_LOFIG\fP or a \fBDEF_PHSC\fP
|
||||||
|
is to be performed to avoid this error.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_RIGHT impossible : no logical instance insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinsname\fP does not exist in the netlist representation
|
||||||
|
of the cell. It may lead us to believe that there is a consistency
|
||||||
|
problem between the two representation of this cell.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||||
|
SC_RIGHT("ins2", SYM_X);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib(1),
|
||||||
|
.BR DEF_PHSC(3),
|
||||||
|
.BR SAVE_PHSC(3),
|
||||||
|
.BR SC_PLACE(3),
|
||||||
|
.BR SC_TOP(3),
|
||||||
|
.BR SC_BOTTOM(3),
|
||||||
|
.BR SC_LEFT(3),
|
||||||
|
.BR DEF_PHINS (3),
|
||||||
|
.BR FLATTEN_PHFIG (3),
|
||||||
|
.BR FLATTEN_ALL_PHINS (3),
|
||||||
|
.BR LOINS(3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
.\" $Id: GENLIB_SC_TOP.3,v 1.1 2000/09/28 15:20:00 fred Exp $
|
||||||
|
.\" @(#)SC_TOP.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
SC_TOP
|
||||||
|
.XE \}
|
||||||
|
.TH SC_TOP 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
SC_TOP \- place an instance in the current figure at the right of the
|
||||||
|
"reference instance"
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void SC_TOP(insname, symetry)
|
||||||
|
char \(**insname;
|
||||||
|
char symetry;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIinsname\fP
|
||||||
|
Name to be given to the instance on the model
|
||||||
|
.TP
|
||||||
|
\fIsymetry\fP
|
||||||
|
Geometrical operation to be performed on the instance before beeing placed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBSC_TOP\fP add an instance in the current cell. The bottom left corner
|
||||||
|
of the abutment box of the instance is placed, after beeing symetrized
|
||||||
|
and/or rotated,
|
||||||
|
toward the top left corner of the abutment box of the
|
||||||
|
"reference instance". The newly
|
||||||
|
placed instance becomes the "reference instance".
|
||||||
|
The placement takes place only if the netlist is up to day,
|
||||||
|
because the model of the instance is seeked there, in order to ensure
|
||||||
|
consistency.
|
||||||
|
.LP
|
||||||
|
The \fIsymetry\fP argument can take eight legal values :
|
||||||
|
.TP 20
|
||||||
|
\fBNOSYM\fP
|
||||||
|
no geometrical operation is performed
|
||||||
|
.TP
|
||||||
|
\fBSYM_Y\fP
|
||||||
|
Y becomes -Y, that means toward X axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYM_X\fP
|
||||||
|
X becomes -X, that means toward Y axe symetry
|
||||||
|
.TP
|
||||||
|
\fBSYMXY\fP
|
||||||
|
X becomes -X, Y becomes -Y
|
||||||
|
.TP
|
||||||
|
\fBROT_P\fP
|
||||||
|
a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBROT_M\fP
|
||||||
|
a negative 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RP\fP
|
||||||
|
Y becomes -Y, and then a positive 90 degrees rotation take place
|
||||||
|
.TP
|
||||||
|
\fBSY_RM\fP
|
||||||
|
Y becomes -Y, and then a negative 90 degrees rotation take place
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_TOP impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_TOP impossible : missing DEF_LOFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current netlist figure is not define, so \fBSC_TOP\fP doesn't know
|
||||||
|
where to pick up the model. A \fBDEF_LOFIG\fP or a \fBDEF_PHSC\fP
|
||||||
|
is to be performed to avoid this error.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"SC_TOP impossible : no logical instance insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance \fIinsname\fP does not exist in the netlist representation
|
||||||
|
of the cell. It may lead us to believe that there is a consistency
|
||||||
|
problem between the two representation of this cell.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphins : transformation is x in insname"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The \fIsymetry\fP parameter is not one of the define given, but has the
|
||||||
|
integer value \fBx\fP.
|
||||||
|
.RE
|
||||||
|
.br
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHSC("cell");
|
||||||
|
/\(** Place two instances \(**/
|
||||||
|
SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||||
|
SC_TOP("ins2", SYM_X);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_PHSC();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHSC (3),
|
||||||
|
.BR SAVE_PHSC (3),
|
||||||
|
.BR SC_PLACE (3),
|
||||||
|
.BR SC_RIGHT (3),
|
||||||
|
.BR SC_BOTTOM (3),
|
||||||
|
.BR SC_LEFT (3),
|
||||||
|
.BR DEF_PHINS (3),
|
||||||
|
.BR FLATTEN_PHFIG (3),
|
||||||
|
.BR FLATTEN_ALL_PHINS (3),
|
||||||
|
.BR LOINS (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,141 @@
|
||||||
|
.\" $Id: GENLIB_THRU_CON_H.3,v 1.1 2000/09/28 15:20:00 fred Exp $
|
||||||
|
.\" @(#)THRU_CON_H.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
THRU_CON_H
|
||||||
|
.XE \}
|
||||||
|
.TH THRU_CON_H 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
THRU_CON_H \- draw an horizontal wire from side to side of the
|
||||||
|
\fIabutment box\fP of the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void THRU_CON_H(layer, width, name, y)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**name;
|
||||||
|
long y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the wire and connectors
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the wire and connectors
|
||||||
|
.TP
|
||||||
|
\fIname\fP
|
||||||
|
Name of the connectors
|
||||||
|
.TP
|
||||||
|
\fIy\fP
|
||||||
|
Absolute y coordinate of the wire and connectors
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBTHRU_CON_H\fP adds an horizontal segment in the current layout cell.
|
||||||
|
Two connectors are created on the \fBWEST\fP and \fPEQST\fP sides of the
|
||||||
|
\fIabutment box\fP, at the \fIy\fP coordinates, and given the name \fIname\fP.
|
||||||
|
The segment is drawn thru the figure, from the \fBWEST\fP connector to the
|
||||||
|
\fBEAST\fP one.
|
||||||
|
.br
|
||||||
|
This function is mostly used to put \fIthrough routes\fP on a figure, and
|
||||||
|
therefore, the \fBT\fP prefixed layer names are the most likely to be used
|
||||||
|
here.
|
||||||
|
.br
|
||||||
|
The \fIlayer\fP argument can take the following legal values:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_CON_H impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_CON_H impossible : no or illegal abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure has either no abutment box defined yet, or has a heigth
|
||||||
|
of zero. \fBDEF_AB\fP is to be called.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a wire through the figure \(**/
|
||||||
|
THRU_CON_H(TALU2, 1, "pwet", 32L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
.\" $Id: GENLIB_THRU_CON_V.3,v 1.1 2000/09/28 15:20:00 fred Exp $
|
||||||
|
.\" @(#)THRU_CON_V.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
THRU_CON_V
|
||||||
|
.XE \}
|
||||||
|
.TH THRU_CON_V 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
THRU_CON_V \- draw a vertical wire with connectors from side to side
|
||||||
|
of the \fIabutment box\fP of the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void THRU_CON_V(layer, width, name, x)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**name;
|
||||||
|
long x;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the wire and connectors
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the wire and connectors
|
||||||
|
.TP
|
||||||
|
\fIname\fP
|
||||||
|
Name of the connectors
|
||||||
|
.TP
|
||||||
|
\fIx\fP
|
||||||
|
Absolute x coordinate of the wire and connectors
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBTHRU_CON_V\fP adds a vertical segment and two connectors in the current
|
||||||
|
layout cell.
|
||||||
|
The \fIx\fP coordinates gives the wire and connectors horizontal position,
|
||||||
|
vertical ones beeing extracted from the figure \fIabutment box\fP.
|
||||||
|
Two connectors are created on the \fBNORTH\fP and \fPSOUTH\fP sides of the
|
||||||
|
\fIabutment box\fP, at the \fIx\fP coordinates, and given the name \fIname\fP.
|
||||||
|
The segment is drawn thru the figure, from the \fBNORTH\fP connector to the
|
||||||
|
\fBSOUTH\fP one.
|
||||||
|
.br
|
||||||
|
This function is mostly used to put \fIthrough routes\fP on a figure, and
|
||||||
|
therefore, the \fBT\fP prefixed layer names are the most likely to be used
|
||||||
|
here.
|
||||||
|
.br
|
||||||
|
The \fIlayer\fP argument can take the following legal values:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_CON_V impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_CON_V impossible : no or illegal abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure has either no abutment box defined yet, or has an heigth
|
||||||
|
of zero. \fBDEF_AB\fP is to be called.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a wire through the figure \(**/
|
||||||
|
THRU_CON_V(TALU2, 1, "grumf", 12L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
.\" $Id: GENLIB_THRU_H.3,v 1.1 2000/09/28 15:20:01 fred Exp $
|
||||||
|
.\" @(#)THRU_H.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
THRU_H
|
||||||
|
.XE \}
|
||||||
|
.TH THRU_H 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
\fBTHRU_H\fP \- draw an horizontal wire from side to side of the
|
||||||
|
\fIabutment box\fP of the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void THRU_H(layer, width, y)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
long y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the wire
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the wire
|
||||||
|
.TP
|
||||||
|
\fIy\fP
|
||||||
|
Absolute y coordinate of the wire
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBTHRU_H\fP adds an horizontal segment in the current layout cell.
|
||||||
|
The \fIy\fP coordinates gives the wire its vertical position, horizontal ones
|
||||||
|
beeing extracted from the figure \fIabutment box\fP.
|
||||||
|
The segment is drawn thru the figure, from one side of the \fIabutment box\fP
|
||||||
|
to the other side.
|
||||||
|
.br
|
||||||
|
This function is mostly used to put \fIthrough routes\fP on a figure, and
|
||||||
|
therefore, the \fBT\fP prefixed layer names are the most likely to be used
|
||||||
|
here.
|
||||||
|
.br
|
||||||
|
The \fIlayer\fP argument can take the following legal values:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_H impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_H impossible : no or illegal abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure has either no abutment box defined yet, or has a width
|
||||||
|
of zero. \fBDEF_AB\fP is to be called.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a wire through the figure \(**/
|
||||||
|
THRU_H(TALU2, 1, 32L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
.\" $Id: GENLIB_THRU_V.3,v 1.1 2000/09/28 15:20:01 fred Exp $
|
||||||
|
.\" @(#)THRU_V.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
THRU_V
|
||||||
|
.XE \}
|
||||||
|
.TH THRU_V 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
THRU_V \- draw a vertical wire from side to side of the
|
||||||
|
\fIabutment box\fP of the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void THRU_V(layer, width, x)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
long x;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the wire
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the wire
|
||||||
|
.TP
|
||||||
|
\fIx\fP
|
||||||
|
Absolute x coordinate of the wire
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBTHRU_V\fP adds a vertical segment in the current layout cell.
|
||||||
|
The \fIx\fP coordinates gives the wire its horizontal position, vertical ones
|
||||||
|
beeing extracted from the figure \fIabutment box\fP.
|
||||||
|
The segment is drawn thru the figure, from one side of the \fIabutment box\fP
|
||||||
|
to the other side.
|
||||||
|
.br
|
||||||
|
This function is mostly used to put \fIthrough routes\fP on a figure, and
|
||||||
|
therefore, the \fBT\fP prefixed layer names are the most likely to be used
|
||||||
|
here.
|
||||||
|
.br
|
||||||
|
The \fIlayer\fP argument can take the following legal values:
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_V impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place a connector inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"THRU_V impossible : no or illegal abutment box"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The current figure has either no abutment box defined yet, or has a width
|
||||||
|
of zero. \fBDEF_AB\fP is to be called.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
/\(** Put a wire through the figure \(**/
|
||||||
|
THRU_V(TALU2, 1, 32L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_CON_V (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
.\" $Id: GENLIB_UNFLATTEN_LOFIG.3,v 1.1 2000/09/28 15:20:01 fred Exp $
|
||||||
|
.\" @(#)UNFLATTEN_LOFIG.3 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
UNFLATTEN_LOFIG
|
||||||
|
.XE \}
|
||||||
|
.TH UNFLATTEN_LOFIG 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
\fBUNFLATTEN_LOFIG\fP \- creates a hierarchy level from instances in the current logical figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void UNFLATTEN_LOFIG(figurename, instancename, list_of_instances, 0)
|
||||||
|
char \(**figurename;
|
||||||
|
char \(**instancename;
|
||||||
|
char \(**list_of_instances;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIfigurename\fP
|
||||||
|
Name of the figure of the new hierarchy to be created
|
||||||
|
.TP
|
||||||
|
\fIinstancename\fP
|
||||||
|
Name to be given at the instanciation of \fIfigurename\fP into the current
|
||||||
|
structual figure
|
||||||
|
.TP
|
||||||
|
\fIlist_of_instances\fP
|
||||||
|
List of strings representing the instances to be inserted into the new figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBUNFLATTEN_LOFIG\fP creates a new level of hierarchy, whose model name will
|
||||||
|
be \fIfigurename\fP, and instanciate it under the name \fIinstancename\fP in
|
||||||
|
the current figure.
|
||||||
|
The instances whose name belong to the \fIlist_of_instances\fP parameters are
|
||||||
|
added in the new figure, and destroyed from the current figure.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_LOFIG("mycell");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
/\(** Place an instance \(**/
|
||||||
|
LOINS("model","instance", "sig1", "sig2", EOL);
|
||||||
|
/\(** flatten an instance \(**/
|
||||||
|
UNFLATTEN_LOFIG("newfig", "newins", "instance", ..., 0);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
SAVE_LOFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR FLATTEN_LOFIG (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
.\" $Id: GENLIB_WIDTH.3,v 1.1 2000/09/28 15:20:01 fred Exp $
|
||||||
|
.\" @(#)WIDTH.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
WIDTH
|
||||||
|
.XE \}
|
||||||
|
.TH WIDTH 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
WIDTH \- compute the width of a model
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
long WIDTH(cellname)
|
||||||
|
char \(**cellname;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIcellname\fP
|
||||||
|
Name of the cell which width is needed
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBWIDTH\fP looks for the figure called \fIcellname\fP on memory, and then on
|
||||||
|
disk. When found, the figure \fIabutment box\fP width is calculated, and
|
||||||
|
returned.
|
||||||
|
.SH RETURN VALUE
|
||||||
|
\fBWIDTH\fP returns a long int beeing the cell \fIabutment box\fP width.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
long cellWidth;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
cellWidth = WIDTH("n1_y");
|
||||||
|
DEF_PHFIG("pwet");
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
PLACE("na2_y","ins1", NOSYM, 0L, 4 * cellWidth);
|
||||||
|
/\(** Save all that on disk \(**/
|
||||||
|
DEF_AB(0L, 0L, 0L, 0L);
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR HEIGHT (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,175 @@
|
||||||
|
.\" $Id: GENLIB_WIRE1.3,v 1.1 2000/09/28 15:20:01 fred Exp $
|
||||||
|
.\" @(#)WIRE1.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
WIRE1
|
||||||
|
.XE \}
|
||||||
|
.TH WIRE1 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
WIRE1 \- place a physical segment in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void WIRE1(layer, width, ins1, con1, index1, ins2, con2, index2)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**ins1, \(**con1, \(**ins2, \(**con2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the segment
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the segment
|
||||||
|
.TP
|
||||||
|
\fIins1\fP
|
||||||
|
Name of the instance in which the connector \fIcon1\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon1\fP
|
||||||
|
Name of a connector, or reference, used as first endpoint of the wire
|
||||||
|
.TP
|
||||||
|
\fIins2\fP
|
||||||
|
Name of the instance in which the connector \fIcon2\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon2\fP
|
||||||
|
Name of a connector, or reference, used as last endpoint of the wire
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBWIRE1\fP adds a segment made of the \fIlayer\fP level in the current
|
||||||
|
layout cell, the starting point
|
||||||
|
beeing the connector, or reference, \fIcon1\fP of the instance \fIins1\fP, and
|
||||||
|
the ending point beeing the connector, or reference, \fIcon2\fP of the instance
|
||||||
|
\fIins1\fP. The segment is drawn between the coordinates of \fIcon1\fP in
|
||||||
|
the current figure and the
|
||||||
|
coordinates of \fIcon2\fP in the current figure.
|
||||||
|
.LP
|
||||||
|
If the endpoints are connectors, the indexes \fIindex1\fP and \fIindex2\fP must
|
||||||
|
respectivly refer to \fIcon1\fP and \fIcon2\fP.
|
||||||
|
If they are references, then they are not taked care of.
|
||||||
|
One shall notice that connectors and references of a given model should not
|
||||||
|
share names if \fBWIRE1\fP is to be used.
|
||||||
|
.LP
|
||||||
|
The \fIlayer\fP argument can take the following legal values :
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE1 impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphseg : x1, y1, x2, y2"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A symbolic segment must be either vertical or horizontal, so either
|
||||||
|
\fIx1 = x2\fP, or \fIy1 = y2\fP. Since \fBWIRE1\fP creates a segment from
|
||||||
|
relative coordinates, care must be taken to follow the previous rule.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE1 impossible : same name \fIconX\fP, for connector and reference in
|
||||||
|
\fIinsX\fP"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The model of the instance \fIinsX\fP has both a connector and a reference
|
||||||
|
that matches the \fIconX\fP name. This is not legal since genlib doesn't know
|
||||||
|
which one to choose as point.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsX\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsX\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r_addin_1", NOSYM, 0, 0);
|
||||||
|
PLACE_RIGHT("gapgn_b", "pg", NOSYM);
|
||||||
|
PLACE_RIGHT("gacin_b", "r_addin_2", NOSYM);
|
||||||
|
/\(** Draw a segment \(**/
|
||||||
|
WIRE1(ALU1, 1, "r_addin_1", "out", 0L, "r_addin_2", "in", 1L);
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_SEG (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3),
|
||||||
|
.BR WIRE2 (3),
|
||||||
|
.BR WIRE3 (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,181 @@
|
||||||
|
.\" $Id: GENLIB_WIRE2.3,v 1.1 2000/09/28 15:20:02 fred Exp $
|
||||||
|
.\" @(#)WIRE2.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
WIRE2
|
||||||
|
.XE \}
|
||||||
|
.TH WIRE2 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
WIRE2 \- place two physical segments in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void WIRE2(layer, width, ins1, con1, index1, ins2, con2, index2, x, y)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**ins1, \(**con1, \(**ins2, \(**con2;
|
||||||
|
long x, y;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the segment
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the segment
|
||||||
|
.TP
|
||||||
|
\fIins1\fP
|
||||||
|
Name of the instance in which the connector \fIcon1\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon1\fP
|
||||||
|
Name of a connector, or reference, used as first endpoint of the wire
|
||||||
|
.TP
|
||||||
|
\fIins2\fP
|
||||||
|
Name of the instance in which the connector \fIcon2\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon2\fP
|
||||||
|
Name of a connector, or reference, used as last endpoint of the wire
|
||||||
|
.TP
|
||||||
|
\fIx, y\fP
|
||||||
|
Coordinates of the segment's elbow in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBWIRE2\fP adds two segments made of the \fIlayer\fP level in the current
|
||||||
|
layout cell, the starting point
|
||||||
|
beeing the connector, or reference, \fIcon1\fP of the instance \fIins1\fP, and
|
||||||
|
the ending point beeing the connector, or reference, \fIcon2\fP of the instance
|
||||||
|
\fIins1\fP. The first segment is drawn between the coordinates of \fIcon1\fP in
|
||||||
|
the current figure and \fIx, y\fP, and the second one between \fIx, y\fP and the
|
||||||
|
coordinates of \fIcon2\fP in the current figure.
|
||||||
|
.LP
|
||||||
|
If the endpoints are connectors, the indexes \fIindex1\fP and \fIindex2\fP must
|
||||||
|
respectivly refer to \fIcon1\fP and \fIcon2\fP.
|
||||||
|
If they are references, then they are not taked care of.
|
||||||
|
One shall notice that connectors and references of a given model should not
|
||||||
|
share names if \fBWIRE2\fP is to be used.
|
||||||
|
.LP
|
||||||
|
The \fIlayer\fP argument can take the following legal values :
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE2 impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphseg : x1, y1, x2, y2"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A symbolic segment must be either vertical or horizontal, so either
|
||||||
|
\fIx1 = x2\fP, or \fIy1 = y2\fP. Since \fBWIRE2\fP creates segments from
|
||||||
|
relative coordinates, care must be taken to follow the previous rule.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE2 impossible : same name \fIconX\fP, for connector and reference in
|
||||||
|
\fIinsX\fP"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The model of the instance \fIinsX\fP has both a connector and a reference
|
||||||
|
that matches the \fIconX\fP name. This is not legal since genlib doesn't know
|
||||||
|
which one to choose as point.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsX\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsX\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
/\(** Create a figure to work on \(**/
|
||||||
|
DEF_PHFIG("cell");
|
||||||
|
PLACE("gaci0_b", "r_addin_1", NOSYM, 0, 0);
|
||||||
|
PLACE_TOP("gacin_b", "r_addin_2", NOSYM);
|
||||||
|
PLACE_RIGHT("gapgn_b", "pg", NOSYM);
|
||||||
|
/\(** Draw a segment \(**/
|
||||||
|
WIRE2(ALU1, 1, "r_addin_1", "out", 0L, "pg", "g", 1L,
|
||||||
|
GET_CON_X("pg", "g", 1L),
|
||||||
|
GET_CON_Y("r_addin_1", "out", 0L));
|
||||||
|
/\(** Save that on disk \(**/
|
||||||
|
SAVE_PHFIG();
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_SEG (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3),
|
||||||
|
.BR WIRE1 (3),
|
||||||
|
.BR WIRE3 (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,184 @@
|
||||||
|
.\" $Id: GENLIB_WIRE3.3,v 1.1 2000/09/28 15:20:02 fred Exp $
|
||||||
|
.\" @(#)WIRE3.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
|
||||||
|
.if t \{\
|
||||||
|
.so man1/alc_contents.mac
|
||||||
|
.XS \n%
|
||||||
|
.ti 0.2i
|
||||||
|
WIRE3
|
||||||
|
.XE \}
|
||||||
|
.TH WIRE3 3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||||
|
.SH NAME
|
||||||
|
WIRE3 \- place three physical segments in the current figure
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
void WIRE3(layer, width, ins1, con1, index1, ins2, con2, index2, x1, y1, x2, y2)
|
||||||
|
char layer;
|
||||||
|
long width;
|
||||||
|
char \(**ins1, \(**con1, \(**ins2, \(**con2;
|
||||||
|
long x1, y1, x2, y2;
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH PARAMETERS
|
||||||
|
.TP 20
|
||||||
|
\fIlayer\fP
|
||||||
|
Layout layer of the segment
|
||||||
|
.TP
|
||||||
|
\fIwidth\fP
|
||||||
|
Width of the segment
|
||||||
|
.TP
|
||||||
|
\fIins1\fP
|
||||||
|
Name of the instance in which the connector \fIcon1\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon1\fP
|
||||||
|
Name of a connector, or reference, used as first endpoint of the wire
|
||||||
|
.TP
|
||||||
|
\fIins2\fP
|
||||||
|
Name of the instance in which the connector \fIcon2\fP is to be looked for
|
||||||
|
.TP
|
||||||
|
\fIcon2\fP
|
||||||
|
Name of a connector, or reference, used as last endpoint of the wire
|
||||||
|
.TP
|
||||||
|
\fIx1, y1\fP
|
||||||
|
Coordinates of the segment's first elbow endpoint in the current figure
|
||||||
|
.TP
|
||||||
|
\fIx2, y2\fP
|
||||||
|
Coordinates of the segment's second elbow endpoint in the current figure
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBWIRE3\fP adds three segments made of the \fIlayer\fP level in the current
|
||||||
|
layout cell, the starting point
|
||||||
|
beeing the connector, or reference, \fIcon1\fP of the instance \fIins1\fP, and
|
||||||
|
the ending point beeing the connector, or reference, \fIcon2\fP of the instance
|
||||||
|
\fIins1\fP. The first segment is drawn between the coordinates of \fIcon1\fP in
|
||||||
|
the current figure and \fIx1, y1\fP. The second one between \fIx1, y1\fP and
|
||||||
|
\fIx2, y2\fP, and the last, but not the least, between \fIx2, y2\fP and the
|
||||||
|
coordinates of \fIcon2\fP in the current figure.
|
||||||
|
.LP
|
||||||
|
If the endpoints are connectors, the indexes \fIindex1\fP and \fIindex2\fP must
|
||||||
|
respectivly refer to \fIcon1\fP and \fIcon2\fP.
|
||||||
|
If they are references, then they are not taked care of.
|
||||||
|
One shall notice that connectors and references of a given model should not
|
||||||
|
share names if \fBWIRE3\fP is to be used.
|
||||||
|
.LP
|
||||||
|
The \fIlayer\fP argument can take the following legal values :
|
||||||
|
.RS
|
||||||
|
.TP
|
||||||
|
\fBNWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBPWELL\fP
|
||||||
|
.TP
|
||||||
|
\fBNTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBPTIE\fP
|
||||||
|
.TP
|
||||||
|
\fBNDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBPDIF\fP
|
||||||
|
.TP
|
||||||
|
\fBNTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPTRANS\fP
|
||||||
|
.TP
|
||||||
|
\fBPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBALU3\fP
|
||||||
|
.TP
|
||||||
|
\fBTPOLY\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU1\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU2\fP
|
||||||
|
.TP
|
||||||
|
\fBTALU3\fP
|
||||||
|
.RE
|
||||||
|
.SH ERRORS
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE3 impossible : missing DEF_PHFIG"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
|
||||||
|
possible to place an instance inside it.
|
||||||
|
you must call \fBDEF_PHFIG\fP before any other layout action.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal addphseg : x1, y1, x2, y2"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
A symbolic segment must be either vertical or horizontal, so either
|
||||||
|
\fIx1 = x2\fP, or \fIy1 = y2\fP. Since \fBWIRE3\fP creates segments from
|
||||||
|
relative coordinates, care must be taken to follow the previous rule.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"WIRE3 impossible : same name \fIconX\fP, for connector and reference in
|
||||||
|
\fIinsX\fP"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The model of the instance \fIinsX\fP has both a connector and a reference
|
||||||
|
that matches the \fIconX\fP name. This is not legal since genlib doesn't know
|
||||||
|
which one to choose as point.
|
||||||
|
.RE
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
"illegal getphins : instance \fIinsX\fP does not exist"
|
||||||
|
.ft R
|
||||||
|
.RS
|
||||||
|
The instance called \fIinsX\fP does not currently belong to the figure.
|
||||||
|
.RE
|
||||||
|
.SH EXAMPLE
|
||||||
|
.nf
|
||||||
|
.if n \{\
|
||||||
|
.ft B \}
|
||||||
|
.if t \{\
|
||||||
|
.ft CR \}
|
||||||
|
#include <genlib.h>
|
||||||
|
draw_wire(cellHeight)
|
||||||
|
long cellHeight;
|
||||||
|
{
|
||||||
|
/* draw a wire made of 1, 2, or 3 segments, given from and to connectors
|
||||||
|
or reference, and the x and y coordinates of each elbow points */
|
||||||
|
WIRE1(ALU1,1,"lastpg2","g2",1,"cabl31","sg",2);
|
||||||
|
WIRE3(ALU1,1,"cabl31","sp",2, "celout2", "cin", 1,
|
||||||
|
GET_CON_X("cabl31","sp",2),
|
||||||
|
GET_CON_Y("cabl31","sp",2) + cellHeight / 2,
|
||||||
|
GET_CON_X("celout2", "cin", 1),
|
||||||
|
GET_CON_Y("cabl31","sp",2) + cellHeight / 2);
|
||||||
|
WIRE1(POLY,1,"celout3","g",1,"celout2","co",0);
|
||||||
|
}
|
||||||
|
.ft R
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR genlib (1),
|
||||||
|
.BR DEF_PHFIG (3),
|
||||||
|
.BR SAVE_PHFIG (3),
|
||||||
|
.BR COPY_UP_SEG (3),
|
||||||
|
.BR PHSEG (3),
|
||||||
|
.BR THRU_H (3),
|
||||||
|
.BR THRU_CON_H (3),
|
||||||
|
.BR THRU_V (3),
|
||||||
|
.BR THRU_CON_V (3),
|
||||||
|
.BR WIRE1 (3),
|
||||||
|
.BR WIRE2 (3).
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
Loading…
Reference in New Issue