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

  
 
  

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

NAME
     GENLIB_LOSIGMERGE - merge two logical signals

SYNOPSIS
     #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 corre-
	       sponding signal can  be	later  accessed  through  any  of  these
	       aliases.

     2)        If one of signal1 or signal2 has not been used yet, then all fur-
	       ther  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 sig-
     nal, 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  LOSIG-
     MERGE.

     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 en-
	       countering 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 sav-
	       ing.

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),  GEN-
     LIB_SAVE_PHFIG(3).

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

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

home | help