Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GENLIB_LOSIGMERGE.3(October 1, 1997)	  GENLIB_LOSIGMERGE.3(October 1, 1997)

NAME
       GENLIB_LOSIGMERGE - merge two logical signals

SYNOPSYS
       #include	<genlib.h>
       void GENLIB_LOSIGMERGE(signal1, signal2)
       char *signal1, *signal2;

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 cor-
		 responding 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 ex-
		 ternal	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  sig-
		 nals,	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).

PROCEDURAL GENERATION LANGUAGE	   ASIM/LIGENLIB_LOSIGMERGE.3(October 1, 1997)

NAME | SYNOPSYS | PARAMETERS | DESCRIPTION | EXAMPLE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=GENLIB_LOSIGMERGE&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help