96 lines
2.7 KiB
Groff
96 lines
2.7 KiB
Groff
.\" $Id: GENLIB_LOSIGMERGE.3,v 1.2 2000/09/28 15:25:51 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
|
|
|