NAME¶
GENLIB_LOSIGMERGE - merge two logical signals
SYNOPSYS¶
#include <genlib.h>
void GENLIB_LOSIGMERGE(signal1, signal2)
char ∗signal1, ∗signal2;
ORIGIN¶
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at
  
LIP6 laboratory of Université Pierre et Marie CURIE, in Paris,
  France.
 
Web : 
http://asim.lip6.fr/recherche/alliance/
 
E-mail : 
alliance-users@asim.lip6.fr
PARAMETERS¶
  - signal1
 
  - Name of a signal to be merged
 
  - signal2
 
  - Name of a signal to be merged
 
DESCRIPTION¶
LOSIGMERGE merges the two signals, 
signal1 and 
signal2.
  This function can be used anywhere in the 
genlib program, but its
  resultings actions must be known by the user.
  - 1)
 
  - If signal1 and signal2 have not been used yet, then the
      corresponding signal can be later accessed through any of these
    aliases.
 
  - 2)
 
  - If one of signal1 or signal2 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.
 
  - 3)
 
  - If both signals exist, then they are merged, and both can be used for
      reference to the same signal later on.
 
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
  
LOSIGMERGE.
  - Warning
 
  - This function allows the user to internally connect two external
      connectors. This is not a valid disk representation for netlist
      generated by genlib. The SAVE_LOFIG function will exit if
      encountering such a situation.
    
 
    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 FLATTEN_LOFIG(3) just before saving. 
EXAMPLE¶
#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();
}
SEE ALSO¶
genlib(1), 
GENLIB_LOINS(3), 
GENLIB_LOCON(3),
  
GENLIB_FLATTEN_LOFIG(3), 
GENLIB_SAVE_PHFIG(3).
BUG REPORT¶
This tool is under development at the 
ASIM department of the 
LIP6
  laboratory.
 
We need your feedback to improve documentation and tools.