Provided by: alliance_5.0-20120515-6_amd64 bug

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 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).