Provided by: alliance_5.1.1-1.1_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).

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