1GENLIB_PLACE_SEG_REF.3(October 1, 1997)GENLIB_PLACE_SEG_REF.3(October 1, 1997)
2
3
4
6 GENLIB_PLACE_SEG_REF - put a segment on a reference belonging an
7 instance in the current figure
8
10 #include <genlib.h>
11 void GENLIB_PLACE_SEG_REF(insname, refname, layer, width, face)
12 char ∗insname, ∗refname;
13 char layer, face;
14 long width;
15
17 insname Name of the instance in the which the reference is
18 to be searched for
19
20 refname Name of the reference to be used for the segment
21 placement
22
23 layer Physical layer of the segment
24
25 width Width of the segment
26
27 face Face of the figure on which the segment is to be
28 placed
29
31 PLACE_SEG_REF places a segment regarding the position of the reference,
32 refname, in the instance called insname. The segment coordinates are
33 computed from the reference coordinates and the face given as argument.
34 Two behaviours are expected, regarding the reference coordinates:
35
36 the reference is on the given face of the abutment box
37 the segment is not added, since it would have zero
38 as length
39
40 the reference is anywhere else
41 A segment is drawn between the reference and the
42 abutment box, and is given layer and width as
43 attributs. One of its endpoint is given by the
44 reference coordinates, the other one comes from the
45 face. The face argument is meant in the placed
46 instance, and can take any of the following values:
47
48 NORTH the other endpoint has, for absissa, the x coordi‐
49 nate of the top of the abutment box of the cell,
50 and for ordinate, the y coordinate of the refer‐
51 ence.
52
53 SOUTH the other endpoint has, for absissa, the x coordi‐
54 nate of the bottom of the abutment box of the cell,
55 and for ordinate, the y coordinate of the refer‐
56 ence.
57
58 EAST the other endpoint has, for absissa, the x coordi‐
59 nate of the reference and for ordinate, the y coor‐
60 dinate of the right of the abutment box of the
61 cell.
62
63 WEST the other endpoint has, for absissa, the x coordi‐
64 nate of the reference and for ordinate, the y coor‐
65 dinate of the left of the abutment box of the cell.
66
68 "GENLIB_PLACE_SEG_REF impossible : missing GENLIB_DEF_PHFIG"
69 No figure has been yet specified by a call to DEF_PHFIG. So it
70 isn't possible to place a reference inside it. you must call
71 DEF_PHFIG before any other layout action.
72 "GENLIB_PLACE_SEG_REF impossible : missing GENLIB_DEF_PHFIG"
73 No figure has been yet specified by a call to DEF_PHFIG. So it
74 isn't possible to place a reference inside it. you must call
75 DEF_PHFIG before any other layout action.
76 "GENLIB_PLACE_SEG_REF impossible : no abutment box"
77 The current figure does not have an abutment box. Use DEF_AB(3)
78 before this function.
79 "illegal GENLIB_PLACE_SEG_REF : orientation is XX"
80 The face parameter does not have a legal value, but XX.
81 "illegal getphins : instance called insname does not exist"
82 No instance called insname exists in the current figure
83 "illegal getphref : references called refname does not exist"
84 No reference called refname exists in the model of the instance
85 insname.
86
88 #include <genlib.h>
89 main()
90 {
91 /∗ Create a figure to work on ∗/
92 GENLIB_DEF_PHFIG("cell");
93 GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
94 /∗ Put a reference ∗/
95 GENLIB_PLACE_SEG_REF("r1", "a_0", ALU2, 2, NORTH);
96 /∗ Save that on disk ∗/
97 GENLIB_SAVE_PHFIG();
98 }
99
101 genlib(1), GENLIB_DEF_PHFIG(3), GENLIB_SAVE_PHFIG(3), GENLIB_PHREF(3),
102 GENLIB_PHSEG(3), GENLIB_COPY_UP_REF(3), GENLIB_COPY_UP_ALL_REF(3), GEN‐
103 LIB_PLACE_SEG_REF(3), GENLIB_PLACE_SEG_REF(3), GENLIB_PLACE_SEG_REF(3).
104
105
106
107
108
109
110PROCEDURAL GENERATION LANGUAGE ASIM/GLEINPL6IB_PLACE_SEG_REF.3(October 1, 1997)