Importing GENLIB sources into the new CVS tree
This commit is contained in:
parent
450caea9f5
commit
c14a26090b
|
@ -0,0 +1 @@
|
|||
SUBDIRS = src man1 man3
|
|
@ -0,0 +1,64 @@
|
|||
dnl
|
||||
dnl This file is part of the Alliance CAD System
|
||||
dnl Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||
dnl Universite Pierre et Marie Curie
|
||||
dnl
|
||||
dnl Home page : http://www-asim.lip6.fr/alliance/
|
||||
dnl E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||
dnl
|
||||
dnl This library is free software; you can redistribute it and/or modify it
|
||||
dnl under the terms of the GNU Library General Public License as published
|
||||
dnl by the Free Software Foundation; either version 2 of the License, or (at
|
||||
dnl your option) any later version.
|
||||
dnl
|
||||
dnl Alliance VLSI CAD System is distributed in the hope that it will be
|
||||
dnl useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
dnl Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU General Public License along
|
||||
dnl with the GNU C Library; see the file COPYING. If not, write to the Free
|
||||
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
dnl
|
||||
dnl Purpose : Auto stuffing Alliance
|
||||
dnl Almost ten years since I wrote this stuff, I just can't
|
||||
dnl believe it
|
||||
dnl Date : 01/02/2002
|
||||
dnl Author : Frederic Petrot <Frederic.Petrot@lip6.fr>
|
||||
dnl $Id: configure.in,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
dnl
|
||||
dnl
|
||||
AC_INIT(src/genlib.c)
|
||||
AM_INIT_AUTOMAKE(genlib, 3.3)
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_CC
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS(strings.h unistd.h)
|
||||
AC_C_CONST
|
||||
AC_TYPE_SIGNAL
|
||||
AC_PROG_RANLIB
|
||||
AC_CHECK_PROG(SED, sed, sed)
|
||||
|
||||
changequote(,)dnl
|
||||
if test -z $SED ; then
|
||||
echo "Cannot find sed here! Quiting, ..."
|
||||
exit 1
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
dnl Setting pathes as necessary, using externally set shell variables
|
||||
changequote(,)dnl
|
||||
INCLUDES=-I${ALLIANCE_INCLUDE}
|
||||
LDFLAGS=-L${ALLIANCE_LIB}
|
||||
changequote([,])dnl
|
||||
|
||||
AC_SUBST(INCLUDES)
|
||||
AC_SUBST(LDFLAGS)
|
||||
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
src/Makefile
|
||||
man1/Makefile
|
||||
man3/Makefile
|
||||
])
|
|
@ -0,0 +1,59 @@
|
|||
man_MANS = genlib.1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,283 @@
|
|||
.\" $Id: genlib.1,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)Labo.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
|
||||
.TH GENLIB 1 "October 1, 1997" "ASIM/LIP6" "ALLIANCE USER COMMANDS"
|
||||
.SH NAME
|
||||
genlib \- Procedural design language based upon C.
|
||||
.so man1/alc_origin.1
|
||||
.SH DESCRIPTION
|
||||
\fBgenlib\fP is a set of \fIC\fP functions dedicated to procedural generation
|
||||
purposes.
|
||||
From a user point of view, \fBgenlib\fP is a circuit's description language
|
||||
that allows standard \fIC\fP programming flow control, variable use, and
|
||||
specialized functions in order to handle vlsi objects.
|
||||
.br
|
||||
Based upon the \fIAlliance\fP \fBmbk\fP data structures, the \fBgenlib\fP
|
||||
language gives the user the ability to describe both netlist and
|
||||
layout views, thus allowing both standard cell and full custom approachs.
|
||||
.br
|
||||
.TP 20
|
||||
Netlist capture :
|
||||
\- it is a hierachical structural description of
|
||||
a circuit in terms of connectors (I/Os), signals (nets), and instances.
|
||||
.br
|
||||
The function calls used to handle the netlist view are
|
||||
.RS
|
||||
GENLIB_DEF_LOFIG(3)
|
||||
.br
|
||||
GENLIB_SAVE_LOFIG(3)
|
||||
.br
|
||||
GENLIB_LOINS(3)
|
||||
.br
|
||||
GENLIB_LOCON(3)
|
||||
.br
|
||||
GENLIB_LOSIG(3)
|
||||
.br
|
||||
GENLIB_FLATTEN_LOFIG(3)
|
||||
.br
|
||||
Some facilities, in order to create vectors are also available :
|
||||
.br
|
||||
GENLIB_BUS(3)
|
||||
.br
|
||||
GENLIB_ELM(3)
|
||||
.RE
|
||||
.TP 20
|
||||
Standard cell placement
|
||||
The following functions allows to define a placement file for a standard cell
|
||||
design.
|
||||
This file can be used by the standard cell router \fBscr\fP(1).
|
||||
.RS
|
||||
GENLIB_DEF_PHSC(3)
|
||||
.br
|
||||
GENLIB_SAVE_PHSC(3)
|
||||
.br
|
||||
GENLIB_SC_PLACE(3)
|
||||
.br
|
||||
GENLIB_SC_RIGHT(3)
|
||||
.br
|
||||
GENLIB_SC_TOP(3)
|
||||
.br
|
||||
GENLIB_SC_LEFT(3)
|
||||
.br
|
||||
GENLIB_SC_BOTTOM(3)
|
||||
.br
|
||||
.RE
|
||||
.TP 20
|
||||
Full custom symbolic layout
|
||||
Those functions are dedicated to optimized full custom procedural layout.
|
||||
In order to provide some process independance, \fIAlliance\fP uses a
|
||||
symbolic layout approach (fixed grid without compaction.)
|
||||
.br
|
||||
The symbolic objects are segments (wires), vias (contacts), connectors (I/Os),
|
||||
references and instances.
|
||||
For more informations, see \fBphseg\fP(1), \fBphvia\fP(1), \fBphcon\fP(1),
|
||||
\fBphref\fP(1), \fBphins\fP(1), and \fBalc\fP(1).
|
||||
.br
|
||||
GENLIB_DEF_PHFIG(3)
|
||||
.br
|
||||
GENLIB_SAVE_PHFIG(3)
|
||||
.br
|
||||
GENLIB_DEF_AB(3)
|
||||
.br
|
||||
GENLIB_DEF_PHINS(3)
|
||||
.br
|
||||
GENLIB_PHCON(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_CON(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_CON_FACE(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_ALL_CON(3)
|
||||
.br
|
||||
GENLIB_PHSEG(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_SEG(3)
|
||||
.br
|
||||
GENLIB_THRU_H(3)
|
||||
.br
|
||||
GENLIB_THRU_V(3)
|
||||
.br
|
||||
GENLIB_THRU_CON_H(3)
|
||||
.br
|
||||
GENLIB_THRU_CON_V(3)
|
||||
.br
|
||||
GENLIB_WIRE1(3)
|
||||
.br
|
||||
GENLIB_WIRE2(3)
|
||||
.br
|
||||
GENLIB_WIRE3(3)
|
||||
.br
|
||||
GENLIB_PHVIA(3)
|
||||
.br
|
||||
GENLIB_PLACE(3)
|
||||
.br
|
||||
GENLIB_PLACE_RIGHT(3)
|
||||
.br
|
||||
GENLIB_PLACE_TOP(3)
|
||||
.br
|
||||
GENLIB_PLACE_LEFT(3)
|
||||
.br
|
||||
GENLIB_PLACE_BOTTOM(3)
|
||||
.br
|
||||
GENLIB_PLACE_ON(3)
|
||||
.br
|
||||
GENLIB_PHREF(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_REF(3)
|
||||
.br
|
||||
GENLIB_COPY_UP_ALL_REF(3)
|
||||
.br
|
||||
GENLIB_PLACE_VIA_REF(3)
|
||||
.br
|
||||
GENLIB_PLACE_CON_REF(3)
|
||||
.br
|
||||
GENLIB_PLACE_SEG_REF(3)
|
||||
.br
|
||||
GENLIB_FLATTEN_PHFIG(3)
|
||||
.br
|
||||
GENLIB_GET_REF_X(3)
|
||||
.br
|
||||
GENLIB_GET_REF_Y(3)
|
||||
.br
|
||||
GENLIB_GET_CON_X(3)
|
||||
.br
|
||||
GENLIB_GET_CON_Y(3)
|
||||
.br
|
||||
GENLIB_HEIGHT(3)
|
||||
.br
|
||||
GENLIB_WIDTH(3)
|
||||
.RE
|
||||
.LP
|
||||
In order to have information about each of these functions, use the online
|
||||
documentation with \fBman\fP(1), as in ``man function-name''.
|
||||
.br
|
||||
.LP
|
||||
It is strongly recommended to read some books
|
||||
on C programming, in order to take full advantage of the C flow control
|
||||
possibilities, as it may greatly reduce the size of a \fBgenlib\fP source code.
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.TP 20
|
||||
the variables are :
|
||||
.ta 25n
|
||||
\fIname\fP \fIdefault value\fP
|
||||
.br
|
||||
MBK_IN_LO(1) al
|
||||
.br
|
||||
MBK_OUT_LO(1) al
|
||||
.br
|
||||
MBK_IN_PH(1) ap
|
||||
.br
|
||||
MBK_OUT_PH(1) ap
|
||||
.br
|
||||
MBK_CATA_LIB(1) .
|
||||
.br
|
||||
MBK_WORK_LIB(1) .
|
||||
.br
|
||||
MBK_CATAL_NAME(1) CATAL
|
||||
.LP
|
||||
see the corresponding manual pages for further informations.
|
||||
.br
|
||||
In order to compile and execute a genlib file, one has to call \fBgenlib\fP
|
||||
with one argument, that is the \fBgenlib\fP source file.
|
||||
The source file must have a .c extension, but the extension should not be
|
||||
mentionned on the command line.
|
||||
.PP
|
||||
The names used in genlib, as arguments to genlib functions, should be
|
||||
alphanumerical, including the underscore.
|
||||
They also are not case sensitive, so \fBVDD\fP is equivalent to \fBvdd\fP.
|
||||
Vectorized connectors or signal can be declareds using the \fB[n:m]\fP
|
||||
construct.
|
||||
.SH OPTIONS
|
||||
Two options can alter the behavior of \fBgenlib\fP :
|
||||
.TP 20
|
||||
-v
|
||||
displays everything that is to be done during the compilation and
|
||||
execution process: verbose mode.
|
||||
.TP
|
||||
-k
|
||||
keeps the executable along with the compilation Makefile after completion.
|
||||
.SH EXAMPLES
|
||||
\fBgenlib\fP -v amd2901
|
||||
.br
|
||||
Compiles and runs a \fBgenlib\fP source file called amd2901.c
|
||||
.SH SEE ALSO
|
||||
.BR mbk (1).
|
||||
|
||||
.SH DIAGNOSTICS
|
||||
.RS
|
||||
\fBCompilation aborted\fP
|
||||
.RE
|
||||
This indicates either a \fIC\fP syntaxic error, most likely, or a
|
||||
misinstallation of the \fBmbk\fP package of the \fIAlliance\fP CAD system,
|
||||
if the error is \fBcannot find file genlib.h\fB.
|
||||
.RS
|
||||
\fBLink aborted\fP
|
||||
.RE
|
||||
This indicates a
|
||||
misinstallation of the \fBmbk\fP package of the \fIAlliance\fP CAD system,
|
||||
see your system administrator for details.
|
||||
.PP
|
||||
Many errors may occur while executing the source file, so refer to the proper
|
||||
genlib function manual for more.
|
||||
|
||||
All genlib functions are listed below alphabetically sorted.
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
.so ../man3/GENLIB_BUS.3
|
||||
.so ../man3/GENLIB_COPY_UP_ALL_CON.3
|
||||
.so ../man3/GENLIB_COPY_UP_ALL_REF.3
|
||||
.so ../man3/GENLIB_COPY_UP_CON.3
|
||||
.so ../man3/GENLIB_COPY_UP_CON_FACE.3
|
||||
.so ../man3/GENLIB_COPY_UP_REF.3
|
||||
.so ../man3/GENLIB_COPY_UP_SEG.3
|
||||
.so ../man3/GENLIB_DEF_AB.3
|
||||
.so ../man3/GENLIB_DEF_LOFIG.3
|
||||
.so ../man3/GENLIB_DEF_PHFIG.3
|
||||
.so ../man3/GENLIB_DEF_PHINS.3
|
||||
.so ../man3/GENLIB_DEF_PHSC.3
|
||||
.so ../man3/GENLIB_ELM.3
|
||||
.so ../man3/GENLIB_FLATTEN_ALL_LOINS.3
|
||||
.so ../man3/GENLIB_FLATTEN_ALL_PHINS.3
|
||||
.so ../man3/GENLIB_FLATTEN_LOFIG.3
|
||||
.so ../man3/GENLIB_FLATTEN_PHFIG.3
|
||||
.so ../man3/GENLIB_GET_CON_X.3
|
||||
.so ../man3/GENLIB_GET_CON_Y.3
|
||||
.so ../man3/GENLIB_GET_INS_X.3
|
||||
.so ../man3/GENLIB_GET_INS_Y.3
|
||||
.so ../man3/GENLIB_GET_REF_X.3
|
||||
.so ../man3/GENLIB_GET_REF_Y.3
|
||||
.so ../man3/GENLIB_HEIGHT.3
|
||||
.so ../man3/GENLIB_LOAD_LOFIG.3
|
||||
.so ../man3/GENLIB_LOAD_PHFIG.3
|
||||
.so ../man3/GENLIB_LOCON.3
|
||||
.so ../man3/GENLIB_LOINS.3
|
||||
.so ../man3/GENLIB_LOINSE.3
|
||||
.so ../man3/GENLIB_LOSIG.3
|
||||
.so ../man3/GENLIB_LOSIGMERGE.3
|
||||
.so ../man3/GENLIB_LOTRS.3
|
||||
.so ../man3/GENLIB_OUTLINE.3
|
||||
.so ../man3/GENLIB_PHCON.3
|
||||
.so ../man3/GENLIB_PHREF.3
|
||||
.so ../man3/GENLIB_PHSEG.3
|
||||
.so ../man3/GENLIB_PHVIA.3
|
||||
.so ../man3/GENLIB_PLACE.3
|
||||
.so ../man3/GENLIB_PLACE_BOTTOM.3
|
||||
.so ../man3/GENLIB_PLACE_CON_REF.3
|
||||
.so ../man3/GENLIB_PLACE_LEFT.3
|
||||
.so ../man3/GENLIB_PLACE_ON.3
|
||||
.so ../man3/GENLIB_PLACE_RIGHT.3
|
||||
.so ../man3/GENLIB_PLACE_SEG_REF.3
|
||||
.so ../man3/GENLIB_PLACE_TOP.3
|
||||
.so ../man3/GENLIB_PLACE_VIA_REF.3
|
||||
.so ../man3/GENLIB_REVERSE_PHCON.3
|
||||
.so ../man3/GENLIB_SAVE_LOFIG.3
|
||||
.so ../man3/GENLIB_SAVE_PHFIG.3
|
||||
.so ../man3/GENLIB_SAVE_PHSC.3
|
||||
.so ../man3/GENLIB_SC_BOTTOM.3
|
||||
.so ../man3/GENLIB_SC_LEFT.3
|
||||
.so ../man3/GENLIB_SC_PLACE.3
|
||||
.so ../man3/GENLIB_SC_RIGHT.3
|
||||
.so ../man3/GENLIB_SC_TOP.3
|
||||
.so ../man3/GENLIB_UNFLATTEN_LOFIG.3
|
||||
.so ../man3/GENLIB_WIRE1.3
|
||||
.so ../man3/GENLIB_WIRE2.3
|
||||
.so ../man3/GENLIB_WIRE3.3
|
|
@ -0,0 +1,81 @@
|
|||
.\" $Id: GENLIB_BUS.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_BUS
|
||||
.XE \}
|
||||
.TH GENLIB_BUS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_BUS \- Creates a bus name for netlist
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
char \(**GENLIB_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
|
||||
\fIGENLIB_BUS\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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON(GENLIB_BUS("i", b, e), INPUT, GENLIB_BUS("sig", b, e);
|
||||
GENLIB_LOCON("o[2:0]", OUTPUT, "sigout[4:6]");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", GENLIB_BUS("sig", e/2), "sigout[6]", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_ELM (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
.\" $Id: GENLIB_COPY_UP_ALL_CON.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_ALL_CON
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_ALL_CON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_ALL_CON impossible : missing GENLIB_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 *** GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
.
|
||||
GENLIB_PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Copy all connectors \(**/
|
||||
GENLIB_COPY_UP_ALL_CON(NORTH, "insN", YES);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON_FACE (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_CON_V (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
.\" $Id: GENLIB_COPY_UP_ALL_REF.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_ALL_REF
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_ALL_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_ALL_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_COPY_UP_ALL_REF("ref_con", "r1", NO);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR dpr (1),
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_VIA_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
.\" $Id: GENLIB_COPY_UP_CON.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_CON
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_CON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_CON impossible : missing GENLIB_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 *** GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
.
|
||||
GENLIB_PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Put a connector \(**/
|
||||
GENLIB_COPY_UP_CON("i0", 1, "insN", "inz0");
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON_FACE (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_CON_V (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
.\" $Id: GENLIB_COPY_UP_CON_FACE.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_CON_FACE
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_CON_FACE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_CON_FACE impossible : missing GENLIB_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 *** GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
.
|
||||
GENLIB_PLACE_LEFT("gaer0_f", "insN", SYMXY);
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Put a connector \(**/
|
||||
GENLIB_COPY_UP_CON_FACE("i0", 1, "insN", "inz0");
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_CON_V (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
.\" $Id: GENLIB_COPY_UP_REF.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_REF
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_COPY_UP_REF("mux0_s", "r1", "out_s");
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR dpr (1),
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_VIA_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
.\" $Id: GENLIB_COPY_UP_SEG.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_COPY_UP_SEG
|
||||
.XE \}
|
||||
.TH GENLIB_COPY_UP_SEG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_COPY_UP_SEG impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("z2l_y", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a segment \(**/
|
||||
GENLIB_COPY_UP_SEG("mux0_s", "r1", "out_s");
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_THRU_H (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_V (3),
|
||||
.BR GENLIB_THRU_CON_V (3),
|
||||
.BR GENLIB_WIRE1 (3),
|
||||
.BR GENLIB_WIRE2 (3),
|
||||
.BR GENLIB_WIRE3 (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
.\" $Id: GENLIB_DEF_AB.3,v 1.1 2002/03/08 14:08:09 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_DEF_AB
|
||||
.XE \}
|
||||
.TH GENLIB_DEF_AB.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_DEF_AB impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("model","i1", NOSYM,0L,0L);
|
||||
GENLIB_PLACE("model","i2", NOSYM,120L,40L);
|
||||
GENLIB_DEF_PHINS("i1");
|
||||
GENLIB_PLACE_TOP("model2", "i3", NOSYM);
|
||||
/\(** define the new abutment box as the standard envelop \(**/
|
||||
GENLIB_DEF_AB(0, 0, 0, 0);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_SAVE_PHFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
.\" $Id: GENLIB_DEF_LOFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_DEF_LOFIG
|
||||
.XE \}
|
||||
.TH GENLIB_DEF_LOFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_DEF_LOFIG \- open a netlist model as current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("cell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", "sig3", "vdd", "vss", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_SAVE_LOFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
.\" $Id: GENLIB_DEF_PHFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_DEF_PHFIG
|
||||
.XE \}
|
||||
.TH GENLIB_DEF_PHFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_DEF_PHFIG \- open a layout model as current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("mycell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("mymodel","firstinstance", NOSYM,0L,0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHSC (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
.\" $Id: GENLIB_DEF_PHINS.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_DEF_PHINS
|
||||
.XE \}
|
||||
.TH GENLIB_DEF_PHINS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_DEF_PHINS \- define a new reference instance
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_DEF_PHINS impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("model","i1", NOSYM,0L,0L);
|
||||
GENLIB_PLACE("model","i2", NOSYM,120L,40L);
|
||||
GENLIB_DEF_PHINS("i1");
|
||||
GENLIB_PLACE_TOP("model2", "i3", NOSYM);
|
||||
GENLIB_DEF_AB(0, 0, 0, 0);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_RIGHT (3),
|
||||
.BR GENLIB_PLACE_LEFT (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_SC_PLACE (3),
|
||||
.BR GENLIB_SC_TOP (3),
|
||||
.BR GENLIB_SC_RIGHT (3),
|
||||
.BR GENLIB_SC_LEFT (3),
|
||||
.BR GENLIB_SC_BOTTOM (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
.\" $Id: GENLIB_DEF_PHSC.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_DEF_PHSC
|
||||
.XE \}
|
||||
.TH GENLIB_DEF_PHSC.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("mycell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_SC_PLACE("instance", NOSYM,0L,0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_SAVE_PHSC (3),
|
||||
.BR GENLIB_SC_PLACE (3),
|
||||
.BR GENLIB_SC_TOP (3),
|
||||
.BR GENLIB_SC_BOTTOM (3),
|
||||
.BR GENLIB_SC_LEFT (3),
|
||||
.BR GENLIB_SC_RIGHT (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
.\" $Id: GENLIB_ELM.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_ELM
|
||||
.XE \}
|
||||
.TH GENLIB_ELM.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_ELM \- Creates a single element bus name for netlist
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
char \(**GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON(GENLIB_BUS("i", b, e), INPUT, BUS("sig", b, e);
|
||||
GENLIB_LOCON("o[2:0]", OUTPUT, "sigout[4:6]");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", GENLIB_ELM("sig", e/2), "sigout[6]", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_BUS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
.\" $Id: GENLIB_FLATTEN_ALL_LOINS.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_FLATTEN_ALL_LOINS
|
||||
.XE \}
|
||||
.TH GENLIB_FLATTEN_ALL_LOINS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** flatten all figure instance \(**/
|
||||
GENLIB_FLATTEN_ALL_LOINS(YES);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_LOINS (3)
|
||||
.BR GENLIB_FLATTEN_LOFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
.\" $Id: GENLIB_FLATTEN_ALL_PHINS.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_FLATTEN_ALL_PHINS
|
||||
.XE \}
|
||||
.TH GENLIB_FLATTEN_ALL_PHINS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("mycell");
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Place an instance \(**/
|
||||
PHINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** flatten all figure instance \(**/
|
||||
GENLIB_FLATTEN_ALL_PHINS(YES, YES);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_LEFT (3),
|
||||
.BR GENLIB_PLACE_RIGHT (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_PLACE_ON (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
.\" $Id: GENLIB_FLATTEN_LOFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_FLATTEN_LOFIG
|
||||
.XE \}
|
||||
.TH GENLIB_FLATTEN_LOFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** flatten an instance \(**/
|
||||
GENLIB_FLATTEN_LOFIG("instance", YES);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_UNFLATTEN_LOFIG (3).
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
.\" $Id: GENLIB_FLATTEN_PHFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_FLATTEN_PHFIG
|
||||
.XE \}
|
||||
.TH GENLIB_FLATTEN_PHFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("mycell");
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("model","instance", SYM_X, 0, 0);
|
||||
/\(** flatten an instance \(**/
|
||||
GENLIB_FLATTEN_PHFIG("instance", YES);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
.\" $Id: GENLIB_GET_CON_X.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_CON_X
|
||||
.XE \}
|
||||
.TH GENLIB_GET_CON_X.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_CON_X \- retrieve the x coordinate of an instance connector
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_CON_X impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Get a connector \(**/
|
||||
x = GENLIB_GET_CON_X("r1", "a", 1);
|
||||
.
|
||||
.
|
||||
GENLIB_PHVIA(x, y, CONT_VIA);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_GET_CON_Y (3),
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_Y (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
.\" $Id: GENLIB_GET_CON_Y.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_CON_Y
|
||||
.XE \}
|
||||
.TH GENLIB_GET_CON_Y.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_CON_Y \- retrieve the x coordinate of an instance connector
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_CON_Y impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Get a connector \(**/
|
||||
y = GENLIB_GET_CON_Y("r1", "a", 1);
|
||||
.
|
||||
.
|
||||
GENLIB_PHVIA(x, y, CONT_VIA);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_GET_CON_X (3),
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_Y (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
.\" $Id: GENLIB_GET_INS_X.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_INS_X
|
||||
.XE \}
|
||||
.TH GENLIB_GET_INS_X.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_INS_X \- retrieve the x coordinate of an instance
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_INS_X impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
GENLIB_PLACE_TOP("gaci0_b", "r2", SYM_X);
|
||||
GENLIB_PLACE_RIGHT("gaci0_b", "r3", SYM_Y);
|
||||
/\(** Get a connector \(**/
|
||||
x = GENLIB_GET_INS_X("r3");
|
||||
y = GENLIB_GET_INS_Y("r3");
|
||||
.
|
||||
.
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR PHINS (3),
|
||||
.BR GENLIB_GET_INS_Y (3),
|
||||
.BR GENLIB_GET_CON_X (3),
|
||||
.BR GENLIB_GET_CON_Y (3).
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_Y (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
.\" $Id: GENLIB_GET_INS_Y.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_INS_Y
|
||||
.XE \}
|
||||
.TH GENLIB_GET_INS_Y.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_INS_Y \- retrieve the y coordinate of an instance
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_INS_Y impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
GENLIB_PLACE_TOP("gaci0_b", "r2", SYM_Y);
|
||||
GENLIB_PLACE_RIGHT("gaci0_b", "r3", SYM_Y);
|
||||
/\(** Get a connector \(**/
|
||||
x = GENLIB_GET_INS_X("r3");
|
||||
y = GENLIB_GET_INS_Y("r3");
|
||||
.
|
||||
.
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR PHINS (3),
|
||||
.BR GENLIB_GET_INS_X (3),
|
||||
.BR GENLIB_GET_CON_X (3),
|
||||
.BR GENLIB_GET_CON_Y (3).
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_Y (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
.\" $Id: GENLIB_GET_REF_X.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_REF_X
|
||||
.XE \}
|
||||
.TH GENLIB_GET_REF_X.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_REF_X \- retrieve the x coordinate of an instance reference
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_REF_X impossible : missing GENLIB_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 \}
|
||||
"GENLIB_GET_REF_X impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_GET_REF_X("r1", "a_0", ALU2, 2, NORTH);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_COPY_UP_REF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_X (3),
|
||||
.BR GENLIB_GET_REF_X (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
.\" $Id: GENLIB_GET_REF_Y.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_GET_REF_Y
|
||||
.XE \}
|
||||
.TH GENLIB_GET_REF_Y.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_GET_REF_Y \- retrieve the y coordinate of an instance reference
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
long GENLIB_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 \}
|
||||
"GENLIB_GET_REF_Y impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Get a reference \(**/
|
||||
y = GENLIB_GET_REF_Y("r1", "a_0");
|
||||
.
|
||||
.
|
||||
GENLIB_PHVIA(x, y, CONT_VIA);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_COPY_UP_REF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_GET_CON_X (3),
|
||||
.BR GENLIB_GET_CON_Y (3),
|
||||
.BR GENLIB_GET_REF_X (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
.\" $Id: GENLIB_HEIGHT.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_HEIGHT
|
||||
.XE \}
|
||||
.TH GENLIB_HEIGHT.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_HEIGHT \- compute the height of a model
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
long GENLIB_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 = GENLIB_HEIGHT("mycell");
|
||||
GENLIB_DEF_PHFIG("grumf_z");
|
||||
GENLIB_PLACE("na2_y","ins1", NOSYM, 3 * cellHeight, 0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_WIDTH (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
.\" $Id: GENLIB_LOAD_LOFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOAD_LOFIG
|
||||
.XE \}
|
||||
.TH GENLIB_LOAD_LOFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_LOAD_LOFIG("cell");
|
||||
/\(** Add an instance in cell \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", "sig3", "vdd", "vss", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_LOFIG (3).
|
||||
.BR GENLIB_SAVE_LOFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
.\" $Id: GENLIB_LOAD_PHFIG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOAD_PHFIG
|
||||
.XE \}
|
||||
.TH GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_LOAD_PHFIG("cell");
|
||||
/\(** Add an instance in cell \(**/
|
||||
GENLIB_PLACE("model","instance", NOSYM, 200, 600);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3).
|
||||
.BR GENLIB_SAVE_PHFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
.\" $Id: GENLIB_LOCON.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOCON
|
||||
.XE \}
|
||||
.TH GENLIB_LOCON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 output.
|
||||
.TP
|
||||
\fBTRANSV\fP
|
||||
as transciever. That means \fBTRISTATE\fP input plus output.
|
||||
.SH ERROR
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
"GENLIB_LOCON impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \}
|
||||
"GENLIB_LOCON : All LOCON should be defined befor any GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON("i", INPUT, "sig1");
|
||||
GENLIB_LOCON("o", OUTPUT, "sig2");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_BUS (3),
|
||||
.BR GENLIB_ELM (3),
|
||||
.BR GENLIB_LOSIG (3),
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
.\" $Id: GENLIB_LOINS.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOINS
|
||||
.XE \}
|
||||
.TH GENLIB_LOINS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_LOINS \- add a logical instance to the current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_LOINS impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON("i", INPUT, "sig1");
|
||||
GENLIB_LOCON("o", OUTPUT, "sig2");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOINSE
|
||||
.XE \}
|
||||
.TH GENLIB_LOINSE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_LOINSE impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON("i", INPUT, "sig1");
|
||||
GENLIB_LOCON("o", OUTPUT, "sig2");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINSE("model","instance", "con1 => sig1", "con2 => sig2", 0L);
|
||||
GENLIB_LOINSE("stuff","shirt", "i[31:0] => out[32:63]", "j[2] => sig2", 0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_LOFIG (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOSIG
|
||||
.XE \}
|
||||
.TH GENLIB_LOSIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("cell");
|
||||
/\(** Define interface \(**
|
||||
GENLIB_LOCON(...
|
||||
/\(** declare buses \(**/
|
||||
GENLIB_LOSIG("grum[23:0]");
|
||||
GENLIB_LOSIG("iconection[0:7]");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("no2_y" ,"no3" ,"grum[12]" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
|
||||
GENLIB_LOINS("no2_y" ,"no4" ,"a12_s" ,"grum[6]" ,"no4_s" ,"vdd" ,"vss" ,0);
|
||||
GENLIB_LOINS("a2_y" ,"a22" ,"no3_s" ,"grum[15]" ,"a22_s" ,"vdd" ,"vss" ,0);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_LOINS (3),
|
||||
.BR GENLIB_LOCON (3),
|
||||
.BR GENLIB_BUS (3),
|
||||
.BR GENLIB_ELM (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
.\" $Id: GENLIB_LOSIGMERGE.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOSIGMERGE
|
||||
.XE \}
|
||||
.TH GENLIB_LOSIGMERGE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_LOSIGMERGE \- merge two logical signals
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("cell");
|
||||
/\(** Define interface \(**
|
||||
GENLIB_LOCON(...
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("no2_y" ,"no3" ,"a8_s" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
|
||||
GENLIB_LOINS("no2_y" ,"no4" ,"a12_s" ,"a15_s" ,"no4_s" ,"vdd" ,"vss" ,0);
|
||||
GENLIB_LOINS("a2_y" ,"a22" ,"no3_s" ,"no4_s" ,"a22_s" ,"vdd" ,"vss" ,0);
|
||||
GENLIB_LOSIGMERGE("new_no3_s", "no3_s");
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_LOINS (3),
|
||||
.BR GENLIB_LOCON (3),
|
||||
.BR GENLIB_FLATTEN_LOFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
.\" $Id: GENLIB_LOTRS.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_LOTRS
|
||||
.XE \}
|
||||
.TH GENLIB_LOTRS.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_LOTRS impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("n1");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON("i", IN, "input");
|
||||
GENLIB_LOCON("f", OUT, "output");
|
||||
GENLIB_LOCON("vdd", IN, "vdd");
|
||||
GENLIB_LOCON("vss", IN, "vss");
|
||||
/\(** Place transistors \(**/
|
||||
GENLIB_LOTRS(TRANSP, 5, 4, "input", "vdd", "output");
|
||||
GENLIB_LOTRS(TRANSN, 2, 4, "input", "vss", "output");
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_BUS (3),
|
||||
.BR GENLIB_ELM (3),
|
||||
.BR GENLIB_LOINS (3),
|
||||
.BR GENLIB_LOCON (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
.\" $Id: GENLIB_OUTLINE.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_OUTLINE
|
||||
.XE \}
|
||||
.TH GENLIB_OUTLINE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_OUTLINE \- build an outline from the current layout cell
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("model","i1", NOSYM,0L,0L);
|
||||
GENLIB_PLACE("model","i2", NOSYM,120L,40L);
|
||||
GENLIB_DEF_PHINS("i1");
|
||||
GENLIB_PLACE_TOP("model2", "i3", NOSYM);
|
||||
/\(** define the new abutment box as the standard envelop \(**/
|
||||
GENLIB_DEF_AB(0, 0, 0, 0);
|
||||
GENLIB_OUTLINE();
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PHCON
|
||||
.XE \}
|
||||
.TH GENLIB_PHCON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PHCON impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Put a connector \(**/
|
||||
GENLIB_PHCON(ALU1, 1, "cin", SOUTH, 12L, 0L);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON_FACE (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_CON_V (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
.\" $Id: GENLIB_PHREF.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PHREF
|
||||
.XE \}
|
||||
.TH GENLIB_PHREF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PHREF impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_PHREF("ref_con", "in_a[0]", 102L, 10L);
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_VIA_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
.\" $Id: GENLIB_PHSEG.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PHSEG
|
||||
.XE \}
|
||||
.TH GENLIB_PHSEG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PHSEG impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Put a segment \(**/
|
||||
GENLIB_PHSEG(ALU1, 1, "", 0L, 0L, 12L, 0L);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_SEG (3),
|
||||
.BR GENLIB_THRU_H (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_V (3),
|
||||
.BR GENLIB_THRU_CON_V (3),
|
||||
.BR GENLIB_WIRE1 (3),
|
||||
.BR GENLIB_WIRE2 (3),
|
||||
.BR GENLIB_WIRE3 (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
.\" $Id: GENLIB_PHVIA.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PHVIA
|
||||
.XE \}
|
||||
.TH GENLIB_PHVIA.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PHVIA impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
.
|
||||
/\(** Put a via \(**/
|
||||
GENLIB_PHVIA(CONT_VIA, 12L, 10L);
|
||||
.
|
||||
.
|
||||
GENLIB_DEF_AB(0L, 0L, 0L, 0L);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE_VIA_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
.\" $Id: GENLIB_PLACE.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_PLACE("gapg0_b","ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_PLACE("gapg8_b","ins2", SYM_X, 80L, 100L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_PLACE_LEFT (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_BOTTOM
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_BOTTOM.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_BOTTOM impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
PLACE_PLACE("grbos", "ins1", SYMXY, -3L, 0L);
|
||||
GENLIB_PLACE_BOTTOM("gln", "ins2", NOSYM);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_RIGHT (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_CON_REF
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_CON_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_CON_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_PLACE_CON_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_PLACE_CON_REF("r1", "a_0", ALU2, 2, NORTH);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_COPY_UP_REF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
.\" $Id: GENLIB_PLACE_LEFT.3,v 1.1 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_LEFT
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_LEFT.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_LEFT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_PLACE("grbdo_3","ins1", NOSYM, 0L, 0L);
|
||||
/\(** negative placement values are allowed \(**/
|
||||
GENLIB_PLACE_LEFT("grxwh_k","ins2", SYMXY);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_ON
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_ON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_ON impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_PLACE_ON("gapg0_b","ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_PLACE_ON("gapg8_b","ins2", SYM_X, 80L, 100L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_PLACE_LEFT (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_RIGHT
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_RIGHT.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_RIGHT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_PLACE("rsa16","ins1", ROT_P, -5L, 5L);
|
||||
GENLIB_PLACE_RIGHT("gnr32x16", "ins2", SYM_X);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_TOP (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:10 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_SEG_REF
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_SEG_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_SEG_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_PLACE_SEG_REF impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_PLACE_SEG_REF("r1", "a_0", ALU2, 2, NORTH);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_COPY_UP_REF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
.\" $Id: GENLIB_PLACE_TOP.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_TOP
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_TOP.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_TOP impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_PLACE("dgl", "ins1", ROT_P, 0L, 0L);
|
||||
GENLIB_PLACE_TOP("idv", "ins2", SY_RP);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PLACE (3),
|
||||
.BR GENLIB_PLACE_RIGHT (3),
|
||||
.BR GENLIB_PLACE_BOTTOM (3),
|
||||
.BR GENLIB_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 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_PLACE_VIA_REF
|
||||
.XE \}
|
||||
.TH GENLIB_PLACE_VIA_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_PLACE_VIA_REF impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
|
||||
/\(** Put a reference \(**/
|
||||
GENLIB_PLACE_VIA_REF("a_0", "r1", CONT_VIA);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR dpr (1),
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_PHVIA (3),
|
||||
.BR GENLIB_COPY_UP_REF (3),
|
||||
.BR GENLIB_COPY_UP_ALL_REF (3),
|
||||
.BR GENLIB_PLACE_CON_REF (3),
|
||||
.BR GENLIB_PLACE_SEG_REF (3),
|
||||
.BR GENLIB_PLACE_VIA_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
.\" $Id: GENLIB_REVERSE_PHCON.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_REVERSE_PHCON
|
||||
.XE \}
|
||||
.TH GENLIB_REVERSE_PHCON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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()
|
||||
{
|
||||
GENLIB_DEF_PHFIG("rom");
|
||||
/\(** Create a figure to work on \(**/
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Reverse the bit ordering if needed \(**/
|
||||
if (msb0)
|
||||
GENLIB_REVERSE_PHCON("adr");
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_PHCON (3),
|
||||
.BR GENLIB_PHREF (3),
|
||||
.BR GENLIB_COPY_UP_CON (3),
|
||||
.BR GENLIB_COPY_UP_ALL_CON (3),
|
||||
.BR GENLIB_COPY_UP_CON_FACE (3),
|
||||
.BR GENLIB_COPY_UP_REF (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
.\" $Id: GENLIB_SAVE_LOFIG.3,v 1.1 2002/03/08 14:08:11 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
|
||||
GENLIB_SAVE_LOFIG
|
||||
.XE \}
|
||||
.TH GENLIB_SAVE_LOFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_SAVE_LOFIG \- save a netlist on disk
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_SAVE_LOFIG impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
/\(** define interface \(**/
|
||||
GENLIB_LOCON("i", INPUT, "sig1");
|
||||
GENLIB_LOCON("o", OUTPUT, "sig2");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_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 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SAVE_PHFIG
|
||||
.XE \}
|
||||
.TH GENLIB_SAVE_PHFIG.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_SAVE_PHFIG \- save a layout on disk
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_SAVE_PHFIG impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("mycell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_PLACE("mymodel","firstinstance", NOSYM,0L,0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_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 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SAVE_PHSC
|
||||
.XE \}
|
||||
.TH GENLIB_SAVE_PHSC.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_SAVE_PHSC \- save a layout on disk
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_SAVE_PHSC impossible : missing GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_SC_PLACE("finst", NOSYM,0L,0L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_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 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SC_BOTTOM
|
||||
.XE \}
|
||||
.TH GENLIB_SC_BOTTOM.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_SC_BOTTOM impossible : missing GENLIB_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 \}
|
||||
"GENLIB_SC_BOTTOM impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_SC_BOTTOM("ins2", SYMXY);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHSC (3),
|
||||
.BR GENLIB_SAVE_PHSC (3),
|
||||
.BR GENLIB_SC_PLACE (3),
|
||||
.BR GENLIB_SC_TOP (3),
|
||||
.BR GENLIB_SC_RIGHT (3),
|
||||
.BR GENLIB_SC_LEFT (3),
|
||||
.BR GENLIB_DEF_PHINS (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3),
|
||||
.BR GENLIB_FLATTEN_ALL_PHINS (3),
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
.\" $Id: GENLIB_SC_LEFT.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SC_LEFT
|
||||
.XE \}
|
||||
.TH GENLIB_SC_LEFT.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_SC_LEFT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_SC_LEFT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||
/\(** negative placement values are allowed \(**/
|
||||
GENLIB_SC_LEFT("ins2", SYM_Y);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib(1),
|
||||
.BR GENLIB_DEF_PHSC.3),
|
||||
.BR GENLIB_SAVE_PHSC.3),
|
||||
.BR GENLIB_SC_PLACE.3),
|
||||
.BR GENLIB_SC_TOP.3),
|
||||
.BR GENLIB_SC_BOTTOM.3),
|
||||
.BR GENLIB_SC_RIGHT.3),
|
||||
.BR GENLIB_DEF_PHINS (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3),
|
||||
.BR GENLIB_FLATTEN_ALL_PHINS (3),
|
||||
.BR GENLIB_LOINS.3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
.\" $Id: GENLIB_SC_PLACE.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SC_PLACE
|
||||
.XE \}
|
||||
.TH GENLIB_SC_PLACE.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_SC_PLACE impossible : missing GENLIB_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 \}
|
||||
"GENLIB_SC_PLACE impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_SC_PLACE("ins2", NOSYM, 80L, 100L);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHSC (3),
|
||||
.BR GENLIB_SAVE_PHSC (3),
|
||||
.BR GENLIB_SC_TOP (3),
|
||||
.BR GENLIB_SC_BOTTOM (3),
|
||||
.BR GENLIB_SC_LEFT (3),
|
||||
.BR GENLIB_SC_RIGHT (3),
|
||||
.BR GENLIB_DEF_PHINS (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3),
|
||||
.BR GENLIB_FLATTEN_ALL_PHINS (3),
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
.\" $Id: GENLIB_SC_RIGHT.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SC_RIGHT
|
||||
.XE \}
|
||||
.TH GENLIB_SC_RIGHT.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_SC_RIGHT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_SC_RIGHT impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_SC_RIGHT("ins2", SYM_X);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib(1),
|
||||
.BR GENLIB_DEF_PHSC.3),
|
||||
.BR GENLIB_SAVE_PHSC.3),
|
||||
.BR GENLIB_SC_PLACE.3),
|
||||
.BR GENLIB_SC_TOP.3),
|
||||
.BR GENLIB_SC_BOTTOM.3),
|
||||
.BR GENLIB_SC_LEFT.3),
|
||||
.BR GENLIB_DEF_PHINS (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3),
|
||||
.BR GENLIB_FLATTEN_ALL_PHINS (3),
|
||||
.BR GENLIB_LOINS.3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
.\" $Id: GENLIB_SC_TOP.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_SC_TOP
|
||||
.XE \}
|
||||
.TH GENLIB_SC_TOP.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_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 GENLIB_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 \}
|
||||
"GENLIB_SC_TOP impossible : missing GENLIB_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 \}
|
||||
"GENLIB_SC_TOP impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHSC("cell");
|
||||
/\(** Place two instances \(**/
|
||||
GENLIB_SC_PLACE("ins1", NOSYM, 0L, 0L);
|
||||
GENLIB_SC_TOP("ins2", SYM_X);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_PHSC();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHSC (3),
|
||||
.BR GENLIB_SAVE_PHSC (3),
|
||||
.BR GENLIB_SC_PLACE (3),
|
||||
.BR GENLIB_SC_RIGHT (3),
|
||||
.BR GENLIB_SC_BOTTOM (3),
|
||||
.BR GENLIB_SC_LEFT (3),
|
||||
.BR GENLIB_DEF_PHINS (3),
|
||||
.BR GENLIB_FLATTEN_PHFIG (3),
|
||||
.BR GENLIB_FLATTEN_ALL_PHINS (3),
|
||||
.BR GENLIB_LOINS (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
.\" $Id: GENLIB_UNFLATTEN_LOFIG.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_UNFLATTEN_LOFIG
|
||||
.XE \}
|
||||
.TH GENLIB_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 GENLIB_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 \(**/
|
||||
GENLIB_DEF_LOFIG("mycell");
|
||||
.
|
||||
.
|
||||
.
|
||||
/\(** Place an instance \(**/
|
||||
GENLIB_LOINS("model","instance", "sig1", "sig2", EOL);
|
||||
/\(** flatten an instance \(**/
|
||||
GENLIB_UNFLATTEN_LOFIG("newfig", "newins", "instance", ..., 0);
|
||||
/\(** Save all that on disk \(**/
|
||||
GENLIB_SAVE_LOFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_FLATTEN_LOFIG (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
.\" $Id: GENLIB_WIRE1.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_WIRE1
|
||||
.XE \}
|
||||
.TH GENLIB_WIRE1.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_WIRE1 \- place a physical segment in the current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_WIRE1 impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r_addin_1", NOSYM, 0, 0);
|
||||
GENLIB_PLACE_RIGHT("gapgn_b", "pg", NOSYM);
|
||||
GENLIB_PLACE_RIGHT("gacin_b", "r_addin_2", NOSYM);
|
||||
/\(** Draw a segment \(**/
|
||||
GENLIB_WIRE1(ALU1, 1, "r_addin_1", "out", 0L, "r_addin_2", "in", 1L);
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_SEG (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_THRU_H (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_V (3),
|
||||
.BR GENLIB_THRU_CON_V (3),
|
||||
.BR GENLIB_WIRE2 (3),
|
||||
.BR GENLIB_WIRE3 (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,181 @@
|
|||
.\" $Id: GENLIB_WIRE2.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_WIRE2
|
||||
.XE \}
|
||||
.TH GENLIB_WIRE2.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_WIRE2 \- place two physical segments in the current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_WIRE2 impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 \(**/
|
||||
GENLIB_DEF_PHFIG("cell");
|
||||
GENLIB_PLACE("gaci0_b", "r_addin_1", NOSYM, 0, 0);
|
||||
GENLIB_PLACE_TOP("gacin_b", "r_addin_2", NOSYM);
|
||||
GENLIB_PLACE_RIGHT("gapgn_b", "pg", NOSYM);
|
||||
/\(** Draw a segment \(**/
|
||||
GENLIB_WIRE2(ALU1, 1, "r_addin_1", "out", 0L, "pg", "g", 1L,
|
||||
GENLIB_GET_CON_X("pg", "g", 1L),
|
||||
GENLIB_GET_CON_Y("r_addin_1", "out", 0L));
|
||||
/\(** Save that on disk \(**/
|
||||
GENLIB_SAVE_PHFIG();
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_SEG (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_THRU_H (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_V (3),
|
||||
.BR GENLIB_THRU_CON_V (3),
|
||||
.BR GENLIB_WIRE1 (3),
|
||||
.BR GENLIB_WIRE3 (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
.\" $Id: GENLIB_WIRE3.3,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
.\" @(#)GENLIB_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
|
||||
GENLIB_WIRE3
|
||||
.XE \}
|
||||
.TH GENLIB_WIRE3.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
|
||||
.SH NAME
|
||||
GENLIB_WIRE3 \- place three physical segments in the current figure
|
||||
.SH SYNOPSYS
|
||||
.nf
|
||||
.if n \{\
|
||||
.ft B \}
|
||||
.if t \{\
|
||||
.ft CR \}
|
||||
#include <genlib.h>
|
||||
void GENLIB_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 \}
|
||||
"GENLIB_WIRE3 impossible : missing GENLIB_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 \}
|
||||
"GENLIB_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 */
|
||||
GENLIB_WIRE1(ALU1,1,"lastpg2","g2",1,"cabl31","sg",2);
|
||||
GENLIB_WIRE3(ALU1,1,"cabl31","sp",2, "celout2", "cin", 1,
|
||||
GENLIB_GET_CON_X("cabl31","sp",2),
|
||||
GENLIB_GET_CON_Y("cabl31","sp",2) + cellHeight / 2,
|
||||
GENLIB_GET_CON_X("celout2", "cin", 1),
|
||||
GENLIB_GET_CON_Y("cabl31","sp",2) + cellHeight / 2);
|
||||
GENLIB_WIRE1(POLY,1,"celout3","g",1,"celout2","co",0);
|
||||
}
|
||||
.ft R
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
.BR genlib (1),
|
||||
.BR GENLIB_DEF_PHFIG (3),
|
||||
.BR GENLIB_SAVE_PHFIG (3),
|
||||
.BR GENLIB_COPY_UP_SEG (3),
|
||||
.BR GENLIB_PHSEG (3),
|
||||
.BR GENLIB_THRU_H (3),
|
||||
.BR GENLIB_THRU_CON_H (3),
|
||||
.BR GENLIB_THRU_V (3),
|
||||
.BR GENLIB_THRU_CON_V (3),
|
||||
.BR GENLIB_WIRE1 (3),
|
||||
.BR GENLIB_WIRE2 (3).
|
||||
|
||||
|
||||
.so man1/alc_bug_report.1
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
man_MANS = GENLIB_BUS.3 \
|
||||
GENLIB_COPY_UP_ALL_CON.3 \
|
||||
GENLIB_COPY_UP_ALL_REF.3 \
|
||||
GENLIB_COPY_UP_CON.3 \
|
||||
GENLIB_COPY_UP_CON_FACE.3 \
|
||||
GENLIB_COPY_UP_REF.3 \
|
||||
GENLIB_COPY_UP_SEG.3 \
|
||||
GENLIB_DEF_AB.3 \
|
||||
GENLIB_DEF_LOFIG.3 \
|
||||
GENLIB_DEF_PHFIG.3 \
|
||||
GENLIB_DEF_PHINS.3 \
|
||||
GENLIB_DEF_PHSC.3 \
|
||||
GENLIB_ELM.3 \
|
||||
GENLIB_FLATTEN_ALL_LOINS.3 \
|
||||
GENLIB_FLATTEN_ALL_PHINS.3 \
|
||||
GENLIB_FLATTEN_LOFIG.3 \
|
||||
GENLIB_FLATTEN_PHFIG.3 \
|
||||
GENLIB_GET_CON_X.3 \
|
||||
GENLIB_GET_CON_Y.3 \
|
||||
GENLIB_GET_INS_X.3 \
|
||||
GENLIB_GET_INS_Y.3 \
|
||||
GENLIB_GET_REF_X.3 \
|
||||
GENLIB_GET_REF_Y.3 \
|
||||
GENLIB_HEIGHT.3 \
|
||||
GENLIB_LOAD_LOFIG.3 \
|
||||
GENLIB_LOAD_PHFIG.3 \
|
||||
GENLIB_LOCON.3 \
|
||||
GENLIB_LOINS.3 \
|
||||
GENLIB_LOINSE.3 \
|
||||
GENLIB_LOSIG.3 \
|
||||
GENLIB_LOSIGMERGE.3 \
|
||||
GENLIB_LOTRS.3 \
|
||||
GENLIB_OUTLINE.3 \
|
||||
GENLIB_PHCON.3 \
|
||||
GENLIB_PHREF.3 \
|
||||
GENLIB_PHSEG.3 \
|
||||
GENLIB_PHVIA.3 \
|
||||
GENLIB_PLACE.3 \
|
||||
GENLIB_PLACE_BOTTOM.3 \
|
||||
GENLIB_PLACE_CON_REF.3 \
|
||||
GENLIB_PLACE_LEFT.3 \
|
||||
GENLIB_PLACE_ON.3 \
|
||||
GENLIB_PLACE_RIGHT.3 \
|
||||
GENLIB_PLACE_SEG_REF.3 \
|
||||
GENLIB_PLACE_TOP.3 \
|
||||
GENLIB_PLACE_VIA_REF.3 \
|
||||
GENLIB_REVERSE_PHCON.3 \
|
||||
GENLIB_SAVE_LOFIG.3 \
|
||||
GENLIB_SAVE_PHFIG.3 \
|
||||
GENLIB_SAVE_PHSC.3 \
|
||||
GENLIB_SC_BOTTOM.3 \
|
||||
GENLIB_SC_LEFT.3 \
|
||||
GENLIB_SC_PLACE.3 \
|
||||
GENLIB_SC_RIGHT.3 \
|
||||
GENLIB_SC_TOP.3 \
|
||||
GENLIB_UNFLATTEN_LOFIG.3 \
|
||||
GENLIB_WIRE1.3 \
|
||||
GENLIB_WIRE2.3 \
|
||||
GENLIB_WIRE3.3
|
|
@ -0,0 +1,9 @@
|
|||
lib_LIBRARIES = libMgn.a
|
||||
include_HEADERS = mgn.h mbkgen.h
|
||||
libMgn_a_SOURCES = genlib.c
|
||||
bin_SCRIPTS = genlib
|
||||
CLEANFILES = genlib
|
||||
|
||||
genlib : ${srcdir}/genlib.sh
|
||||
${SED} 's,__ALLIANCE_INSTALL_DIR__,$(ALLIANCE_INSTALL_DIR),' $< > $@
|
||||
chmod a+x $@
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,143 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This file is part of the Alliance CAD System
|
||||
# Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||
# Universite Pierre et Marie Curie
|
||||
#
|
||||
# Home page : http://www-asim.lip6.fr/alliance/
|
||||
# E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||
#
|
||||
# This progam is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# Alliance VLSI CAD System is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with the GNU C Library; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# $Id: genlib.sh,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
|
||||
help() {
|
||||
echo "Syntax: `basename $0` [-vk] source-file (without extension)"
|
||||
echo " -v : verbose mode"
|
||||
echo " -k : keeps the executable (whith debugging"
|
||||
echo " informations) along with the"
|
||||
echo " compilation Makefile after completion"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
if [ $# -lt 1 -o $# -gt 6 ] ; then
|
||||
echo "Syntax: `basename $0` [-vk] source-file (without extension)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
talk=0
|
||||
devel=0
|
||||
keep=0
|
||||
debug=
|
||||
lib=""
|
||||
libpath=""
|
||||
name=""
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
case $1 in
|
||||
-v) talk=1;;
|
||||
-d) devel=1;;
|
||||
-k) keep=1;debug=-g;;
|
||||
-vk) keep=1;debug=-g; talk=1;;
|
||||
-kv) keep=1;debug=-g; talk=1;;
|
||||
-l*) lib=$1;;
|
||||
-L*) libpath=$1;;
|
||||
*) if [ -z "$name" ]; then
|
||||
name=$1;
|
||||
else
|
||||
help
|
||||
fi
|
||||
esac
|
||||
shift
|
||||
done
|
||||
trap "rm -f ./*.$$; exit 1" 1 2 3 6
|
||||
|
||||
alcbanner "GenLib" "3.3" "Procedural Generation Language" "1991"
|
||||
|
||||
if [ -z "$name" ] ; then
|
||||
help
|
||||
fi
|
||||
if [ ! -f $name.c ] ; then
|
||||
echo "There seems no to be a file called $name.c"
|
||||
help
|
||||
fi
|
||||
|
||||
if [ $talk -eq 1 ]; then
|
||||
echo "Generating the Makefile";
|
||||
fi
|
||||
|
||||
# see genpat for another way of creating Makefile ;-) Czo...
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Development hacks.
|
||||
|
||||
if [ $devel -eq 1 ]; then
|
||||
ALLIANCE_INSTALL_DIR="__ALLIANCE_INSTALL_DIR__"
|
||||
ALLIANCE_DEVEL_INCLUDE="-I${ALLIANCE_INSTALL_DIR}/include"
|
||||
ALLIANCE_DEVEL_LIB="-L${ALLIANCE_INSTALL_DIR}/lib"
|
||||
ALLIANCE_LIB=${ALLIANCE_TOP}/lib
|
||||
ALLIANCE_INCLUDE=${ALLIANCE_TOP}/include
|
||||
fi
|
||||
|
||||
|
||||
makefile="Makefile.$$"
|
||||
echo 'include $(ALLIANCE_TOP)/etc/libraries.mk' > $makefile
|
||||
echo 'include $(ALLIANCE_TOP)/etc/$(ALLIANCE_OS).mk' >> $makefile
|
||||
echo 'ALLIANCE_LIBRARY = '${ALLIANCE_DEVEL_LIB}' -L$(ALLIANCE_LIB) \
|
||||
-lMgn -lMlu -lMpu -lMcp -lMap -lMmg -lMcl -lMgl \
|
||||
-lMal -lMvl -lMel -lMsl -lMhl -lMlo -lMph -lMut -lRcn' >> $makefile
|
||||
|
||||
echo "ALLIANCE_INC = ${ALLIANCE_DEVEL_INCLUDE} -I\$(ALLIANCE_INCLUDE)" >> $makefile
|
||||
echo "$name : $name.c" >> $makefile
|
||||
echo ' $(CC) ' \
|
||||
"$debug -o $name $name.c $libpath $lib" \
|
||||
'$(ALLIANCE_INC) $(ALLIANCE_LIBRARY)' >> $makefile
|
||||
|
||||
if [ $talk -eq 1 ]; then
|
||||
echo "Compiling, ..."
|
||||
fi
|
||||
|
||||
make -f $makefile > $name.grr 2>&1
|
||||
|
||||
if [ ! $? -eq 0 ]; then
|
||||
echo "Compilation failed!"
|
||||
cat $name.grr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $talk -eq 1 ] ; then
|
||||
echo "Current execution environment"
|
||||
echo "MBK_CATA_LIB : ${MBK_CATA_LIB-no cell library specified}"
|
||||
echo "MBK_WORK_LIB : ${MBK_WORK_LIB-:}"
|
||||
echo "MBK_IN_LO : ${MBK_IN_LO-vst}"
|
||||
echo "MBK_OUT_LO : ${MBK_OUT_LO-vst}"
|
||||
echo "MBK_IN_PH : ${MBK_IN_PH-ap}"
|
||||
echo "MBK_OUT_PH : ${MBK_OUT_PH-ap}"
|
||||
echo "MBK_CATAL_NAME : ${MBK_CATAL_NAME-CATAL}"
|
||||
fi
|
||||
if [ $talk -eq 1 ]; then
|
||||
echo "Executing ..."
|
||||
fi
|
||||
./$name
|
||||
exit_code=$?
|
||||
if [ $talk -eq 1 ]; then
|
||||
echo "Removing tmp files ..."
|
||||
fi
|
||||
if [ $keep -eq 0 ] ; then
|
||||
rm $name;
|
||||
fi
|
||||
rm $name.o $name.grr $makefile > /dev/null 2>&1
|
||||
exit $exit_code
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* This file is part of the Alliance CAD System
|
||||
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||
* Universite Pierre et Marie Curie
|
||||
*
|
||||
* Home page : http://www-asim.lip6.fr/alliance/
|
||||
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Alliance VLSI CAD System is distributed in the hope that it will be
|
||||
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with the GNU C Library; see the file COPYING. If not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
* mbkgen.h : header for the definition of genlib external variable
|
||||
* version : 1.00
|
||||
* date : 05/02/92
|
||||
* author : Frederic Petrot
|
||||
* $Id: mbkgen.h,v 1.1 2002/03/08 14:08:11 fred Exp $
|
||||
*/
|
||||
|
||||
#ifndef _MBKGEN_H_
|
||||
#define _MBKGEN_H_
|
||||
|
||||
#ifdef _MPH_H_
|
||||
extern phfig_list *WORK_PHFIG;
|
||||
extern phins_list *WORK_PHINS;
|
||||
#endif
|
||||
#ifdef _MLO_H_
|
||||
extern lofig_list *WORK_LOFIG;
|
||||
extern long num_index;
|
||||
#endif
|
||||
|
||||
enum {MBK_INSTANCE, MBK_SEGMENT, MBK_CONNECTOR, MBK_REFERENCE, MBK_VIA};
|
||||
|
||||
extern int is_bus();
|
||||
extern int bus_decod();
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,352 @@
|
|||
/*
|
||||
* This file is part of the Alliance CAD System
|
||||
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||
* Universite Pierre et Marie Curie
|
||||
*
|
||||
* Home page : http://www-asim.lip6.fr/alliance/
|
||||
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||
*
|
||||
* This progam is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* Alliance VLSI CAD System is distributed in the hope that it will be
|
||||
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with the GNU C Library; see the file COPYING. If not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* mgn.h *
|
||||
* header for the definition of genlib functions, and macros *
|
||||
* author : Frederic Petrot *
|
||||
* version : 3.18 *
|
||||
* date : 03/09/93 *
|
||||
* version : 3.26 *
|
||||
* date : 10/06/97 *
|
||||
*******************************************************************************/
|
||||
/* Types for the ptype lists as required in version 3.26
|
||||
As the types are all exclusives from another there is no need for
|
||||
styled values. */
|
||||
|
||||
/*******************************************************************************
|
||||
* physical placement functions *
|
||||
*******************************************************************************/
|
||||
extern void genDEF_PHFIG();
|
||||
extern void genLOAD_PHFIG();
|
||||
extern void genSAVE_PHFIG();
|
||||
extern void genDEF_AB();
|
||||
extern void genDEF_PHINS();
|
||||
extern ptype_list *genPHCON();
|
||||
extern ptype_list *genCOPY_UP_CON();
|
||||
extern ptype_list *genCOPY_UP_CON_FACE();
|
||||
extern ptype_list *genCOPY_UP_ALL_CON();
|
||||
extern ptype_list *genPHSEG();
|
||||
extern ptype_list *genCOPY_UP_SEG();
|
||||
extern ptype_list *genTHRU_H();
|
||||
extern ptype_list *genTHRU_V();
|
||||
extern ptype_list *genTHRU_CON_H();
|
||||
extern ptype_list *genTHRU_CON_V();
|
||||
extern ptype_list *genWIRE1();
|
||||
extern ptype_list *genWIRE2();
|
||||
extern ptype_list *genWIRE3();
|
||||
extern ptype_list *genPHVIA();
|
||||
extern ptype_list *genPHBIGVIA();
|
||||
extern ptype_list *genPLACE();
|
||||
extern ptype_list *genPLACE_RIGHT();
|
||||
extern ptype_list *genPLACE_TOP();
|
||||
extern ptype_list *genPLACE_LEFT();
|
||||
extern ptype_list *genPLACE_BOTTOM();
|
||||
extern ptype_list *genPLACE_REF();
|
||||
extern ptype_list *genPLACE_ON();
|
||||
extern ptype_list *genPHREF();
|
||||
extern void genDEL_PHREF();
|
||||
extern ptype_list *genCOPY_UP_REF();
|
||||
extern ptype_list *genCOPY_UP_ALL_REF();
|
||||
extern ptype_list *genPLACE_VIA_REF();
|
||||
extern ptype_list *genPLACE_CON_REF();
|
||||
extern ptype_list *genPLACE_SEG_REF();
|
||||
extern void genFLATTEN_PHFIG();
|
||||
extern void genFLATTEN_ALL_PHINS();
|
||||
extern long genGET_PHFIG_REF_X();
|
||||
extern long genGET_PHFIG_REF_Y();
|
||||
extern long genGET_REF_X();
|
||||
extern long genGET_REF_Y();
|
||||
extern long genGET_CON_X();
|
||||
extern long genGET_CON_Y();
|
||||
extern long genGET_INS_X();
|
||||
extern long genGET_INS_Y();
|
||||
extern long genHEIGHT();
|
||||
extern long genWIDTH();
|
||||
extern void genREVERSE_PHCON();
|
||||
extern void genOUTLINE();
|
||||
/*******************************************************************************
|
||||
* netlist description functions *
|
||||
*******************************************************************************/
|
||||
extern void genDEF_LOFIG();
|
||||
extern void genLOAD_LOFIG();
|
||||
extern void genSAVE_LOFIG();
|
||||
extern void genLOINS();
|
||||
extern void genLOINSE();
|
||||
extern void genLOINSA();
|
||||
extern void genLOTRS();
|
||||
extern void genLOCON();
|
||||
extern void genLOSIGMERGE();
|
||||
extern void genFLATTEN_LOFIG();
|
||||
extern void genFLATTEN_ALL_LOINS();
|
||||
extern void genDEF_PHSC();
|
||||
extern void genSAVE_PHSC();
|
||||
extern void genSC_PLACE();
|
||||
extern void genSC_RIGHT();
|
||||
extern void genSC_LEFT();
|
||||
extern void genSC_TOP();
|
||||
extern void genSC_BOTTOM();
|
||||
extern void genSC_CHANNEL();
|
||||
extern void genSC_CON_CHANNEL();
|
||||
/*******************************************************************************
|
||||
* name forming functions, for both views *
|
||||
*******************************************************************************/
|
||||
extern char *genBUS();
|
||||
extern char *genELM();
|
||||
extern char *genNAME();
|
||||
|
||||
/*******************************************************************************
|
||||
* macro definitions for allowed stdlib functions *
|
||||
*******************************************************************************/
|
||||
#define PRINTF printf
|
||||
#define STRLEN(a) (long)(a == NULL ? 0 : strlen(a))
|
||||
|
||||
/*******************************************************************************
|
||||
* macro definitions in order to allows float and integer typed parameters *
|
||||
*******************************************************************************/
|
||||
#ifndef __GENLIB__
|
||||
#define GENLIB_DEF_PHFIG(name) genDEF_PHFIG(name)
|
||||
#define GENLIB_LOAD_PHFIG(name) genLOAD_PHFIG(name)
|
||||
#define GENLIB_SAVE_PHFIG genSAVE_PHFIG
|
||||
#define GENLIB_DEF_AB(dx1,dy1,dx2,dy2) \
|
||||
genDEF_AB((long)((dx1)*SCALE_X),(long)((dy1)*SCALE_X), \
|
||||
(long)((dx2)*SCALE_X),(long)((dy2)*SCALE_X))
|
||||
#define GENLIB_DEF_PHINS(name) \
|
||||
genDEF_PHINS(name)
|
||||
#define GENLIB_PHCON(layer,width,name,orient,x,y) \
|
||||
genPHCON(layer,(long)((width)*SCALE_X),name,orient, \
|
||||
(long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_COPY_UP_CON(index,locname,insname,newname) \
|
||||
genCOPY_UP_CON(index,locname,insname,newname)
|
||||
#define GENLIB_COPY_UP_ALL_CON(orient,insname,cheminom) \
|
||||
genCOPY_UP_ALL_CON(orient,insname,cheminom)
|
||||
#define GENLIB_COPY_UP_CON_FACE(orient,locname,insname,newname) \
|
||||
genCOPY_UP_CON_FACE(orient,locname,insname,newname)
|
||||
#define GENLIB_PHSEG(layer,width,name,x1,y1,x2,y2) \
|
||||
genPHSEG(layer,(long)((width)*SCALE_X),name,(long)((x1)*SCALE_X), \
|
||||
(long)((y1)*SCALE_X), (long)((x2)*SCALE_X), \
|
||||
(long)((y2)*SCALE_X))
|
||||
#define GENLIB_COPY_UP_SEG(locname,insname,newname) \
|
||||
genCOPY_UP_SEG(locname,insname,newname)
|
||||
#define GENLIB_WIRE1(layer,width,ins1,con1,index1,ins2,con2,index2) \
|
||||
genWIRE1(layer,(long)((width)*SCALE_X),ins1,con1,index1,ins2, \
|
||||
con2,index2)
|
||||
#define GENLIB_WIRE2(layer,width,ins1,con1,index1,ins2,con2,index2,x,y) \
|
||||
genWIRE2(layer,(long)((width)*SCALE_X),ins1,con1,index1,ins2, \
|
||||
con2,index2, (long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_WIRE3(layer,width,ins1,con1,index1,ins2,con2,index2,x1,y1,x2,y2) \
|
||||
genWIRE3(layer,(long)((width)*SCALE_X),ins1,con1,index1,ins2, \
|
||||
con2,index2, (long)((x1)*SCALE_X),(long)((y1)*SCALE_X), \
|
||||
(long)((x2)*SCALE_X),(long)((y2)*SCALE_X))
|
||||
#define GENLIB_PHVIA(type,x,y) \
|
||||
genPHVIA(type,(long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_PHBIGVIA(type,x,y,dx,dy,name) \
|
||||
genPHBIGVIA(type,(long)((x)*SCALE_X),(long)((y)*SCALE_X), \
|
||||
(long)((dx)*SCALE_X),(long)((dy)*SCALE_X),name)
|
||||
#define GENLIB_PLACE(figname,insname,sym,x,y) \
|
||||
genPLACE(figname,insname,sym,(long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_PLACE_RIGHT(figname,insname,sym) genPLACE_RIGHT(figname,insname,sym)
|
||||
#define GENLIB_PLACE_TOP(figname,insname,sym) genPLACE_TOP(figname,insname,sym)
|
||||
#define GENLIB_PLACE_LEFT(figname,insname,sym) genPLACE_LEFT(figname,insname,sym)
|
||||
#define GENLIB_PLACE_BOTTOM(figname,insname,sym) genPLACE_BOTTOM(figname,insname,sym)
|
||||
#define GENLIB_PLACE_REF(figname,insname,sym,insref,refname) \
|
||||
genPLACE_REF(figname,insname,sym,insref,refname)
|
||||
#define GENLIB_PLACE_ON(figname,insname1,con1,index1,sym,insname2,con2,index2) \
|
||||
genPLACE_ON(figname,insname1,con1,index1,sym,\
|
||||
insname2,con2,index2)
|
||||
#define GENLIB_THRU_H(layer,width,y) \
|
||||
genTHRU_H(layer,(long)((width)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_THRU_V(layer,width,x) \
|
||||
genTHRU_V(layer,(long)((width)*SCALE_X),(long)((x)*SCALE_X))
|
||||
#define GENLIB_THRU_CON_H(layer,width,name,y) \
|
||||
genTHRU_CON_H(layer,(long)((width)*SCALE_X),name,(long)((y)*SCALE_X))
|
||||
#define GENLIB_THRU_CON_V(layer,width,name,x) \
|
||||
genTHRU_CON_V(layer,(long)((width)*SCALE_X),name,(long)((x)*SCALE_X))
|
||||
#define GENLIB_PHREF(type,name,x,y) \
|
||||
genPHREF(type,name,(long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_DEL_PHREF genDEL_PHREF
|
||||
#define GENLIB_COPY_UP_REF(refname,insname,newname) \
|
||||
genCOPY_UP_REF(refname,insname,newname)
|
||||
#define GENLIB_COPY_UP_ALL_REF(reftype,insname,cheminom) \
|
||||
genCOPY_UP_ALL_REF(reftype,insname,cheminom)
|
||||
#define GENLIB_PLACE_VIA_REF(insname,refname,type) \
|
||||
genPLACE_VIA_REF(insname,refname,type)
|
||||
#define GENLIB_PLACE_CON_REF(insname,refname,conname,layer,width,face) \
|
||||
genPLACE_CON_REF(insname,refname,conname,layer,\
|
||||
(long)((width)*SCALE_X),face)
|
||||
#define GENLIB_PLACE_SEG_REF(insname,refname,layer,width,face) \
|
||||
genPLACE_SEG_REF(insname,refname,layer,(long)((width)*SCALE_X),face)
|
||||
#define GENLIB_GET_PHFIG_REF_X(refname) \
|
||||
((genGET_PHFIG_REF_X(refname)/SCALE_X))
|
||||
#define GENLIB_GET_PHFIG_REF_Y(refname) \
|
||||
((genGET_PHFIG_REF_Y(refname)/SCALE_X))
|
||||
#define GENLIB_GET_REF_X(insname,refname) \
|
||||
((genGET_REF_X(insname,refname)/SCALE_X))
|
||||
#define GENLIB_GET_REF_Y(insname,refname) \
|
||||
((genGET_REF_Y(insname,refname)/SCALE_X))
|
||||
#define GENLIB_GET_INS_X(insname) ((genGET_INS_X(insname)/SCALE_X))
|
||||
#define GENLIB_GET_INS_Y(insname) ((genGET_INS_Y(insname)/SCALE_X))
|
||||
#define GENLIB_GET_INS_XDX(insname) ((genGET_INS_XDX(insname)/SCALE_X))
|
||||
#define GENLIB_GET_INS_YDY(insname) ((genGET_INS_YDY(insname)/SCALE_X))
|
||||
#define GENLIB_GET_CON_X(insname,conname,index) \
|
||||
((genGET_CON_X(insname,conname,index)/SCALE_X))
|
||||
#define GENLIB_GET_CON_Y(insname,conname,index) \
|
||||
((genGET_CON_Y(insname,conname,index)/SCALE_X))
|
||||
#define GENLIB_GET_CON_LAYER(insname,conname,index) \
|
||||
(genGET_CON_LAYER(insname,conname,index))
|
||||
#define GENLIB_HEIGHT(cellName) ((genHEIGHT(cellName)/SCALE_X))
|
||||
#define GENLIB_WIDTH(cellName) ((genWIDTH(cellName)/SCALE_X))
|
||||
#define GENLIB_FLATTEN_PHFIG(insname,concat) genFLATTEN_PHFIG(insname,concat)
|
||||
#define GENLIB_FLATTEN_ALL_PHINS(concat, catal) genFLATTEN_ALL_PHINS(concat, catal)
|
||||
#define GENLIB_REVERSE_PHCON(conname) genREVERSE_PHCON(conname)
|
||||
#define GENLIB_OUTLINE genOUTLINE
|
||||
|
||||
#define GENLIB_DEF_LOFIG(name) genDEF_LOFIG(name)
|
||||
#define GENLIB_LOAD_LOFIG(name) genLOAD_LOFIG(name)
|
||||
#define GENLIB_SAVE_LOFIG genSAVE_LOFIG
|
||||
#define GENLIB_LOSIG(name) genLOSIG(name)
|
||||
#define GENLIB_LOINS genLOINS
|
||||
#define GENLIB_LOINSE genLOINSE
|
||||
#define GENLIB_LOINSA genLOINSA
|
||||
#define GENLIB_LOTRS(type,width,length,grid,source,drain) \
|
||||
genLOTRS(type,(long)((width)*SCALE_X), \
|
||||
(long)((length)*SCALE_X),grid,source,drain)
|
||||
#define GENLIB_LOCON(conname,direction,signame) genLOCON(conname,direction,signame)
|
||||
#define GENLIB_LOSIGMERGE(signame1, signame2) genLOSIGMERGE(signame1, signame2)
|
||||
#define GENLIB_FLATTEN_LOFIG(insname,concat) genFLATTEN_LOFIG(insname,concat)
|
||||
#define GENLIB_FLATTEN_ALL_LOINS(concat, catal) genFLATTEN_ALL_LOINS(concat, catal)
|
||||
#define GENLIB_UNFLATTEN_LOFIG genUNFLATTEN_LOFIG
|
||||
|
||||
#define GENLIB_USED(s, c) genUSED(s, c)
|
||||
|
||||
#define GENLIB_DEF_PHSC(name) genDEF_PHSC(name)
|
||||
#define GENLIB_SAVE_PHSC genSAVE_PHSC
|
||||
#define GENLIB_SC_PLACE(insname,sym,x,y) \
|
||||
genSC_PLACE(insname,sym,(long)((x)*SCALE_X),(long)((y)*SCALE_X))
|
||||
#define GENLIB_SC_RIGHT(insname,sym) genSC_RIGHT(insname,sym)
|
||||
#define GENLIB_SC_LEFT(insname,sym) genSC_LEFT(insname,sym)
|
||||
#define GENLIB_SC_TOP(insname,sym) genSC_TOP(insname,sym)
|
||||
#define GENLIB_SC_BOTTOM(insname,sym) genSC_BOTTOM(insname,sym)
|
||||
#define GENLIB_SC_CHANNEL(direction,width,insname) \
|
||||
genSC_CHANNEL(direction,(long)((width)*SCALE_X),insname)
|
||||
#define GENLIB_SC_CON_CHANNEL(conname,orient,layer,width,insname) \
|
||||
genSC_CON_CHANNEL(conname,orient,layer,\
|
||||
(long)((width)*SCALE_X),insname)
|
||||
|
||||
#define GENLIB_BUS(signame,from,to) genBUS(signame,from,to)
|
||||
#define GENLIB_ELM(signame,number) genELM(signame,number)
|
||||
#define GENLIB_NAME genNAME
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* New allowed names for layers and contacts
|
||||
*/
|
||||
#define METAL ALU1
|
||||
#define ALLOWM TALU1
|
||||
#define METAL2 ALU2
|
||||
#define ALLOWM2 TALU2
|
||||
#define METAL3 ALU3
|
||||
#define ALLOWM3 TALU3
|
||||
#define METAL4 ALU4
|
||||
#define ALLOWM4 TALU4
|
||||
#define METAL5 ALU5
|
||||
#define ALLOWM5 TALU5
|
||||
#define METAL6 ALU6
|
||||
#define ALLOWM6 TALU6
|
||||
#define METAL7 ALU7
|
||||
#define ALLOWM7 TALU7
|
||||
#define METAL8 ALU8
|
||||
#define ALLOWM8 TALU8
|
||||
#define METAL9 ALU9
|
||||
#define ALLOWM9 TALU9
|
||||
|
||||
#define VIA12 CONT_VIA
|
||||
#define VIA23 CONT_VIA2
|
||||
#define VIA34 CONT_VIA3
|
||||
#define VIA45 CONT_VIA4
|
||||
#define VIA56 CONT_VIA5
|
||||
#define VIA67 CONT_VIA6
|
||||
#define VIA78 CONT_VIA7
|
||||
#define VIA89 CONT_VIA8
|
||||
|
||||
/* Names usable that macro-expand into several contacts: they have no
|
||||
* internal counterparts.
|
||||
*/
|
||||
#define VIA13 (LAST_CONTACT + 1)
|
||||
#define VIA14 (LAST_CONTACT + 2)
|
||||
#define VIA15 (LAST_CONTACT + 3)
|
||||
#define VIA16 (LAST_CONTACT + 4)
|
||||
#define VIA17 (LAST_CONTACT + 5)
|
||||
#define VIA18 (LAST_CONTACT + 6)
|
||||
#define VIA19 (LAST_CONTACT + 7)
|
||||
#define VIA24 (LAST_CONTACT + 8)
|
||||
#define VIA25 (LAST_CONTACT + 9)
|
||||
#define VIA26 (LAST_CONTACT + 10)
|
||||
#define VIA27 (LAST_CONTACT + 11)
|
||||
#define VIA28 (LAST_CONTACT + 12)
|
||||
#define VIA29 (LAST_CONTACT + 13)
|
||||
#define VIA35 (LAST_CONTACT + 14)
|
||||
#define VIA36 (LAST_CONTACT + 15)
|
||||
#define VIA37 (LAST_CONTACT + 16)
|
||||
#define VIA38 (LAST_CONTACT + 17)
|
||||
#define VIA39 (LAST_CONTACT + 18)
|
||||
#define VIA46 (LAST_CONTACT + 19)
|
||||
#define VIA47 (LAST_CONTACT + 20)
|
||||
#define VIA48 (LAST_CONTACT + 21)
|
||||
#define VIA49 (LAST_CONTACT + 22)
|
||||
#define VIA57 (LAST_CONTACT + 23)
|
||||
#define VIA58 (LAST_CONTACT + 24)
|
||||
#define VIA59 (LAST_CONTACT + 25)
|
||||
#define VIA68 (LAST_CONTACT + 26)
|
||||
#define VIA69 (LAST_CONTACT + 27)
|
||||
#define VIA79 (LAST_CONTACT + 28)
|
||||
|
||||
#define CONT_VIA13 VIA13
|
||||
#define CONT_VIA14 VIA14
|
||||
#define CONT_VIA15 VIA15
|
||||
#define CONT_VIA16 VIA16
|
||||
#define CONT_VIA17 VIA17
|
||||
#define CONT_VIA18 VIA18
|
||||
#define CONT_VIA19 VIA19
|
||||
#define CONT_VIA24 VIA24
|
||||
#define CONT_VIA25 VIA25
|
||||
#define CONT_VIA26 VIA26
|
||||
#define CONT_VIA27 VIA27
|
||||
#define CONT_VIA28 VIA28
|
||||
#define CONT_VIA29 VIA29
|
||||
#define CONT_VIA35 VIA35
|
||||
#define CONT_VIA36 VIA36
|
||||
#define CONT_VIA37 VIA37
|
||||
#define CONT_VIA38 VIA38
|
||||
#define CONT_VIA39 VIA39
|
||||
#define CONT_VIA46 VIA46
|
||||
#define CONT_VIA47 VIA47
|
||||
#define CONT_VIA48 VIA48
|
||||
#define CONT_VIA49 VIA49
|
||||
#define CONT_VIA57 VIA57
|
||||
#define CONT_VIA58 VIA58
|
||||
#define CONT_VIA59 VIA59
|
||||
#define CONT_VIA68 VIA68
|
||||
#define CONT_VIA69 VIA69
|
||||
#define CONT_VIA79 VIA79
|
Loading…
Reference in New Issue