1GENLIB_LOSIGMERGE.3(October 1, 1997) GENLIB_LOSIGMERGE.3(October 1, 1997)
2
3
4
6 GENLIB_LOSIGMERGE - merge two logical signals
7
9 #include <genlib.h>
10 void GENLIB_LOSIGMERGE(signal1, signal2)
11 char ∗signal1, ∗signal2;
12
14 signal1 Name of a signal to be merged
15
16 signal2 Name of a signal to be merged
17
19 LOSIGMERGE merges the two signals, signal1 and signal2. This function
20 can be used anywhere in the genlib program, but its resultings actions
21 must be known by the user.
22
23 1) If signal1 and signal2 have not been used yet, then the cor‐
24 responding signal can be later accessed through any of these
25 aliases.
26
27 2) If one of signal1 or signal2 has not been used yet, then all
28 further reference to the not defined name will be made on the
29 same signal than the defined signal.
30
31 3) If both signals exist, then they are merged, and both can be
32 used for reference to the same signal later on.
33
34 Since most of the file formats do not allow multiple name for a single
35 signal, the choice is made to keep for disk usage the name that appears
36 in the cell interface, if any. Otherwise, the choice is randomly made
37 by LOSIGMERGE.
38
39 Warning This function allows the user to internally connect two
40 external connectors. This is not a valid disk representation
41 for netlist generated by genlib. The SAVE_LOFIG function
42 will exit if encountering such a situation.
43 In order to avoid it, either take care not to link such sig‐
44 nals, or build all your hierarchy in memory, make sure your
45 block does not have such signals, and call FLATTEN_LOFIG(3)
46 just before saving.
47
49 #include <genlib.h>
50 main()
51 {
52 /∗ Create a figure to work on ∗/
53 GENLIB_DEF_LOFIG("cell");
54 /∗ Define interface ∗
55 GENLIB_LOCON(...
56 /∗ Place an instance ∗/
57 GENLIB_LOINS("no2_y" ,"no3" ,"a8_s" ,"a9_s" ,"new_no3_s" ,"vdd" ,"vss" ,0);
58 GENLIB_LOINS("no2_y" ,"no4" ,"a12_s" ,"a15_s" ,"no4_s" ,"vdd" ,"vss" ,0);
59 GENLIB_LOINS("a2_y" ,"a22" ,"no3_s" ,"no4_s" ,"a22_s" ,"vdd" ,"vss" ,0);
60 GENLIB_LOSIGMERGE("new_no3_s", "no3_s");
61 /∗ Save all that on disk ∗/
62 GENLIB_SAVE_LOFIG();
63 }
64
66 genlib(1), GENLIB_LOINS(3), GENLIB_LOCON(3), GENLIB_FLATTEN_LOFIG(3),
67 GENLIB_SAVE_PHFIG(3).
68
69
70
71
72
73
74PROCEDURAL GENERATION LANGUAGE ASIM/LIPG6ENLIB_LOSIGMERGE.3(October 1, 1997)