/[cmucl]/src/contrib/ops/weaver.ops
ViewVC logotype

Contents of /src/contrib/ops/weaver.ops

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sun May 31 02:23:44 1992 UTC (21 years, 10 months ago) by ram
Branch: MAIN
CVS Tags: sparc-tramp-assem-base, double-double-array-base, post-merge-intl-branch, release-19b-pre1, release-19b-pre2, merged-unicode-utf16-extfmt-2009-06-11, double-double-init-sparc-2, unicode-utf16-extfmt-2009-03-27, double-double-base, snapshot-2007-09, snapshot-2007-08, snapshot-2008-08, snapshot-2008-09, ppc_gencgc_snap_2006-01-06, sse2-packed-2008-11-12, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2007-05, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, intl-branch-working-2010-02-19-1000, snapshot-2006-11, snapshot-2006-10, double-double-init-sparc, snapshot-2006-12, unicode-string-buffer-impl-base, sse2-base, release-20b-pre1, release-20b-pre2, unicode-string-buffer-base, RELEASE_18d, sse2-packed-base, sparc-tramp-assem-2010-07-19, amd64-dd-start, snapshot-2003-10, snapshot-2004-10, release-18e-base, release-19f-pre1, snapshot-2008-12, snapshot-2008-11, intl-2-branch-base, snapshot-2004-08, snapshot-2004-09, remove_negative_zero_not_zero, snapshot-2007-01, snapshot-2007-02, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, release-19e, release-19d, GIT-CONVERSION, double-double-init-ppc, release-19c, dynamic-extent-base, unicode-utf16-sync-2008-12, LINKAGE_TABLE, release-19c-base, cross-sol-x86-merged, label-2009-03-16, release-19f-base, PRE_LINKAGE_TABLE, merge-sse2-packed, mod-arith-base, sparc_gencgc_merge, merge-with-19f, snapshot-2004-12, snapshot-2004-11, intl-branch-working-2010-02-11-1000, RELEASE_18a, RELEASE_18b, RELEASE_18c, unicode-snapshot-2009-05, unicode-snapshot-2009-06, amd64-merge-start, ppc_gencgc_snap_2005-12-17, double-double-init-%make-sparc, unicode-utf16-sync-2008-07, release-18e-pre2, unicode-utf16-sync-2008-09, unicode-utf16-extfmts-sync-2008-12, prm-before-macosx-merge-tag, cold-pcl-base, RELEASE_20b, snapshot-2008-04, snapshot-2003-11, snapshot-2005-07, unicode-utf16-sync-label-2009-03-16, RELEASE_19f, snapshot-2007-03, release-20a-base, cross-sol-x86-base, unicode-utf16-char-support-2009-03-26, unicode-utf16-char-support-2009-03-25, release-19a-base, unicode-utf16-extfmts-pre-sync-2008-11, snapshot-2008-10, sparc_gencgc, snapshot-2007-04, snapshot-2010-12, snapshot-2010-11, unicode-utf16-sync-2008-11, snapshot-2007-07, snapshot-2011-09, snapshot-2011-06, snapshot-2011-07, snapshot-2011-04, snapshot-2007-06, snapshot-2011-02, snapshot-2011-03, snapshot-2011-01, snapshot-2003-12, release-19a-pre1, release-19a-pre3, release-19a-pre2, pre-merge-intl-branch, release-19a, UNICODE-BASE, double-double-array-checkpoint, double-double-reader-checkpoint-1, release-19d-base, release-19e-pre1, double-double-irrat-end, release-19e-pre2, snapshot-2010-05, snapshot-2010-04, snapshot-2010-07, snapshot-2010-06, snapshot-2010-01, snapshot-2010-03, snapshot-2010-02, release-19d-pre2, release-19d-pre1, snapshot-2010-08, release-18e, double-double-init-checkpoint-1, double-double-reader-base, label-2009-03-25, snapshot-2005-03, release-19b-base, cross-sol-x86-2010-12-20, double-double-init-x86, sse2-checkpoint-2008-10-01, intl-branch-2010-03-18-1300, snapshot-2005-11, double-double-sparc-checkpoint-1, snapshot-2004-04, sse2-merge-with-2008-11, sse2-merge-with-2008-10, snapshot-2005-10, RELEASE_20a, snapshot-2005-12, release-20a-pre1, snapshot-2005-01, snapshot-2009-11, snapshot-2009-12, unicode-utf16-extfmt-2009-06-11, portable-clx-import-2009-06-16, unicode-utf16-string-support, release-19c-pre1, cross-sparc-branch-base, release-19e-base, intl-branch-base, double-double-irrat-start, snapshot-2005-06, snapshot-2005-05, snapshot-2005-04, ppc_gencgc_snap_2005-05-14, snapshot-2005-02, unicode-utf16-base, portable-clx-base, snapshot-2005-09, snapshot-2005-08, lisp-executable-base, snapshot-2009-08, snapshot-2007-12, snapshot-2007-10, snapshot-2007-11, snapshot-2009-02, snapshot-2009-01, snapshot-2009-07, snapshot-2009-05, snapshot-2009-04, snapshot-2006-02, snapshot-2006-03, release-18e-pre1, snapshot-2006-01, snapshot-2006-06, snapshot-2006-07, snapshot-2006-04, snapshot-2006-05, pre-telent-clx, snapshot-2006-08, snapshot-2006-09, HEAD
Branch point for: release-19b-branch, double-double-reader-branch, double-double-array-branch, mod-arith-branch, RELEASE-19F-BRANCH, portable-clx-branch, sparc_gencgc_branch, cross-sparc-branch, RELEASE-20B-BRANCH, RELENG_18, unicode-string-buffer-branch, sparc-tramp-assem-branch, dynamic-extent, UNICODE-BRANCH, release-19d-branch, ppc_gencgc_branch, sse2-packed-branch, lisp-executable, RELEASE-20A-BRANCH, amd64-dd-branch, double-double-branch, unicode-string-buffer-impl-branch, intl-branch, release-18e-branch, cold-pcl, unicode-utf16-branch, cross-sol-x86-branch, release-19e-branch, sse2-branch, release-19a-branch, release-19c-branch, intl-2-branch, unicode-utf16-extfmt-branch
Initial revision
1 (literalize unit unit-name file-name)
2
3 (literalize pin net-name pin-name external-net-name external-pin-name pin-left-x pin-left-y fixed-pin pin-x pin-y pin-layer pin-layer-constraint pin-channel-side pin-is-attached)
4
5 (literalize channel channel-bottom-left-x channel-bottom-left-y channel-top-right-x channel-top-right-y channel-width channel-length no-of-left-pins no-of-right-pins no-of-bottom-pins no-of-top-pins right-fixed left-fixed bottom-fixed top-fixed channel-type no-of-fixed-sides)
6
7 (literalize net net-name parent-name net-no-of-pins net-left-x net-left-y net-right-x net-right-y no-of-left-pins no-of-right-pins no-of-top-pins no-of-bottom-pins net-is-routed left-most-pin-name right-most-pin-name bottom-most-pin-name top-most-pin-name fixed-net net-layer external-net-name no-of-inter max-no-of-via)
8
9 (literalize layer-info layer-name layer-order layer-priority)
10
11 (literalize context present previous saved)
12
13 (literalize ff net-name pin-name grid-layer grid-x grid-y came-from can-chng-layer)
14
15 (literalize next-net-to-be-routed net-name no-of-attached-pins criteria)
16
17 (literalize to-be-routed net-name no-of-attached-pins)
18
19 (literalize occupied x y m)
20
21 (literalize constraint constraint-type constraint-relation channel-side constraint-reason net-name-1 net-name-2 pin-name-1 pin-name-2 seg-id-1 seg-id-2)
22
23 (literalize congestion direction coordinate no-of-nets extra-nets como)
24
25 (literalize intersection net-name direction min max)
26
27 (literalize horizontal min max com compo commo layer status min-net max-net net-name pin-name)
28
29 (literalize vertical min max com compo commo layer status min-net max-net net-name pin-name)
30
31 (literalize horizontal-s net-name min max com id top-count bot-count sum difference absolute side)
32
33 (literalize vertical-s net-name min max com id top-count bot-count sum difference absolute side)
34
35 (literalize total net-name row-col coor level-pins total-pins cong min-xy max-xy last-pin last-xy nets)
36
37 (literalize tree net-name orientation com min max count id)
38
39 (vector-attribute nets)
40
41 (p p327
42 (context ^present delete-total)
43 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max>) }
44 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
45 (horizontal-s ^net-name <nn> ^min { <hmin> <= <gx> } ^max { <hmax> >= <gx> > <min> } ^com 1 ^id <id>)
46 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <> <id>)
47 (pin ^net-name <nn> ^pin-name <pn> ^pin-x { >= <hmin> <= <hmax> } ^pin-channel-side bottom)
48 (constraint ^constraint-type vertical ^seg-id-1 <id>)
49 (total ^net-name <> <nn>)
50 - (total-verti <nn>)
51 -->
52 (remove <t>)
53 )
54
55 (p p328
56 (context ^present delete-total)
57 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max>) }
58 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
59 (horizontal-s ^net-name <nn> ^min { <hmin> <= <gx> < <max> } ^max { <hmax> >= <gx> } ^com <lr> ^id <id>)
60 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <lr> ^id <> <id>)
61 (last-row <lr>)
62 (pin ^net-name <nn> ^pin-name <pn> ^pin-x { >= <hmin> <= <hmax> } ^pin-channel-side top)
63 (constraint ^constraint-type vertical ^seg-id-2 <id>)
64 (total ^net-name <> <nn>)
65 - (total-verti <nn>)
66 -->
67 (remove <t>)
68 )
69
70 (p p329
71 (context ^present delete-total)
72 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max>) }
73 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
74 (vertical-s ^net-name <nn> ^min { <vmin> <= <gy> } ^max { <vmax> >= <gy> > <min> } ^com 1 ^id <id>)
75 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <> <id>)
76 (pin ^net-name <nn> ^pin-name <pn> ^pin-y { >= <vmin> <= <vmax> } ^pin-channel-side left)
77 (constraint ^constraint-type horizontal ^seg-id-1 <id>)
78 (total ^net-name <> <nn>)
79 - (total-verti <nn>)
80 -->
81 (remove <t>)
82 )
83
84 (p p330
85 (context ^present delete-total)
86 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max>) }
87 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
88 (vertical-s ^net-name <nn> ^min { <vmin> <= <gy> < <max> } ^max { <vmax> >= <gy> } ^com <lc> ^id <id>)
89 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <lc> ^id <> <id>)
90 (last-col <lc>)
91 (pin ^net-name <nn> ^pin-name <pn> ^pin-y { >= <vmin> <= <vmax> } ^pin-channel-side right)
92 (constraint ^constraint-type horizontal ^seg-id-2 <id>)
93 (total ^net-name <> <nn>)
94 - (total-verti <nn>)
95 -->
96 (remove <t>)
97 )
98
99 (p p331
100 { <c> (context ^present modify-total) }
101 -->
102 (modify <c> ^present delete-total)
103 )
104
105 (p p332
106 { <c> (context ^present delete-total) }
107 - (total)
108 -->
109 (remove <c>)
110 (make context ^previous find-no-of-pins-on-a-row-col)
111 )
112
113 (p p333
114 { <c> (context ^present extend-total) }
115 (last-row <lr>)
116 -->
117 (make maximum-total 0 0 0 1 0 <lr> 0)
118 (make merge-direction left)
119 (modify <c> ^present merge)
120 (make eliminate-total)
121 )
122
123 (p p334
124 { <c> (context ^present delete-total) }
125 -->
126 (modify <c> ^present extend-total)
127 )
128
129 (p p335
130 (context ^present modify-total)
131 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
132 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
133 (horizontal-s ^net-name <nn> ^min { <hmin> <= <gx> } ^max { <hmax> >= <gx> } ^com 1 ^id <id> ^absolute <a> ^sum <s>)
134 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <> <id>)
135 - (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <hmin> ^max-xy <hmax> ^last-pin checked)
136 (pin ^net-name <nn> ^pin-name <pn> ^pin-x { >= <hmin> <= <hmax> } ^pin-channel-side bottom)
137 -->
138 (make (substr <t> 1 inf) ^min-xy <hmin> ^max-xy <hmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <hmin> <hmax>)
139 )
140
141 (p p336
142 (context ^present modify-total)
143 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
144 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
145 (horizontal-s ^net-name <nn> ^min { <hmin> <= <gx> } ^max { <hmax> >= <gx> } ^com <lr> ^id <id> ^absolute <a> ^sum <s>)
146 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <lr> ^id <> <id>)
147 - (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <hmin> ^max-xy <hmax> ^last-pin checked)
148 (last-row <lr>)
149 (pin ^net-name <nn> ^pin-name <pn> ^pin-x { >= <hmin> <= <hmax> } ^pin-channel-side top)
150 -->
151 (make (substr <t> 1 inf) ^min-xy <hmin> ^max-xy <hmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <hmin> <hmax>)
152 )
153
154 (p p337
155 (context ^present modify-total)
156 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
157 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
158 (vertical-s ^net-name <nn> ^min { <vmin> <= <gy> } ^max { <vmax> >= <gy> } ^com 1 ^id <id> ^absolute <a> ^sum <s>)
159 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <> <id>)
160 - (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <vmin> ^max-xy <vmax> ^last-pin checked)
161 (pin ^net-name <nn> ^pin-name <pn> ^pin-y { >= <vmin> <= <vmax> } ^pin-channel-side left)
162 -->
163 (make (substr <t> 1 inf) ^min-xy <vmin> ^max-xy <vmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <vmin> <vmax>)
164 )
165
166 (p p338
167 (context ^present modify-total)
168 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
169 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
170 (vertical-s ^net-name <nn> ^min { <vmin> <= <gy> } ^max { <vmax> >= <gy> } ^com <lc> ^id <id> ^absolute <a> ^sum <s>)
171 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <lc> ^id <> <id>)
172 - (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <vmin> ^max-xy <vmax> ^last-pin checked)
173 (last-col <lc>)
174 (pin ^net-name <nn> ^pin-name <pn> ^pin-y { >= <vmin> <= <vmax> } ^pin-channel-side right)
175 -->
176 (make (substr <t> 1 inf) ^min-xy <vmin> ^max-xy <vmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <vmin> <vmax>)
177 )
178
179 (p p339
180 (context ^present modify-total)
181 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
182 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
183 (horizontal-s ^net-name <nn> ^min 1 ^max { <hmax> >= <gx> } ^com <com> ^id <id> ^absolute <a> ^sum <s>)
184 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <garb> ^id <> <id>)
185 - (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy 1 ^max-xy <hmax> ^last-pin checked)
186 (pin ^net-name <nn> ^pin-name <pn> ^pin-x 0 ^pin-y <com> ^pin-channel-side left)
187 -->
188 (make (substr <t> 1 inf) ^min-xy 1 ^max-xy <hmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> 1 <hmax>)
189 )
190
191 (p p340
192 (context ^present modify-total)
193 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
194 (ff ^net-name <nn> ^pin-name <pn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y <y>)
195 (horizontal-s ^net-name <nn> ^min { <hmin> <= <gx> } ^max <lc> ^com <com> ^id <id> ^absolute <a> ^sum <s>)
196 - (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <garb> ^id <> <id>)
197 - (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <hmin> ^max-xy <lc> ^last-pin checked)
198 (pin ^net-name <nn> ^pin-name <pn> ^pin-y <com> ^pin-channel-side right)
199 (last-col <lc>)
200 -->
201 (make (substr <t> 1 inf) ^min-xy <hmin> ^max-xy <lc> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <hmin> <lc>)
202 )
203
204 (p p341
205 (context ^present modify-total)
206 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
207 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
208 (vertical-s ^net-name <nn> ^min 1 ^max { <vmax> >= <gy> } ^com <com> ^id <id> ^absolute <a> ^sum <s>)
209 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <garb> ^id <> <id>)
210 - (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy 1 ^max-xy <vmax> ^last-pin checked)
211 (pin ^net-name <nn> ^pin-name <pn> ^pin-x <com> ^pin-channel-side bottom)
212 -->
213 (make (substr <t> 1 inf) ^min-xy 1 ^max-xy <vmax> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> 1 <vmax>)
214 )
215
216 (p p342
217 (context ^present modify-total)
218 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
219 (ff ^net-name <nn> ^pin-name <pn> ^grid-x <x> ^grid-y { <gy> >= <min> <= <max> })
220 (vertical-s ^net-name <nn> ^min { <vmin> <= <gy> } ^max <lr> ^com <com> ^id <id> ^absolute <a> ^sum <s>)
221 - (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <garb> ^id <> <id>)
222 - (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <vmin> ^max-xy <lr> ^last-pin checked)
223 (pin ^net-name <nn> ^pin-name <pn> ^pin-x <com> ^pin-channel-side top)
224 (last-row <lr>)
225 -->
226 (make (substr <t> 1 inf) ^min-xy <vmin> ^max-xy <lr> ^level-pins <a> ^total-pins <s> ^last-pin checked ^last-xy <id> ^nets <nn> <vmin> <lr>)
227 )
228
229 (p p343
230 (context ^present delete-total)
231 { <t> (total ^net-name <nn> ^row-col <rc> ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
232 (total ^net-name <nn> ^row-col <rc> ^coor <y> ^last-pin checked)
233 -->
234 (remove <t>)
235 )
236
237 (p p344
238 (context ^present delete-total)
239 { <t> (total ^net-name <nn> ^row-col <rc> ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
240 -->
241 (remove <t>)
242 )
243
244 (p p345
245 (context ^present delete-total)
246 { <t> (total ^net-name <nn> ^row-col <rc> ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
247 (net ^net-name <nn> ^net-no-of-pins 2)
248 -->
249 (modify <t> ^last-pin checked ^nets <nn> <min> <max>)
250 )
251
252 (p p346
253 (context ^present delete-total)
254 { <t> (total ^net-name <nn> ^row-col <rc> ^coor <y> ^min-xy <min> ^max-xy <max> ^last-pin <> checked) }
255 - (total ^last-pin checked)
256 -->
257 (modify <t> ^last-pin checked ^nets <nn> <min> <max>)
258 )
259
260 (p p347
261 (context ^present delete-total)
262 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max>) }
263 (last-col <lc>)
264 (horizontal-s ^net-name { <nn1> <> <nn> } ^min 1 ^max { >= <min> <> <lc> } ^com <y> ^id <=> 1)
265 (pin ^net-name <nn1> ^pin-x 0 ^pin-y <y>)
266 - (pin ^net-name <nn> ^pin-y <y> ^pin-channel-side right)
267 -->
268 (remove <t>)
269 )
270
271 (p p348
272 (context ^present delete-total)
273 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <tmin> ^max-xy <max>) }
274 (last-col <lc>)
275 (horizontal-s ^net-name { <nn1> <> <nn> } ^min 1 ^max { <maxs> <> <lc> } ^com <y> ^id <=> 1)
276 (pin ^net-name <nn1> ^pin-x 0 ^pin-y <y>)
277 (vertical ^net-name <nn> ^min <= <y> ^max >= <y> ^com { <min> > 1 <= <maxs> })
278 - (vertical ^net-name <nn> ^min <= <y> ^max >= <y> ^com < <min>)
279 { <h> (horizontal ^net-name <nn1> ^min 0 ^max { <hmax> < <min> } ^com <y> ^layer <lay>) }
280 { <ff> (ff ^net-name <nn1> ^grid-x <hmax> ^grid-y <y> ^grid-layer <lay> ^came-from west) }
281 { <h1> (horizontal ^net-name nil ^min <hmax> ^max > <hmax> ^com <y> ^layer <lay>) }
282 - (pin ^net-name <nn> ^pin-y <y>)
283 - (vertical ^status nil ^net-name { <> <nn1> <> nil } ^min <= <y> ^max >= <y> ^com <min> ^layer <lay>)
284 - (horizontal ^status nil ^net-name { <> <nn1> <> nil } ^min <= <min> ^max >= <min> ^com <y> ^layer <lay>)
285 -->
286 (remove <t>)
287 (modify <h> ^max <min>)
288 (modify <h1> ^min <min> ^min-net <nn1>)
289 (modify <ff> ^grid-x <min> ^can-chng-layer nil)
290 )
291
292 (p p349
293 (context ^present delete-total)
294 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max>) }
295 (last-col <lc>)
296 (horizontal-s ^net-name { <nn1> <> <nn> } ^min { <= <max> <> 1 } ^max <lc> ^com <y> ^id <=> 1)
297 (pin ^net-name <nn1> ^pin-y <y> ^pin-channel-side right)
298 - (pin ^net-name <nn> ^pin-y <y> ^pin-channel-side left)
299 -->
300 (remove <t>)
301 )
302
303 (p p350
304 (context ^present delete-total)
305 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <tmax>) }
306 (last-col <lc>)
307 (horizontal-s ^net-name { <nn1> <> <nn> } ^min { <mins> <> 1 } ^max <lc> ^com <y> ^id <=> 1)
308 (pin ^net-name <nn1> ^pin-y <y> ^pin-channel-side right)
309 (vertical ^net-name <nn> ^min <= <y> ^max >= <y> ^com { <max> >= <mins> < <lc> })
310 - (vertical ^net-name <nn> ^min <= <y> ^max >= <y> ^com > <max>)
311 { <h> (horizontal ^net-name <nn1> ^min { <hmin> > <max> } ^max <garb> ^com <y> ^layer <lay>) }
312 { <ff> (ff ^net-name <nn1> ^grid-x <hmin> ^grid-y <y> ^grid-layer <lay> ^came-from east) }
313 { <h1> (horizontal ^net-name nil ^min < <max> ^max <hmin> ^com <y> ^layer <lay>) }
314 - (pin ^net-name <nn> ^pin-y <y>)
315 - (vertical ^status nil ^net-name { <> <nn1> <> nil } ^min <= <y> ^max >= <y> ^com <max> ^layer <lay>)
316 - (horizontal ^status nil ^net-name { <> <nn1> <> nil } ^min <= <max> ^max >= <max> ^com <y> ^layer <lay>)
317 -->
318 (remove <t>)
319 (modify <h> ^min <max>)
320 (modify <h1> ^max <max> ^max-net <nn1>)
321 (modify <ff> ^grid-x <max> ^can-chng-layer nil)
322 )
323
324 (p p351
325 (context ^present delete-total)
326 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max>) }
327 (last-row <lr>)
328 (vertical-s ^net-name { <nn1> <> <nn> } ^min 1 ^max { >= <min> <> <lr> } ^com <x> ^id <=> 1)
329 (pin ^net-name <nn1> ^pin-x <x> ^pin-channel-side bottom)
330 - (pin ^net-name <nn> ^pin-x <x> ^pin-channel-side top)
331 -->
332 (remove <t>)
333 )
334
335 (p p352
336 (context ^present delete-total)
337 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <tmin> ^max-xy <max>) }
338 (last-row <lr>)
339 (vertical-s ^net-name { <nn1> <> <nn> } ^min 1 ^max { <maxs> <> <lr> } ^com <x> ^id <=> 1)
340 (pin ^net-name <nn1> ^pin-x <x> ^pin-channel-side bottom)
341 (horizontal ^net-name <nn> ^min <= <x> ^max <x> ^com { <min> > 1 <= <maxs> })
342 - (horizontal ^net-name <nn> ^min <= <x> ^max <x> ^com < <min>)
343 { <v> (vertical ^net-name <nn1> ^min 0 ^max { <vmax> < <min> } ^com <x> ^layer <lay>) }
344 { <ff> (ff ^net-name <nn1> ^grid-x <x> ^grid-y <vmax> ^grid-layer <lay> ^came-from south) }
345 { <v1> (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <x> ^layer <lay>) }
346 - (pin ^net-name <nn> ^pin-x <x>)
347 - (vertical ^status nil ^net-name { <> <nn1> <> nil } ^min <= <min> ^max >= <min> ^com <x>)
348 - (horizontal ^status nil ^net-name { <> <nn1> <> nil } ^min <= <x> ^max >= <x> ^com <min>)
349 -->
350 (remove <t>)
351 (modify <v> ^max <min>)
352 (modify <v1> ^min <min> ^min-net <nn1>)
353 (modify <ff> ^grid-y <min> ^can-chng-layer nil)
354 )
355
356 (p p353
357 (context ^present delete-total)
358 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max>) }
359 (last-row <lr>)
360 (vertical-s ^net-name { <nn1> <> <nn> } ^min { <= <max> <> 1 } ^max <lr> ^com <x> ^id <=> 1)
361 (pin ^net-name <nn1> ^pin-x <x> ^pin-channel-side top)
362 - (pin ^net-name <nn> ^pin-x <x> ^pin-channel-side bottom)
363 -->
364 (remove <t>)
365 )
366
367 (p p354
368 (context ^present delete-total)
369 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <tmax>) }
370 (last-row <lr>)
371 (vertical-s ^net-name { <nn1> <> <nn> } ^min { <mins> <> 1 } ^max <lr> ^com <x> ^id <=> 1)
372 (pin ^net-name <nn1> ^pin-x <x> ^pin-channel-side top)
373 (horizontal ^net-name <nn> ^min <= <x> ^max >= <x> ^com { <max> >= <mins> < <lr> })
374 - (horizontal ^net-name <nn> ^min <= <x> ^max >= <x> ^com > <max>)
375 { <v> (vertical ^net-name <nn1> ^min { <vmin> > <max> } ^max <garb> ^com <x> ^layer <lay>) }
376 { <ff> (ff ^net-name <nn1> ^grid-x <x> ^grid-y <vmin> ^grid-layer <lay> ^came-from north) }
377 { <v1> (vertical ^net-name nil ^min < <vmin> ^max <vmin> ^com <x> ^layer <lay>) }
378 - (pin ^net-name <nn> ^pin-x <x>)
379 - (vertical ^status nil ^net-name { <> <nn1> <> nil } ^min <= <max> ^max >= <max> ^com <x>)
380 - (horizontal ^status nil ^net-name { <> <nn1> <> nil } ^min <= <x> ^max >= <x> ^com <max>)
381 -->
382 (remove <t>)
383 (modify <v> ^min <max>)
384 (modify <v1> ^max <max> ^max-net <nn1>)
385 (modify <ff> ^grid-y <max> ^can-chng-layer nil)
386 )
387
388 (p p355
389 (context ^present extend-total)
390 - (switch-box)
391 { <t> (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-xy <id>) }
392 (last-row > <y>)
393 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <id>)
394 - (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com <y>)
395 - (horizontal ^net-name <nn> ^min <= <min> ^max >= <min> ^com <y>)
396 - (horizontal ^net-name <nn> ^min <= <max> ^max >= <max> ^com <y>)
397 - (horizontal ^net-name <nn> ^min >= <min> ^max <= <max> ^com <y>)
398 (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com > <y>)
399 - (ff ^net-name <nn> ^grid-x { >= <min> <= <max> } ^grid-y <y> ^pin-name >= 1000)
400 -->
401 (modify <t> ^coor (compute <y> + 1))
402 )
403
404 (p p356
405 (context ^present extend-total)
406 - (switch-box)
407 { <t> (total ^net-name <nn> ^row-col row ^coor { <y> > 0 } ^min-xy <min> ^max-xy <max> ^last-xy <id>) }
408 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <lr> ^id <id>)
409 (last-row <lr>)
410 - (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com <y>)
411 - (horizontal ^net-name <nn> ^min <= <min> ^max >= <min> ^com <y>)
412 - (horizontal ^net-name <nn> ^min <= <max> ^max >= <max> ^com <y>)
413 - (horizontal ^net-name <nn> ^min >= <min> ^max <= <max> ^com <y>)
414 (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com < <y>)
415 - (ff ^net-name <nn> ^grid-x { >= <min> <= <max> } ^grid-y <y> ^pin-name >= 1000)
416 -->
417 (modify <t> ^coor (compute <y> - 1))
418 )
419
420 (p p357
421 (context ^present extend-total)
422 - (switch-box)
423 { <t> (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-xy <id>) }
424 (last-col > <x>)
425 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <id>)
426 - (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com <x>)
427 - (vertical ^net-name <nn> ^min <= <min> ^max >= <min> ^com <x>)
428 - (vertical ^net-name <nn> ^min <= <max> ^max >= <max> ^com <x>)
429 - (vertical ^net-name <nn> ^min >= <min> ^max <= <max> ^com <x>)
430 (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com > <x>)
431 - (ff ^net-name <nn> ^grid-x <x> ^grid-y { >= <min> <= <max> } ^pin-name >= 1000)
432 -->
433 (modify <t> ^coor (compute <x> + 1))
434 )
435
436 (p p358
437 (context ^present extend-total)
438 - (switch-box)
439 { <t> (total ^net-name <nn> ^row-col col ^coor { <x> > 0 } ^min-xy <min> ^max-xy <max> ^last-xy <id>) }
440 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <lc> ^id <id>)
441 (last-col <lc>)
442 - (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com <x>)
443 - (vertical ^net-name <nn> ^min <= <min> ^max >= <min> ^com <x>)
444 - (vertical ^net-name <nn> ^min <= <max> ^max >= <max> ^com <x>)
445 - (vertical ^net-name <nn> ^min >= <min> ^max <= <max> ^com <x>)
446 (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com < <x>)
447 - (ff ^net-name <nn> ^grid-x <x> ^grid-y { >= <min> <= <max> } ^pin-name >= 1000)
448 -->
449 (modify <t> ^coor (compute <x> - 1))
450 )
451
452 (p p359
453 (context ^present extend-total)
454 (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-xy <id>)
455 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <id>)
456 (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com <y>)
457 { <ff> (ff ^net-name <nn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y { <gy> < <y> } ^grid-layer <lay> ^pin-name <pn>) }
458 { <v> (vertical ^net-name nil ^min { <vmin> <= <gy> } ^max { <vmax> >= <y> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
459 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <y> ^max >= <y> ^com <gx> ^layer <lay>)
460 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <y> ^layer <lay>)
461 -->
462 (make vertical ^min <y> ^max <vmax> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn> ^max-net <mn>)
463 (modify <v> ^max <gy> ^max-net <nn>)
464 (make vertical ^min <gy> ^max <y> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^net-name <nn> ^pin-name <pn>)
465 (modify <ff> ^grid-y <y> ^came-from south ^can-chng-layer nil)
466 )
467
468 (p p360
469 (context ^present extend-total)
470 (total ^net-name <nn> ^row-col row ^coor <y> ^min-xy <min> ^max-xy <max> ^last-xy <id>)
471 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <lr> ^id <id>)
472 (last-row <lr>)
473 (horizontal ^net-name nil ^min <= <min> ^max >= <max> ^com <y>)
474 { <ff> (ff ^net-name <nn> ^grid-x { <gx> >= <min> <= <max> } ^grid-y { <gy> > <y> } ^grid-layer <lay> ^pin-name <pn>) }
475 { <v> (vertical ^net-name nil ^min { <vmin> <= <y> } ^max { <vmax> >= <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
476 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <y> ^max >= <y> ^com <gx> ^layer <lay>)
477 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <y> ^layer <lay>)
478 -->
479 (make vertical ^min <gy> ^max <vmax> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn> ^max-net <mn>)
480 (modify <v> ^max <y> ^max-net <nn>)
481 (make vertical ^min <y> ^max <gy> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^net-name <nn> ^pin-name <pn>)
482 (modify <ff> ^grid-y <y> ^came-from north ^can-chng-layer nil)
483 )
484
485 (p p361
486 (context ^present extend-total)
487 (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-xy <id>)
488 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com 1 ^id <id>)
489 (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com <x>)
490 { <ff> (ff ^net-name <nn> ^grid-x { <gx> < <x> } ^grid-y { <gy> >= <min> <= <max> } ^grid-layer <lay> ^pin-name <pn>) }
491 { <v> (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { <hmax> >= <x> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
492 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <x> ^max >= <x> ^com <gy> ^layer <lay>)
493 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <x> ^layer <lay>)
494 -->
495 (make horizontal ^min <x> ^max <hmax> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn> ^max-net <mn>)
496 (modify <v> ^max <gx> ^max-net <nn>)
497 (make horizontal ^min <gx> ^max <x> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^net-name <nn> ^pin-name <pn>)
498 (modify <ff> ^grid-x <x> ^came-from west ^can-chng-layer nil)
499 )
500
501 (p p362
502 (context ^present extend-total)
503 (total ^net-name <nn> ^row-col col ^coor <x> ^min-xy <min> ^max-xy <max> ^last-xy <id>)
504 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <lc> ^id <id>)
505 (last-col <lc>)
506 (vertical ^net-name nil ^min <= <min> ^max >= <max> ^com <x>)
507 { <ff> (ff ^net-name <nn> ^grid-x { <gx> > <x> } ^grid-y { <gy> >= <min> <= <max> } ^grid-layer <lay> ^pin-name <pn>) }
508 { <v> (horizontal ^net-name nil ^min { <hmin> <= <x> } ^max { <hmax> >= <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
509 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <x> ^max >= <x> ^com <gy> ^layer <lay>)
510 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <x> ^layer <lay>)
511 -->
512 (make horizontal ^min <gx> ^max <hmax> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn> ^max-net <mn>)
513 (modify <v> ^max <x> ^max-net <nn>)
514 (make horizontal ^min <x> ^max <gx> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^net-name <nn> ^pin-name <pn>)
515 (modify <ff> ^grid-x <x> ^came-from east ^can-chng-layer nil)
516 )
517
518 (p p490
519 { <c> (context ^present separate) }
520 -->
521 (modify <c> ^present reconnect)
522 )
523
524 (p p491
525 { <c> (context ^present reconnect) }
526 -->
527 (modify <c> ^present form-verti)
528 )
529
530 (p p492
531 { <c> (context ^present form-verti) }
532 -->
533 (modify <c> ^present partial-route)
534 )
535
536 (p p493
537 { <c> (context ^present partial-route) }
538 -->
539 (modify <c> ^present extend-pins)
540 )
541
542 (p p494
543 { <c1> (context ^present extend-pins) }
544 -->
545 (modify <c1> ^present nil ^previous extend-pins)
546 )
547
548 (p p495
549 { <c1> (context ^previous extend-pins) }
550 -->
551 (make switch-box)
552 (make context ^present propagate-constraint)
553 (remove <c1>)
554 )
555
556 (p p496
557 { <c1> (context ^previous extend-pins) }
558 (channel ^no-of-left-pins 0 ^no-of-right-pins 0)
559 -->
560 (remove <c1>)
561 (make context ^present find-no-of-pins-on-a-row-col)
562 )
563
564 (p p497
565 { <c1> (context ^previous extend-pins) }
566 (channel ^no-of-bottom-pins 0 ^no-of-top-pins 0)
567 -->
568 (remove <c1>)
569 (make context ^present find-no-of-pins-on-a-row-col)
570 )
571
572 (p p498
573 (context ^previous propagate-constraint)
574 (net ^net-is-routed <> yes)
575 -->
576 (remove 1)
577 (make context ^present lshape1)
578 )
579
580 (p p499
581 (context ^present lshape1)
582 -->
583 (modify 1 ^present find-no-of-pins-on-a-row-col)
584 )
585
586 (p p500
587 { <c> (context ^previous find-no-of-pins-on-a-row-col) }
588 - (total)
589 - (extend-ff-tried)
590 -->
591 (remove <c>)
592 (make context ^present lshape4)
593 )
594
595 (p p501
596 { <c> (context ^present lshape4) }
597 -->
598 (remove <c>)
599 (make extend-ff-tried)
600 (make context ^present extend-ff)
601 )
602
603 (p p502
604 { <c> (context ^present extend-ff) }
605 -->
606 (remove <c>)
607 (make context ^previous extend-ff)
608 )
609
610 (p p503
611 { <c> (context ^previous extend-ff) }
612 - (extended-ff)
613 -->
614 (remove <c>)
615 (make context ^present find-no-of-pins-on-a-row-col)
616 )
617
618 (p p504
619 { <c> (context ^previous extend-ff) }
620 { <e> (extended-ff) }
621 { <ex> (extend-ff-tried) }
622 -->
623 (remove <c> <e> <ex>)
624 (make context ^present find-no-of-pins-on-a-row-col)
625 (make goal cleanup extended-ff)
626 )
627
628 (p p505
629 (context ^previous find-no-of-pins-on-a-row-col)
630 - (total)
631 (extend-ff-tried)
632 - (total-verti)
633 -->
634 (remove 1)
635 (make context ^present find-no-of-vcg-hcg)
636 (make goal cleanup counted-verti)
637 )
638
639 (p p506
640 (context ^previous find-no-of-pins-on-a-row-col)
641 - (total)
642 (total-verti)
643 - (verti-has-loop)
644 -->
645 (remove 1)
646 (make verti-has-loop)
647 (make context ^present choose-between-total-verti)
648 )
649
650 (p p507
651 (context ^previous find-no-of-pins-on-a-row-col)
652 - (total)
653 (total-verti)
654 (verti-has-loop)
655 -->
656 (make context ^present extend-h-v-s)
657 (make goal cleanup total-verti)
658 (make goal cleanup counted-verti)
659 (make goal cleanup extend-ff-tried)
660 (remove 1 3)
661 )
662
663 (p p508
664 (context ^present choose-between-total-verti)
665 - (total-verti ^4 > 0)
666 -->
667 (modify 1 ^present extend-h-v-s)
668 (make goal cleanup counted-verti)
669 )
670
671 (p p509
672 (context ^previous find-no-of-vcg-hcg)
673 - (total-verti)
674 -->
675 (remove 1)
676 (make context ^present extend-h-v-s)
677 )
678
679 (p p510
680 (context ^present loose-constraint)
681 -->
682 (make context ^present lshape2)
683 (remove 1)
684 )
685
686 (p p511
687 (context ^present lshape2)
688 -->
689 (modify 1 ^present lshape3)
690 )
691
692 (p p512
693 (context ^present lshape3)
694 -->
695 (remove 1)
696 (make context ^present random0)
697 )
698
699 (p p513
700 (context ^present random0)
701 -->
702 (remove 1)
703 (make context ^present random1)
704 )
705
706 (p p514
707 (context ^present remove-routed-net-segments)
708 - (net ^net-is-routed <> yes)
709 - (horizontal ^net-name <> nil ^status nil)
710 - (vertical ^net-name <> nil ^status nil)
711 -->
712 (write (crlf) | Finished with the routing.|)
713 (halt)
714 )
715
716 (p p1
717 (context ^present separate)
718 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
719 (vertical-s ^net-name <nn> ^com <min>)
720 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side bottom)
721 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side top)
722 - (horizontal-s ^net-name <nn> ^min <= <px> ^max >= <px> ^id <> <id>)
723 (pin ^net-name <> <nn> ^pin-x <min> ^pin-channel-side top)
724 - (pin ^net-name <nn> ^pin-x <px> ^pin-channel-side bottom)
725 - (pin ^net-name <nn> ^pin-x { < <px> > <min> })
726 (pin ^net-name <nn> ^pin-x > <px> ^pin-channel-side top)
727 -->
728 (modify <h> ^min <px>)
729 (make horizontal-s ^net-name <nn> ^min <min> ^max <px> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
730 )
731
732 (p p2
733 (context ^present separate)
734 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
735 (vertical-s ^net-name <nn> ^com <min>)
736 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side top)
737 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side bottom)
738 - (horizontal-s ^net-name <nn> ^min <= <px> ^max >= <px> ^id <> <id>)
739 (pin ^net-name <> <nn> ^pin-x <min> ^pin-channel-side bottom)
740 - (pin ^net-name <nn> ^pin-x <px> ^pin-channel-side top)
741 - (pin ^net-name <nn> ^pin-x { < <px> > <min> })
742 (pin ^net-name <nn> ^pin-x > <px> ^pin-channel-side bottom)
743 -->
744 (modify <h> ^min <px>)
745 (make horizontal-s ^net-name <nn> ^min <min> ^max <px> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
746 )
747
748 (p p3
749 (context ^present separate)
750 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
751 (vertical-s ^net-name <nn> ^com <max>)
752 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side bottom)
753 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side top)
754 - (horizontal-s ^net-name <nn> ^min <= <px> ^max >= <px> ^id <> <id>)
755 (pin ^net-name <> <nn> ^pin-x <max> ^pin-channel-side top)
756 - (pin ^net-name <nn> ^pin-x <px> ^pin-channel-side bottom)
757 - (pin ^net-name <nn> ^pin-x { < <max> > <px> })
758 (pin ^net-name <nn> ^pin-x < <px> ^pin-channel-side top)
759 -->
760 (modify <h> ^max <px>)
761 (make horizontal-s ^net-name <nn> ^min <px> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
762 )
763
764 (p p4
765 (context ^present separate)
766 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
767 (vertical-s ^net-name <nn> ^com <max>)
768 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side top)
769 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side bottom)
770 - (horizontal-s ^net-name <nn> ^min <= <px> ^max >= <px> ^id <> <id>)
771 (pin ^net-name <> <nn> ^pin-x <max> ^pin-channel-side bottom)
772 - (pin ^net-name <nn> ^pin-x <px> ^pin-channel-side top)
773 - (pin ^net-name <nn> ^pin-x { < <max> > <px> })
774 (pin ^net-name <nn> ^pin-x < <px> ^pin-channel-side bottom)
775 -->
776 (modify <h> ^max <px>)
777 (make horizontal-s ^net-name <nn> ^min <px> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
778 )
779
780 (p p5
781 (context ^present reconnect)
782 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
783 { <h2> (horizontal-s ^net-name <nn> ^min <min1> ^max <min> ^id <id2>) }
784 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side bottom)
785 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side top)
786 - (pin ^pin-x <max> ^pin-channel-side bottom)
787 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
788 (last-row <lr>)
789 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
790 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
791 -->
792 (remove <h1>)
793 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <max> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
794 (modify <h2> ^max <max>)
795 )
796
797 (p p6
798 (context ^present reconnect)
799 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
800 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <max1> ^id <id2>) }
801 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side top)
802 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side bottom)
803 - (pin ^pin-x <min> ^pin-channel-side bottom)
804 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
805 (last-row <lr>)
806 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
807 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
808 -->
809 (remove <h1>)
810 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <min> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
811 (modify <h2> ^min <min>)
812 )
813
814 (p p7
815 (context ^present reconnect)
816 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
817 { <h2> (horizontal-s ^net-name <nn> ^min <min1> ^max <min> ^id <id2>) }
818 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side bottom)
819 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side top)
820 - (pin ^pin-x <max> ^pin-channel-side top)
821 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
822 (last-row <lr>)
823 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
824 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
825 -->
826 (remove <h1>)
827 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <max> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
828 (modify <h2> ^max <max>)
829 )
830
831 (p p8
832 (context ^present reconnect)
833 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
834 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <max1> ^id <id2>) }
835 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side top)
836 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side bottom)
837 - (pin ^pin-x <min> ^pin-channel-side top)
838 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
839 (last-row <lr>)
840 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
841 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
842 -->
843 (remove <h1>)
844 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <min> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
845 (modify <h2> ^min <min>)
846 )
847
848 (p p9
849 (context ^present reconnect)
850 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com>)
851 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> } ^max { <max1> <= <max> } ^com <> <com>)
852 { <v> (vertical-s ^net-name <nn> ^com { <com1> >= <min1> <= <max1> }) }
853 (pin ^net-name <> <nn> ^pin-x <com1>)
854 (congestion ^direction col ^coordinate { <px> >= <min1> <= <max1> })
855 - (pin ^net-name <> <nn> ^pin-x <px>)
856 - (vertical-s ^com <px>)
857 -->
858 (modify <v> ^com <px>)
859 )
860
861 (p p10
862 (context ^present reconnect)
863 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com>)
864 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> <= <max> } ^max { <max1> >= <max> } ^com <> <com>)
865 { <v> (vertical-s ^net-name <nn> ^com { <com1> >= <min1> <= <max> }) }
866 (pin ^net-name <> <nn> ^pin-x <com1>)
867 (congestion ^direction col ^coordinate { <px> >= <min1> <= <max> })
868 - (pin ^net-name <> <nn> ^pin-x <px>)
869 - (vertical-s ^com <px>)
870 -->
871 (modify <v> ^com <px>)
872 )
873
874 (p p11
875 (context ^present reconnect)
876 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom> ^id <id>)
877 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> } ^max { <max1> <= <max> } ^com <> <hcom>)
878 - (vertical-s ^net-name <nn> ^com { >= <min1> <= <max1> })
879 { <v> (vertical-s ^net-name <nn> ^com { <vcom> < <min1> }) }
880 - (horizontal-s ^net-name <nn> ^min <= <vcom> ^max >= <vcom> ^id <> <id>)
881 -->
882 (modify <v> ^com <min1>)
883 )
884
885 (p p12
886 (context ^present reconnect)
887 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom> ^id <id>)
888 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> } ^max { <max1> <= <max> } ^com <> <hcom>)
889 - (vertical-s ^net-name <nn> ^com { >= <min1> <= <max1> })
890 { <v> (vertical-s ^net-name <nn> ^com { <vcom> > <max1> }) }
891 - (horizontal-s ^net-name <nn> ^min <= <vcom> ^max >= <vcom> ^id <> <id>)
892 -->
893 (modify <v> ^com <max1>)
894 )
895
896 (p p13
897 (context ^present reconnect)
898 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom> ^id <id>)
899 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> <= <max> } ^max { <max1> >= <max> } ^com <> <hcom>)
900 - (vertical-s ^net-name <nn> ^com { >= <min1> <= <max> })
901 { <v> (vertical-s ^net-name <nn> ^com { <vcom> < <min1> }) }
902 - (horizontal-s ^net-name <nn> ^min <= <vcom> ^max >= <vcom> ^id <> <id>)
903 -->
904 (modify <v> ^com <min1>)
905 )
906
907 (p p14
908 (context ^present reconnect)
909 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom> ^id <id>)
910 (horizontal-s ^net-name <nn> ^min { <min1> >= <min> <= <max> } ^max { <max1> >= <max> } ^com <> <hcom>)
911 - (vertical-s ^net-name <nn> ^com { >= <min1> <= <max> })
912 { <v> (vertical-s ^net-name <nn> ^com { <vcom> > <max> }) }
913 - (horizontal-s ^net-name <nn> ^min <= <vcom> ^max >= <vcom> ^id <> <id>)
914 -->
915 (modify <v> ^com <max>)
916 )
917
918 (p p15
919 (context ^present reconnect)
920 (horizontal-s ^net-name <nn> ^min <min1> ^max <max1> ^id <id1>)
921 { <h> (horizontal-s ^net-name <nn> ^min <max1> ^max <max2> ^com <com> ^id <id2>) }
922 (horizontal-s ^net-name <nn> ^min <max2> ^max <max3> ^id <id3>)
923 - (horizontal-s ^net-name <nn> ^id { <> <id1> <> <id2> <> <id3> })
924 (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com <max1>)
925 (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com <max2>)
926 -->
927 (modify <h> ^min <min1> ^max <max3>)
928 )
929
930 (p p16
931 (context ^present reconnect)
932 (vertical-s ^net-name <nn> ^min <min1> ^max <max1> ^id <id1>)
933 { <h> (vertical-s ^net-name <nn> ^min <max1> ^max <max2> ^com <com> ^id <id2>) }
934 (vertical-s ^net-name <nn> ^min <max2> ^max <max3> ^id <id3>)
935 - (vertical-s ^net-name <nn> ^id { <> <id1> <> <id2> <> <id3> })
936 (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com <max1>)
937 (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com <max2>)
938 -->
939 (modify <h> ^min <min1> ^max <max3>)
940 )
941
942 (p p17
943 (context ^present separate)
944 { <v> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
945 (horizontal-s ^net-name <nn> ^min <hmin> ^max <com> ^com <max>)
946 (pin ^net-name <nn> ^pin-y { <py> > <min> < <max> } ^pin-channel-side right)
947 - (pin ^net-name <nn> ^pin-x > <com> ^pin-y { > <py> <= <max> })
948 - (pin ^net-name <nn> ^pin-x <com> ^pin-channel-side top)
949 - (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <py> < <max> })
950 - (horizontal-s ^net-name <nn> ^min <com> ^max <hmax> ^com <max>)
951 -->
952 (modify <v> ^max <py>)
953 (make vertical-s ^net-name <nn> ^min <py> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
954 )
955
956 (p p18
957 (context ^present separate)
958 { <v> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
959 (horizontal-s ^net-name <nn> ^min <com> ^max <hmax> ^com <max>)
960 (pin ^net-name <nn> ^pin-y { <py> > <min> < <max> } ^pin-channel-side left)
961 - (pin ^net-name <nn> ^pin-x < <com> ^pin-y { > <py> <= <max> })
962 - (pin ^net-name <nn> ^pin-x <com> ^pin-channel-side top)
963 - (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <py> < <max> })
964 - (horizontal-s ^net-name <nn> ^min <hmin> ^max <com> ^com <max>)
965 -->
966 (modify <v> ^max <py>)
967 (make vertical-s ^net-name <nn> ^min <py> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
968 )
969
970 (p p19
971 (context ^present separate)
972 { <v> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
973 (horizontal-s ^net-name <nn> ^min <hmin> ^max <com> ^com <min>)
974 (pin ^net-name <nn> ^pin-y { <py> > <min> < <max> } ^pin-channel-side right)
975 - (pin ^net-name <nn> ^pin-x > <com> ^pin-y { < <py> >= <min> })
976 - (pin ^net-name <nn> ^pin-x <com> ^pin-channel-side bottom)
977 - (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <min> < <py> })
978 - (horizontal-s ^net-name <nn> ^min <com> ^max <hmax> ^com <min>)
979 -->
980 (modify <v> ^min <py>)
981 (make vertical-s ^net-name <nn> ^min <min> ^max <py> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
982 )
983
984 (p p20
985 (context ^present separate)
986 { <v> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
987 (horizontal-s ^net-name <nn> ^min <com> ^max <hmax> ^com <min>)
988 (pin ^net-name <nn> ^pin-y { <py> > <min> < <max> } ^pin-channel-side left)
989 - (pin ^net-name <nn> ^pin-x < <com> ^pin-y { < <py> >= <min> })
990 - (pin ^net-name <nn> ^pin-x <com> ^pin-channel-side bottom)
991 - (horizontal-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <min> < <py> })
992 - (horizontal-s ^net-name <nn> ^min <hmin> ^max <com> ^com <min>)
993 -->
994 (modify <v> ^min <py>)
995 (make vertical-s ^net-name <nn> ^min <min> ^max <py> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
996 )
997
998 (p p21
999 (context ^present separate)
1000 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
1001 (vertical-s ^net-name <nn> ^min <vmin> ^max <com> ^com <min>)
1002 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side top)
1003 - (pin ^net-name <nn> ^pin-x { < <px> >= <min> } ^pin-y > <com>)
1004 - (pin ^net-name <nn> ^pin-y <com> ^pin-channel-side left)
1005 - (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <min> < <px> })
1006 - (vertical-s ^net-name <nn> ^min <com> ^max <vmax> ^com <min>)
1007 -->
1008 (modify <h> ^min <px>)
1009 (make horizontal-s ^net-name <nn> ^min <min> ^max <px> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
1010 )
1011
1012 (p p22
1013 (context ^present separate)
1014 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
1015 (vertical-s ^net-name <nn> ^min <com> ^max <vmax> ^com <min>)
1016 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side bottom)
1017 - (pin ^net-name <nn> ^pin-x { < <px> >= <min> } ^pin-y < <com>)
1018 - (pin ^net-name <nn> ^pin-y <com> ^pin-channel-side left)
1019 - (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <min> < <px> })
1020 - (vertical-s ^net-name <nn> ^min <vmin> ^max <com> ^com <min>)
1021 -->
1022 (modify <h> ^min <px>)
1023 (make horizontal-s ^net-name <nn> ^min <min> ^max <px> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
1024 )
1025
1026 (p p23
1027 (context ^present separate)
1028 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
1029 (vertical-s ^net-name <nn> ^min <vmin> ^max <com> ^com <max>)
1030 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side top)
1031 - (pin ^net-name <nn> ^pin-x { > <px> <= <max> } ^pin-y > <com>)
1032 - (pin ^net-name <nn> ^pin-y <com> ^pin-channel-side right)
1033 - (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <px> < <max> })
1034 - (vertical-s ^net-name <nn> ^min <com> ^max <vmax> ^com <max>)
1035 -->
1036 (modify <h> ^max <px>)
1037 (make horizontal-s ^net-name <nn> ^min <px> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
1038 )
1039
1040 (p p24
1041 (context ^present separate)
1042 { <h> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <com> ^id <id>) }
1043 (vertical-s ^net-name <nn> ^min <com> ^max <vmax> ^com <max>)
1044 (pin ^net-name <nn> ^pin-x { <px> > <min> < <max> } ^pin-channel-side bottom)
1045 - (pin ^net-name <nn> ^pin-x { > <px> <= <max> } ^pin-y < <com>)
1046 - (pin ^net-name <nn> ^pin-y <com> ^pin-channel-side right)
1047 - (vertical-s ^net-name <nn> ^min <= <com> ^max >= <com> ^com { > <px> < <max> })
1048 - (vertical-s ^net-name <nn> ^min <vmin> ^max <com> ^com <max>)
1049 -->
1050 (modify <h> ^max <px>)
1051 (make horizontal-s ^net-name <nn> ^min <px> ^max <max> ^com <com> ^id (compute <id> + 1000) ^top-count 1 ^bot-count 1 ^difference 0 ^absolute 0 ^sum 2)
1052 )
1053
1054 (p p604
1055 (context ^present form-verti)
1056 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1057 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x { <vcom> >= <min> <= <max> } ^pin-channel-side top)
1058 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1>)
1059 - (horizontal-s ^net-name <bnn> ^min <= <vcom> ^max >= <vcom> ^id <> <id1>)
1060 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side bottom)
1061 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1062 -->
1063 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type vertical)
1064 )
1065
1066 (p p605
1067 (context ^present form-verti)
1068 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1069 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x { <vcom> >= <min> <= <max> } ^pin-channel-side bottom)
1070 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1>)
1071 - (horizontal-s ^net-name <bnn> ^min <= <vcom> ^max >= <vcom> ^id <> <id1>)
1072 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side top)
1073 - (constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn>)
1074 -->
1075 (make constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn> ^seg-id-1 <id1> ^seg-id-2 <id> ^constraint-type vertical)
1076 )
1077
1078 (p p606
1079 (context ^present form-verti)
1080 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1081 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x { <vcom> >= <min> <= <max> } ^pin-channel-side top)
1082 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1> ^com 1)
1083 (horizontal-s ^net-name <bnn> ^min <= <vcom> ^max >= <vcom> ^id <> <id1>)
1084 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side bottom)
1085 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1086 -->
1087 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type vertical)
1088 )
1089
1090 (p p607
1091 (context ^present form-verti)
1092 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1093 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x { <vcom> >= <min> <= <max> } ^pin-channel-side bottom)
1094 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1> ^com <> 1)
1095 (horizontal-s ^net-name <bnn> ^min <= <vcom> ^max >= <vcom> ^id <> <id1>)
1096 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side top)
1097 - (constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn>)
1098 -->
1099 (make constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn> ^seg-id-1 <id1> ^seg-id-2 <id> ^constraint-type vertical)
1100 )
1101
1102 (p p608
1103 (context ^present form-verti)
1104 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference <> 0)
1105 (vertical-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1106 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <com> ^id <id1>)
1107 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x <vcom> ^pin-channel-side top)
1108 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side bottom)
1109 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1110 -->
1111 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type vertical)
1112 )
1113
1114 (p p609
1115 (context ^present form-verti)
1116 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference <> 0)
1117 (vertical-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1118 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <com> ^id <id1>)
1119 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x <vcom> ^pin-channel-side bottom)
1120 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side top)
1121 - (constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn>)
1122 -->
1123 (make constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn> ^seg-id-1 <id1> ^seg-id-2 <id> ^constraint-type vertical)
1124 )
1125
1126 (p p610
1127 (context ^present form-verti)
1128 (horizontal-s ^net-name <tnn> ^min <min> ^max <max> ^com 1 ^id <id>)
1129 (vertical-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1130 (horizontal-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <lr> ^id <id1>)
1131 (last-row <lr>)
1132 (vertical-s ^net-name <bnn> ^com <vcom>)
1133 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-x <vcom> ^pin-channel-side top)
1134 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-x <vcom> ^pin-channel-side bottom)
1135 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1136 -->
1137 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type vertical)
1138 )
1139
1140 (p p611
1141 (context ^present form-verti)
1142 (vertical-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1143 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-y { <vcom> >= <min> <= <max> } ^pin-channel-side right)
1144 (vertical-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1>)
1145 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-y <vcom> ^pin-channel-side left)
1146 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1147 -->
1148 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type horizontal)
1149 )
1150
1151 (p p612
1152 (context ^present form-verti)
1153 (vertical-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference 0)
1154 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-y { <vcom> >= <min> <= <max> } ^pin-channel-side left)
1155 (vertical-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^id <id1>)
1156 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-y <vcom> ^pin-channel-side right)
1157 - (constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn>)
1158 -->
1159 (make constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn> ^seg-id-1 <id1> ^seg-id-2 <id> ^constraint-type horizontal)
1160 )
1161
1162 (p p613
1163 (context ^present form-verti)
1164 (vertical-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference <> 0)
1165 (horizontal-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1166 (vertical-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <com> ^id <id1>)
1167 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-y <vcom> ^pin-channel-side right)
1168 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-y <vcom> ^pin-channel-side left)
1169 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1170 -->
1171 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type horizontal)
1172 )
1173
1174 (p p614
1175 (context ^present form-verti)
1176 (vertical-s ^net-name <tnn> ^min <min> ^max <max> ^com <com> ^id <id> ^difference <> 0)
1177 (horizontal-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1178 (vertical-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <com> ^id <id1>)
1179 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-y <vcom> ^pin-channel-side left)
1180 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-y <vcom> ^pin-channel-side right)
1181 - (constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn>)
1182 -->
1183 (make constraint ^net-name-1 <bnn> ^net-name-2 <tnn> ^pin-name-1 <bpn> ^pin-name-2 <tpn> ^seg-id-1 <id1> ^seg-id-2 <id> ^constraint-type horizontal)
1184 )
1185
1186 (p p615
1187 (context ^present form-verti)
1188 (vertical-s ^net-name <tnn> ^min <min> ^max <max> ^com 1 ^id <id>)
1189 (horizontal-s ^net-name <tnn> ^com { <vcom> >= <min> <= <max> })
1190 (vertical-s ^net-name { <bnn> <> <tnn> } ^min <= <vcom> ^max >= <vcom> ^com <lc> ^id <id1>)
1191 (last-col <lc>)
1192 (horizontal-s ^net-name <bnn> ^com <vcom>)
1193 (pin ^net-name <tnn> ^pin-name <tpn> ^pin-y <vcom> ^pin-channel-side right)
1194 (pin ^net-name <bnn> ^pin-name <bpn> ^pin-y <vcom> ^pin-channel-side left)
1195 - (constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
1196 -->
1197 (make constraint ^net-name-1 <tnn> ^net-name-2 <bnn> ^pin-name-1 <tpn> ^pin-name-2 <bpn> ^seg-id-1 <id> ^seg-id-2 <id1> ^constraint-type horizontal)
1198 )
1199
1200 (p p616
1201 (context ^present form-verti)
1202 (constraint ^constraint-type vertical ^net-name-1 <tnn> ^net-name-2 <bnn> ^seg-id-1 <tid> ^seg-id-2 <bid>)
1203 (constraint ^constraint-type vertical ^net-name-1 <nn1> ^net-name-2 <tnn> ^seg-id-1 <id1> ^seg-id-2 <tid2>)
1204 - (vertical-cycle <tnn> <tid> <tid2>)
1205 -->
1206 (make vertical-cycle <tnn> <tid> <tid2>)
1207 )
1208
1209 (p p617
1210 (context ^present form-verti)
1211 (constraint ^constraint-type horizontal ^net-name-1 <tnn> ^net-name-2 <bnn> ^seg-id-1 <tid> ^seg-id-2 <bid>)
1212 (constraint ^constraint-type horizontal ^net-name-1 <nn1> ^net-name-2 <tnn> ^seg-id-1 <id1> ^seg-id-2 <tid2>)
1213 - (horizontal-cycle <tnn> <tid> <tid2>)
1214 -->
1215 (make horizontal-cycle <tnn> <tid> <tid2>)
1216 )
1217
1218 (p p618
1219 (context ^present remove-cycle)
1220 { <h> (horizontal-cycle <nn>) }
1221 - (constraint ^constraint-type horizontal ^net-name-1 <nn>)
1222 - (constraint ^constraint-type horizontal ^net-name-2 <nn>)
1223 -->
1224 (remove <h>)
1225 )
1226
1227 (p p619
1228 (context ^present remove-cycle)
1229 { <h> (horizontal-cycle <nn>) }
1230 - (constraint ^constraint-type horizontal ^net-name-2 <nn>)
1231 -->
1232 (remove <h>)
1233 )
1234
1235 (p p620
1236 (context ^present remove-cycle)
1237 { <h> (horizontal-cycle <nn>) }
1238 - (constraint ^constraint-type horizontal ^net-name-1 <nn>)
1239 -->
1240 (remove <h>)
1241 )
1242
1243 (p p621
1244 (context ^present remove-cycle)
1245 { <h> (vertical-cycle <nn>) }
1246 - (constraint ^constraint-type vertical ^net-name-1 <nn>)
1247 - (constraint ^constraint-type vertical ^net-name-2 <nn>)
1248 -->
1249 (remove <h>)
1250 )
1251
1252 (p p622
1253 (context ^present remove-cycle)
1254 { <h> (vertical-cycle <nn>) }
1255 - (constraint ^constraint-type vertical ^net-name-2 <nn>)
1256 -->
1257 (remove <h>)
1258 )
1259
1260 (p p623
1261 (context ^present remove-cycle)
1262 { <h> (vertical-cycle <nn>) }
1263 - (constraint ^constraint-type vertical ^net-name-1 <nn>)
1264 -->
1265 (remove <h>)
1266 )
1267
1268 (p p624
1269 { <c> (context ^present remove-cycle) }
1270 -->
1271 (remove <c>)
1272 )
1273
1274 (p p625
1275 (context ^present remove-cycle)
1276 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
1277 { <h2> (horizontal-s ^net-name <nn> ^min <min1> ^max <min> ^id <id2>) }
1278 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side bottom)
1279 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side top)
1280 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <max>)
1281 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
1282 (last-row <lr>)
1283 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
1284 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
1285 -->
1286 (remove <h1>)
1287 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <max> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1288 (modify <h2> ^max <max>)
1289 )
1290
1291 (p p626
1292 (context ^present remove-cycle)
1293 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
1294 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <max1> ^id <id2>) }
1295 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side top)
1296 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side bottom)
1297 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <min>)
1298 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
1299 (last-row <lr>)
1300 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
1301 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
1302 -->
1303 (remove <h1>)
1304 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <min> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1305 (modify <h2> ^min <min>)
1306 )
1307
1308 (p p627
1309 (context ^present remove-cycle)
1310 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
1311 { <h2> (horizontal-s ^net-name <nn> ^min <min1> ^max <min> ^id <id2>) }
1312 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side bottom)
1313 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side top)
1314 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <max>)
1315 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
1316 (last-row <lr>)
1317 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
1318 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
1319 -->
1320 (remove <h1>)
1321 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <max> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1322 (modify <h2> ^max <max>)
1323 )
1324
1325 (p p628
1326 (context ^present remove-cycle)
1327 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^id <id1>) }
1328 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <max1> ^id <id2>) }
1329 (pin ^net-name <nn> ^pin-x <max> ^pin-channel-side top)
1330 (pin ^net-name <nn> ^pin-x <min> ^pin-channel-side bottom)
1331 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <min>)
1332 - (pin ^net-name <nn> ^pin-x { < <max> > <min> })
1333 (last-row <lr>)
1334 - (horizontal-s ^net-name <nn> ^id <id1> ^com { > 1 < <lr> })
1335 - (horizontal-s ^net-name <nn> ^id <id2> ^com { > 1 < <lr> })
1336 -->
1337 (remove <h1>)
1338 (make vertical-s ^net-name <nn> ^min 1 ^max <lr> ^com <min> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1339 (modify <h2> ^min <min>)
1340 )
1341
1342 (p p629
1343 (context ^present remove-cycle)
1344 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^com 1)
1345 (ff ^net-name <nn> ^grid-x { <gx> >= <hmin> <= <hmax> } ^grid-y <gy> ^came-from south)
1346 - (ff ^net-name <nn> ^grid-x <> <gx> ^grid-y < <gy>)
1347 - (vertical-s ^net-name <nn> ^min 1 ^max > <gy> ^com <gx>)
1348 -->
1349 (make vertical-s ^net-name <nn> ^min 1 ^max (compute <gy> + 1) ^com <gx> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1350 )
1351
1352 (p p630
1353 (context ^present remove-cycle)
1354 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^com 1)
1355 (ff ^net-name <nn> ^grid-x { <gx> >= <hmin> <= <hmax> } ^grid-y <gy> ^came-from south)
1356 - (ff ^net-name <nn> ^grid-x <> <gx> ^grid-y <= <gy>)
1357 { <v> (vertical-s ^net-name <nn> ^min 1 ^max <= <gy> ^com <gx>) }
1358 -->
1359 (modify <v> ^max (compute <gy> + 1))
1360 )
1361
1362 (p p631
1363 (context ^present remove-cycle)
1364 (last-row <lr>)
1365 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^com <lr>)
1366 (ff ^net-name <nn> ^grid-x { <gx> >= <hmin> <= <hmax> } ^grid-y <gy> ^came-from north)
1367 - (ff ^net-name <nn> ^grid-x <> <gx> ^grid-y > <gy>)
1368 - (vertical-s ^net-name <nn> ^min < <gy> ^max <lr> ^com <gx>)
1369 -->
1370 (make vertical-s ^net-name <nn> ^min (compute <gy> - 1) ^max <lr> ^com <gx> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1371 )
1372
1373 (p p632
1374 (context ^present remove-cycle)
1375 (last-row <lr>)
1376 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^com <lr>)
1377 (ff ^net-name <nn> ^grid-x { <gx> >= <hmin> <= <hmax> } ^grid-y <gy> ^came-from north)
1378 - (ff ^net-name <nn> ^grid-x <> <gx> ^grid-y >= <gy>)
1379 { <v> (vertical-s ^net-name <nn> ^min >= <gy> ^max <lr> ^com <gx>) }
1380 -->
1381 (modify <v> ^min (compute <gy> - 1))
1382 )
1383
1384 (p p633
1385 (context ^present remove-cycle)
1386 (vertical-s ^net-name <nn> ^min <vmin> ^max <vmax> ^com 1)
1387 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <gy> >= <vmin> <= <vmax> } ^came-from west)
1388 - (ff ^net-name <nn> ^grid-x < <gx> ^grid-y <> <gy>)
1389 - (horizontal-s ^net-name <nn> ^min 1 ^max > <gx> ^com <gy>)
1390 -->
1391 (make horizontal-s ^net-name <nn> ^min 1 ^max (compute <gx> + 1) ^com <gy> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1392 )
1393
1394 (p p634
1395 (context ^present remove-cycle)
1396 (vertical-s ^net-name <nn> ^min <vmin> ^max <vmax> ^com 1)
1397 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <gy> >= <vmin> <= <vmax> } ^came-from west)
1398 - (ff ^net-name <nn> ^grid-x <= <gx> ^grid-y <> <gy>)
1399 { <h> (horizontal-s ^net-name <nn> ^min 1 ^max <= <gx> ^com <gy>) }
1400 -->
1401 (modify <h> ^max (compute <gx> + 1))
1402 )
1403
1404 (p p635
1405 (context ^present remove-cycle)
1406 (last-col <lc>)
1407 (vertical-s ^net-name <nn> ^min <vmin> ^max <vmax> ^com <lc>)
1408 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <gy> >= <vmin> <= <vmax> } ^came-from east)
1409 - (ff ^net-name <nn> ^grid-x > <gx> ^grid-y <> <gy>)
1410 - (horizontal-s ^net-name <nn> ^min < <gx> ^max <lc> ^com <gy>)
1411 -->
1412 (make horizontal-s ^net-name <nn> ^min (compute <gx> - 1) ^max <lc> ^com <gy> ^id (genatom) ^difference 0 ^absolute 0 ^sum 2)
1413 )
1414
1415 (p p636
1416 (context ^present remove-cycle)
1417 (last-col <lc>)
1418 (vertical-s ^net-name <nn> ^min <vmin> ^max <vmax> ^com <lc>)
1419 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <gy> >= <vmin> <= <vmax> } ^came-from east)
1420 - (ff ^net-name <nn> ^grid-x >= <gx> ^grid-y <> <gy>)
1421 { <h> (horizontal-s ^net-name <nn> ^min >= <gx> ^max <lc> ^com <gy>) }
1422 -->
1423 (modify <h> ^min (compute <gx> - 1))
1424 )
1425
1426 (p p637
1427 (context ^present remove-cycle)
1428 (last-row <lr>)
1429 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^sum 2 ^difference 0)
1430 { <v> (vertical-s ^net-name <nn> ^min 1 ^max { <lr> <> 2 } ^com { <vcom> >= <hmin> <= <hmax> }) }
1431 (pin ^net-name <nn> ^pin-x <vcom> ^pin-channel-side top)
1432 (ff ^net-name <> <nn> ^grid-x <vcom> ^came-from south)
1433 -->
1434 (modify <v> ^min (compute <lr> - 1))
1435 )
1436
1437 (p p638
1438 (context ^present remove-cycle)
1439 (last-row <lr>)
1440 (horizontal-s ^net-name <nn> ^min <hmin> ^max <hmax> ^sum 2 ^difference 0)
1441 { <v> (vertical-s ^net-name <nn> ^min 1 ^max { <lr> <> 2 } ^com { <vcom> >= <hmin> <= <hmax> }) }
1442 (pin ^net-name <nn> ^pin-x <vcom> ^pin-channel-side bottom)
1443 (ff ^net-name <> <nn> ^grid-x <vcom> ^came-from north)
1444 -->
1445 (modify <v> ^max 2)
1446 )
1447
1448 (p p639
1449 (context ^present remove-cycle)
1450 (last-col <lc>)
1451 (vertical-s ^net-name <nn> ^min <hmin> ^max <hmax> ^sum 2 ^difference 0)
1452 { <v> (horizontal-s ^net-name <nn> ^min 1 ^max { <lc> <> 2 } ^com { <vcom> >= <hmin> <= <hmax> }) }
1453 (pin ^net-name <nn> ^pin-x <vcom> ^pin-channel-side right)
1454 (ff ^net-name <> <nn> ^grid-x <vcom> ^came-from west)
1455 -->
1456 (modify <v> ^min (compute <lc> - 1))
1457 )
1458
1459 (p p640
1460 (context ^present remove-cycle)
1461 (last-col <lc>)
1462 (vertical-s ^net-name <nn> ^min <hmin> ^max <hmax> ^sum 2 ^difference 0)
1463 { <v> (horizontal-s ^net-name <nn> ^min 1 ^max { <lc> <> 2 } ^com { <vcom> >= <hmin> <= <hmax> }) }
1464 (pin ^net-name <nn> ^pin-x <vcom> ^pin-channel-side left)
1465 (ff ^net-name <> <nn> ^grid-x <vcom> ^came-from east)
1466 -->
1467 (modify <v> ^max 2)
1468 )
1469
1470 (p p472
1471 (context ^present partial-route)
1472 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn> ^came-from north) }
1473 { <vs> (vertical-s ^net-name <nn> ^min <gy1> ^max <gy> ^com <gx>) }
1474 { <ff2> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1> ^came-from south) }
1475 { <v> (vertical ^net-name nil ^min <gy1> ^max <gy> ^com <gx> ^layer <lay>) }
1476 -->
1477 (modify <v> ^net-name <nn> ^pin-name <pn>)
1478 (remove <ff1> <ff2> <vs>)
1479 )
1480
1481 (p p473
1482 (context ^present partial-route)
1483 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn> ^came-from east) }
1484 { <vs> (horizontal-s ^net-name <nn> ^min <gx1> ^max <gx> ^com <gy>) }
1485 { <ff2> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn1> ^came-from west) }
1486 { <v> (horizontal ^net-name nil ^min <gx1> ^max <gx> ^com <gy> ^layer <lay>) }
1487 -->
1488 (modify <v> ^net-name <nn> ^pin-name <pn>)
1489 (remove <ff1> <ff2> <vs>)
1490 )
1491
1492 (p p474
1493 (context ^present partial-route)
1494 { <v1> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <vcom>) }
1495 { <h> (horizontal-s ^net-name <nn> ^min <vcom> ^max <hmax> ^com <min> ^top-count 1 ^bot-count 1) }
1496 { <v2> (vertical-s ^net-name <nn> ^min <vmin> ^max <min> ^com <hmax> ^top-count 1 ^bot-count 1) }
1497 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmin> ^came-from east)
1498 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <max> ^came-from north)
1499 -->
1500 (remove <v2>)
1501 (modify <h> ^com <vmin>)
1502 (modify <v1> ^min <vmin>)
1503 )
1504
1505 (p p475
1506 (context ^present partial-route)
1507 { <h> (horizontal-s ^net-name <nn> ^min <vcom> ^max <hmax> ^com <min> ^top-count 1 ^bot-count 1) }
1508 { <v2> (vertical-s ^net-name <nn> ^min <vmin> ^max <min> ^com <hmax> ^top-count 1 ^bot-count 1) }
1509 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmin> ^came-from east)
1510 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <min> ^came-from north)
1511 -->
1512 (modify <v2> ^com <vcom>)
1513 (modify <h> ^com <vmin>)
1514 )
1515
1516 (p p476
1517 (context ^present partial-route)
1518 { <v1> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <vcom>) }
1519 { <h> (horizontal-s ^net-name <nn> ^min <hmin> ^max <vcom> ^com <min> ^top-count 1 ^bot-count 1) }
1520 { <v2> (vertical-s ^net-name <nn> ^min <vmin> ^max <min> ^com <hmin> ^top-count 1 ^bot-count 1) }
1521 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmin> ^came-from west)
1522 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <max> ^came-from north)
1523 -->
1524 (remove <v2>)
1525 (modify <h> ^com <vmin>)
1526 (modify <v1> ^min <vmin>)
1527 )
1528
1529 (p p477
1530 (context ^present partial-route)
1531 { <h> (horizontal-s ^net-name <nn> ^min <hmin> ^max <vcom> ^com <min> ^top-count 1 ^bot-count 1) }
1532 { <v2> (vertical-s ^net-name <nn> ^min <vmin> ^max <min> ^com <hmin> ^top-count 1 ^bot-count 1) }
1533 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmin> ^came-from west)
1534 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <min> ^came-from north)
1535 -->
1536 (modify <v2> ^com <vcom>)
1537 (modify <h> ^com <vmin>)
1538 )
1539
1540 (p p478
1541 (context ^present partial-route)
1542 { <v1> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <vcom>) }
1543 { <h> (horizontal-s ^net-name <nn> ^min <vcom> ^max <hmax> ^com <max> ^top-count 1 ^bot-count 1) }
1544 { <v2> (vertical-s ^net-name <nn> ^min <max> ^max <vmax> ^com <hmax> ^top-count 1 ^bot-count 1) }
1545 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmax> ^came-from east)
1546 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <min> ^came-from south)
1547 -->
1548 (remove <v2>)
1549 (modify <h> ^com <vmax>)
1550 (modify <v1> ^max <vmax>)
1551 )
1552
1553 (p p479
1554 (context ^present partial-route)
1555 { <h> (horizontal-s ^net-name <nn> ^min <vcom> ^max <hmax> ^com <max> ^top-count 1 ^bot-count 1) }
1556 { <v2> (vertical-s ^net-name <nn> ^min <max> ^max <vmax> ^com <hmax> ^top-count 1 ^bot-count 1) }
1557 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmax> ^came-from east)
1558 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <max> ^came-from south)
1559 -->
1560 (modify <v2> ^com <vcom>)
1561 (modify <h> ^com <vmax>)
1562 )
1563
1564 (p p480
1565 (context ^present partial-route)
1566 { <v1> (vertical-s ^net-name <nn> ^min <min> ^max <max> ^com <vcom>) }
1567 { <h> (horizontal-s ^net-name <nn> ^min <hmin> ^max <vcom> ^com <max> ^top-count 1 ^bot-count 1) }
1568 { <v2> (vertical-s ^net-name <nn> ^min <max> ^max <vmax> ^com <hmin> ^top-count 1 ^bot-count 1) }
1569 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmax> ^came-from west)
1570 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <min> ^came-from south)
1571 -->
1572 (remove <v2>)
1573 (modify <h> ^com <vmax>)
1574 (modify <v1> ^max <vmax>)
1575 )
1576
1577 (p p481
1578 (context ^present partial-route)
1579 { <h> (horizontal-s ^net-name <nn> ^min <hmin> ^max <vcom> ^com <max> ^top-count 1 ^bot-count 1) }
1580 { <v2> (vertical-s ^net-name <nn> ^min <max> ^max <vmax> ^com <hmin> ^top-count 1 ^bot-count 1) }
1581 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmax> ^came-from west)
1582 (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <max> ^came-from south)
1583 -->
1584 (modify <v2> ^com <vcom>)
1585 (modify <h> ^com <vmax>)
1586 )
1587
1588 (p p482
1589 (context ^present partial-route)
1590 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom>) }
1591 { <v> (vertical-s ^net-name <nn> ^min <hcom> ^max <vmax> ^com <min> ^top-count 1 ^bot-count 1) }
1592 { <h2> (horizontal-s ^net-name <nn> ^min <hmin> ^max <min> ^com <vmax> ^top-count 1 ^bot-count 1) }
1593 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmax> ^came-from north)
1594 (ff ^net-name <nn> ^grid-x <max> ^grid-y <hcom> ^came-from east)
1595 -->
1596 (remove <h2>)
1597 (modify <v> ^com <hmin>)
1598 (modify <h1> ^min <hmin>)
1599 )
1600
1601 (p p483
1602 (context ^present partial-route)
1603 { <v> (vertical-s ^net-name <nn> ^min <hcom> ^max <vmax> ^com <min> ^top-count 1 ^bot-count 1) }
1604 { <h2> (horizontal-s ^net-name <nn> ^min <hmin> ^max <min> ^com <vmax> ^top-count 1 ^bot-count 1) }
1605 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmax> ^came-from north)
1606 (ff ^net-name <nn> ^grid-x <min> ^grid-y <hcom> ^came-from east)
1607 -->
1608 (modify <h2> ^com <hcom>)
1609 (modify <v> ^com <hmin>)
1610 )
1611
1612 (p p484
1613 (context ^present partial-route)
1614 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom>) }
1615 { <v> (vertical-s ^net-name <nn> ^min <hcom> ^max <vmax> ^com <max> ^top-count 1 ^bot-count 1) }
1616 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <hmax> ^com <vmax> ^top-count 1 ^bot-count 1) }
1617 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmax> ^came-from north)
1618 (ff ^net-name <nn> ^grid-x <min> ^grid-y <hcom> ^came-from west)
1619 -->
1620 (remove <h2>)
1621 (modify <v> ^com <hmax>)
1622 (modify <h1> ^max <hmax>)
1623 )
1624
1625 (p p485
1626 (context ^present partial-route)
1627 { <v> (vertical-s ^net-name <nn> ^min <hcom> ^max <vmax> ^com <max> ^top-count 1 ^bot-count 1) }
1628 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <hmax> ^com <vmax> ^top-count 1 ^bot-count 1) }
1629 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmax> ^came-from north)
1630 (ff ^net-name <nn> ^grid-x <max> ^grid-y <hcom> ^came-from west)
1631 -->
1632 (modify <h2> ^com <hcom>)
1633 (modify <v> ^com <hmax>)
1634 )
1635
1636 (p p486
1637 (context ^present partial-route)
1638 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom>) }
1639 { <v> (vertical-s ^net-name <nn> ^min <vmin> ^max <hcom> ^com <min> ^top-count 1 ^bot-count 1) }
1640 { <h2> (horizontal-s ^net-name <nn> ^min <hmin> ^max <min> ^com <vmin> ^top-count 1 ^bot-count 1) }
1641 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmin> ^came-from south)
1642 (ff ^net-name <nn> ^grid-x <max> ^grid-y <hcom> ^came-from east)
1643 -->
1644 (remove <h2>)
1645 (modify <v> ^com <hmin>)
1646 (modify <h1> ^min <hmin>)
1647 )
1648
1649 (p p487
1650 (context ^present partial-route)
1651 { <v> (vertical-s ^net-name <nn> ^min <vmin> ^max <hcom> ^com <min> ^top-count 1 ^bot-count 1) }
1652 { <h2> (horizontal-s ^net-name <nn> ^min <hmin> ^max <min> ^com <vmin> ^top-count 1 ^bot-count 1) }
1653 (ff ^net-name <nn> ^grid-x <hmin> ^grid-y <vmin> ^came-from south)
1654 (ff ^net-name <nn> ^grid-x <min> ^grid-y <hcom> ^came-from east)
1655 -->
1656 (modify <h2> ^com <hcom>)
1657 (modify <v> ^com <hmin>)
1658 )
1659
1660 (p p488
1661 (context ^present partial-route)
1662 { <h1> (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^com <hcom>) }
1663 { <v> (vertical-s ^net-name <nn> ^min <vmin> ^max <hcom> ^com <max> ^top-count 1 ^bot-count 1) }
1664 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <hmax> ^com <vmin> ^top-count 1 ^bot-count 1) }
1665 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmin> ^came-from south)
1666 (ff ^net-name <nn> ^grid-x <min> ^grid-y <hcom> ^came-from west)
1667 -->
1668 (remove <h2>)
1669 (modify <v> ^com <hmax>)
1670 (modify <h1> ^max <hmax>)
1671 )
1672
1673 (p p489
1674 (context ^present partial-route)
1675 { <v> (vertical-s ^net-name <nn> ^min <vmin> ^max <hcom> ^com <max> ^top-count 1 ^bot-count 1) }
1676 { <h2> (horizontal-s ^net-name <nn> ^min <max> ^max <hmax> ^com <vmin> ^top-count 1 ^bot-count 1) }
1677 (ff ^net-name <nn> ^grid-x <hmax> ^grid-y <vmin> ^came-from south)
1678 (ff ^net-name <nn> ^grid-x <max> ^grid-y <hcom> ^came-from west)
1679 -->
1680 (modify <h2> ^com <hcom>)
1681 (modify <v> ^com <hmax>)
1682 )
1683
1684 (p p186
1685 (context ^present extend-ff)
1686 (horizontal-s ^net-name <nn> ^difference { <d> < 0 })
1687 - (horizontal-s ^difference < <d>)
1688 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from south) }
1689 - (ff ^net-name <nn> ^grid-x <garb1> ^grid-y < <gy1>)
1690 (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y <gy1>)
1691 - (horizontal ^net-name nil ^min < <gx2> ^max > <gx1> ^com <gy1>)
1692 - (horizontal ^net-name nil ^min <gx2> ^max > <gx1> ^com <gy1> ^min-net nil)
1693 - (horizontal ^net-name nil ^min < <gx2> ^max <gx1> ^com <gy1> ^max-net nil)
1694 { <v> (vertical ^net-name nil ^max { <max> > <gy1> } ^min { < <max> <= <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1695 (congestion ^direction row ^coordinate <gy2> ^como <gy1>)
1696 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1697 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1698 - (extended-ff <nn> bottom)
1699 - (vertical-cycle <nn>)
1700 -->
1701 (modify <v> ^min <gy2> ^min-net <nn>)
1702 (make vertical ^net-name <nn> ^max <gy2> ^min <gy1> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1703 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1704 )
1705
1706 (p p187
1707 (context ^present extend-ff)
1708 (horizontal-s ^net-name <nn> ^difference { <d> < 0 })
1709 - (horizontal-s ^difference < <d>)
1710 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from south) }
1711 - (ff ^net-name <nn> ^grid-x <garb1> ^grid-y < <gy1>)
1712 (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y <gy1>)
1713 - (horizontal ^net-name nil ^min < <gx1> ^max > <gx2> ^com <gy1>)
1714 - (horizontal ^net-name nil ^min <gx1> ^max > <gx2> ^com <gy1> ^min-net nil)
1715 - (horizontal ^net-name nil ^min < <gx1> ^max <gx2> ^com <gy1> ^max-net nil)
1716 { <v> (vertical ^net-name nil ^max { <max> > <gy1> } ^min { < <max> <= <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1717 (congestion ^direction row ^coordinate <gy2> ^como <gy1>)
1718 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1719 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1720 - (extended-ff <nn> bottom)
1721 - (vertical-cycle <nn>)
1722 -->
1723 (modify <v> ^min <gy2> ^min-net <nn>)
1724 (make vertical ^net-name <nn> ^max <gy2> ^min <gy1> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1725 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1726 )
1727
1728 (p p188
1729 (context ^present extend-ff)
1730 (horizontal-s ^net-name <nn> ^difference { <d> < 0 })
1731 - (horizontal-s ^difference < <d>)
1732 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from south) }
1733 (vertical-s ^net-name <nn> ^min <= <gy1> ^max > <gy1> ^com <gx1>)
1734 - (ff ^net-name <nn> ^grid-x <> <gx1> ^grid-y <= <gy1>)
1735 { <v> (vertical ^net-name nil ^max { <max> > <gy1> } ^min { < <max> <= <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1736 (congestion ^direction row ^coordinate <gy2> ^como <gy1>)
1737 - (vertical-s ^net-name <> <nn> ^min <= <gy2> ^max >= <gy2> ^com <gx1>)
1738 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1739 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1740 - (extended-ff <nn> bottom)
1741 - (vertical-cycle <nn>)
1742 -->
1743 (make extended-ff <nn> bottom)
1744 (modify <v> ^min <gy2> ^min-net <nn>)
1745 (make vertical ^net-name <nn> ^max <gy2> ^min <gy1> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1746 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1747 )
1748
1749 (p p189
1750 (context ^present extend-ff)
1751 (horizontal-s ^net-name <nn> ^difference { <d> > 0 })
1752 - (horizontal-s ^difference > <d>)
1753 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from north) }
1754 - (ff ^net-name <nn> ^grid-x <garb1> ^grid-y > <gy1>)
1755 (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y <gy1>)
1756 - (horizontal ^net-name nil ^min < <gx2> ^max > <gx1> ^com <gy1>)
1757 - (horizontal ^net-name nil ^min <gx2> ^max > <gx1> ^com <gy1> ^min-net nil)
1758 - (horizontal ^net-name nil ^min < <gx2> ^max <gx1> ^com <gy1> ^max-net nil)
1759 { <v> (vertical ^net-name nil ^max { <max> >= <gy1> } ^min { < <max> < <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1760 (congestion ^direction row ^coordinate <gy1> ^como <gy2>)
1761 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1762 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1763 - (extended-ff <nn> top)
1764 - (vertical-cycle <nn>)
1765 -->
1766 (modify <v> ^max <gy2> ^max-net <nn>)
1767 (make vertical ^net-name <nn> ^max <gy1> ^min <gy2> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1768 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1769 )
1770
1771 (p p190
1772 (context ^present extend-ff)
1773 (horizontal-s ^net-name <nn> ^difference { <d> > 0 })
1774 - (horizontal-s ^difference > <d>)
1775 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from north) }
1776 - (ff ^net-name <nn> ^grid-x <garb1> ^grid-y > <gy1>)
1777 (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y <gy1>)
1778 - (horizontal ^net-name nil ^min < <gx1> ^max > <gx2> ^com <gy1>)
1779 - (horizontal ^net-name nil ^min <gx1> ^max > <gx2> ^com <gy1> ^min-net nil)
1780 - (horizontal ^net-name nil ^min < <gx1> ^max <gx2> ^com <gy1> ^max-net nil)
1781 { <v> (vertical ^net-name nil ^max { <max> >= <gy1> } ^min { < <max> < <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1782 (congestion ^direction row ^coordinate <gy1> ^como <gy2>)
1783 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1784 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1785 - (extended-ff <nn> top)
1786 - (vertical-cycle <nn>)
1787 -->
1788 (modify <v> ^max <gy2> ^max-net <nn>)
1789 (make vertical ^net-name <nn> ^max <gy1> ^min <gy2> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1790 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1791 )
1792
1793 (p p191
1794 (context ^present extend-ff)
1795 (horizontal-s ^net-name <nn> ^difference { <d> > 0 })
1796 - (horizontal-s ^difference > <d>)
1797 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from north) }
1798 (vertical-s ^net-name <nn> ^min < <gy1> ^max >= <gy1> ^com <gx1>)
1799 - (ff ^net-name <nn> ^grid-x <> <gx1> ^grid-y >= <gy1>)
1800 { <v> (vertical ^net-name nil ^max { <max> >= <gy1> } ^min { < <max> < <gy1> } ^com <gx1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1801 (congestion ^direction row ^coordinate <gy1> ^como <gy2>)
1802 - (vertical-s ^net-name <> <nn> ^min <= <gy2> ^max >= <gy2> ^com <gx1>)
1803 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx1> ^layer <lay1>)
1804 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx1> ^max >= <gx1> ^com <gy2> ^layer <lay1>)
1805 - (extended-ff <nn> top)
1806 - (vertical-cycle <nn>)
1807 -->
1808 (make extended-ff <nn> top)
1809 (modify <v> ^max <gy2> ^max-net <nn>)
1810 (make vertical ^net-name <nn> ^max <gy1> ^min <gy2> ^layer <lay1> ^com <gx1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1811 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1812 )
1813
1814 (p p192
1815 (context ^present extend-ff)
1816 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
1817 - (horizontal-s ^difference <> 0)
1818 { <ff> (ff ^net-name <nn> ^grid-x <max> ^grid-y <gy> ^grid-layer <lay> ^came-from south ^pin-name <pn>) }
1819 - (horizontal ^net-name nil ^min < <max> ^max >= <max> ^com <gy>)
1820 { <v> (vertical ^net-name nil ^max { <vmax> > <gy> } ^min { < <vmax> <= <gy> } ^com <max> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1821 (congestion ^direction row ^coordinate <gy2> ^como <gy>)
1822 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <max> ^layer <lay>)
1823 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <max> ^max >= <max> ^com <gy2> ^layer <lay>)
1824 - (vertical-cycle <nn>)
1825 (horizontal ^net-name nil ^min < <max> ^max >= <max> ^com > <gy>)
1826 -->
1827 (modify <v> ^min <gy2> ^min-net <nn>)
1828 (make vertical ^net-name <nn> ^max <gy2> ^min <gy> ^layer <lay> ^com <max> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1829 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1830 )
1831
1832 (p p193
1833 (context ^present extend-ff)
1834 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
1835 - (horizontal-s ^difference <> 0)
1836 { <ff> (ff ^net-name <nn> ^grid-x <min> ^grid-y <gy> ^grid-layer <lay> ^came-from south ^pin-name <pn>) }
1837 - (horizontal ^net-name nil ^min <= <min> ^max > <min> ^com <gy>)
1838 { <v> (vertical ^net-name nil ^max { <vmax> > <gy> } ^min { < <vmax> <= <gy> } ^com <min> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1839 (congestion ^direction row ^coordinate <gy2> ^como <gy>)
1840 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <min> ^layer <lay>)
1841 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <min> ^max >= <min> ^com <gy2> ^layer <lay>)
1842 - (vertical-cycle <nn>)
1843 (horizontal ^net-name nil ^min <= <min> ^max > <min> ^com > <gy>)
1844 -->
1845 (modify <v> ^min <gy2> ^min-net <nn>)
1846 (make vertical ^net-name <nn> ^max <gy2> ^min <gy> ^layer <lay> ^com <min> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1847 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1848 )
1849
1850 (p p194
1851 (context ^present extend-ff)
1852 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
1853 - (horizontal-s ^difference <> 0)
1854 { <ff> (ff ^net-name <nn> ^grid-x <max> ^grid-y <gy> ^grid-layer <lay> ^came-from north ^pin-name <pn>) }
1855 - (horizontal ^net-name nil ^min < <max> ^max >= <max> ^com <gy>)
1856 { <v> (vertical ^net-name nil ^max { <vmax> >= <gy> } ^min { < <vmax> < <gy> } ^com <max> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1857 (congestion ^direction row ^coordinate <gy> ^como <gy2>)
1858 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <max> ^layer <lay>)
1859 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <max> ^max >= <max> ^com <gy2> ^layer <lay>)
1860 - (vertical-cycle <nn>)
1861 (horizontal ^net-name nil ^min < <max> ^max >= <max> ^com < <gy>)
1862 -->
1863 (modify <v> ^max <gy2> ^max-net <nn>)
1864 (make vertical ^net-name <nn> ^max <gy> ^min <gy2> ^layer <lay> ^com <max> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1865 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1866 )
1867
1868 (p p195
1869 (context ^present extend-ff)
1870 (horizontal-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
1871 - (horizontal-s ^difference <> 0)
1872 { <ff> (ff ^net-name <nn> ^grid-x <min> ^grid-y <gy> ^grid-layer <lay> ^came-from north ^pin-name <pn>) }
1873 - (horizontal ^net-name nil ^min <= <min> ^max > <min> ^com <gy>)
1874 { <v> (vertical ^net-name nil ^max { <vmax> >= <gy> } ^min { < <vmax> < <gy> } ^com <min> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1875 (congestion ^direction row ^coordinate <gy> ^como <gy2>)
1876 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <min> ^layer <lay>)
1877 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <min> ^max >= <min> ^com <gy2> ^layer <lay>)
1878 - (vertical-cycle <nn>)
1879 (horizontal ^net-name nil ^min <= <min> ^max > <min> ^com < <gy>)
1880 -->
1881 (modify <v> ^max <gy2> ^max-net <nn>)
1882 (make vertical ^net-name <nn> ^max <gy> ^min <gy2> ^layer <lay> ^com <min> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1883 (modify <ff> ^grid-y <gy2> ^can-chng-layer nil)
1884 )
1885
1886 (p p196
1887 (context ^present extend-ff)
1888 (vertical-s ^net-name <nn> ^difference { <d> < 0 })
1889 - (vertical-s ^difference < <d>)
1890 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from west) }
1891 - (ff ^net-name <nn> ^grid-x < <gx1> ^grid-y <garb1>)
1892 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y { <gy2> < <gy1> })
1893 - (vertical ^net-name nil ^min < <gy2> ^max > <gy1> ^com <gx1>)
1894 - (vertical ^net-name nil ^min <gy2> ^max > <gy1> ^com <gx1> ^min-net nil)
1895 - (vertical ^net-name nil ^min < <gy2> ^max <gy1> ^com <gx1> ^max-net nil)
1896 { <v> (horizontal ^net-name nil ^max { <max> > <gx1> } ^min { < <max> <= <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1897 (congestion ^direction col ^coordinate <gx2> ^como <gx1>)
1898 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
1899 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
1900 - (extended-ff <nn> left)
1901 - (horizontal-cycle <nn>)
1902 -->
1903 (modify <v> ^min <gx2> ^min-net <nn>)
1904 (make horizontal ^net-name <nn> ^max <gx2> ^min <gx1> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1905 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
1906 )
1907
1908 (p p197
1909 (context ^present extend-ff)
1910 (vertical-s ^net-name <nn> ^difference { <d> < 0 })
1911 - (vertical-s ^difference < <d>)
1912 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from west) }
1913 - (ff ^net-name <nn> ^grid-x < <gx1> ^grid-y <garb1>)
1914 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y { <gy2> > <gy1> })
1915 - (vertical ^net-name nil ^min < <gy1> ^max > <gy2> ^com <gx1>)
1916 - (vertical ^net-name nil ^min <gy1> ^max > <gy2> ^com <gx1> ^min-net nil)
1917 - (vertical ^net-name nil ^min < <gy1> ^max <gy2> ^com <gx1> ^max-net nil)
1918 { <v> (horizontal ^net-name nil ^max { <max> > <gx1> } ^min { < <max> <= <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1919 (congestion ^direction col ^coordinate <gx2> ^como <gx1>)
1920 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
1921 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
1922 - (extended-ff <nn> left)
1923 - (horizontal-cycle <nn>)
1924 -->
1925 (modify <v> ^min <gx2> ^min-net <nn>)
1926 (make horizontal ^net-name <nn> ^max <gx2> ^min <gx1> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1927 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
1928 )
1929
1930 (p p198
1931 (context ^present extend-ff)
1932 (vertical-s ^net-name <nn> ^difference { <d> < 0 })
1933 - (vertical-s ^difference < <d>)
1934 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from west) }
1935 (horizontal-s ^net-name <nn> ^min <= <gx1> ^max > <gx1> ^com <gy1>)
1936 - (ff ^net-name <nn> ^grid-x <= <gx1> ^grid-y <> <gy1>)
1937 { <v> (horizontal ^net-name nil ^max { <max> > <gx1> } ^min { < <max> <= <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1938 (congestion ^direction col ^coordinate <gx2> ^como <gx1>)
1939 - (horizontal-s ^net-name <> <nn> ^min <= <gx2> ^max >= <gx2> ^com <gy1>)
1940 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
1941 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
1942 - (extended-ff <nn> left)
1943 - (horizontal-cycle <nn>)
1944 -->
1945 (make extended-ff <nn> left)
1946 (modify <v> ^min <gx2> ^min-net <nn>)
1947 (make horizontal ^net-name <nn> ^max <gx2> ^min <gx1> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1948 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
1949 )
1950
1951 (p p199
1952 (context ^present extend-ff)
1953 (vertical-s ^net-name <nn> ^difference { <d> > 0 })
1954 - (vertical-s ^difference > <d>)
1955 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from east) }
1956 - (ff ^net-name <nn> ^grid-x > <gx1> ^grid-y <garb1>)
1957 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y { <gy2> < <gy1> })
1958 - (vertical ^net-name nil ^min < <gy2> ^max > <gy1> ^com <gx1>)
1959 - (vertical ^net-name nil ^min <gy2> ^max > <gy1> ^com <gx1> ^min-net nil)
1960 - (vertical ^net-name nil ^min < <gy2> ^max <gy1> ^com <gx1> ^max-net nil)
1961 { <v> (horizontal ^net-name nil ^max { <max> >= <gx1> } ^min { < <max> < <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1962 (congestion ^direction col ^coordinate <gx1> ^como <gx2>)
1963 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
1964 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
1965 - (extended-ff <nn> right)
1966 - (horizontal-cycle <nn>)
1967 -->
1968 (modify <v> ^max <gx2> ^max-net <nn>)
1969 (make horizontal ^net-name <nn> ^max <gx1> ^min <gx2> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1970 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
1971 )
1972
1973 (p p200
1974 (context ^present extend-ff)
1975 (vertical-s ^net-name <nn> ^difference { <d> > 0 })
1976 - (vertical-s ^difference > <d>)
1977 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from east) }
1978 - (ff ^net-name <nn> ^grid-x > <gx1> ^grid-y <gy1>)
1979 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y { <gy2> > <gy1> })
1980 - (vertical ^net-name nil ^min < <gy1> ^max > <gy2> ^com <gx1>)
1981 - (vertical ^net-name nil ^min <gy1> ^max > <gy2> ^com <gx1> ^min-net nil)
1982 - (vertical ^net-name nil ^min < <gy1> ^max <gy2> ^com <gx1> ^max-net nil)
1983 { <v> (horizontal ^net-name nil ^max { <max> >= <gx1> } ^min { < <max> < <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
1984 (congestion ^direction col ^coordinate <gx1> ^como <gx2>)
1985 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
1986 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
1987 - (extended-ff <nn> right)
1988 - (horizontal-cycle <nn>)
1989 -->
1990 (modify <v> ^max <gx2> ^max-net <nn>)
1991 (make horizontal ^net-name <nn> ^max <gx1> ^min <gx2> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
1992 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
1993 )
1994
1995 (p p201
1996 (context ^present extend-ff)
1997 (vertical-s ^net-name <nn> ^difference { <d> > 0 })
1998 - (vertical-s ^difference > <d>)
1999 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn> ^came-from east) }
2000 (horizontal-s ^net-name <nn> ^min < <gx1> ^max >= <gx1> ^com <gy1>)
2001 - (ff ^net-name <nn> ^grid-x >= <gx1> ^grid-y <> <gy1>)
2002 { <v> (horizontal ^net-name nil ^max { <max> >= <gx1> } ^min { < <max> < <gx1> } ^com <gy1> ^layer <lay1> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
2003 (congestion ^direction col ^coordinate <gx1> ^como <gx2>)
2004 - (horizontal-s ^net-name <> <nn> ^min <= <gx2> ^max >= <gx2> ^com <gy1>)
2005 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <gy1> ^layer <lay1>)
2006 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <gy1> ^max >= <gy1> ^com <gx2> ^layer <lay1>)
2007 - (extended-ff <nn> right)
2008 - (horizontal-cycle <nn>)
2009 -->
2010 (make extended-ff <nn> right)
2011 (modify <v> ^max <gx2> ^max-net <nn>)
2012 (make horizontal ^net-name <nn> ^max <gx1> ^min <gx2> ^layer <lay1> ^com <gy1> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
2013 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
2014 )
2015
2016 (p p202
2017 (context ^present extend-ff)
2018 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
2019 - (vertical-s ^difference <> 0)
2020 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <max> ^grid-layer <lay> ^came-from west ^pin-name <pn>) }
2021 - (vertical ^net-name nil ^min < <max> ^max >= <max> ^com <gx>)
2022 { <v> (horizontal ^net-name nil ^max { <vmax> > <gx> } ^min { < <vmax> <= <gx> } ^com <max> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
2023 (congestion ^direction col ^coordinate <gx2> ^como <gx>)
2024 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <max> ^layer <lay>)
2025 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <max> ^max >= <max> ^com <gx2> ^layer <lay>)
2026 - (horizontal-cycle <nn>)
2027 -->
2028 (modify <v> ^min <gx2> ^min-net <nn>)
2029 (make horizontal ^net-name <nn> ^max <gx2> ^min <gx> ^layer <lay> ^com <max> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
2030 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
2031 )
2032
2033 (p p203
2034 (context ^present extend-ff)
2035 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
2036 - (vertical-s ^difference <> 0)
2037 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <min> ^grid-layer <lay> ^came-from west ^pin-name <pn>) }
2038 - (vertical ^net-name nil ^min <= <min> ^max > <min> ^com <gx>)
2039 { <v> (horizontal ^net-name nil ^max { <vmax> > <gx> } ^min { < <vmax> <= <gx> } ^com <min> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
2040 (congestion ^direction col ^coordinate <gx2> ^como <gx>)
2041 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <min> ^layer <lay>)
2042 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <min> ^max >= <min> ^com <gx2> ^layer <lay>)
2043 - (horizontal-cycle <nn>)
2044 -->
2045 (modify <v> ^min <gx2> ^min-net <nn>)
2046 (make horizontal ^net-name <nn> ^max <gx2> ^min <gx> ^layer <lay> ^com <min> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
2047 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
2048 )
2049
2050 (p p204
2051 (context ^present extend-ff)
2052 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
2053 - (vertical-s ^difference <> 0)
2054 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <max> ^grid-layer <lay> ^came-from east ^pin-name <pn>) }
2055 - (vertical ^net-name nil ^min < <max> ^max >= <max> ^com <gx>)
2056 { <v> (horizontal ^net-name nil ^max { <vmax> >= <gx> } ^min { < <vmax> < <gx> } ^com <max> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
2057 (congestion ^direction col ^coordinate <gx> ^como <gx2>)
2058 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <max> ^layer <lay>)
2059 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <max> ^max >= <max> ^com <gx2> ^layer <lay>)
2060 - (horizontal-cycle <nn>)
2061 -->
2062 (modify <v> ^max <gx2> ^max-net <nn>)
2063 (make horizontal ^net-name <nn> ^max <gx> ^min <gx2> ^layer <lay> ^com <max> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
2064 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
2065 )
2066
2067 (p p205
2068 (context ^present extend-ff)
2069 (vertical-s ^net-name <nn> ^min <min> ^max <max> ^difference 0)
2070 - (vertical-s ^difference <> 0)
2071 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <min> ^grid-layer <lay> ^came-from east ^pin-name <pn>) }
2072 - (vertical ^net-name nil ^min <= <min> ^max > <min> ^com <gx>)
2073 { <v> (horizontal ^net-name nil ^max { <vmax> >= <gx> } ^min { < <vmax> < <gx> } ^com <min> ^layer <lay> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
2074 (congestion ^direction col ^coordinate <gx> ^como <gx2>)
2075 - (horizontal ^status nil ^net-name { <> nil <> <nn> } ^min <= <gx2> ^max >= <gx2> ^com <min> ^layer <lay>)
2076 - (vertical ^status nil ^net-name { <> nil <> <nn> } ^min <= <min> ^max >= <min> ^com <gx2> ^layer <lay>)
2077 - (horizontal-cycle <nn>)
2078 -->
2079 (modify <v> ^max <gx2> ^max-net <nn>)
2080 (make horizontal ^net-name <nn> ^max <gx> ^min <gx2> ^layer <lay> ^com <min> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
2081 (modify <ff> ^grid-x <gx2> ^can-chng-layer nil)
2082 )
2083
2084 (p p206
2085 { <c> (context ^present extend-h-v-s) }
2086 -->
2087 (modify <c> ^present loose-constraint0)
2088 )
2089
2090 (p p207
2091 { <c> (context ^present extend-h-v-s) }
2092 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^came-from west ^pin-name <pn>) }
2093 (horizontal-s ^net-name <nn> ^min <= <gx> ^max { <hmaxs> > <gx> } ^com <gy>)
2094 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^com <gy>)
2095 (vertical-s ^net-name <nn> ^min <= <gy> ^max >= <gy> ^com { <vcoms> > <gx> <= <hmaxs> })
2096 - (vertical-s ^net-name <nn> ^min <= <gy> ^max >= <gy> ^com { >= <gx> < <vcoms> })
2097 { <h> (horizontal ^net-name nil ^min <gx> ^max { <hmax> >= <vcoms> } ^com <gy> ^layer <lay>) }
2098 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <vcoms> ^layer <lay>)
2099 -->
2100 (make (substr <h> 1 inf) ^net-name <nn> ^pin-name <pn> ^max <vcoms>)
2101 (modify <h> ^min <vcoms> ^min-net <nn>)
2102 (modify <ff> ^grid-x <vcoms> ^can-chng-layer nil)
2103 (modify <c> ^present propagate-constraint)
2104 )
2105
2106 (p p208
2107 { <c> (context ^present extend-h-v-s) }
2108 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^came-from east ^pin-name <pn>) }
2109 (horizontal-s ^net-name <nn> ^min { <hmins> < <gx> } ^max >= <gx> ^com <gy>)
2110 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^com <gy>)
2111 (vertical-s ^net-name <nn> ^min <= <gy> ^max >= <gy> ^com { <vcoms> < <gx> >= <hmins> })
2112 - (vertical-s ^net-name <nn> ^min <= <gy> ^max >= <gy> ^com { <= <gx> > <vcoms> })
2113 { <h> (horizontal ^net-name nil ^min { <hmin> <= <vcoms> } ^max <gx> ^com <gy> ^layer <lay>) }
2114 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <vcoms> ^layer <lay>)
2115 -->
2116 (make (substr <h> 1 inf) ^net-name <nn> ^pin-name <pn> ^min <vcoms>)
2117 (modify <h> ^max <vcoms> ^max-net <nn>)
2118 (modify <ff> ^grid-x <vcoms> ^can-chng-layer nil)
2119 (modify <c> ^present propagate-constraint)
2120 )
2121
2122 (p p209
2123 { <c> (context ^present extend-h-v-s) }
2124 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^came-from south ^pin-name <pn>) }
2125 (vertical-s ^net-name <nn> ^min <= <gy> ^max { <vmaxs> > <gy> } ^com <gx>)
2126 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <gx>)
2127 (horizontal-s ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { <hcoms> > <gy> <= <vmaxs> })
2128 - (horizontal-s ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { >= <gy> < <hcoms> })
2129 { <v> (vertical ^net-name nil ^min <gy> ^max { <vmax> >= <hcoms> } ^com <gx> ^layer <lay>) }
2130 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <hcoms> ^layer <lay>)
2131 -->
2132 (make (substr <v> 1 inf) ^net-name <nn> ^pin-name <pn> ^max <hcoms>)
2133 (modify <v> ^min <hcoms> ^min-net <nn>)
2134 (modify <ff> ^grid-y <hcoms> ^can-chng-layer nil)
2135 (modify <c> ^present propagate-constraint)
2136 )
2137
2138 (p p210
2139 { <c> (context ^present extend-h-v-s) }
2140 { <ff> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^came-from north ^pin-name <pn>) }
2141 (vertical-s ^net-name <nn> ^min { <vmins> < <gy> } ^max >= <gy> ^com <gx>)
2142 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^com <gx>)
2143 (horizontal-s ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { <hcoms> < <gy> >= <vmins> })
2144 - (horizontal-s ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { <= <gy> > <hcoms> })
2145 { <v> (vertical ^net-name nil ^min { <vmin> <= <hcoms> } ^max <gy> ^com <gx> ^layer <lay>) }
2146 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <hcoms> ^layer <lay>)
2147 -->
2148 (make (substr <v> 1 inf) ^net-name <nn> ^pin-name <pn> ^min <hcoms>)
2149 (modify <v> ^max <hcoms> ^max-net <nn>)
2150 (modify <ff> ^grid-y <hcoms> ^can-chng-layer nil)
2151 (modify <c> ^present propagate-constraint)
2152 )
2153
2154 (p p29
2155 (goal cleanup <c>)
2156 (<c>)
2157 -->
2158 (remove 2)
2159 )
2160
2161 (p p30
2162 (goal cleanup <c>)
2163 - (<c>)
2164 -->
2165 (remove 1)
2166 )
2167
2168 (p p31
2169 (goal cleanup)
2170 (verti-has-loop)
2171 -->
2172 (remove 2)
2173 )
2174
2175 (p p83
2176 (context ^present propagate-constraint)
2177 -->
2178 (remove 1)
2179 (make context ^previous propagate-constraint)
2180 (make context ^present remove-cycle)
2181 )
2182
2183 (p p84
2184 (context ^present << propagate-constraint extend-pins move-ff >>)
2185 (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com> ^layer <lay> ^compo <cpo> ^commo <egarb1>)
2186 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <min2> <= <max1> } ^max { <max2> >= <min1> } ^com <cpo> ^layer <lay> ^compo <garb1> ^commo <egarb2>)
2187 { <v1> (vertical ^net-name nil ^min { <min3> <= <com> } ^max { <max3> >= <cpo> > <min3> } ^com { <com2> <= <max1> >= <min1> <= <max2> >= <min2> } ^layer <lay> ^compo <cpo2> ^commo <cmo2> ^min-net <mnn> ^max-net <man>) }
2188 -->
2189 (make vertical ^min <min3> ^max <com> ^com <com2> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^max-net <nn1> ^min-net <mnn>)
2190 (make vertical ^min <cpo> ^max <max3> ^com <com2> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^min-net <nn2> ^max-net <man>)
2191 (remove <v1>)
2192 )
2193
2194 (p p85
2195 (context ^present << propagate-constraint extend-pins >>)
2196 (ff ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2197 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <com> ^layer <lay> ^compo <egarb2> ^commo <gy>)
2198 { <v1> (vertical ^net-name nil ^min { <min3> <= <gy> } ^max { <max3> >= <com> > <min3> } ^com <gx> ^layer <lay> ^compo <cpo2> ^commo <cmo2> ^min-net <mnn> ^max-net <man>) }
2199 -->
2200 (make vertical ^min <min3> ^max <gy> ^com <gx> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^max-net <nn1> ^min-net <mnn>)
2201 (make vertical ^min <com> ^max <max3> ^com <gx> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^min-net <nn2> ^max-net <man>)
2202 (remove <v1>)
2203 )
2204
2205 (p p86
2206 (context ^present << propagate-constraint extend-pins >>)
2207 (ff ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2208 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <com> ^layer <lay> ^compo <gy> ^commo <egarb2>)
2209 { <v1> (vertical ^net-name nil ^min { <min3> <= <com> } ^max { <max3> >= <gy> > <min3> } ^com <gx> ^layer <lay> ^compo <cpo2> ^commo <cmo2> ^min-net <mnn> ^max-net <man>) }
2210 -->
2211 (make vertical ^min <min3> ^max <com> ^com <gx> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^max-net <nn2> ^min-net <mnn>)
2212 (make vertical ^min <gy> ^max <max3> ^com <gx> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^min-net <nn1> ^max-net <man>)
2213 (remove <v1>)
2214 )
2215
2216 (p p87
2217 (context ^present propagate-constraint)
2218 (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <garb1> ^max <max1> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2219 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min <min2> ^max <gar2> ^com <com> ^layer <lay> ^compo <egarb3> ^commo <egarb4>)
2220 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <min2> > <max1> } ^com <com> ^layer <lay> ^compo <egarb5> ^commo <egarb6>) }
2221 - (vertical ^com { > <max1> < <min2> })
2222 -->
2223 (remove <h1>)
2224 )
2225
2226 (p p88
2227 (context ^present << propagate-constraint extend-pins move-ff >>)
2228 (vertical ^status nil ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com> ^layer <lay> ^compo <cpo> ^commo <egarb1>)
2229 (vertical ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <min2> <= <max1> } ^max { <max2> >= <min1> } ^com <cpo> ^layer <lay> ^compo <garb1> ^compo <egarb2>)
2230 { <h1> (horizontal ^net-name nil ^min { <min3> <= <com> } ^max { <max3> >= <cpo> } ^com { <com2> <= <max1> >= <min1> <= <max2> >= <min2> } ^layer <lay> ^compo <cpo2> ^commo <cmo2> ^min-net <mnn> ^max-net <man>) }
2231 -->
2232 (make horizontal ^min <min3> ^max <com> ^com <com2> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^min-net <mnn> ^max-net <nn1>)
2233 (make horizontal ^min <cpo> ^max <max3> ^com <com2> ^compo <cpo2> ^commo <cmo2> ^layer <lay> ^max-net <man> ^min-net <nn2>)
2234 (remove <h1>)
2235 )
2236
2237 (p p89
2238 (context ^present propagate-constraint)
2239 (vertical ^status nil ^net-name { <nn1> <> nil } ^min <garb1> ^max <max1> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2240 (vertical ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min <min2> ^max <garb2> ^com <com> ^layer <lay> ^compo <egarb3> ^commo <egarb4>)
2241 - (horizontal ^com { > <max1> < <min2> })
2242 { <v1> (vertical ^net-name nil ^min <max1> ^max { <min2> > <max1> } ^com <com> ^layer <lay> ^compo <egarb5> ^commo <egarb6>) }
2243 -->
2244 (remove <v1>)
2245 )
2246
2247 (p p90
2248 (context ^present propagate-constraint)
2249 (vertical ^status nil ^net-name { <nn1> <> nil } ^min <vmin> ^max <garb1> ^com <vcom> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2250 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb2> <= <vcom> } ^max { <garb3> >= <vcom> } ^com <hcom> ^layer <lay> ^compo <vmin> ^commo <garb5>)
2251 { <v1> (vertical ^net-name nil ^min <garb4> ^max { <vmin> > <garb4> } ^com <vcom> ^layer <lay> ^compo <egarb3> ^commo <egarb4>) }
2252 -->
2253 (modify <v1> ^max <hcom> ^max-net <nn2>)
2254 )
2255
2256 (p p91
2257 (context ^present propagate-constraint)
2258 (vertical ^status nil ^net-name { <nn1> <> nil } ^min <garb1> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2259 (horizontal ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb2> <= <vcom> } ^max { <garb3> >= <vcom> } ^com <hcom> ^layer <lay> ^compo <garb4> ^commo <vmax>)
2260 { <v1> (vertical ^net-name nil ^min <vmax> ^max { <garb5> > <vmax> } ^com <vcom> ^layer <lay> ^compo <egarb3> ^commo <egarb4>) }
2261 -->
2262 (modify <v1> ^min <hcom> ^min-net <nn2>)
2263 )
2264
2265 (p p92
2266 (context ^present propagate-constraint)
2267 (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <min> ^max <garb1> ^com <hcom> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2268 (vertical ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb2> <= <hcom> } ^max { <garb3> >= <hcom> } ^com <vcom> ^layer <lay> ^compo <min> ^commo <egarb3>)
2269 { <h1> (horizontal ^net-name nil ^min <garb4> ^max { <min> > <garb4> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2270 -->
2271 (modify <h1> ^max <vcom> ^max-net <nn2>)
2272 )
2273
2274 (p p93
2275 (context ^present propagate-constraint)
2276 (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <garb1> ^max <max> ^com <hcom> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
2277 (vertical ^status nil ^net-name { <nn2> <> <nn1> <> nil } ^min { <garb2> <= <hcom> } ^max { <garb3> >= <hcom> } ^com <vcom> ^layer <lay> ^compo <garb4> ^commo <max>)
2278 { <h1> (horizontal ^net-name nil ^min <max> ^max { <garb4> > <max> } ^com <hcom> ^layer <lay> ^compo <egarb3> ^commo <egarb4>) }
2279 -->
2280 (modify <h1> ^min <vcom> ^min-net <nn2>)
2281 )
2282
2283 (p p94
2284 (context ^present propagate-constraint)
2285 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2286 { <h1> (horizontal ^net-name nil ^min <garb3> ^max { <gx> > <garb3> } ^com <gy> ^layer <lay> ^compo <egarb3> ^commo <egarb4>) }
2287 (vertical ^status nil ^net-name { <nn2> <> <nn> <> nil } ^min { <garb1> <= <gy> } ^max { <garb2> >= <gy> } ^com <vcom> ^layer <lay> ^compo <gx> ^commo <egarb2>)
2288 -->
2289 (modify <h1> ^max <vcom> ^max-net <nn2>)
2290 )
2291
2292 (p p95
2293 (context ^present propagate-constraint)
2294 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2295 { <h1> (horizontal ^net-name nil ^min <gx> ^max { <garb4> > <gx> } ^com <gy> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2296 (vertical ^status nil ^net-name { <nn2> <> <nn> <> nil } ^min { <garb1> <= <gy> } ^max { <garb2> >= <gy> } ^com <vcom> ^layer <lay> ^compo <garb3> ^commo <gx>)
2297 -->
2298 (modify <h1> ^min <vcom> ^min-net <nn2>)
2299 )
2300
2301 (p p96
2302 (context ^present propagate-constraint)
2303 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2304 (horizontal ^status nil ^net-name { <nn2> <> <nn> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <hcom> ^layer <lay> ^compo <gy> ^commo <garb3>)
2305 { <v1> (vertical ^net-name nil ^min <garb4> ^max { <gy> > <garb4> } ^com <gx> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2306 -->
2307 (modify <v1> ^max <hcom> ^max-net <nn2>)
2308 )
2309
2310 (p p97
2311 (context ^present propagate-constraint)
2312 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2313 (horizontal ^status nil ^net-name { <nn2> <> <nn> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <hcom> ^layer <lay> ^compo <garb3> ^commo <gy>)
2314 { <v1> (vertical ^net-name nil ^min <gy> ^max { <garb4> > <gy> } ^com <gx> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2315 -->
2316 (modify <v1> ^min <hcom> ^min-net <nn2>)
2317 )
2318
2319 (p p98
2320 (context ^present << propagate-constraint extend-pins random1 check-for-routed-net >>)
2321 { <h1> (horizontal ^min <min> ^max <= <min>) }
2322 -->
2323 (remove <h1>)
2324 )
2325
2326 (p p99
2327 (context ^present << propagate-constraint extend-pins random1 check-for-routed-net >>)
2328 { <v1> (vertical ^min <min> ^max <= <min>) }
2329 -->
2330 (remove <v1>)
2331 )
2332
2333 (p p100
2334 { <h1> (horizontal ^min <min> ^max <= <min>) }
2335 -->
2336 (remove <h1>)
2337 )
2338
2339 (p p101
2340 { <v1> (vertical ^min <min> ^max <= <min>) }
2341 -->
2342 (remove <v1>)
2343 )
2344
2345 (p p102
2346 (context ^present propagate-constraint)
2347 { <h1> (horizontal ^net-name nil ^min <min1> ^max { <max1> > <min1> } ^com <com1> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2348 - (vertical ^status nil ^min <= <com1> ^max >= <com1> ^com <min1>)
2349 - (horizontal ^status nil ^min < <min1> ^max >= <min1> ^com <com1>)
2350 (vertical ^status nil ^net-name <garb1> ^min { <vmin> <= <com1> } ^max { >= <com1> > <vmin> } ^com { <com2> > <min1> <= <max1> } ^layer <garb2> ^compo <egarb4> ^commo <egarb5>)
2351 - (vertical ^status nil ^min <= <com1> ^max >= <com1> ^com { < <com2> >= <min1> })
2352 -->
2353 (modify <h1> ^min <com2> ^min-net nil)
2354 )
2355
2356 (p p103
2357 (context ^present propagate-constraint)
2358 { <v1> (vertical ^net-name nil ^min <min1> ^max { <max1> > <min1> } ^com <com1> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2359 - (horizontal ^status nil ^min <= <com1> ^max >= <com1> ^com <min1>)
2360 - (vertical ^status nil ^min < <min1> ^max >= <min1> ^com <com1>)
2361 (horizontal ^status nil ^net-name <garb1> ^min { <hmin> <= <com1> } ^max { <garb2> >= <com1> > <hmin> } ^com { <com2> > <min1> <= <max1> } ^layer <garb3> ^compo <egarb4> ^commo <egarb5>)
2362 - (horizontal ^status nil ^min <= <com1> ^max >= <com1> ^com { < <com2> >= <min1> })
2363 -->
2364 (modify <v1> ^min <com2> ^min-net nil)
2365 )
2366
2367 (p p104
2368 (context ^present propagate-constraint)
2369 { <h1> (horizontal ^net-name nil ^min <min1> ^max { <max1> > <min1> } ^com <com1> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2370 - (vertical ^status nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2371 - (horizontal ^status nil ^min <= <max1> ^max > <max1> ^com <com1>)
2372 (vertical ^status nil ^net-name <garb1> ^min { <vmin> <= <com1> } ^max { <garb2> >= <com1> > <vmin> } ^com { <com2> >= <min1> < <max1> } ^layer <egarb1> ^compo <egarb2> ^commo <egarb3>)
2373 - (vertical ^status nil ^min <= <com1> ^max >= <com1> ^com { > <com2> <= <max1> })
2374 -->
2375 (modify <h1> ^max <com2> ^max-net nil)
2376 )
2377
2378 (p p105
2379 (context ^present propagate-constraint)
2380 { <v1> (vertical ^net-name nil ^min <min1> ^max { <max1> > <min1> } ^com <com1> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2381 - (horizontal ^status nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2382 - (vertical ^status nil ^min <= <max1> ^max > <max1> ^com <com1>)
2383 (horizontal ^status nil ^net-name <garb1> ^min { <hmin> <= <com1> } ^max { <garb2> >= <com1> > <hmin> } ^com { <com2> >= <min1> < <max1> } ^layer <egarb1> ^compo <egarb4> ^commo <egarb5>)
2384 - (horizontal ^status nil ^min <= <com1> ^max >= <com1> ^com { > <com2> <= <max1> })
2385 -->
2386 (modify <v1> ^max <com2> ^max-net nil)
2387 )
2388
2389 (p p106
2390 (context ^present propagate-constraint)
2391 { <h1> (horizontal ^net-name nil ^min <hmin> ^max { <hmax> > <hmin> } ^com <hcom> ^layer <lay> ^compo <egarb6> ^commo <egarb7>) }
2392 - (vertical ^com { > <hmin> < <hmax> })
2393 - (vertical ^status nil ^min <= <hcom> ^max >= <hcom> ^com <hmax> ^layer <lay>)
2394 - (horizontal ^status nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <lay>)
2395 (vertical ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <hmax> ^layer <> <lay> ^compo <egarb4> ^commo <egarb5>)
2396 (vertical ^net-name { <> <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <hmin> ^layer <> <lay> ^compo <egarb2> ^commo <egarb3>)
2397 -->
2398 (remove <h1>)
2399 )
2400
2401 (p p107
2402 (context ^present propagate-constraint)
2403 { <v1> (vertical ^net-name nil ^min <vmin> ^max { <vmax> > <vmin> } ^com <vcom> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2404 - (horizontal ^com { > <vmin> < <vmax> })
2405 - (horizontal ^status nil ^min <= <vcom> ^max >= <vcom> ^com <vmax> ^layer <lay>)
2406 - (vertical ^status nil ^min <vmax> ^max > <vmax> ^com <vcom> ^layer <lay>)
2407 (horizontal ^net-name { <nn1> <> nil } ^min { <garb1> <= <vcom> } ^max { <garb2> >= <vcom> } ^com <vmax> ^layer { <garb3> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2408 (horizontal ^net-name { <> <nn1> <> nil } ^min { <garb4> <= <vcom> } ^max { <garb5> >= <vcom> } ^com <vmin> ^layer { <garb6> <> <lay> } ^compo <egarb4> ^commo <egarb5>)
2409 -->
2410 (remove <v1>)
2411 )
2412
2413 (p p108
2414 (context ^present propagate-constraint)
2415 { <h1> (horizontal ^net-name nil ^min <hmin> ^max { <hmax> > <hmin> } ^com <hcom> ^layer <lay> ^compo <egarb6> ^commo <egarb7>) }
2416 - (vertical ^com { > <hmin> < <hmax> })
2417 - (vertical ^status nil ^min <= <hcom> ^max >= <hcom> ^com <hmin> ^layer <lay>)
2418 - (horizontal ^status nil ^min < <hmin> ^max <hmin> ^com <hcom> ^layer <lay>)
2419 - (vertical ^status nil ^min <= <hcom> ^max >= <hcom> ^com <hmax> ^layer <lay>)
2420 - (horizontal ^status nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <lay>)
2421 (vertical ^net-name { <nn1> <> nil } ^min { <garb1> <= <hcom> } ^max { <garb2> >= <hcom> } ^com <hmax> ^layer { <garb3> <> <lay> } ^compo <egarb2> ^commo <egarb3>)
2422 (vertical ^net-name { <garb7> <> <nn1> <> nil } ^min { <gabr4> <= <hcom> } ^max { <garb5> >= <hcom> } ^com <hmin> ^layer { <garb6> <> <lay> } ^compo <egarb4> ^commo <egarb5>)
2423 -->
2424 (remove <h1>)
2425 )
2426
2427 (p p109
2428 (context ^present propagate-constraint)
2429 { <v1> (vertical ^net-name nil ^min <vmin> ^max { <vmax> > <vmin> } ^com <vcom> ^layer <lay> ^compo <egarb6> ^commo <egarb7>) }
2430 - (horizontal ^com { > <vmin> < <vmax> })
2431 - (horizontal ^status nil ^min <= <vcom> ^max >= <vcom> ^com <vmin> ^layer <lay>)
2432 - (vertical ^status nil ^min < <vmin> ^max <vmin> ^com <vcom> ^layer <lay>)
2433 (horizontal ^net-name { <nn1> <> nil } ^min { <garb1> <= <vcom> } ^max { <garb2> >= <vcom> } ^com <vmax> ^layer { <garb3> <> <lay> } ^compo <egarb2> ^commo <egarb3>)
2434 (horizontal ^net-name { <garb7> <> <nn1> <> nil } ^min { <garb4> <= <vcom> } ^max { <garb5> >= <vcom> } ^com <vmin> ^layer { <garb6> <> <lay> } ^compo <egarb4> ^commo <egarb5>)
2435 -->
2436 (remove <v1>)
2437 )
2438
2439 (p p110
2440 (context ^present propagate-constraint)
2441 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <max2> > <max1> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2442 - (vertical ^min <= <hcom> ^max >= <hcom> ^com <max2> ^layer <lay>)
2443 - (horizontal ^min <max2> ^max > <max2> ^com <hcom> ^layer <lay>)
2444 - (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com { > <max1> < <max2> })
2445 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com { > <max1> < <max2> } ^max-net nil)
2446 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com { > <max1> < <max2> } ^min-net nil)
2447 (horizontal ^net-name { <nn> <> nil } ^min <garb1> ^max <max1> ^com <hcom> ^layer <lay> ^compo <egarb2> ^commo <egarb3>)
2448 (vertical ^net-name { <nn1> <> <nn> <> nil } ^min { <garb4> <= <hcom> } ^max { <garb2> >= <hcom> } ^com <max2> ^layer { <garb3> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2449 - (vertical ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com { > <max1> < <max2> })
2450 -->
2451 (modify <h1> ^max (compute <max2> - 1) ^max-net nil)
2452 )
2453
2454 (p p111
2455 (context ^present propagate-constraint)
2456 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <max2> > <max1> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2457 - (vertical ^min <= <hcom> ^max >= <hcom> ^com <max1> ^layer <lay>)
2458 - (horizontal ^min < <max1> ^max <max1> ^com <hcom> ^layer <lay>)
2459 - (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com { > <max1> < <max2> })
2460 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com { > <max1> < <max2> } ^max-net nil)
2461 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com { > <max1> < <max2> } ^min-net nil)
2462 (horizontal ^net-name { <nn> <> nil } ^min <max2> ^max <garb1> ^com <hcom> ^layer <lay> ^compo <egarb2> ^commo <egarb3>)
2463 (vertical ^net-name { <nn1> <> <nn> <> nil } ^min { <garb4> <= <hcom> } ^max { <garb2> >= <hcom> } ^com <max1> ^layer { <garb3> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2464 - (vertical ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com { > <max1> < <max2> })
2465 -->
2466 (modify <h1> ^min (compute <max1> + 1) ^min-net nil)
2467 )
2468
2469 (p p112
2470 (context ^present propagate-constraint)
2471 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <max2> > <max1> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2472 - (vertical ^min <= <hcom> ^max >= <hcom> ^com <max2> ^layer <lay>)
2473 - (horizontal ^min <max2> ^max > <max2> ^com <hcom> ^layer <lay>)
2474 - (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com { >= <max1> < <max2> })
2475 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com { >= <max1> < <max2> } ^max-net nil)
2476 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com { >= <max1> < <max2> } ^min-net nil)
2477 - (horizontal ^min < <max1> ^max <max1> ^com <hcom> ^layer <lay>)
2478 (vertical ^net-name { <nn1> <> nil } ^min { <garb1> <= <hcom> } ^max { <garb2> >= <hcom> } ^com <max2> ^layer { <garb3> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2479 - (vertical ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com { >= <max1> < <max2> })
2480 -->
2481 (modify <h1> ^max (compute <max2> - 1) ^max-net nil)
2482 )
2483
2484 (p p113
2485 (context ^present propagate-constraint)
2486 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <max2> > <max1> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2487 - (vertical ^min <= <hcom> ^max >= <hcom> ^com <max1> ^layer <lay>)
2488 - (horizontal ^min < <max1> ^max <max1> ^com <hcom> ^layer <lay>)
2489 - (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com { > <max1> <= <max2> })
2490 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com { > <max1> <= <max2> } ^max-net nil)
2491 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com { > <max1> <= <max2> } ^min-net nil)
2492 - (horizontal ^min <max2> ^max > <max2> ^com <hcom> ^layer <lay>)
2493 (vertical ^net-name { <nn1> <> nil } ^min { <garb1> <= <hcom> } ^max { <garb2> >= <hcom> } ^com <max1> ^layer { <garb3> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2494 - (vertical ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com { > <max1> <= <max2> })
2495 -->
2496 (modify <h1> ^min (compute <max1> + 1) ^min-net nil)
2497 )
2498
2499 (p p114
2500 (context ^present propagate-constraint)
2501 { <v1> (vertical ^net-name nil ^min <max1> ^max { <max2> > <max1> } ^com <hcom> ^layer <lay> ^compo <egarb4> ^commo <egarb5>) }
2502 (vertical ^net-name { <nn> <> nil } ^min <garb1> ^max <max1> ^com <hcom> ^layer <lay> ^compo <egarb2> ^commo <egarb3>)
2503 - (horizontal ^min <= <hcom> ^max >= <hcom> ^com <max2> ^layer <lay>)
2504 - (vertical ^min <max2> ^max > <max2> ^com <hcom> ^layer <lay>)
2505 - (horizontal ^net-name nil ^min < <hcom> ^max > <hcom> ^com { > <max1> < <max2> })
2506 - (horizontal ^net-name nil ^min < <hcom> ^max <hcom> ^com { > <max1> < <max2> } ^max-net nil)
2507 - (horizontal ^net-name nil ^min <hcom> ^max > <hcom> ^com { > <max1> < <max2> } ^min-net nil)
2508 (horizontal ^net-name { <nn1> <> <nn> <> nil } ^min { <garb2> <= <hcom> } ^max { <garb3> >= <hcom> } ^com <max2> ^layer { <garb4> <> <lay> } ^compo <egarb6> ^commo <egarb7>)
2509 - (horizontal ^net-name { <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com { > <max1> < <max2> })
2510 -->
2511 (modify <v1> ^max (compute <max2> - 1) ^max-net nil)
2512 )
2513
2514 (p p115
2515 (context ^present propagate-constraint)
2516 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2517 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^compo <gy>)
2518 { <v1> (vertical ^net-name nil ^min <vmin> ^max { <gy> > <vmin> } ^com <gx> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2519 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { >= <vmin> < <gy> })
2520 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { >= <vmin> < <gy> } ^max-net nil)
2521 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { >= <vmin> < <gy> } ^min-net nil)
2522 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { >= <vmin> < <gy> })
2523 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <vmin> ^max >= <vmin> ^com <gx>)
2524 -->
2525 (modify <v1> ^max (compute <gy> - 1) ^max-net nil)
2526 )
2527
2528 (p p116
2529 (context ^present propagate-constraint)
2530 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>)
2531 { <h1> (horizontal ^net-name nil ^min <gx> ^max { <max2> > <gx> } ^com <gy> ^layer <lay> ^compo <egarb2> ^commo <egarb3>) }
2532 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> <= <max2> } ^min-net nil)
2533 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> <= <max2> })
2534 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> <= <max2> } ^max-net nil)
2535 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> <= <max2> })
2536 -->
2537 (modify <h1> ^min (compute <gx> + 1) ^min-net nil)
2538 )
2539
2540 (p p117
2541 (context ^present propagate-constraint)
2542 { <v1> (vertical ^net-name nil ^min <vmin> ^max { <vmax> > <vmin> } ^com <vcom> ^layer <lay> ^min-net { <nn> <> nil }) }
2543 (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { <hmax> >= <vcom> > <hmin> } ^com <vmax> ^layer <lay> ^commo <vmin> ^min-net { <> <nn> <> nil } ^max-net { <> <nn> <> nil })
2544 - (vertical ^net-name nil ^min < <vmax> ^max > <vmax> ^com { > <hmin> < <hmax> })
2545 - (vertical ^net-name nil ^min < <vmax> ^max <vmax> ^com { > <hmin> < <vcom> } ^max-net nil)
2546 - (vertical ^net-name nil ^min < <vmax> ^max <vmax> ^com { > <vcom> < <hmax> } ^max-net nil)
2547 - (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com { > <hmin> < <hmax> } ^min-net nil)
2548 - (vertical ^net-name { <nn> <> nil } ^min <= <vmax> ^max >= <vmax> ^com { > <hmin> < <hmax> })
2549 -->
2550 (remove <v1>)
2551 )
2552
2553 (p p118
2554 (context ^present propagate-constraint)
2555 (vertical ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com1> ^layer <lay1> ^compo <cpo1> ^commo <cmo1>)
2556 - (vertical ^net-name nil ^com <com1>)
2557 - (horizontal ^net-name nil ^min < <com1> ^max > <com1> ^com > <max1>)
2558 - (horizontal ^net-name nil ^min < <com1> ^max > <com1> ^com < <min1>)
2559 { <h1> (horizontal ^net-name nil ^min { <min2> < <com1> } ^max { <max2> > <com1> > <min2> } ^com { <com2> >= <min1> <= <max1> } ^layer { <lay2> <> <lay1> } ^compo <cpo2> ^commo <cmo2>) }
2560 - (horizontal ^net-name nil ^min < <com1> ^max > <com1> ^com { >= <min1> <= <max1> } ^layer <lay2>)
2561 { <t1> (to-be-routed ^net-name { <nn2> <> <nn1> } ^no-of-attached-pins <nap>) }
2562 - (horizontal ^status nil ^net-name { <nn2> <> nil } ^min <= <com1> ^max >= <com1>)
2563 (pin ^net-name <nn2> ^pin-x < <com1>)
2564 (pin ^net-name <nn2> ^pin-x > <com1>)
2565 { <b1> (branch-no <pn>) }
2566 -->
2567 (make branch-no (compute <pn> + 1))
2568 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2569 (remove <b1>)
2570 (make horizontal ^min <cmo1> ^max <cpo1> ^com <com2> ^layer <lay2> ^net-name <nn2> ^pin-name <pn> ^commo <cmo2> ^compo <cpo2>)
2571 (make horizontal ^min <min2> ^max <cmo1> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2572 (make horizontal ^min <cpo1> ^max <max2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2573 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <cmo1> ^grid-y <com2> ^grid-layer <lay2> ^came-from east)
2574 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <cpo1> ^grid-y <com2> ^grid-layer <lay2> ^came-from west)
2575 (remove <h1>)
2576 )
2577
2578 (p p119
2579 (context ^present propagate-constraint)
2580 (vertical ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com1> ^layer <lay1> ^compo <cpo1> ^commo <cmo1>)
2581 - (vertical ^net-name nil ^com <com1>)
2582 { <h1> (horizontal ^net-name nil ^min { <min2> < <com1> } ^max { <max2> > <com1> > <min2> } ^com { <com2> >= <min1> <= <max1> } ^layer { <lay2> <> <lay1> } ^compo <cpo2> ^commo <cmo2>) }
2583 - (horizontal ^net-name nil ^min < <com1> ^max > <com1> ^com > <com2>)
2584 - (horizontal ^net-name nil ^min < <com1> ^max > <com1> ^com < <com2>)
2585 { <t1> (to-be-routed ^net-name { <nn2> <> <nn1> } ^no-of-attached-pins <nap>) }
2586 - (horizontal ^status nil ^net-name { <nn2> <> nil } ^min <= <com1> ^max >= <com1>)
2587 (pin ^net-name <nn2> ^pin-x < <com1>)
2588 (pin ^net-name <nn2> ^pin-x > <com1>)
2589 { <b1> (branch-no <pn>) }
2590 -->
2591 (make branch-no (compute <pn> + 1))
2592 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2593 (remove <b1>)
2594 (make horizontal ^min <cmo1> ^max <cpo1> ^com <com2> ^layer <lay2> ^net-name <nn2> ^pin-name <pn> ^commo <cmo2> ^compo <cpo2>)
2595 (make horizontal ^min <min2> ^max <cmo1> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2596 (make horizontal ^min <cpo1> ^max <max2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2597 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <cmo1> ^grid-y <com2> ^grid-layer <lay2> ^came-from east)
2598 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <cpo1> ^grid-y <com2> ^grid-layer <lay2> ^came-from west)
2599 (remove <h1>)
2600 )
2601
2602 (p p120
2603 (context ^present propagate-constraint)
2604 (horizontal ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com1> ^layer <lay1> ^compo <cpo1> ^commo <cmo1>)
2605 - (horizontal ^net-name nil ^com <com1>)
2606 - (vertical ^net-name nil ^min < <com1> ^max > <com1> ^com > <max1>)
2607 - (vertical ^net-name nil ^min < <com1> ^max > <com1> ^com < <min1>)
2608 { <v1> (vertical ^net-name nil ^min { <min2> < <com1> } ^max { <max2> > <com1> > <min2> } ^com { <com2> >= <min1> <= <max1> } ^layer { <lay2> <> <lay1> } ^compo <cpo2> ^commo <cmo2>) }
2609 - (vertical ^net-name nil ^min < <com1> ^max > <com1> ^com { >= <min1> <= <max1> } ^layer <lay2>)
2610 { <t1> (to-be-routed ^net-name { <nn2> <> <nn1> } ^no-of-attached-pins <nap>) }
2611 - (vertical ^status nil ^net-name { <nn2> <> nil } ^min <= <com1> ^max >= <com1>)
2612 (pin ^net-name <nn2> ^pin-y < <com1>)
2613 (pin ^net-name <nn2> ^pin-y > <com1>)
2614 { <b1> (branch-no <pn>) }
2615 -->
2616 (make branch-no (compute <pn> + 1))
2617 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2618 (remove <b1>)
2619 (make vertical ^min <cmo1> ^max <cpo1> ^com <com2> ^layer <lay2> ^net-name <nn2> ^pin-name <pn> ^commo <cmo2> ^compo <cpo2>)
2620 (make vertical ^min <min2> ^max <cmo1> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2621 (make vertical ^min <cpo1> ^max <max2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2622 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com2> ^grid-y <cmo1> ^grid-layer <lay2> ^came-from north)
2623 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com2> ^grid-y <cpo1> ^grid-layer <lay2> ^came-from south)
2624 (remove <v1>)
2625 )
2626
2627 (p p121
2628 (context ^present propagate-constraint)
2629 (horizontal ^net-name { <nn1> <> nil } ^min <min1> ^max <max1> ^com <com1> ^layer <lay1> ^compo <cpo1> ^commo <cmo1>)
2630 - (horizontal ^net-name nil ^com <com1>)
2631 { <v1> (vertical ^net-name nil ^min { <min2> < <com1> } ^max { <max2> > <com1> > <min2> } ^com { <com2> >= <min1> <= <max1> } ^layer { <lay2> <> <lay1> } ^compo <cpo2> ^commo <cmo2>) }
2632 - (vertical ^net-name nil ^min < <com1> ^max > <com1> ^com > <com2>)
2633 - (vertical ^net-name nil ^min < <com1> ^max > <com1> ^com < <com2>)
2634 { <t1> (to-be-routed ^net-name { <nn2> <> <nn1> } ^no-of-attached-pins <nap>) }
2635 - (vertical ^status nil ^net-name { <nn2> <> nil } ^min <= <com1> ^max >= <com1>)
2636 (pin ^net-name <nn2> ^pin-y < <com1>)
2637 (pin ^net-name <nn2> ^pin-y > <com1>)
2638 { <b1> (branch-no <pn>) }
2639 -->
2640 (make branch-no (compute <pn> + 1))
2641 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2642 (remove <b1>)
2643 (make vertical ^min <cmo1> ^max <cpo1> ^com <com2> ^layer <lay2> ^net-name <nn2> ^pin-name <pn> ^commo <cmo2> ^compo <cpo2>)
2644 (make vertical ^min <min2> ^max <cmo1> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2645 (make vertical ^min <cpo1> ^max <max2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2646 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com2> ^grid-y <cmo1> ^grid-layer <lay2> ^came-from north)
2647 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com2> ^grid-y <cpo1> ^grid-layer <lay2> ^came-from south)
2648 (remove <v1>)
2649 )
2650
2651 (p p122
2652 (context ^present propagate-constraint)
2653 { <h1> (horizontal ^net-name nil ^min <min2> ^max { <max2> > <min2> } ^com <com2> ^layer <lay2> ^compo <cpo2> ^commo <cmo2>) }
2654 - (horizontal ^net-name nil ^min <= <min2> ^max >= <max2> ^com > <com2>)
2655 - (horizontal ^net-name nil ^min <= <min2> ^max >= <max2> ^com < <com2>)
2656 - (horizontal ^net-name nil ^min <= <min2> ^max >= <max2> ^com <com2> ^layer <> <lay2>)
2657 (congestion ^direction col ^coordinate { <x1> <= <max2> } ^como { <x2> >= <min2> })
2658 - (horizontal ^net-name nil ^min <= <x2> ^max >= <x1> ^com > <com2>)
2659 - (horizontal ^net-name nil ^min <= <x2> ^max >= <x1> ^com < <com2>)
2660 - (horizontal ^net-name nil ^min <= <x2> ^max >= <x1> ^com <com2> ^layer <> <lay2>)
2661 { <t1> (to-be-routed ^net-name <nn2> ^no-of-attached-pins <nap>) }
2662 - (horizontal ^status nil ^net-name { <nn2> <> nil } ^min <= <x2> ^max >= <x1>)
2663 (pin ^net-name <nn2> ^pin-x <= <x2>)
2664 (pin ^net-name <nn2> ^pin-x >= <x1>)
2665 { <b1> (branch-no <pn>) }
2666 - (horizontal ^net-name { <> <nn2> <> nil } ^min <= <x2> ^max >= <x2> ^com <com2> ^layer <lay2>)
2667 - (vertical ^net-name { <> <nn2> <> nil } ^min <= <com2> ^max >= <com2> ^com <x2> ^layer <lay2>)
2668 - (horizontal ^net-name { <> <nn2> <> nil } ^min <= <x1> ^max >= <x1> ^com <com2> ^layer <lay2>)
2669 - (vertical ^net-name { <> <nn2> <> nil } ^min <= <com2> ^max >= <com2> ^com <x1> ^layer <lay2>)
2670 -->
2671 (make branch-no (compute <pn> + 1))
2672 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2673 (remove <b1>)
2674 (make horizontal ^min <x2> ^max <x1> ^com <com2> ^layer <lay2> ^net-name <nn2> ^pin-name <pn> ^commo <cmo2> ^compo <cpo2>)
2675 (make horizontal ^min <min2> ^max <x2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2676 (make horizontal ^min <x1> ^max <max2> ^com <com2> ^layer <lay2> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2677 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <x2> ^grid-y <com2> ^grid-layer <lay2> ^came-from east)
2678 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <x1> ^grid-y <com2> ^grid-layer <lay2> ^came-from west)
2679 (remove <h1>)
2680 )
2681
2682 (p p123
2683 (context ^present propagate-constraint)
2684 { <v1> (vertical ^net-name nil ^min <min1> ^max { <max1> > <min1> } ^com { <com1> <> 1 } ^layer <lay1> ^compo <cpo1> ^commo <cmo1> ^min-net <mnn> ^max-net <xnn>) }
2685 - (horizontal ^net-name nil ^min < <com1> ^max > <com1>)
2686 (horizontal ^net-name nil ^min <com1> ^max { <garb3> > <com1> } ^com { <bhcom> <= <max1> >= <min1> } ^layer <garb4>)
2687 (horizontal ^net-name nil ^min { <garb1> < <com1> } ^max <com1> ^com { <thcom> <= <max1> > <bhcom> } ^layer <garb2>)
2688 - (horizontal ^net-name nil ^min < <com1> ^max <com1> ^com { < <thcom> > <bhcom> })
2689 - (horizontal ^net-name nil ^min <com1> ^max > <com1> ^com { < <thcom> > <bhcom> })
2690 { <t1> (to-be-routed ^net-name <nn2> ^no-of-attached-pins <nap>) }
2691 - (vertical ^status nil ^net-name { <nn2> <> nil } ^com <com1>)
2692 - (horizontal ^status nil ^net-name { <nn2> <> nil } ^min <= <com1> ^max >= <com1>)
2693 (pin ^net-name <nn2> ^pin-x < <com1>)
2694 (pin ^net-name <nn2> ^pin-x > <com1>)
2695 { <b1> (branch-no <pn>) }
2696 -->
2697 (make branch-no (compute <pn> + 1))
2698 (modify <t1> ^no-of-attached-pins (compute <nap> - 1))
2699 (remove <v1> <b1>)
2700 (make vertical ^min <min1> ^max <bhcom> ^com <com1> ^layer <lay1> ^commo <cmo1> ^compo <cpo1> ^max-net <nn2> ^min-net <mnn>)
2701 (make vertical ^min <thcom> ^max <max1> ^com <com1> ^layer <lay1> ^commo <cmo1> ^compo <cpo1> ^min-net <nn2> ^max-net <xnn>)
2702 (make vertical ^min <bhcom> ^max <thcom> ^com <com1> ^layer <lay1> ^commo <cmo1> ^compo <cpo1> ^net-name <nn2> ^pin-name <pn>)
2703 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com1> ^grid-y <bhcom> ^grid-layer <lay1> ^came-from north)
2704 (make ff ^net-name <nn2> ^pin-name <pn> ^grid-x <com1> ^grid-y <thcom> ^grid-layer <lay1> ^came-from south)
2705 )
2706
2707 (p p124
2708 (context ^present propagate-constraint)
2709 (ff ^net-name <nn1> ^grid-x <gx> ^grid-y <com2> ^grid-layer <lay1> ^pin-name <egarb1>)
2710 - (vertical ^net-name nil ^min <= <com2> ^max >= <com2> ^com <gx>)
2711 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com > <com2>)
2712 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com < <com2>)
2713 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min < <gx>)
2714 - (vertical ^status nil ^net-name { <nn1> <> nil } ^com < <gx>)
2715 { <h1> (horizontal ^net-name nil ^min { <min2> < <gx> } ^max { <max2> >= <gx> > <min2> } ^com <com2> ^layer <lay1> ^compo <cpo2> ^commo <cmo2> ^min-net <nn2>) }
2716 -->
2717 (make horizontal ^min <min2> ^max (compute <gx> - 1) ^com <com2> ^layer <lay1> ^commo <cmo2> ^compo <cpo2> ^min-net <nn2>)
2718 (modify <h1> ^min <gx> ^min-net <nn1>)
2719 )
2720
2721 (p p125
2722 (context ^present propagate-constraint)
2723 (ff ^net-name <nn1> ^grid-x <gx> ^grid-y <com2> ^grid-layer <lay1> ^pin-name <egarb1>)
2724 - (vertical ^net-name nil ^min <= <com2> ^max >= <com2> ^com <gx>)
2725 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com > <com2>)
2726 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com < <com2>)
2727 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^max > <gx>)
2728 - (vertical ^status nil ^net-name { <nn1> <> nil } ^com > <gx>)
2729 { <h1> (horizontal ^net-name nil ^min { <min2> <= <gx> } ^max { <max2> > <gx> > <min2> } ^com <com2> ^layer <lay1> ^compo <cpo2> ^commo <cmo2> ^max-net <nn2>) }
2730 -->
2731 (make horizontal ^min (compute <gx> + 1) ^max <max2> ^com <com2> ^layer <lay1> ^commo <cmo2> ^compo <cpo2> ^max-net <nn2>)
2732 (modify <h1> ^max <gx> ^max-net <nn1>)
2733 )
2734
2735 (p p126
2736 (context ^present << propagate-constraint extend-total-verti >>)
2737 { <ff1> (ff ^can-chng-layer no ^came-from <> east ^net-name <nn> ^grid-x <max1> ^grid-y <com1> ^grid-layer <lay> ^pin-name <pn>) }
2738 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <garb1> > <max1> } ^com <com1> ^layer <lay> ^compo <cpo1> ^commo <cmo1>) }
2739 - (horizontal ^net-name nil ^min < <max1> ^max <max1> ^com <com1> ^layer <lay>)
2740 - (vertical ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2741 -->
2742 (modify <h1> ^min (compute <max1> + 1) ^min-net <nn>)
2743 (make horizontal ^min <max1> ^max (compute <max1> + 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^commo <cmo1> ^compo <cpo1>)
2744 (modify <ff1> ^grid-x (compute <max1> + 1) ^came-from west ^can-chng-layer nil)
2745 )
2746
2747 (p p127
2748 (context ^present << propagate-constraint extend-total-verti >>)
2749 { <ff1> (ff ^can-chng-layer no ^came-from <> west ^net-name <nn> ^grid-x <max1> ^grid-y <com1> ^grid-layer <lay> ^pin-name <pn>) }
2750 { <h1> (horizontal ^net-name nil ^min <garb1> ^max { <max1> > <garb1> } ^com <com1> ^layer <lay> ^compo <cpo1> ^commo <cmo1>) }
2751 - (horizontal ^net-name nil ^min <max1> ^max > <max1> ^com <com1> ^layer <lay>)
2752 - (vertical ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2753 -->
2754 (modify <h1> ^max (compute <max1> - 1) ^max-net <nn>)
2755 (make horizontal ^max <max1> ^min (compute <max1> - 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^commo <cmo1> ^compo <cpo1>)
2756 (modify <ff1> ^grid-x (compute <max1> - 1) ^came-from east ^can-chng-layer nil)
2757 )
2758
2759 (p p128
2760 (context ^present << propagate-constraint extend-total-verti >>)
2761 { <ff1> (ff ^can-chng-layer no ^came-from <> north ^net-name <nn> ^grid-x <com1> ^grid-y <max1> ^grid-layer <lay> ^pin-name <pn>) }
2762 { <v1> (vertical ^net-name nil ^min <max1> ^max { <garb1> > <max1> } ^com <com1> ^layer <lay> ^compo <cpo1> ^commo <cmo1>) }
2763 - (vertical ^net-name nil ^min < <max1> ^max <max1> ^com <com1> ^layer <lay>)
2764 - (horizontal ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2765 -->
2766 (modify <v1> ^min (compute <max1> + 1) ^min-net <nn>)
2767 (make vertical ^min <max1> ^max (compute <max1> + 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^commo <cmo1> ^compo <cpo1>)
2768 (modify <ff1> ^grid-y (compute <max1> + 1) ^came-from south ^can-chng-layer nil)
2769 )
2770
2771 (p p129
2772 (context ^present << propagate-constraint extend-total-verti >>)
2773 { <ff1> (ff ^can-chng-layer no ^came-from <> south ^net-name <nn> ^grid-x <com1> ^grid-y <max1> ^grid-layer <lay> ^pin-name <pn>) }
2774 { <v1> (vertical ^net-name nil ^min <garb1> ^max { <max1> > <garb1> } ^com <com1> ^layer <lay> ^compo <cpo1> ^commo <cmo1>) }
2775 - (vertical ^net-name nil ^min <max1> ^max > <max1> ^com <com1> ^layer <lay>)
2776 - (horizontal ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1>)
2777 -->
2778 (modify <v1> ^max (compute <max1> - 1) ^max-net <nn>)
2779 (make vertical ^max <max1> ^min (compute <max1> - 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^commo <cmo1> ^compo <cpo1>)
2780 (modify <ff1> ^grid-y (compute <max1> - 1) ^came-from north ^can-chng-layer nil)
2781 )
2782
2783 (p p130
2784 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2785 { <h1> (horizontal ^status nil ^net-name <nn> ^min <min> ^max { <max> > <min> } ^com <com> ^layer <lay> ^pin-name <pn> ^max-net <gar1>) }
2786 { <h2> (horizontal ^status nil ^net-name <nn> ^min <max> ^max { <max2> > <max> } ^com <com> ^layer <lay> ^pin-name <pn> ^max-net <nn1>) }
2787 -->
2788 (modify <h1> ^max <max2> ^max-net <nn1>)
2789 (remove <h2>)
2790 )
2791
2792 (p p131
2793 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2794 { <v1> (vertical ^status nil ^net-name <nn> ^min <min> ^max { <max> > <min> } ^com <com> ^layer <lay> ^pin-name <pn> ^max-net <gar1>) }
2795 { <v2> (vertical ^status nil ^net-name <nn> ^min <max> ^max { <max2> > <max> } ^com <com> ^layer <lay> ^pin-name <pn> ^max-net <nn1>) }
2796 -->
2797 (modify <v1> ^max <max2> ^max-net <nn1>)
2798 (remove <v2>)
2799 )
2800
2801 (p p132
2802 (context ^present propagate-constraint)
2803 { <h1> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <gar1> ^max <max> ^com <com> ^layer <lay> ^pin-name <pn>) }
2804 { <h2> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <max2> ^com <com> ^layer <lay> ^pin-name { <pn1> <> <pn> }) }
2805 (vertical ^status nil ^net-name { <nn> <> nil } ^pin-name <pn1>)
2806 -->
2807 (modify <h1> ^max <max2>)
2808 (remove <h2>)
2809 )
2810
2811 (p p133
2812 (context ^present propagate-constraint)
2813 { <h1> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <gar1> ^com <com> ^layer <lay> ^pin-name <pn>) }
2814 { <h2> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <min2> ^max <min> ^com <com> ^layer <lay> ^pin-name { <pn1> <> <pn> }) }
2815 (vertical ^status nil ^net-name { <nn> <> nil } ^pin-name <pn1>)
2816 -->
2817 (modify <h1> ^min <min2>)
2818 (remove <h2>)
2819 )
2820
2821 (p p134
2822 (context ^present propagate-constraint)
2823 { <v1> (vertical ^status nil ^net-name { <nn> <> nil } ^min <gar1> ^max <max> ^com <com> ^layer <lay> ^pin-name <pn>) }
2824 { <v2> (vertical ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <max2> ^com <com> ^layer <lay> ^pin-name { <pn1> <> <pn> }) }
2825 (horizontal ^status nil ^net-name { <nn> <> nil } ^pin-name <pn1>)
2826 -->
2827 (modify <v1> ^max <max2>)
2828 (remove <v2>)
2829 )
2830
2831 (p p135
2832 (context ^present propagate-constraint)
2833 { <v1> (vertical ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <gar1> ^com <com> ^layer <lay> ^pin-name <pn>) }
2834 { <v2> (vertical ^status nil ^net-name { <nn> <> nil } ^min <min2> ^max <min> ^com <com> ^layer <lay> ^pin-name { <pn1> <> <pn> }) }
2835 (horizontal ^status nil ^net-name { <nn> <> nil } ^pin-name <pn1>)
2836 -->
2837 (modify <v1> ^min <min2>)
2838 (remove <v2>)
2839 )
2840
2841 (p p136
2842 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2843 { <ff1> (ff ^can-chng-layer no ^came-from <> east ^net-name <nn> ^grid-x <max1> ^grid-y <com1> ^grid-layer <lay> ^pin-name <pn>) }
2844 { <h1> (horizontal ^net-name nil ^min <max1> ^max { <garb1> > <max1> } ^com <com1> ^layer <lay> ^compo <cpo> ^commo <cmo>) }
2845 - (vertical ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1> ^layer <lay>)
2846 - (horizontal ^net-name nil ^min < <max1> ^max <max1> ^com <com1> ^layer <lay>)
2847 -->
2848 (modify <h1> ^min (compute <max1> + 1) ^min-net <nn>)
2849 (make horizontal ^min <max1> ^max (compute <max1> + 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^compo <cpo> ^commo <cmo>)
2850 (modify <ff1> ^grid-x (compute <max1> + 1) ^came-from west ^can-chng-layer nil)
2851 )
2852
2853 (p p137
2854 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2855 { <ff1> (ff ^can-chng-layer no ^came-from <> west ^net-name <nn> ^grid-x <max1> ^grid-y <com1> ^grid-layer <lay> ^pin-name <pn>) }
2856 { <h1> (horizontal ^net-name nil ^min <garb1> ^max { <max1> > <garb1> } ^com <com1> ^layer <lay> ^compo <cpo> ^commo <cmo>) }
2857 - (vertical ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1> ^layer <lay>)
2858 - (horizontal ^net-name nil ^min <max1> ^max > <max1> ^com <com1> ^layer <lay>)
2859 -->
2860 (modify <h1> ^max (compute <max1> - 1) ^max-net <nn>)
2861 (make horizontal ^max <max1> ^min (compute <max1> - 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^compo <cpo> ^commo <cmo>)
2862 (modify <ff1> ^grid-x (compute <max1> - 1) ^came-from east ^can-chng-layer nil)
2863 )
2864
2865 (p p138
2866 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2867 { <ff1> (ff ^can-chng-layer no ^came-from <> north ^net-name <nn> ^grid-x <com1> ^grid-y <max1> ^grid-layer <lay> ^pin-name <pn>) }
2868 { <v1> (vertical ^net-name nil ^min <max1> ^max { <garb1> > <max1> } ^com <com1> ^layer <lay> ^compo <cpo> ^commo <cmo>) }
2869 - (horizontal ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1> ^layer <lay>)
2870 - (vertical ^net-name nil ^min < <max1> ^max <max1> ^com <com1> ^layer <lay>)
2871 -->
2872 (modify <v1> ^min (compute <max1> + 1) ^min-net <nn>)
2873 (make vertical ^min <max1> ^max (compute <max1> + 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^compo <cpo> ^commo <cmo>)
2874 (modify <ff1> ^grid-y (compute <max1> + 1) ^came-from south ^can-chng-layer nil)
2875 )
2876
2877 (p p139
2878 (context ^present << propagate-constraint extend-total-verti move-ff >>)
2879 { <ff1> (ff ^can-chng-layer no ^came-from <> south ^net-name <nn> ^grid-x <com1> ^grid-y <max1> ^grid-layer <lay> ^pin-name <pn>) }
2880 { <v1> (vertical ^net-name nil ^min <garb1> ^max { <max1> > <garb1> } ^com <com1> ^layer <lay> ^compo <cpo> ^commo <cmo>) }
2881 - (horizontal ^net-name nil ^min <= <com1> ^max >= <com1> ^com <max1> ^layer <lay>)
2882 - (vertical ^net-name nil ^min <max1> ^max > <max1> ^com <com1> ^layer <lay>)
2883 -->
2884 (modify <v1> ^max (compute <max1> - 1) ^max-net <nn>)
2885 (make vertical ^max <max1> ^min (compute <max1> - 1) ^com <com1> ^layer <lay> ^net-name <nn> ^pin-name <pn> ^compo <cpo> ^commo <cmo>)
2886 (modify <ff1> ^grid-y (compute <max1> - 1) ^came-from north ^can-chng-layer nil)
2887 )
2888
2889 (p p140
2890 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2891 (vertical ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2892 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <com> ^max >= <com> ^com { >= <min> <= <max> } ^pin-name { <pn2> <> <pn1> })
2893 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2894 - (included <nn> <pn1>)
2895 (included <nn> <pn2>)
2896 -->
2897 (make included <nn> <pn1>)
2898 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2899 )
2900
2901 (p p141
2902 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2903 (vertical ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2904 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <com> ^max >= <com> ^com { >= <min> <= <max> } ^pin-name { <pn2> <> <pn1> })
2905 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2906 (included <nn> <pn1>)
2907 - (included <nn> <pn2>)
2908 -->
2909 (make included <nn> <pn2>)
2910 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2911 )
2912
2913 (p p142
2914 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2915 (vertical ^status nil ^net-name { <nn> <> nil } ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2916 (vertical ^status nil ^net-name { <nn> <> nil } ^min <max> ^com <com> ^pin-name { <pn2> <> <pn1> })
2917 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2918 (included <nn> <pn1>)
2919 - (included <nn> <pn2>)
2920 -->
2921 (make included <nn> <pn2>)
2922 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2923 )
2924
2925 (p p143
2926 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2927 (vertical ^status nil ^net-name { <nn> <> nil } ^min <egarb4> ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2928 (vertical ^status nil ^net-name { <nn> <> nil } ^min <max> ^com <com> ^pin-name { <pn2> <> <pn1> })
2929 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2930 - (included <nn> <pn1>)
2931 (included <nn> <pn2>)
2932 -->
2933 (make included <nn> <pn1>)
2934 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2935 )
2936
2937 (p p144
2938 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2939 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <egarb4> ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2940 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <max> ^com <com> ^pin-name { <pn2> <> <pn1> })
2941 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2942 (included <nn> <pn1>)
2943 - (included <nn> <pn2>)
2944 -->
2945 (make included <nn> <pn2>)
2946 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2947 )
2948
2949 (p p145
2950 (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>)
2951 (horizontal ^status nil ^net-name { <nn> <> nil } ^max <max> ^com <com> ^layer <egarb1> ^compo <egarb2> ^commo <egarb3> ^pin-name <pn1>)
2952 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <max> ^com <com> ^pin-name { <pn2> <> <pn1> })
2953 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2954 - (included <nn> <pn1>)
2955 (included <nn> <pn2>)
2956 -->
2957 (make included <nn> <pn1>)
2958 (modify <t1> ^no-of-attached-pins (compute <nap> + 1))
2959 )
2960
2961 (p p146
2962 { <c1> (context ^present << propagate-constraint check-for-routed-net find-no-of-pins-on-a-row-col >>) }
2963 { <t1> (to-be-routed ^net-name <nn> ^no-of-attached-pins <nap>) }
2964 { <n1> (net ^net-name <nn> ^net-no-of-pins <nap>) }
2965 -->
2966 (remove <c1> <t1>)
2967 (make join-routed-net <nn>)
2968 (modify <n1> ^net-is-routed yes)
2969 )
2970
2971 (p p147
2972 { <c1> (context ^present check-for-routed-net) }
2973 -->
2974 (remove <c1>)
2975 (make context ^present move-ff)
2976 )
2977
2978 (p p148
2979 { <con> (context ^present move-ff) }
2980 -->
2981 (modify <con> ^present set-min-max)
2982 )
2983
2984 (p p149
2985 { <con> (context ^present set-min-max) }
2986 -->
2987 (remove <con>)
2988 (make context ^present propagate-constraint)
2989 )
2990
2991 (p p150
2992 (context ^present propagate-constraint)
2993 { <c1> (constraint ^pin-name-2 <pn>) }
2994 - (ff ^pin-name <pn>)
2995 -->
2996 (remove <c1>)
2997 )
2998
2999 (p p151
3000 (context ^present propagate-constraint)
3001 { <c1> (constraint ^pin-name-1 <pn>) }
3002 - (ff ^pin-name <pn>)
3003 -->
3004 (remove <c1>)
3005 )
3006
3007 (p p152
3008 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn>) }
3009 (context ^present << propagate-constraint extend-total-verti move-ff >>)
3010 { <ff2> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <garb2> ^pin-name <> <pn>) }
3011 -->
3012 (remove <ff1> <ff2>)
3013 )
3014
3015 (p p153
3016 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3017 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn>) }
3018 { <ff2> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy2> ^grid-layer <lay> ^pin-name <> <pn>) }
3019 (congestion ^direction row ^coordinate <gy2> ^como <gy1>)
3020 { <v1> (vertical ^net-name nil ^min { <min> <= <gy1> } ^max { <max> >= <gy2> > <min> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3021 -->
3022 (remove <ff1> <ff2>)
3023 (make vertical ^min <min> ^max <gy1> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3024 (modify <v1> ^min <gy2> ^min-net <nn>)
3025 (make vertical ^min <gy1> ^max <gy2> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3026 )
3027
3028 (p p154
3029 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3030 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn>) }
3031 (horizontal ^status nil ^net-name { <nn> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <gy2> ^layer <lay> ^compo <egarb1> ^commo <gy1> ^pin-name <> <pn>)
3032 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy2>)
3033 { <v1> (vertical ^net-name nil ^min { <min> <= <gy1> } ^max { <max> >= <gy2> > <min> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3034 -->
3035 (remove <ff1>)
3036 (make vertical ^min <min> ^max <gy1> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3037 (modify <v1> ^min <gy2> ^min-net <nn>)
3038 (make vertical ^min <gy1> ^max <gy2> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3039 )
3040
3041 (p p155
3042 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3043 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy2> ^grid-layer <lay> ^pin-name <pn>) }
3044 (horizontal ^status nil ^net-name { <nn> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <gy1> ^layer <lay> ^compo <gy2> ^commo <egarb1> ^pin-name <> <pn>)
3045 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy1>)
3046 { <v1> (vertical ^net-name nil ^min { <min> <= <gy1> } ^max { <max> >= <gy2> > <min> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3047 -->
3048 (remove <ff1>)
3049 (make vertical ^min <min> ^max <gy1> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3050 (modify <v1> ^min <gy2> ^min-net <nn>)
3051 (make vertical ^min <gy1> ^max <gy2> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3052 )
3053
3054 (p p156
3055 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3056 { <ff1> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>) }
3057 (horizontal ^net-name nil ^min { <min> <= <gx1> } ^max { <max> > <gx1> > <min> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^pin-name <garb1>)
3058 { <ff2> (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> <= <max> } ^grid-y <gy> ^grid-layer <lay> ^pin-name <egarb1>) }
3059 (congestion ^direction col ^coordinate <gx2> ^como <gx1>)
3060 { <h1> (horizontal ^net-name nil ^min { <min> <= <gx1> } ^max { <max> >= <gx2> > <min> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3061 -->
3062 (remove <ff1> <ff2>)
3063 (make horizontal ^min <min> ^max <gx1> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3064 (modify <h1> ^min <gx2> ^min-net <nn>)
3065 (make horizontal ^min <gx1> ^max <gx2> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3066 )
3067
3068 (p p157
3069 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3070 { <ff1> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>) }
3071 (vertical ^status nil ^net-name { <nn> <> nil } ^min { <garb1> <= <gy> } ^max { <garb2> >= <gy> } ^com <gx2> ^layer <lay> ^compo <egarb1> ^commo <gx1> ^pin-name <> <pn>)
3072 - (ff ^net-name <nn> ^grid-x <gx2> ^grid-y <gy>)
3073 { <h1> (horizontal ^net-name nil ^min { <min> <= <gx1> } ^max { <max> >= <gx2> > <min> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3074 -->
3075 (remove <ff1>)
3076 (make horizontal ^min <min> ^max <gx1> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3077 (modify <h1> ^min <gx2> ^min-net <nn>)
3078 (make horizontal ^min <gx1> ^max <gx2> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3079 )
3080
3081 (p p158
3082 (context ^present << propagate-constraint extend-pins find-no-of-pins-on-a-row-col check-for-routed-net >>)
3083 { <ff1> (ff ^net-name <nn> ^grid-x <gx2> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>) }
3084 (vertical ^status nil ^net-name { <nn> <> nil } ^min { <garb1> <= <gy> } ^max { <garb2> >= <gy> } ^com <gx1> ^layer <lay> ^compo <gx2> ^commo <egarb1> ^pin-name <> <pn>)
3085 - (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy>)
3086 { <h1> (horizontal ^net-name nil ^min { <min> <= <gx1> } ^max { <max> >= <gx2> > <min> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3087 -->
3088 (remove <ff1>)
3089 (make horizontal ^min <min> ^max <gx1> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3090 (modify <h1> ^min <gx2> ^min-net <nn>)
3091 (make horizontal ^min <gx1> ^max <gx2> ^com <gy> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3092 )
3093
3094 (p p159
3095 (context ^present propagate-constraint)
3096 { <ff1> (ff ^can-chng-layer <> no ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay>) }
3097 - (vertical ^net-name nil ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
3098 - (horizontal ^net-name nil ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
3099 - (vertical ^net-name <> nil ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3100 - (horizontal ^net-name <> nil ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3101 (vertical ^net-name nil ^min { <vmin> <= <gy> } ^max { >= <gy> > <vmin> } ^com <gx> ^layer { <lay2> <> <lay> })
3102 -->
3103 (modify <ff1> ^grid-layer <lay2> ^can-chng-layer no)
3104 )
3105
3106 (p p160
3107 (context ^present propagate-constraint)
3108 { <ff1> (ff ^can-chng-layer <> no ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay>) }
3109 - (vertical ^net-name nil ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
3110 - (horizontal ^net-name nil ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
3111 - (vertical ^net-name <> nil ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3112 - (horizontal ^net-name <> nil ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3113 (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { >= <gx> > <hmin> } ^com <gy> ^layer { <lay2> <> lay> })
3114 -->
3115 (modify <ff1> ^grid-layer <lay2> ^can-chng-layer no)
3116 )
3117
3118 (p p161
3119 (context ^present propagate-constraint)
3120 { <ff1> (ff ^can-chng-layer <> no ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay>) }
3121 - (horizontal ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3122 - (vertical ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3123 -->
3124 (modify <ff1> ^can-chng-layer no)
3125 )
3126
3127 (p p162
3128 (context ^present << propagate-constraint move-ff >>)
3129 { <ff1> (ff ^can-chng-layer <> no ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay>) }
3130 (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3131 -->
3132 (modify <ff1> ^can-chng-layer no)
3133 )
3134
3135 (p p163
3136 (context ^present << propagate-constraint move-ff >>)
3137 { <ff1> (ff ^can-chng-layer <> no ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay>) }
3138 (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3139 -->
3140 (modify <ff1> ^can-chng-layer no)
3141 )
3142
3143 (p p164
3144 (context ^present propagate-constraint)
3145 { <ff1> (ff ^can-chng-layer no ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay1> ^pin-name <pn>) }
3146 { <ff2> (ff ^can-chng-layer no ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay2> ^pin-name <garb1>) }
3147 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy1> ^max >= <gy1> ^com <gx2>)
3148 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx2> ^max >= <gx2> ^com <gy1>)
3149 { <h1> (horizontal ^net-name nil ^min { <hmin> <= <gx2> } ^max { <hmax> >= <gx1> > <hmin> } ^com <gy1> ^layer <lay1> ^compo <hcpo> ^commo <gy2> ^min-net <hnn1>) }
3150 { <v1> (vertical ^net-name nil ^min { <vmin> <= <gy2> } ^max { <vmax> >= <gy1> > <vmin> } ^com <gx2> ^layer <lay2> ^compo <gx1> ^commo <vcmo> ^min-net <vnn1>) }
3151 -->
3152 (make horizontal ^min <hmin> ^max <gx2> ^com <gy1> ^commo <gy2> ^compo <hcpo> ^layer <lay1> ^min-net <hnn1> ^max-net <nn>)
3153 (modify <h1> ^min <gx1> ^min-net <nn>)
3154 (make vertical ^min <vmin> ^max <gy2> ^com <gx2> ^commo <vcmo> ^compo <gx1> ^layer <lay2> ^min-net <vnn1> ^max-net <nn>)
3155 (modify <v1> ^min <gy1> ^min-net <nn>)
3156 (remove <ff1> <ff2>)
3157 (make horizontal ^min <gx2> ^max <gx1> ^com <gy1> ^commo <gy2> ^compo <hcpo> ^layer <lay1> ^net-name <nn> ^pin-name <pn>)
3158 (make vertical ^min <gy2> ^max <gy1> ^com <gx2> ^commo <vcmo> ^compo <gx1> ^layer <lay2> ^net-name <nn> ^pin-name <pn>)
3159 )
3160
3161 (p p165
3162 (context ^present << propagate-constraint extend-pins set-min-max >>)
3163 (vertical ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <garb1> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3164 { <v1> (vertical ^net-name nil ^min <garb2> ^max { <max> > <garb2> } ^com <com> ^layer <lay> ^max-net <> <nn>) }
3165 -->
3166 (modify <v1> ^max-net <nn>)
3167 )
3168
3169 (p p166
3170 (context ^present << propagate-constraint extend-pins set-min-max >>)
3171 (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <min> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3172 { <v1> (vertical ^net-name nil ^min <min> ^max { <garb2> > <min> } ^com <com> ^layer <lay> ^min-net <> <nn>) }
3173 -->
3174 (modify <v1> ^min-net <nn>)
3175 )
3176
3177 (p p167
3178 (context ^present << propagate-constraint extend-pins set-min-max >>)
3179 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <hmin> ^max <hmax> ^com <max> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3180 { <v1> (vertical ^net-name nil ^min { <garb1> < <max> } ^max <max> ^com { >= <hmin> <= <hmax> } ^layer <lay> ^max-net <> <nn>) }
3181 -->
3182 (modify <v1> ^max-net <nn>)
3183 )
3184
3185 (p p168
3186 (context ^present << propagate-constraint extend-pins set-min-max >>)
3187 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <hmin> ^max <hmax> ^com <min> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3188 { <v1> (vertical ^net-name nil ^min <min> ^max { <garb1> > <min> } ^com { >= <hmin> <= <hmax> } ^layer <lay> ^min-net <> <nn>) }
3189 -->
3190 (modify <v1> ^min-net <nn>)
3191 )
3192
3193 (p p169
3194 (context ^present << propagate-constraint extend-pins set-min-max >>)
3195 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <garb1> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3196 { <h1> (horizontal ^net-name nil ^min <garb2> ^max { <max> > <garb2> } ^com <com> ^layer <lay> ^max-net <> <nn>) }
3197 -->
3198 (modify <h1> ^max-net <nn>)
3199 )
3200
3201 (p p170
3202 (context ^present << propagate-constraint extend-pins set-min-max >>)
3203 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <min> ^com <com> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3204 { <h1> (horizontal ^net-name nil ^min <min> ^max { <garb2> > <min> } ^com <com> ^layer <lay> ^min-net <> <nn>) }
3205 -->
3206 (modify <h1> ^min-net <nn>)
3207 )
3208
3209 (p p171
3210 (context ^present << propagate-constraint extend-pins set-min-max >>)
3211 (vertical ^status nil ^net-name { <nn> <> nil } ^min <vmin> ^max <vmax> ^com <max> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3212 { <h1> (horizontal ^net-name nil ^min <garb1> ^max { <max> > <garb1> } ^com { >= <vmin> <= <vmax> } ^layer <lay> ^max-net <> <nn>) }
3213 -->
3214 (modify <h1> ^max-net <nn>)
3215 )
3216
3217 (p p172
3218 (context ^present << propagate-constraint extend-pins set-min-max >>)
3219 (vertical ^status nil ^net-name { <nn> <> nil } ^min <vmin> ^max <vmax> ^com <min> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
3220 { <h1> (horizontal ^net-name nil ^min <min> ^max { <garb1> > <min> } ^com { >= <vmin> <= <vmax> } ^layer <lay> ^min-net <> <nn>) }
3221 -->
3222 (modify <h1> ^min-net <nn>)
3223 )
3224
3225 (p p173
3226 (context ^present propagate-constraint)
3227 { <ff1> (ff ^can-chng-layer no ^net-name <nn> ^grid-x <gx> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn>) }
3228 (horizontal ^status nil ^net-name { <nn> <> nil } ^min { <garb1> <= <gx> } ^max { <garb2> >= <gx> } ^com <gy2> ^layer <garb3> ^compo <garb4> ^commo <gy1> ^pin-name <> <pn>)
3229 - (horizontal ^net-name { <> nil <> <nn> } ^min <= <gx> ^max >= <gx> ^com <gy2>)
3230 - (vertical ^net-name { <> nil <> <nn> } ^min <= <gy2> ^max >= <gy2> ^com <gx>)
3231 { <v1> (vertical ^net-name nil ^min { <min> <= <gy1> } ^max { <max> >= <gy2> > <min> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo> ^min-net <nn1>) }
3232 -->
3233 (remove <ff1>)
3234 (make vertical ^min <min> ^max <gy1> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^min-net <nn1> ^max-net <nn>)
3235 (modify <v1> ^min <gy2> ^min-net <nn>)
3236 (make vertical ^min <gy1> ^max <gy2> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <lay> ^net-name <nn> ^pin-name <pn>)
3237 )
3238
3239 (p p174
3240 (join-routed-net <nn>)
3241 { <h1> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <max> ^com <com> ^layer <lay> ^compo <garb1> ^commo <garb2>) }
3242 { <h2> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <max2> ^com <com> ^layer <lay> ^compo <garb3> ^commo <garb4>) }
3243 -->
3244 (modify <h1> ^max <max2>)
3245 (remove <h2>)
3246 )
3247
3248 (p p175
3249 (join-routed-net <nn>)
3250 { <v1> (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <max> ^com <com> ^layer <lay> ^compo <garb2> ^commo <garb3>) }
3251 { <v2> (vertical ^status nil ^net-name { <nn> <> nil } ^min <max> ^max <max2> ^com <com> ^layer <lay> ^compo <garb4> ^commo <garb5>) }
3252 -->
3253 (modify <v1> ^max <max2>)
3254 (remove <v2>)
3255 )
3256
3257 (p p176
3258 { <j1> (join-routed-net <nn>) }
3259 -->
3260 (remove <j1>)
3261 (make move-via <nn>)
3262 )
3263
3264 (p p177
3265 (context ^present propagate-constraint)
3266 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <vlayer> ^pin-name <egarb1>)
3267 (horizontal ^net-name nil ^min <hmin2> ^max { <gx> > <hmin2> } ^com <vmax> ^layer <vlayer> ^compo <egarb8> ^commo <egarb9>)
3268 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { < <vmax> > <gy> })
3269 { <v1> (vertical ^net-name nil ^min { <garb1> <= <gy> } ^max { <vmax> > <garb1> > <gy> } ^com <gx> ^layer <vlayer> ^commo <cmo> ^compo <cpo> ^max-net <maxn>) }
3270 (horizontal ^net-name { <> <nn> <> nil } ^min { <hmin1> <= <gx> } ^max >= <gx> ^com <vmax> ^layer <> <vlayer>)
3271 (vertical ^net-name { <> <nn> <> nil } ^min <= <vmax> ^max >= <vmax> ^com { <vcom> < <gx> >= <hmin1> >= <hmin2> } ^layer <vlayer>)
3272 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com <vmax>)
3273 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { < <vmax> > <gy> } ^max-net nil)
3274 - (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <gx>)
3275 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <vmax> ^max > <vmax> ^com <gx>)
3276 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <gx> ^max > <gx> ^com <vmax>)
3277 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { < <vmax> > <gy> } ^min-net nil)
3278 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { < <vmax> > <gy> })
3279 - (vertical ^net-name nil ^min < <vmax> ^max > <vmax> ^com { < <gx> > <vcom> })
3280 - (vertical ^net-name nil ^min < <vmax> ^max <vmax> ^com { < <gx> > <vcom> } ^max-net nil)
3281 - (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com { < <gx> > <vcom> } ^min-net nil)
3282 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <vmax> ^max >= <vmax> ^com { < <gx> > <vcom> })
3283 -->
3284 (make vertical ^min (compute <gy> + 1) ^max <vmax> ^com <gx> ^commo <cmo> ^compo <cpo> ^layer <vlayer> ^max-net <maxn>)
3285 (modify <v1> ^max <gy> ^max-net <nn>)
3286 )
3287
3288 (p p178
3289 (context ^present propagate-constraint)
3290 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <layer> ^pin-name <pn>)
3291 { <h1> (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { <hmax> > <gx> > <hmin> } ^com <gy> ^layer <layer> ^compo <cpo> ^commo <cmo> ^max-net <mn>) }
3292 (vertical ^net-name { <> <nn> <> nil } ^min <cpo> ^max { <garb2> >= <cpo> } ^com <vcom> ^layer <layer1> ^compo <vcpo> ^commo <gx>)
3293 (horizontal ^net-name { <> <nn> <> nil } ^min { <garb3> <= <vcom> } ^max { <garb4> >= <vcom> } ^com <cpo> ^layer <> <layer1> ^compo <garb5> ^commo <gy>)
3294 (vertical ^net-name { <> <nn> <> nil } ^min { <garb6> <= <cmo> } ^max <cmo> ^com <vcom> ^layer <layer2> ^compo <vcpo> ^commo <gx>)
3295 (horizontal ^net-name { <> <nn> <> nil } ^min { <garb7> <= <vcom> } ^max { <garb8> >= <vcom> } ^com <cmo> ^layer <> <layer2> ^compo <gy> ^commo <garb9>)
3296 (vertical ^net-name { <> <nn> <> nil } ^min { <garb13> <= <gy> } ^max { <garb14> >= <gy> } ^com <vcpo> ^layer <layer3> ^compo <garb10> ^commo <vcom>)
3297 (horizontal ^net-name { <> <nn> <> nil } ^min { <garb11> <= <vcpo> } ^max { <garb12> >= <vcpo> } ^com <gy> ^layer <> <layer3> ^compo <cpo> ^commo <cmo>)
3298 -->
3299 (make horizontal ^min (compute <gx> + 1) ^max <hmax> ^com <gy> ^compo <cpo> ^commo <cmo> ^layer <layer> ^max-net <mn>)
3300 (modify <h1> ^max <gx> ^max-net <nn>)
3301 )
3302
3303 (p p179
3304 (context ^present propagate-constraint)
3305 { <ff1> (ff ^came-from west ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^pin-name <pn>) }
3306 (vertical ^net-name { <> <nn> <> nil } ^min { <vmin> <= <gy> } ^max { <vmax> >= <gy> } ^com <vcom> ^layer <lay2> ^compo <garb1> ^commo <gx>)
3307 (vertical ^net-name { <> <nn> <> nil } ^min { <vmax2> > <gy> <= <vmax> } ^max <garb4> ^com <gx> ^layer <lay4>)
3308 (vertical ^net-name { <> <nn> <> nil } ^min <garb2> ^max { <vmin2> < <gy> >= <vmin> } ^com <gx> ^layer <lay3>)
3309 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmin2> < <gy> })
3310 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmin2> < <gy> } ^layer <> <lay2> ^min-net nil)
3311 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmin2> < <gy> } ^max-net nil)
3312 - (horizontal ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { > <vmin2> < <gy> })
3313 (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <vmin2> ^layer <> <lay3>)
3314 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmax2> })
3315 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmax2> } ^layer <> <lay2> ^min-net nil)
3316 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmax2> } ^max-net nil)
3317 - (horizontal ^net-name <nn> ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmax2> })
3318 (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <vmax2> ^layer <> <lay4>)
3319 { <h1> (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { <hmax> >= <vcom> > <hmin> } ^com <gy> ^layer { <lay5> <> <lay2> } ^compo <hcpo> ^commo <hcmo> ^max-net <mn>) }
3320 -->
3321 (make horizontal ^layer <lay5> ^com <gy> ^commo <hcmo> ^compo <hcpo> ^min-net <nn> ^max-net <mn> ^min <vcom> ^max <hmax>)
3322 (modify <h1> ^max <gx> ^max-net <nn>)
3323 (make horizontal ^layer <lay5> ^com <gy> ^commo <hcmo> ^compo <hcpo> ^net-name <nn> ^pin-name <pn> ^min <gx> ^max <vcom>)
3324 (modify <ff1> ^grid-x <vcom> ^grid-layer <lay5> ^can-chng-layer no)
3325 )
3326
3327 (p p180
3328 (context ^present propagate-constraint)
3329 (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <vmax> ^com <vcom> ^layer <lay1> ^compo <cpo> ^commo <cmo>)
3330 (horizontal ^status nil ^net-name { <nn> <> nil } ^min { <garb2> <= <vcom> } ^max { <garb3> >= <vcom> } ^com <vmax> ^layer { <garb4> <> <lay1> })
3331 (vertical ^net-name { <nn1> <> <nn> <> nil } ^min { <vmin> > <vmax> } ^max <garb5> ^com <vcom> ^layer <lay2>)
3332 (horizontal ^net-name { <nn1> <> nil } ^min { <garb6> <= <vcom> } ^max { <garb7> >= <vcom> } ^com <vmin> ^layer { <garb8> <> <lay2> })
3333 (vertical ^net-name { <> <nn> <> nil } ^min { <vmin2> <= <vmax> } ^max { <vmax2> >= <vmin> } ^com <cpo> ^layer <lay3>)
3334 { <v1> (vertical ^net-name nil ^min <vmax> ^max { <vmax3> > <vmax> } ^com <vcom> ^layer <lay3>) }
3335 - (vertical ^net-name nil ^min <vmax3> ^com <vcom>)
3336 - (horizontal ^net-name nil ^min < <vcom> ^max > <vcom> ^com { > <vmax> <= <vmax3> })
3337 - (horizontal ^net-name nil ^min <vcom> ^max > <vcom> ^com { > <vmax> <= <vmax3> } ^layer <> <lay3> ^min-net nil)
3338 - (horizontal ^net-name nil ^min < <vcom> ^max <vcom> ^com { > <vmax> <= <vmax3> } ^max-net nil)
3339 - (horizontal ^net-name { <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com { > <vmax> <= <vmax3> })
3340 -->
3341 (modify <v1> ^min (compute <vmax> + 1) ^min-net nil)
3342 )
3343
3344 (p p181
3345 (context ^present propagate-constraint)
3346 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>) }
3347 (ff ^net-name <nn> ^grid-x { <gx2> > <gx> } ^grid-y <garb1> ^grid-layer <lay> ^pin-name <> <pn>)
3348 - (vertical ^com { > <gx> < <gx2> })
3349 { <h1> (horizontal ^net-name nil ^min <gx> ^max { <egarb1> > <gx> } ^com <gy> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
3350 - (vertical ^net-name nil ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
3351 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
3352 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx2> ^max >= <gx2> ^com <gy>)
3353 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <gx2>)
3354 -->
3355 (modify <h1> ^min (compute <gx> + 1) ^min-net <nn>)
3356 (make horizontal ^net-name <nn> ^pin-name <pn> ^min <gx> ^com <gy> ^max (compute <gx> + 1) ^commo <hcmo> ^compo <hcpo> ^layer <lay>)
3357 (modify <ff1> ^grid-x (compute <gx> + 1) ^came-from west)
3358 )
3359
3360 (p p182
3361 (context ^present propagate-constraint)
3362 { <v3> (vertical ^net-name nil ^min <vmin2> ^max { <vmax2> > <vmin2> } ^com <vcom> ^layer <garb1> ^compo <vcpo> ^commo <egarb1>) }
3363 (congestion ^direction row ^coordinate <vmax2> ^como <vmin2>)
3364 - (horizontal ^status nil ^min < <vcom> ^max >= <vcom> ^com { <= <vmax2> >= <vmin2> })
3365 - (vertical ^status nil ^min <vmax2> ^max > <vmax2> ^com <vcom>)
3366 - (vertical ^status nil ^max <vmin2> ^min < <vmin2> ^com <vcom>)
3367 (vertical ^net-name nil ^min { <vmin> <= <vmin2> } ^max { > <vmin> >= <vmax2> } ^com <vcpo> ^layer <lay>)
3368 (horizontal ^net-name nil ^min <vcom> ^max { <egarb2> > <vcom> } ^com <vmax2> ^layer <lay> ^compo <egarb3> ^commo <egarb4>)
3369 (horizontal ^net-name nil ^min <vcom> ^max { <egarb5> > <vcom> } ^com <vmin2> ^layer <lay> ^compo <egarb6> ^commo <egarb7>)
3370 -->
3371 (remove <v3>)
3372 )
3373
3374 (p p183
3375 (context ^present propagate-constraint)
3376 { <v3> (vertical ^net-name nil ^min <vmin2> ^max { <vmax2> > <vmin2> } ^com <vcom> ^layer <garb1> ^compo <garb2> ^commo <vcmo>) }
3377 (congestion ^direction row ^coordinate <vmax2> ^como <vmin2>)
3378 - (horizontal ^status nil ^min <= <vcom> ^max > <vcom> ^com { <= <vmax2> >= <vmin2> })
3379 - (vertical ^status nil ^min <vmax2> ^max > <vmax2> ^com <vcom>)
3380 - (vertical ^status nil ^max <vmin2> ^min < <vmin2> ^com <vcom>)
3381 (vertical ^net-name nil ^min { <vmin> <= <vmin2> } ^max { > <vmin> >= <vmax2> } ^com <vcmo> ^layer <lay>)
3382 (horizontal ^net-name nil ^min <egarb1> ^max { <vcom> > <egarb1> } ^com <vmax2> ^layer <lay> ^compo <egarb2> ^commo <egarb3>)
3383 (horizontal ^net-name nil ^min <egarb6> ^max { <vcom> > <egarb6> } ^com <vmin2> ^layer <lay> ^compo <egarb4> ^commo <egarb5>)
3384 -->
3385 (remove <v3>)
3386 )
3387
3388 (p p184
3389 (context ^present propagate-constraint)
3390 { <h3> (horizontal ^net-name nil ^min <hmin2> ^max { <hmax2> > <hmin2> } ^com <hcom> ^layer <garb1> ^compo <hcpo> ^commo <egarb1>) }
3391 (congestion ^direction col ^coordinate <hmax2> ^como <hmin2>)
3392 - (vertical ^status nil ^min < <hcom> ^max >= <hcom> ^com { <= <hmax2> >= <hmin2> })
3393 - (horizontal ^status nil ^min <hmax2> ^max > <hmax2> ^com <hcom>)
3394 - (horizontal ^status nil ^max <hmin2> ^min < <hmin2> ^com <hcom>)
3395 (horizontal ^net-name nil ^min { <hmin> <= <hmin2> } ^max { > <hmin> >= <hmax2> } ^com <hcpo> ^layer <lay>)
3396 (vertical ^net-name nil ^min <hcom> ^max { <egarb2> > <hcom> } ^com <hmax2> ^layer <lay> ^compo <egarb3> ^commo <egarb4>)
3397 (vertical ^net-name nil ^min <hcom> ^max { <egarb5> > <hcom> } ^com <hmin2> ^layer <lay> ^compo <egarb6> ^commo <egarb7>)
3398 -->
3399 (remove <h3>)
3400 )
3401
3402 (p p185
3403 (context ^present propagate-constraint)
3404 { <h3> (horizontal ^net-name nil ^min <hmin2> ^max { <hmax2> > <hmin2> } ^com <hcom> ^layer <garb1> ^compo <garb2> ^commo <hcmo>) }
3405 (congestion ^direction col ^coordinate <hmax2> ^como <hmin2>)
3406 - (vertical ^status nil ^min <= <hcom> ^max > <hcom> ^com { <= <hmax2> >= <hmin2> })
3407 - (horizontal ^status nil ^min <hmax2> ^max > <hmax2> ^com <hcom>)
3408 - (horizontal ^status nil ^max <hmin2> ^min < <hmin2> ^com <hcom>)
3409 (horizontal ^net-name nil ^min { <hmin> <= <hmin2> } ^max { > <hmin> >= <hmax2> } ^com <hcmo> ^layer <lay>)
3410 (vertical ^net-name nil ^min <egarb1> ^max { <hcom> > <egarb1> } ^com <hmax2> ^layer <lay> ^compo <egarb3> ^compo <egarb4>)
3411 (vertical ^net-name nil ^min <egarb5> ^max { <hcom> > <egarb5> } ^com <hmin2> ^layer <lay> ^compo <egarb6> ^commo <egarb7>)
3412 -->
3413 (remove <h3>)
3414 )
3415
3416 (p p538
3417 (finally-routed <nn>)
3418 { <i1> (included <nn>) }
3419 -->
3420 (remove <i1>)
3421 )
3422
3423 (p p539
3424 (finally-routed <nn>)
3425 { <ff1> (ff ^net-name <nn>) }
3426 -->
3427 (remove <ff1>)
3428 )
3429
3430 (p p540
3431 (finally-routed <nn>)
3432 { <c1> (constraint ^constraint-type << vertical horizontal >> ^net-name-1 <nn>) }
3433 -->
3434 (remove <c1>)
3435 )
3436
3437 (p p541
3438 (finally-routed <nn>)
3439 { <c1> (constraint ^constraint-type << vertical horizontal >> ^net-name-2 <nn>) }
3440 -->
3441 (remove <c1>)
3442 )
3443
3444 (p p542
3445 (finally-routed <nn>)
3446 { <c> (<< horizontal-cycle vertical-cycle >> <nn>) }
3447 -->
3448 (remove <c>)
3449 )
3450
3451 (p p543
3452 (finally-routed <nn>)
3453 { <c1> (constraint ^constraint-type << vertical horizontal >> ^net-name-2 <nn>) }
3454 -->
3455 (remove <c1>)
3456 )
3457
3458 (p p544
3459 (finally-routed <nn>)
3460 (vertical ^status nil ^net-name { <nn> <> nil } ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <garb1> ^commo <garb2>)
3461 { <h1> (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { <hmax> > <hmin> >= <vcom> } ^com { <hcom> >= <vmin> <= <vmax> } ^layer <lay> ^compo <hcpo> ^commo <hcmo> ^min-net <nn1>) }
3462 -->
3463 (make horizontal ^min <hmin> ^max (compute <vcom> - 1) ^com <hcom> ^compo <hcpo> ^commo <hcmo> ^layer <lay> ^min-net <nn1>)
3464 (modify <h1> ^min (compute <vcom> + 1) ^min-net nil)
3465 )
3466
3467 (p p545
3468 (finally-routed <nn>)
3469 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <garb1> ^commo <garb2>)
3470 { <v1> (vertical ^net-name nil ^min { <vmin> <= <hcom> } ^max { <vmax> > <vmin> >= <hcom> } ^com { <vcom> >= <hmin> <= <hmax> } ^layer <lay> ^compo <vcpo> ^commo <vcmo> ^min-net <nn1>) }
3471 -->
3472 (make vertical ^min <vmin> ^max (compute <hcom> - 1) ^com <vcom> ^compo <vcpo> ^commo <vcmo> ^layer <lay> ^min-net <nn1>)
3473 (modify <v1> ^min (compute <hcom> + 1) ^min-net nil)
3474 )
3475
3476 (p p546
3477 (finally-routed <nn>)
3478 (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <rmax> ^com <com> ^layer <lay> ^compo <garb4> ^commo <garb3>)
3479 { <v1> (vertical ^net-name nil ^min <rmax> ^max { <garb2> > <rmax> } ^com <com> ^layer <lay> ^compo <garb6> ^commo <garb5>) }
3480 -->
3481 (modify <v1> ^min (compute <rmax> + 1) ^min-net nil)
3482 )
3483
3484 (p p547
3485 (finally-routed <nn>)
3486 (vertical ^status nil ^net-name { <nn> <> nil } ^min <rmin> ^max <garb1> ^com <com> ^layer <lay> ^compo <garb3> ^commo <garb4>)
3487 { <v1> (vertical ^net-name nil ^min <garb2> ^max { <rmin> > <garb2> } ^com <com> ^layer <lay> ^compo <garb5> ^commo <garb6>) }
3488 -->
3489 (modify <v1> ^max (compute <rmin> - 1) ^max-net nil)
3490 )
3491
3492 (p p548
3493 (finally-routed <nn>)
3494 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max <rmax> ^com <com> ^layer <lay> ^compo <garb3> ^commo <garb4>)
3495 { <h1> (horizontal ^net-name nil ^min <rmax> ^max { <garb2> > <rmax> } ^com <com> ^layer <lay> ^compo <garb5> ^commo <garb6>) }
3496 -->
3497 (modify <h1> ^min (compute <rmax> + 1) ^min-net nil)
3498 )
3499
3500 (p p549
3501 (finally-routed <nn>)
3502 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <rmin> ^max <garb1> ^com <com> ^layer <lay> ^compo <garb3> ^commo <garb4>)
3503 { <h1> (horizontal ^net-name nil ^min <garb2> ^max { <rmin> > <garb2> } ^com <com> ^layer <lay> ^compo <garb5> ^commo <garb6>) }
3504 -->
3505 (modify <h1> ^max (compute <rmin> - 1) ^max-net nil)
3506 )
3507
3508 (p p550
3509 { <f1> (finally-routed <nn>) }
3510 -->
3511 (remove <f1>)
3512 (make context ^present remove-routed-net-segments <nn>)
3513 )
3514
3515 (p p551
3516 (context ^present remove-routed-net-segments <nn>)
3517 { <h1> (horizontal ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <max> ^com <c> ^layer <lay> ^compo <garb1> ^commo <garb2>) }
3518 -->
3519 (modify <h1> ^status routed)
3520 (write (crlf) |hor | <nn> <min> <max> <c> <lay>)
3521 )
3522
3523 (p p552
3524 (context ^present remove-routed-net-segments <nn>)
3525 { <v1> (vertical ^status nil ^net-name { <nn> <> nil } ^min <min> ^max <max> ^com <c> ^layer <lay> ^compo <garb1> ^commo <garb2>) }
3526 -->
3527 (modify <v1> ^status routed)
3528 (write (crlf) |ver | <nn> <min> <max> <c> <lay>)
3529 )
3530
3531 (p p553
3532 (context ^present remove-routed-net-segments <nn>)
3533 { <h> (horizontal-s ^net-name <nn>) }
3534 -->
3535 (remove <h>)
3536 )
3537
3538 (p p554
3539 (context ^present remove-routed-net-segments <nn>)
3540 { <v> (vertical-s ^net-name <nn>) }
3541 -->
3542 (remove <v>)
3543 )
3544
3545 (p p555
3546 (context ^present remove-routed-net-segments <nn>)
3547 { <p> (pin ^net-name <nn>) }
3548 -->
3549 (remove <p>)
3550 )
3551
3552 (p p556
3553 (context ^present remove-routed-net-segments <nn>)
3554 { <n> (net ^net-name <nn>) }
3555 -->
3556 (remove <n>)
3557 )
3558
3559 (p p557
3560 { <c1> (context ^present remove-routed-net-segments) }
3561 -->
3562 (remove <c1>)
3563 (make context ^present check-for-routed-net)
3564 )
3565
3566 (p p32
3567 (context ^present propagate-constraint)
3568 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-top-pins 1 ^no-of-bottom-pins 1)
3569 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>)
3570 { <ff> (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>) }
3571 { <v> (vertical ^net-name nil ^min <gy2> ^max > <gy2> ^com <gx2> ^layer <lay> ^commo <cmo> ^compo <gx1> ^min-net <garb2>) }
3572 - (horizontal ^net-name nil ^min <= <gx2> ^max >= <gx1> ^com <gy2> ^layer <lay>)
3573 (congestion ^direction row ^coordinate <gy3> ^como <gy2>)
3574 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy3> ^max >= <gy3> ^com <gx2> ^layer <lay>)
3575 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx2> ^max >= <gx2> ^com <gy3> ^layer <lay>)
3576 -->
3577 (modify <v> ^min <gy3> ^min-net <nn>)
3578 (make vertical ^net-name <nn> ^pin-name <pn2> ^min <gy2> ^max <gy3> ^com <gx2> ^compo <gx1> ^commo <cmo> ^layer <lay>)
3579 (modify <ff> ^grid-y <gy3> ^can-chng-layer nil ^came-from south)
3580 )
3581
3582 (p p33
3583 (context ^present propagate-constraint)
3584 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-top-pins 1 ^no-of-bottom-pins 1)
3585 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>) }
3586 (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>)
3587 { <v> (vertical ^net-name nil ^min < <gy1> ^max <gy1> ^com <gx1> ^layer <lay> ^commo <gx2> ^compo <cpo> ^min-net <garb2>) }
3588 - (horizontal ^net-name nil ^min <= <gx2> ^max >= <gx1> ^com <gy1> ^layer <lay>)
3589 (congestion ^direction row ^coordinate <gy1> ^como <gy3>)
3590 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy3> ^max >= <gy3> ^com <gx1> ^layer <lay>)
3591 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx1> ^max >= <gx1> ^com <gy3> ^layer <lay>)
3592 -->
3593 (modify <v> ^max <gy3> ^max-net <nn>)
3594 (make vertical ^net-name <nn> ^pin-name <pn1> ^min <gy3> ^max <gy1> ^com <gx1> ^compo <cpo> ^commo <gx2> ^layer <lay>)
3595 (modify <ff> ^grid-y <gy3> ^can-chng-layer nil ^came-from north)
3596 )
3597
3598 (p p34
3599 (context ^present propagate-constraint)
3600 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-top-pins 1 ^no-of-bottom-pins 1)
3601 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>)
3602 { <ff> (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>) }
3603 { <v> (vertical ^net-name nil ^min <gy2> ^max > <gy2> ^com <gx2> ^layer <lay> ^commo <gx1> ^compo <cpo> ^min-net <garb2>) }
3604 - (horizontal ^net-name nil ^min <= <gx1> ^max >= <gx2> ^com <gy2> ^layer <lay>)
3605 (congestion ^direction row ^coordinate <gy3> ^como <gy2>)
3606 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy3> ^max >= <gy3> ^com <gx2> ^layer <lay>)
3607 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx2> ^max >= <gx2> ^com <gy3> ^layer <lay>)
3608 -->
3609 (modify <v> ^min <gy3> ^min-net <nn>)
3610 (make vertical ^net-name <nn> ^pin-name <pn2> ^min <gy2> ^max <gy3> ^com <gx2> ^compo <cpo> ^commo <gx1> ^layer <lay>)
3611 (modify <ff> ^grid-y <gy3> ^can-chng-layer nil ^came-from south)
3612 )
3613
3614 (p p35
3615 (context ^present propagate-constraint)
3616 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-top-pins 1 ^no-of-bottom-pins 1)
3617 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>) }
3618 (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>)
3619 { <v> (vertical ^net-name nil ^min < <gy1> ^max <gy1> ^com <gx1> ^layer <lay> ^commo <cmo> ^compo <gx2> ^min-net <garb2>) }
3620 - (horizontal ^net-name nil ^min <= <gx1> ^max >= <gx2> ^com <gy1> ^layer <lay>)
3621 (congestion ^direction row ^coordinate <gy1> ^como <gy3>)
3622 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy3> ^max >= <gy3> ^com <gx1> ^layer <lay>)
3623 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx1> ^max >= <gx1> ^com <gy3> ^layer <lay>)
3624 -->
3625 (modify <v> ^max <gy3> ^max-net <nn>)
3626 (make vertical ^net-name <nn> ^pin-name <pn1> ^min <gy3> ^max <gy1> ^com <gx1> ^compo <gx2> ^commo <cmo> ^layer <lay>)
3627 (modify <ff> ^grid-y <gy3> ^can-chng-layer nil ^came-from north)
3628 )
3629
3630 (p p36
3631 (context ^present propagate-constraint)
3632 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-right-pins 1 ^no-of-left-pins 1)
3633 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>)
3634 { <ff> (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>) }
3635 { <v> (horizontal ^net-name nil ^min <gx2> ^max > <gx2> ^com <gy2> ^layer <lay> ^commo <cmo> ^compo <gy1> ^min-net <garb2>) }
3636 - (vertical ^net-name nil ^min <= <gy2> ^max >= <gy1> ^com <gx2> ^layer <lay>)
3637 (congestion ^direction col ^coordinate <gx3> ^como <gx2>)
3638 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx3> ^max >= <gx3> ^com <gy2> ^layer <lay>)
3639 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy2> ^max >= <gy2> ^com <gx3> ^layer <lay>)
3640 -->
3641 (modify <v> ^min <gx3> ^min-net <nn>)
3642 (make horizontal ^net-name <nn> ^pin-name <pn2> ^min <gx2> ^max <gx3> ^com <gy2> ^compo <gy1> ^commo <cmo> ^layer <lay>)
3643 (modify <ff> ^grid-x <gx3> ^can-chng-layer nil ^came-from west)
3644 )
3645
3646 (p p37
3647 (context ^present propagate-constraint)
3648 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-right-pins 1 ^no-of-left-pins 1)
3649 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>) }
3650 (ff ^net-name <nn> ^grid-x { <gx2> < <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>)
3651 { <v> (horizontal ^net-name nil ^min < <gx1> ^max <gx1> ^com <gy1> ^layer <lay> ^commo <gy2> ^compo <cpo> ^min-net <garb2>) }
3652 - (vertical ^net-name nil ^min <= <gy2> ^max >= <gy1> ^com <gx1> ^layer <lay>)
3653 (congestion ^direction col ^coordinate <gx1> ^como <gx3>)
3654 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx3> ^max >= <gx3> ^com <gy1> ^layer <lay>)
3655 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy1> ^max >= <gy1> ^com <gx3> ^layer <lay>)
3656 -->
3657 (modify <v> ^max <gx3> ^max-net <nn>)
3658 (make horizontal ^net-name <nn> ^pin-name <pn1> ^min <gx3> ^max <gx1> ^com <gy1> ^compo <cpo> ^commo <gy2> ^layer <lay>)
3659 (modify <ff> ^grid-x <gx3> ^can-chng-layer nil ^came-from east)
3660 )
3661
3662 (p p38
3663 (context ^present propagate-constraint)
3664 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-right-pins 1 ^no-of-left-pins 1)
3665 (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>)
3666 { <ff> (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>) }
3667 { <v> (horizontal ^net-name nil ^min < <gx2> ^max <gx2> ^com <gy2> ^layer <lay> ^commo <cmo> ^compo <gx1> ^min-net <garb2>) }
3668 - (vertical ^net-name nil ^min <= <gy2> ^max >= <gy1> ^com <gx2> ^layer <lay>)
3669 (congestion ^direction col ^coordinate <gx2> ^como <gx3>)
3670 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx3> ^max >= <gx3> ^com <gy2> ^layer <lay>)
3671 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy2> ^max >= <gy2> ^com <gx3> ^layer <lay>)
3672 -->
3673 (modify <v> ^max <gx3> ^max-net <nn>)
3674 (make horizontal ^net-name <nn> ^pin-name <pn2> ^min <gx3> ^max <gx2> ^com <gy2> ^compo <gy1> ^commo <cmo> ^layer <lay>)
3675 (modify <ff> ^grid-x <gx3> ^can-chng-layer nil ^came-from east)
3676 )
3677
3678 (p p39
3679 (context ^present propagate-constraint)
3680 (net ^net-name <nn> ^net-no-of-pins 2 ^net-is-routed <> yes ^no-of-right-pins 1 ^no-of-left-pins 1)
3681 { <ff> (ff ^net-name <nn> ^grid-x <gx1> ^grid-y <gy1> ^grid-layer <lay> ^pin-name <pn1>) }
3682 (ff ^net-name <nn> ^grid-x { <gx2> > <gx1> } ^grid-y { <gy2> < <gy1> } ^grid-layer <lay> ^pin-name <pn2>)
3683 { <v> (horizontal ^net-name nil ^min <gx1> ^max > <gx1> ^com <gy1> ^layer <lay> ^commo <gy2> ^compo <cpo> ^min-net <garb2>) }
3684 - (vertical ^net-name nil ^min <= <gy2> ^max >= <gy1> ^com <gx1> ^layer <lay>)
3685 (congestion ^direction col ^coordinate <gx3> ^como <gx1>)
3686 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx3> ^max >= <gx3> ^com <gy1> ^layer <lay>)
3687 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy1> ^max >= <gy1> ^com <gx3> ^layer <lay>)
3688 -->
3689 (modify <v> ^min <gx3> ^min-net <nn>)
3690 (make horizontal ^net-name <nn> ^pin-name <pn1> ^min <gx1> ^max <gx3> ^com <gy1> ^compo <cpo> ^commo <gy2> ^layer <lay>)
3691 (modify <ff> ^grid-x <gx3> ^can-chng-layer nil ^came-from west)
3692 )
3693
3694 (p p40
3695 (context ^present propagate-constraint)
3696 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3697 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3698 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3699 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cpo> ^layer <lay>)
3700 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cmo> ^layer <lay>)
3701 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3702 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3703 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
3704 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
3705 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay>) }
3706 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
3707 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
3708 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cmo> ^layer <lay>)
3709 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cpo> ^layer <lay>)
3710 -->
3711 (modify <h1> ^max <hmax2> ^max-net nil)
3712 )
3713
3714 (p p41
3715 (context ^present propagate-constraint)
3716 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3717 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3718 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
3719 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cpo> ^layer <lay>)
3720 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cmo> ^layer <lay>)
3721 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3722 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3723 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
3724 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
3725 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay>) }
3726 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
3727 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
3728 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cmo> ^layer <lay>)
3729 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cpo> ^layer <lay>)
3730 -->
3731 (modify <h1> ^min <hmax2> ^min-net nil)
3732 )
3733
3734 (p p42
3735 (context ^present propagate-constraint)
3736 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3737 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3738 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3739 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cmo> ^layer <lay>)
3740 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3741 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3742 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
3743 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
3744 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay>) }
3745 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
3746 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
3747 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cmo> ^layer <lay>)
3748 (last-row <gy>)
3749 -->
3750 (modify <h1> ^max <hmax2> ^max-net nil)
3751 )
3752
3753 (p p43
3754 (context ^present propagate-constraint)
3755 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3756 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3757 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
3758 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cmo> ^layer <lay>)
3759 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3760 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3761 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
3762 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
3763 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay>) }
3764 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
3765 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
3766 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cmo> ^layer <lay>)
3767 (last-row <gy>)
3768 -->
3769 (modify <h1> ^min <hmax2> ^min-net nil)
3770 )
3771
3772 (p p44
3773 (context ^present propagate-constraint)
3774 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3775 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3776 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3777 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cpo> ^layer <lay>)
3778 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3779 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3780 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
3781 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
3782 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay> ^commo 0) }
3783 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
3784 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
3785 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cpo> ^layer <lay>)
3786 -->
3787 (modify <h1> ^max <hmax2> ^max-net nil)
3788 )
3789
3790 (p p45
3791 (context ^present propagate-constraint)
3792 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3793 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3794 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
3795 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cpo> ^layer <lay>)
3796 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3797 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3798 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
3799 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
3800 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay> ^commo 0) }
3801 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
3802 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
3803 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cpo> ^layer <lay>)
3804 -->
3805 (modify <h1> ^min <hmax2> ^min-net nil)
3806 )
3807
3808 (p p46
3809 (context ^present propagate-constraint)
3810 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3811 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3812 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3813 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cpo> ^layer <lay>)
3814 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cmo> ^layer <lay>)
3815 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3816 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3817 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
3818 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
3819 { <h1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay>) }
3820 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
3821 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
3822 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cmo> ^layer <lay>)
3823 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cpo> ^layer <lay>)
3824 -->
3825 (modify <h1> ^max <vmax2> ^max-net nil)
3826 )
3827
3828 (p p47
3829 (context ^present propagate-constraint)
3830 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3831 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3832 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
3833 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cpo> ^layer <lay>)
3834 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cmo> ^layer <lay>)
3835 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3836 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3837 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
3838 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
3839 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay>) }
3840 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
3841 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
3842 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cmo> ^layer <lay>)
3843 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cpo> ^layer <lay>)
3844 -->
3845 (modify <v1> ^min <vmax2> ^min-net nil)
3846 )
3847
3848 (p p48
3849 (context ^present propagate-constraint)
3850 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3851 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3852 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3853 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cmo> ^layer <lay>)
3854 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3855 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3856 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
3857 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
3858 { <v1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay>) }
3859 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
3860 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
3861 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cmo> ^layer <lay>)
3862 (last-col <gx>)
3863 -->
3864 (modify <v1> ^max <vmax2> ^max-net nil)
3865 )
3866
3867 (p p49
3868 (context ^present propagate-constraint)
3869 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3870 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3871 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
3872 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cmo> ^layer <lay>)
3873 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3874 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3875 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
3876 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
3877 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay>) }
3878 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
3879 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
3880 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cmo> ^layer <lay>)
3881 (last-col <gx>)
3882 -->
3883 (modify <v1> ^min <vmax2> ^min-net nil)
3884 )
3885
3886 (p p50
3887 (context ^present propagate-constraint)
3888 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3889 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3890 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
3891 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cpo> ^layer <lay>)
3892 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3893 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
3894 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
3895 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
3896 { <v1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay> ^commo 0) }
3897 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
3898 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
3899 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cpo> ^layer <lay>)
3900 -->
3901 (modify <v1> ^max <vmax2> ^max-net nil)
3902 )
3903
3904 (p p51
3905 (context ^present propagate-constraint)
3906 (ff ^can-chng-layer <> no ^net-name <nn1> ^grid-x <gx> ^grid-y <gy> ^grid-layer <ttgarb>)
3907 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3908 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
3909 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cpo> ^layer <lay>)
3910 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3911 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
3912 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
3913 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
3914 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay> ^commo 0) }
3915 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
3916 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
3917 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cpo> ^layer <lay>)
3918 -->
3919 (modify <v1> ^min <vmax2> ^min-net nil)
3920 )
3921
3922 (p p52
3923 (context ^present propagate-constraint)
3924 (horizontal ^net-name { <nn1> <> nil } ^min <gx> ^max <ppgarb> ^com <gy>)
3925 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3926 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3927 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cpo> ^layer <lay>)
3928 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cmo> ^layer <lay>)
3929 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3930 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3931 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
3932 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
3933 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay>) }
3934 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
3935 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
3936 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cmo> ^layer <lay>)
3937 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cpo> ^layer <lay>)
3938 -->
3939 (modify <h1> ^max <hmax2> ^max-net nil)
3940 )
3941
3942 (p p53
3943 (context ^present propagate-constraint)
3944 (horizontal ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gx> ^com <gy>)
3945 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3946 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
3947 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cpo> ^layer <lay>)
3948 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cmo> ^layer <lay>)
3949 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3950 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3951 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
3952 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
3953 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay>) }
3954 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
3955 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
3956 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cmo> ^layer <lay>)
3957 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cpo> ^layer <lay>)
3958 -->
3959 (modify <h1> ^min <hmax2> ^min-net nil)
3960 )
3961
3962 (p p54
3963 (context ^present propagate-constraint)
3964 (horizontal ^net-name { <nn1> <> nil } ^min <gx> ^max <ppgarb> ^com <gy>)
3965 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3966 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
3967 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cmo> ^layer <lay>)
3968 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3969 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
3970 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
3971 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
3972 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay>) }
3973 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
3974 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
3975 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cmo> ^layer <lay>)
3976 (last-row <gy>)
3977 -->
3978 (modify <h1> ^max <hmax2> ^max-net nil)
3979 )
3980
3981 (p p55
3982 (context ^present propagate-constraint)
3983 (horizontal ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gx> ^com <gy>)
3984 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
3985 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
3986 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cmo> ^layer <lay>)
3987 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3988 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
3989 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
3990 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
3991 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay>) }
3992 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
3993 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
3994 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cmo> ^layer <lay>)
3995 (last-row <gy>)
3996 -->
3997 (modify <h1> ^min <hmax2> ^min-net nil)
3998 )
3999
4000 (p p56
4001 (context ^present propagate-constraint)
4002 (horizontal ^net-name { <nn1> <> nil } ^min <gx> ^max <ppgarb> ^com <gy>)
4003 (horizontal ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <hmax1> < <gx> } ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4004 - (horizontal ^net-name nil ^min < <gx> ^max >= <gx> ^com <gy> ^layer <> <lay>)
4005 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <gx> ^max >= <hmax1> ^com <cpo> ^layer <lay>)
4006 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
4007 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay>)
4008 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^min-net nil)
4009 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <hmax1> < <gx> } ^layer <> <lay> ^max-net nil)
4010 { <h1> (horizontal ^net-name nil ^min { < <gx> >= <hmax1> } ^max <gx> ^com <gy> ^layer <lay> ^commo 0) }
4011 (vertical ^com <hmin2> ^compo <garb10> ^commo <hmax1>)
4012 (vertical ^com <hmax2> ^compo <gx> ^commo <garb11>)
4013 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin2> ^max >= <hmax2> ^com <cpo> ^layer <lay>)
4014 -->
4015 (modify <h1> ^max <hmax2> ^max-net nil)
4016 )
4017
4018 (p p57
4019 (context ^present propagate-constraint)
4020 (horizontal ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gx> ^com <gy>)
4021 (horizontal ^net-name { <> nil <> <nn1> } ^min { <hmin1> > <gx> } ^max <garb1> ^com <gy> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4022 - (horizontal ^net-name nil ^min <= <gx> ^max > <gx> ^com <gy> ^layer <> <lay>)
4023 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmin1> ^max >= <gx> ^com <cpo> ^layer <lay>)
4024 - (vertical ^status nil ^net-name { <nn1> <> nil } ^min <= <gy> ^max >= <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
4025 - (vertical ^net-name nil ^min < <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay>)
4026 - (vertical ^net-name nil ^min <gy> ^max > <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^min-net nil)
4027 - (vertical ^net-name nil ^min < <gy> ^max <gy> ^com { > <gx> < <hmin1> } ^layer <> <lay> ^max-net nil)
4028 { <h1> (horizontal ^net-name nil ^min <gx> ^max { > <gx> <= <hmin1> } ^com <gy> ^layer <lay> ^commo 0) }
4029 (vertical ^com <hmin2> ^compo <hmin1> ^commo <garb10>)
4030 (vertical ^com <hmax2> ^compo <garb11> ^commo <gx>)
4031 (horizontal ^net-name { <> nil <> <nn1> } ^min <= <hmax2> ^max >= <hmin2> ^com <cpo> ^layer <lay>)
4032 -->
4033 (modify <h1> ^min <hmax2> ^min-net nil)
4034 )
4035
4036 (p p58
4037 (context ^present propagate-constraint)
4038 (vertical ^net-name { <nn1> <> nil } ^min <gy> ^max <ppgarb> ^com <gx>)
4039 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4040 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
4041 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cpo> ^layer <lay>)
4042 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cmo> ^layer <lay>)
4043 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4044 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4045 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
4046 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
4047 { <h1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay>) }
4048 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
4049 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
4050 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cmo> ^layer <lay>)
4051 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cpo> ^layer <lay>)
4052 -->
4053 (modify <h1> ^max <vmax2> ^max-net nil)
4054 )
4055
4056 (p p59
4057 (context ^present propagate-constraint)
4058 (vertical ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gy> ^com <gx>)
4059 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4060 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
4061 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cpo> ^layer <lay>)
4062 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cmo> ^layer <lay>)
4063 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4064 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4065 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
4066 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
4067 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay>) }
4068 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
4069 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
4070 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cmo> ^layer <lay>)
4071 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cpo> ^layer <lay>)
4072 -->
4073 (modify <v1> ^min <vmax2> ^min-net nil)
4074 )
4075
4076 (p p60
4077 (context ^present propagate-constraint)
4078 (vertical ^net-name { <nn1> <> nil } ^min <gy> ^max <ppgarb> ^com <gx>)
4079 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4080 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
4081 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cmo> ^layer <lay>)
4082 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4083 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4084 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
4085 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
4086 { <v1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay>) }
4087 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
4088 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
4089 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cmo> ^layer <lay>)
4090 (last-col <gx>)
4091 -->
4092 (modify <v1> ^max <vmax2> ^max-net nil)
4093 )
4094
4095 (p p61
4096 (context ^present propagate-constraint)
4097 (vertical ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gy> ^com <gx>)
4098 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4099 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
4100 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cmo> ^layer <lay>)
4101 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4102 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4103 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
4104 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
4105 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay>) }
4106 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
4107 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
4108 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cmo> ^layer <lay>)
4109 (last-col <gx>)
4110 -->
4111 (modify <v1> ^min <vmax2> ^min-net nil)
4112 )
4113
4114 (p p62
4115 (context ^present propagate-constraint)
4116 (vertical ^net-name { <nn1> <> nil } ^min <gy> ^max <ppgarb> ^com <gx>)
4117 (vertical ^net-name { <> nil <> <nn1> } ^min <garb1> ^max { <vmax1> < <gy> } ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4118 - (vertical ^net-name nil ^min < <gy> ^max >= <gy> ^com <gx> ^layer <> <lay>)
4119 (vertical ^net-name { <> nil <> <nn1> } ^min <= <gy> ^max >= <vmax1> ^com <cpo> ^layer <lay>)
4120 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4121 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay>)
4122 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^min-net nil)
4123 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <vmax1> < <gy> } ^layer <> <lay> ^max-net nil)
4124 { <v1> (vertical ^net-name nil ^min { < <gy> >= <vmax1> } ^max <gy> ^com <gx> ^layer <lay> ^commo 0) }
4125 (horizontal ^com <vmin2> ^compo <garb10> ^commo <vmax1>)
4126 (horizontal ^com <vmax2> ^compo <gy> ^commo <garb11>)
4127 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin2> ^max >= <vmax2> ^com <cpo> ^layer <lay>)
4128 -->
4129 (modify <v1> ^max <vmax2> ^max-net nil)
4130 )
4131
4132 (p p63
4133 (context ^present propagate-constraint)
4134 (vertical ^net-name { <nn1> <> nil } ^min <ppgarb> ^max <gy> ^com <gx>)
4135 (vertical ^net-name { <> nil <> <nn1> } ^min { <vmin1> > <gy> } ^max <garb1> ^com <gx> ^layer <lay> ^compo <cpo> ^commo <cmo>)
4136 - (vertical ^net-name nil ^min <= <gy> ^max > <gy> ^com <gx> ^layer <> <lay>)
4137 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmin1> ^max >= <gy> ^com <cpo> ^layer <lay>)
4138 - (horizontal ^status nil ^net-name { <nn1> <> nil } ^min <= <gx> ^max >= <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4139 - (horizontal ^net-name nil ^min < <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay>)
4140 - (horizontal ^net-name nil ^min <gx> ^max > <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^min-net nil)
4141 - (horizontal ^net-name nil ^min < <gx> ^max <gx> ^com { > <gy> < <vmin1> } ^layer <> <lay> ^max-net nil)
4142 { <v1> (vertical ^net-name nil ^min <gy> ^max { > <gy> <= <vmin1> } ^com <gx> ^layer <lay> ^commo 0) }
4143 (horizontal ^com <vmin2> ^compo <vmin1> ^commo <garb10>)
4144 (horizontal ^com <vmax2> ^compo <garb11> ^commo <gy>)
4145 (vertical ^net-name { <> nil <> <nn1> } ^min <= <vmax2> ^max >= <vmin2> ^com <cpo> ^layer <lay>)
4146 -->
4147 (modify <v1> ^min <vmax2> ^min-net nil)
4148 )
4149
4150 (p p64
4151 (context ^present propagate-constraint)
4152 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4153 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max { <hmax> > <vcom> } ^com <vmax> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4154 (vertical ^net-name { <nn1> <> nil } ^min < <vmax> ^max >= <vmax> ^com <vcmo> ^layer <lay> ^compo <vcom> ^commo <garb1>)
4155 (vertical ^net-name { <nn2> <> <nn1> <> nil } ^min < <vmax> ^max >= <vmax> ^com <vcpo> ^layer <lay> ^compo <garb2> ^commo <vcom>)
4156 (horizontal ^net-name nil ^min < <vcom> ^max > <vcom> ^com <hcmo> ^layer <lay>)
4157 - (vertical ^status nil ^min <vmax> ^max > <vmax> ^com <vcom>)
4158 - (horizontal ^status nil ^min { <temp> <= <vcom> } ^max { > <temp> >= <vcom> } ^com <vmax> ^layer <> <lay>)
4159 -->
4160 (modify <v> ^max <hcmo> ^max-net nil)
4161 (make (substr <h> 1 inf) ^max <vcmo> ^max-net <nn1>)
4162 (modify <h> ^min <vcpo> ^min-net <nn2>)
4163 )
4164
4165 (p p65
4166 (context ^present propagate-constraint)
4167 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4168 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max { <hmax> > <vcom> } ^com <vmin> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4169 (vertical ^net-name { <nn1> <> nil } ^min <= <vmin> ^max > <vmin> ^com <vcmo> ^layer <lay> ^compo <vcom> ^commo <garb1>)
4170 (vertical ^net-name { <nn2> <> <nn1> <> nil } ^min <= <vmin> ^max > <vmin> ^com <vcpo> ^layer <lay> ^compo <garb2> ^commo <vcom>)
4171 (horizontal ^net-name nil ^min < <vcom> ^max > <vcom> ^com <hcpo> ^layer <lay>)
4172 - (vertical ^status nil ^min < <vmin> ^max <vmin> ^com <vcom>)
4173 - (horizontal ^status nil ^min { <temp> <= <vcom> } ^max { > <temp> >= <vcom> } ^com <vmin> ^layer <> <lay>)
4174 -->
4175 (modify <v> ^min <hcpo> ^min-net nil)
4176 (make (substr <h> 1 inf) ^max <vcmo> ^max-net <nn1>)
4177 (modify <h> ^min <vcpo> ^min-net <nn2>)
4178 )
4179
4180 (p p66
4181 (context ^present propagate-constraint)
4182 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4183 { <v> (vertical ^net-name nil ^min { <vmin> < <hcom> } ^max { <vmax> > <hcom> } ^com <hmax> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4184 (horizontal ^net-name { <nn1> <> nil } ^min < <hmax> ^max >= <hmax> ^com <hcmo> ^layer <lay> ^compo <hcom> ^commo <garb1>)
4185 (horizontal ^net-name { <nn2> <> <nn1> <> nil } ^min < <hmax> ^max >= <hmax> ^com <hcpo> ^layer <lay> ^compo <garb2> ^commo <hcom>)
4186 (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com <vcmo> ^layer <lay>)
4187 - (horizontal ^status nil ^min <hmax> ^max > <hmax> ^com <hcom>)
4188 - (vertical ^status nil ^min { <temp> <= <hcom> } ^max { > <temp> >= <hcom> } ^com <hmax> ^layer <> <lay>)
4189 -->
4190 (modify <h> ^max <vcmo> ^max-net nil)
4191 (make (substr <v> 1 inf) ^max <hcmo> ^max-net <nn1>)
4192 (modify <v> ^min <hcpo> ^min-net <nn2>)
4193 )
4194
4195 (p p67
4196 (context ^present propagate-constraint)
4197 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4198 { <v> (vertical ^net-name nil ^min { <vmin> < <hcom> } ^max { <vmax> > <hcom> } ^com <hmin> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4199 (horizontal ^net-name { <nn1> <> nil } ^min <= <hmin> ^max > <hmin> ^com <hcmo> ^layer <lay> ^compo <hcom> ^commo <garb1>)
4200 (horizontal ^net-name { <nn2> <> <nn1> <> nil } ^min <= <hmin> ^max > <hmin> ^com <hcpo> ^layer <lay> ^compo <garb2> ^commo <hcom>)
4201 (vertical ^net-name nil ^min < <hcom> ^max > <hcom> ^com <vcpo> ^layer <lay>)
4202 - (horizontal ^status nil ^min < <hmin> ^max <hmin> ^com <hcom>)
4203 - (vertical ^status nil ^min { <temp> <= <hcom> } ^max { > <temp> >= <hcom> } ^com <hmin> ^layer <> <lay>)
4204 -->
4205 (modify <h> ^min <vcpo> ^min-net nil)
4206 (make (substr <v> 1 inf) ^max <hcmo> ^max-net <nn1>)
4207 (modify <v> ^min <hcpo> ^min-net <nn2>)
4208 )
4209
4210 (p p68
4211 (context ^present propagate-constraint)
4212 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4213 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max <vcom> ^com <vmax> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4214 (vertical ^net-name { <nn1> <> nil } ^min < <vmax> ^max >= <vmax> ^com <vcmo> ^layer <lay> ^compo <vcom> ^commo <garb1>)
4215 (horizontal ^net-name nil ^min < <vcom> ^max >= <vcom> ^com <hcmo> ^layer <lay>)
4216 - (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <vcom> ^layer <> <lay>)
4217 - (horizontal ^net-name nil ^min <vcom> ^max > <vcom> ^com <vmax> ^layer <> <lay>)
4218 -->
4219 (modify <h> ^max <vcmo> ^max-net <nn1>)
4220 )
4221
4222 (p p69
4223 (context ^present propagate-constraint)
4224 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4225 { <h> (horizontal ^net-name nil ^min <vcom> ^max { <hmax> > <vcom> } ^com <vmax> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4226 (vertical ^net-name { <nn1> <> nil } ^min < <vmax> ^max >= <vmax> ^com <vcpo> ^layer <lay> ^compo <garb1> ^commo <vcom>)
4227 (horizontal ^net-name nil ^min <= <vcom> ^max > <vcom> ^com <hcmo> ^layer <lay>)
4228 - (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <vcom> ^layer <> <lay>)
4229 - (horizontal ^net-name nil ^min < <vcom> ^max <vcom> ^com <vmax> ^layer <> <lay>)
4230 -->
4231 (modify <h> ^min <vcpo> ^min-net <nn1>)
4232 )
4233
4234 (p p70
4235 (context ^present propagate-constraint)
4236 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4237 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max <vcom> ^com <vmin> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4238 (vertical ^net-name { <nn1> <> nil } ^min <= <vmin> ^max > <vmin> ^com <vcmo> ^layer <lay> ^compo <vcom> ^commo <garb1>)
4239 (horizontal ^net-name nil ^min < <vcom> ^max >= <vcom> ^com <hcpo> ^layer <lay>)
4240 - (vertical ^net-name nil ^min < <vmin> ^max <vmin> ^com <vcom> ^layer <> <lay>)
4241 - (horizontal ^net-name nil ^min <vcom> ^max > <vcom> ^com <vmin> ^layer <> <lay>)
4242 -->
4243 (modify <h> ^max <vcmo> ^max-net <nn1>)
4244 )
4245
4246 (p p71
4247 (context ^present propagate-constraint)
4248 { <v> (vertical ^net-name nil ^min <vmin> ^max <vmax> ^com <vcom> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4249 { <h> (horizontal ^net-name nil ^min <vcom> ^max { <hmax> > <vcom> } ^com <vmin> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4250 (vertical ^net-name { <nn1> <> nil } ^min <= <vmin> ^max > <vmin> ^com <vcpo> ^layer <lay> ^compo <garb1> ^commo <vcom>)
4251 (horizontal ^net-name nil ^min <= <vcom> ^max > <vcom> ^com <hcpo> ^layer <lay>)
4252 - (vertical ^net-name nil ^min < <vmin> ^max <vmin> ^com <vcom> ^layer <> <lay>)
4253 - (horizontal ^net-name nil ^min < <vcom> ^max <vcom> ^com <vmin> ^layer <> <lay>)
4254 -->
4255 (modify <h> ^min <vcpo> ^min-net <nn1>)
4256 )
4257
4258 (p p72
4259 (context ^present propagate-constraint)
4260 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4261 { <v> (vertical ^net-name nil ^min <hcom> ^max { <vmax> > <hcom> } ^com <hmax> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4262 (horizontal ^net-name { <nn1> <> nil } ^min < <hmax> ^max >= <hmax> ^com <hcpo> ^layer <lay> ^compo <garb1> ^commo <hcom>)
4263 (vertical ^net-name nil ^min <= <hcom> ^max > <hcom> ^com <vcmo> ^layer <lay>)
4264 - (horizontal ^net-name nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <> <lay>)
4265 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com <hmax> ^layer <> <lay>)
4266 -->
4267 (modify <v> ^min <hcpo> ^min-net <nn1>)
4268 )
4269
4270 (p p73
4271 (context ^present propagate-constraint)
4272 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4273 { <v> (vertical ^net-name nil ^min { <vmin> < <hcom> } ^max <hcom> ^com <hmax> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4274 (horizontal ^net-name { <nn1> <> nil } ^min < <hmax> ^max >= <hmax> ^com <hcmo> ^layer <lay> ^compo <hcom> ^commo <garb1>)
4275 (vertical ^net-name nil ^min < <hcom> ^max >= <hcom> ^com <vcmo> ^layer <lay>)
4276 - (horizontal ^net-name nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <> <lay>)
4277 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com <hmax> ^layer <> <lay>)
4278 -->
4279 (modify <v> ^max <hcmo> ^max-net <nn1>)
4280 )
4281
4282 (p p74
4283 (context ^present propagate-constraint)
4284 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4285 { <v> (vertical ^net-name nil ^min <hcom> ^max { <vmax> > <hcom> } ^com <hmin> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4286 (horizontal ^net-name { <nn1> <> nil } ^min <= <hmin> ^max > <hmin> ^com <hcpo> ^layer <lay> ^compo <garb1> ^commo <hcom>)
4287 (vertical ^net-name nil ^min <= <hcom> ^max > <hcom> ^com <vcpo> ^layer <lay>)
4288 - (horizontal ^net-name nil ^min < <hmin> ^max <hmin> ^com <hcom> ^layer <> <lay>)
4289 - (vertical ^net-name nil ^min < <hcom> ^max <hcom> ^com <hmin> ^layer <> <lay>)
4290 -->
4291 (modify <v> ^min <hcpo> ^min-net <nn1>)
4292 )
4293
4294 (p p75
4295 (context ^present propagate-constraint)
4296 { <h> (horizontal ^net-name nil ^min <hmin> ^max <hmax> ^com <hcom> ^layer <lay> ^compo <hcpo> ^commo <hcmo>) }
4297 { <v> (vertical ^net-name nil ^min { <vmin> < <hcom> } ^max <hcom> ^com <hmin> ^layer <lay> ^compo <vcpo> ^commo <vcmo>) }
4298 (horizontal ^net-name { <nn1> <> nil } ^min <= <hmin> ^max > <hmin> ^com <hcmo> ^layer <lay> ^compo <hcom> ^commo <garb1>)
4299 (vertical ^net-name nil ^min < <hcom> ^max >= <hcom> ^com <vcpo> ^layer <lay>)
4300 - (horizontal ^net-name nil ^min < <hmin> ^max <hmin> ^com <hcom> ^layer <> <lay>)
4301 - (vertical ^net-name nil ^min <hcom> ^max > <hcom> ^com <hmin> ^layer <> <lay>)
4302 -->
4303 (modify <v> ^max <hcmo> ^max-net <nn1>)
4304 )
4305
4306 (p p76
4307 (context ^present propagate-constraint)
4308 (vertical ^net-name { <nn1> <> nil } ^min <vmin> ^max <vmax> ^com <vcom> ^layer <vlay>)
4309 (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <vcom> ^layer <vlay>)
4310 (horizontal ^net-name { <nn2> <> <nn1> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer { <hlay> <> <vlay> } ^compo <hcpo> ^commo <vmax>)
4311 - (horizontal ^status nil ^min <= <vcom> ^max >= <vcom> ^com <vmax>)
4312 { <v> (vertical ^net-name nil ^min <vmax> ^max > <vmax> ^com <vcom> ^layer <hlay>) }
4313 -->
4314 (modify <v> ^min <hcom> ^min-net <nn2>)
4315 )
4316
4317 (p p77
4318 (context ^present propagate-constraint)
4319 (vertical ^net-name { <nn1> <> nil } ^min <vmin> ^max <vmax> ^com <vcom> ^layer <vlay>)
4320 (vertical ^net-name nil ^min <garb1> ^max { <vmin> > <garb1> } ^com <vcom> ^layer <vlay>)
4321 (horizontal ^net-name { <nn2> <> <nn1> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer { <hlay> <> <vlay> } ^compo <vmin> ^commo <hcmo>)
4322 - (horizontal ^status nil ^min <= <vcom> ^max >= <vcom> ^com <vmin>)
4323 { <v> (vertical ^net-name nil ^min <garb2> ^max { <vmin> > <garb2> } ^com <vcom> ^layer <hlay>) }
4324 -->
4325 (modify <v> ^max <hcom> ^max-net <nn2>)
4326 )
4327
4328 (p p78
4329 (context ^present propagate-constraint)
4330 (horizontal ^net-name { <nn1> <> nil } ^min <hmin> ^max <hmax> ^com <hcom> ^layer <hlay>)
4331 (horizontal ^net-name nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <hlay>)
4332 (vertical ^net-name { <nn2> <> <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer { <vlay> <> <hlay> } ^compo <vcpo> ^commo <hmax>)
4333 - (vertical ^status nil ^min <= <hcom> ^max >= <hcom> ^com <hmax>)
4334 { <h> (horizontal ^net-name nil ^min <hmax> ^max > <hmax> ^com <hcom> ^layer <vlay>) }
4335 -->
4336 (modify <h> ^min <vcom> ^min-net <nn2>)
4337 )
4338
4339 (p p79
4340 (context ^present propagate-constraint)
4341 (horizontal ^net-name { <nn1> <> nil } ^min <hmin> ^max <hmax> ^com <hcom> ^layer <hlay>)
4342 (horizontal ^net-name nil ^min <garb1> ^max { <hmin> > <garb1> } ^com <hcom> ^layer <hlay>)
4343 (vertical ^net-name { <nn2> <> <nn1> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer { <vlay> <> <hlay> } ^compo <hmin> ^commo <vcmo>)
4344 - (vertical ^status nil ^min <= <hcom> ^max >= <hcom> ^com <hmin>)
4345 { <h> (horizontal ^net-name nil ^min <garb2> ^max { <hmin> > <garb2> } ^com <hcom> ^layer <vlay>) }
4346 -->
4347 (modify <h> ^max <vcom> ^max-net <nn2>)
4348 )
4349
4350 (p p80
4351 (context ^present propagate-constraint)
4352 (last-col <lc>)
4353 (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> <= 1 } ^max <vmax> ^com <vcom> ^layer <vlay> ^pin-name <pn> ^commo <vcmo>)
4354 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <vcom> ^max { <hmax> >= <lc> } ^com <vmax> ^layer <hlay>)
4355 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max <vcom> ^com { <hcom> >= <vmin> <= <vmax> } ^layer <lay>) }
4356 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com { > <hcom> <= <vmax> })
4357 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com { < <hcom> >= <vmin> })
4358 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com { > <hcom> <= <vmax> })
4359 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com { < <hcom> >= <vmin> })
4360 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com <hcom> ^layer <> <lay>)
4361 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <> <lay>)
4362 - (vertical ^net-name <nn> ^min <= <vmax> ^max >= <vmax> ^com { > <vcom> <= <hmax> })
4363 - (vertical ^net-name nil ^min <= <vmax> ^max >= <vmax> ^com { > <vcom> <= <hmax> })
4364 - (vertical ^net-name nil ^min <= <vmax> ^max >= <vmax> ^com <vcom>)
4365 - (vertical ^net-name <nn> ^min <vmax> ^max > <vmax> ^com <vcom>)
4366 - (vertical ^net-name nil ^min <= <vmin> ^max >= <vmin> ^com <vcom>)
4367 - (vertical ^net-name <nn> ^min < <vmin> ^max <vmin> ^com <vcom>)
4368 -->
4369 (make (substr <h> 1 inf) ^net-name <nn> ^pin-name <pn> ^min <vcmo>)
4370 (modify <h> ^max <vcmo> ^max-net <nn>)
4371 (make ff ^grid-x <vcmo> ^grid-y <hcom> ^grid-layer <lay> ^net-name <nn> ^pin-name <pn> ^came-from east)
4372 )
4373
4374 (p p81
4375 (context ^present propagate-constraint)
4376 (last-row <lr>)
4377 (last-col <lc>)
4378 (vertical ^status nil ^net-name { <nn> <> nil } ^min <vmin> ^max { <vmax> >= <lr> } ^com <vcom> ^layer <vlay> ^pin-name <pn> ^commo <vcmo>)
4379 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <vcom> ^max { <hmax> >= <lc> } ^com <vmin> ^layer <hlay>)
4380 { <h> (horizontal ^net-name nil ^min { <hmin> < <vcom> } ^max <vcom> ^com { <hcom> >= <vmin> <= <vmax> } ^layer <lay>) }
4381 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com { > <hcom> <= <vmax> })
4382 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com { < <hcom> >= <vmin> })
4383 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com { > <hcom> <= <vmax> })
4384 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com { < <hcom> >= <vmin> })
4385 - (horizontal ^net-name <nn> ^min < <vcom> ^max >= <vcom> ^com <hcom> ^layer <> <lay>)
4386 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <> <lay>)
4387 - (vertical ^net-name <nn> ^min <= <vmin> ^max >= <vmin> ^com { > <vcom> <= <hmax> })
4388 - (vertical ^net-name nil ^min <= <vmin> ^max >= <vmin> ^com { > <vcom> <= <hmax> })
4389 - (vertical ^net-name nil ^min <= <vmin> ^max >= <vmin> ^com <vcom>)
4390 - (vertical ^net-name <nn> ^min < <vmin> ^max <vmin> ^com <vcom>)
4391 - (vertical ^net-name nil ^min <= <vmax> ^max >= <vmax> ^com <vcom>)
4392 - (vertical ^net-name <nn> ^min <vmax> ^max > <vmax> ^com <vcom>)
4393 -->
4394 (make (substr <h> 1 inf) ^net-name <nn> ^pin-name <pn> ^min <vcmo>)
4395 (modify <h> ^max <vcmo> ^max-net <nn>)
4396 (make ff ^grid-x <vcmo> ^grid-y <hcom> ^grid-layer <lay> ^net-name <nn> ^pin-name <pn> ^came-from east)
4397 )
4398
4399 (p p82
4400 (context ^present propagate-constraint)
4401 (horizontal ^net-name { <nn> <> nil } ^min <hmin> ^max <hmax> ^com <hcom> ^layer <hlay> ^pin-name <pn> ^commo <hcmo>)
4402 (vertical ^status nil ^net-name { <nn> <> nil } ^min <hcom> ^max <vmax1> ^com <hmin> ^layer <vlay1>)
4403 (vertical ^status nil ^net-name { <nn> <> nil } ^min <hcom> ^max <vmax2> ^com <hmax> ^layer <vlay2>)
4404 { <v> (vertical ^net-name nil ^min { <vmin> < <hcom> } ^max <hcom> ^com { <vcom> >= <hmin> <= <hmax> } ^layer <lay>) }
4405 - (vertical ^net-name <nn> ^min < <hcom> ^max >= <hcom> ^com { > <vcom> <= <hmax> })
4406 - (vertical ^net-name <nn> ^min < <hcom> ^max >= <hcom> ^com { < <vcom> >= <hmin> })
4407 - (vertical ^net-name nil ^min <= <hcom> ^max >= <hcom> ^com { > <vcom> <= <hmax> })
4408 - (vertical ^net-name nil ^min <= <hcom> ^max >= <hcom> ^com { < <vcom> >= <hmin> })
4409 - (vertical ^net-name <nn> ^min < <hcom> ^max >= <hcom> ^com <vcom> ^layer <> <lay>)
4410 - (vertical ^net-name nil ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <> <lay>)
4411 - (horizontal ^net-name <nn> ^min <= <hmax> ^max >= <hmax> ^com { > <hcom> <= <vmax2> })
4412 - (horizontal ^net-name <nn> ^min <= <hmin> ^max >= <hmin> ^com { > <hcom> <= <vmax1> })
4413 - (horizontal ^net-name nil ^min <= <hmax> ^max >= <hmax> ^com { > <hcom> <= <vmax2> })
4414 - (horizontal ^net-name nil ^min <= <hmin> ^max >= <hmin> ^com { > <hcom> <= <vmax1> })
4415 - (horizontal ^net-name nil ^min <= <hmax> ^max >= <hmax> ^com <hcom>)
4416 - (horizontal ^net-name <nn> ^min <hmax> ^max > <hmax> ^com <hcom>)
4417 - (horizontal ^net-name nil ^min <= <hmin> ^max >= <hmin> ^com <hcom>)
4418 - (horizontal ^net-name <nn> ^min < <hmin> ^max <hmin> ^com <hcom>)
4419 -->
4420 (make (substr <v> 1 inf) ^net-name <nn> ^pin-name <pn> ^min <hcmo>)
4421 (modify <v> ^max <hcmo> ^max-net <nn>)
4422 (make ff ^grid-x <vcom> ^grid-y <hcmo> ^grid-layer <lay> ^net-name <nn> ^pin-name <pn> ^came-from north)
4423 )
4424
4425 (p p377
4426 (context ^present find-no-of-pins-on-a-row-col)
4427 (horizontal ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gy> ^layer <lay> ^compo <egarb1> ^commo <egabr2>)
4428 (ff ^net-name <nn> ^grid-x { <fx> >= <min> <= <max> } ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn1>)
4429 (ff ^net-name <nn> ^grid-y <gy> ^pin-name { <pn2> <> <pn1> } ^grid-x { <gx> > <fx> <= <max> })
4430 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <fx> ^max >= <gx> ^com <gy>)
4431 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { >= <fx> <= <gx> } ^layer <lay>)
4432 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <fx> ^max >= <fx> ^com <gy> ^layer <lay>)
4433 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
4434 (net ^net-name <nn> ^net-no-of-pins <np>)
4435 - (total ^net-name <nn> ^row-col row ^coor <gy>)
4436 -->
4437 (make total ^net-name <nn> ^row-col row ^coor <gy> ^level-pins 1 ^total-pins <np> ^min-xy <fx> ^max-xy <gx> ^last-pin <pn1> ^last-xy <fx>)
4438 )
4439
4440 (p p378
4441 (context ^present find-no-of-pins-on-a-row-col)
4442 (horizontal ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gy> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
4443 (ff ^net-name <nn> ^grid-x { <fx> >= <min> <= <max> } ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn1>)
4444 (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { <gx> > <fx> <= <max> } ^pin-name { <pn2> <> <pn1> })
4445 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^pin-name <> <pn1>)
4446 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <fx> ^max >= <gx> ^com <gy>)
4447 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { >= <fx> <= <gx> } ^layer <lay>)
4448 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <fx> ^max >= <fx> ^com <gy> ^layer <lay>)
4449 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
4450 (net ^net-name <nn> ^net-no-of-pins <np>)
4451 - (total ^net-name <nn> ^row-col row ^coor <gy>)
4452 -->
4453 (make total ^net-name <nn> ^row-col row ^coor <gy> ^level-pins 1 ^total-pins <np> ^min-xy <fx> ^max-xy <gx> ^last-pin <pn1> ^last-xy <fx>)
4454 )
4455
4456 (p p379
4457 (context ^present find-no-of-pins-on-a-row-col)
4458 (horizontal ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gy> ^layer <lay>)
4459 (ff ^net-name <nn> ^grid-x { <fx> >= <min> <= <max> } ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn1>)
4460 (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { <gx> < <fx> >= <min> } ^pin-name { <pn2> <> <pn1> })
4461 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^pin-name <> <pn1>)
4462 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <fx> ^com <gy>)
4463 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com { <= <fx> >= <gx> } ^layer <lay>)
4464 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <fx> ^max >= <fx> ^com <gy> ^layer <lay>)
4465 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <gy> ^layer <lay>)
4466 (net ^net-name <nn> ^net-no-of-pins <np>)
4467 - (total ^net-name <nn> ^row-col row ^coor <gy>)
4468 -->
4469 (make total ^net-name <nn> ^row-col row ^coor <gy> ^level-pins 1 ^total-pins <np> ^min-xy <gx> ^max-xy <fx> ^last-pin <pn2> ^last-xy <gx>)
4470 )
4471
4472 (p p380
4473 (context ^present find-no-of-pins-on-a-row-col)
4474 (vertical ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gx> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
4475 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <fy> >= <min> <= <max> } ^grid-layer <garb1> ^pin-name <pn1>)
4476 (ff ^net-name <nn> ^grid-x <gx> ^pin-name { <pn2> <> <pn1> } ^grid-y { <gy> > <fy> <= <max> })
4477 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <fy> ^max >= <gy> ^com <gx>)
4478 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { >= <fy> <= <gy> } ^layer <lay>)
4479 - (vertical ^net-name { <> <nn> <> nil } ^min <= <fy> ^max >= <fy> ^com <gx> ^layer <lay>)
4480 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
4481 (net ^net-name <nn> ^net-no-of-pins <np>)
4482 - (total ^net-name <nn> ^row-col col ^coor <gx>)
4483 -->
4484 (make total ^net-name <nn> ^row-col col ^coor <gx> ^level-pins 1 ^total-pins <np> ^min-xy <fy> ^max-xy <gy> ^last-pin <pn1> ^last-xy <fy>)
4485 )
4486
4487 (p p381
4488 (context ^present find-no-of-pins-on-a-row-col)
4489 (vertical ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gx> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
4490 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <fy> >= <min> <= <max> } ^grid-layer <garb1> ^pin-name <pn1>)
4491 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { <gy> > <fy> <= <max> } ^pin-name { <pn2> <> <pn1> })
4492 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^pin-name <> <pn1>)
4493 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <fy> ^max >= <gy> ^com <gx>)
4494 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { >= <fy> <= <gy> } ^layer <lay>)
4495 - (vertical ^net-name { <> <nn> <> nil } ^min <= <fy> ^max >= <fy> ^com <gx> ^layer <lay>)
4496 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
4497 (net ^net-name <nn> ^net-no-of-pins <np>)
4498 - (total ^net-name <nn> ^row-col col ^coor <gx>)
4499 -->
4500 (make total ^net-name <nn> ^row-col col ^coor <gx> ^level-pins 1 ^total-pins <np> ^min-xy <fy> ^max-xy <gy> ^last-pin <pn1> ^last-xy <fy>)
4501 )
4502
4503 (p p382
4504 (context ^present find-no-of-pins-on-a-row-col)
4505 (vertical ^net-name nil ^min <min> ^max { <max> > <min> } ^com <gx> ^layer <lay> ^compo <egarb1> ^commo <egarb2>)
4506 (ff ^net-name <nn> ^grid-x <gx> ^grid-y { <fy> >= <min> <= <max> } ^grid-layer <garb1> ^pin-name <pn1>)
4507 (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { <gy> < <fy> >= <min> } ^pin-name { <pn2> <> <pn1> })
4508 - (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^pin-name <> <pn1>)
4509 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <gy> ^max >= <fy> ^com <gx>)
4510 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com { >= <gy> <= <fy> } ^layer <lay>)
4511 - (vertical ^net-name { <> <nn> <> nil } ^min <= <fy> ^max >= <fy> ^com <gx> ^layer <lay>)
4512 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <gx> ^layer <lay>)
4513 (net ^net-name <nn> ^net-no-of-pins <np>)
4514 - (total ^net-name <nn> ^row-col col ^coor <gx>)
4515 -->
4516 (make total ^net-name <nn> ^row-col col ^coor <gx> ^level-pins 1 ^total-pins <np> ^min-xy <gy> ^max-xy <fy> ^last-pin <pn2> ^last-xy <gy>)
4517 )
4518
4519 (p p383
4520 (context ^present find-no-of-pins-on-a-row-col)
4521 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <gy> ^grid-layer <garb2> ^pin-name <pn>)
4522 (net ^net-name <nn> ^net-no-of-pins <np> ^no-of-top-pins <np> ^no-of-bottom-pins <garb3>)
4523 - (ff ^net-name <nn> ^grid-y <= <gy> ^pin-name <> <pn>)
4524 - (total ^net-name <nn>)
4525 -->
4526 (make total ^net-name <nn> ^row-col row ^coor <gy> ^level-pins <np> ^total-pins <np>)
4527 )
4528
4529 (p p384
4530 (context ^present find-no-of-pins-on-a-row-col)
4531 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <gy> ^grid-layer <garb2> ^pin-name <pn>)
4532 (net ^net-name <nn> ^net-no-of-pins <np> ^no-of-top-pins <garb3> ^no-of-bottom-pins <np>)
4533 - (ff ^net-name <nn> ^grid-y >= <gy> ^pin-name <> <pn>)
4534 - (total ^net-name <nn>)
4535 -->
4536 (make total ^net-name <nn> ^row-col row ^coor <gy> ^level-pins <np> ^total-pins <np>)
4537 )
4538
4539 (p p385
4540 (context ^present find-no-of-pins-on-a-row-col)
4541 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn>) }
4542 (net ^net-name <nn> ^net-no-of-pins <np> ^no-of-top-pins <np> ^no-of-bottom-pins <garb2>)
4543 - (total ^net-name <nn>)
4544 (ff ^net-name <nn> ^grid-y <gy> ^pin-name <> <pn> ^grid-x { <fx> > <gx> })
4545 - (ff ^net-name <nn> ^grid-y < <gy>)
4546 - (horizontal ^net-name nil ^min <= <gx> ^max >= <fx> ^com <gy>)
4547 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <fx> ^com <gy>)
4548 { <v1> (vertical ^net-name nil ^min { <min> < <gy> } ^max >= <gy> ^com <gx> ^layer <lay> ^commo <cmo> ^compo <cpo> ^min-net <mn>) }
4549 - (horizontal ^net-name { <> nil <> <nn> } ^min <= <gx> ^max >= <gx> ^layer <lay> ^compo <gy>)
4550 (congestion ^direction row ^coordinate <gy> ^como <hcmo>)
4551 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcmo> ^max >= <hcmo> ^com <gx> ^layer <lay>)
4552 -->
4553 (make vertical ^net-name nil ^max <hcmo> ^min <min> ^layer <lay> ^com <gx> ^commo <cmo> ^compo <cpo> ^min-net <mn> ^max-net <nn>)
4554 (modify <v1> ^min <gy> ^min-net <nn>)
4555 (make vertical ^net-name <nn> ^max <gy> ^min <hcmo> ^layer <lay> ^com <gx> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
4556 (modify <ff1> ^grid-y <hcmo> ^can-chng-layer nil)
4557 (make total ^net-name <nn> ^row-col row ^coor <hcmo> ^level-pins <np> ^total-pins <np>)
4558 )
4559
4560 (p p386
4561 (context ^present find-no-of-pins-on-a-row-col)
4562 { <ff1> (ff ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <garb1> ^pin-name <pn>) }
4563 (net ^net-name <nn> ^net-no-of-pins <np> ^no-of-top-pins <garb2> ^no-of-bottom-pins <np>)
4564 - (total ^net-name <nn>)
4565 (ff ^net-name <nn> ^grid-y <gy> ^pin-name <> <pn> ^grid-x { <fx> > <gx> })
4566 - (ff ^net-name <nn> ^grid-y > <gy>)
4567 - (horizontal ^net-name nil ^min <= <gx> ^max >= <fx> ^com <gy>)
4568 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max >= <fx> ^com <gy>)
4569 { <v1> (vertical ^net-name nil ^min <= <gy> ^max { <max> > <gy> } ^com <gx> ^layer <lay> ^commo <cmo> ^compo <cpo> ^max-net <mn>) }
4570 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^layer <lay> ^compo <gy>)
4571 (congestion ^direction row ^coordinate <hcmo> ^como <gy>)
4572 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcmo> ^max >= <hcmo> ^com <gx> ^layer <lay>)
4573 -->
4574 (make vertical ^net-name nil ^max <max> ^min <hcmo> ^layer <lay> ^com <gx> ^commo <cmo> ^compo <cpo> ^min-net <nn> ^max-net <mn>)
4575 (modify <v1> ^max <gy> ^max-net <nn>)
4576 (make vertical ^net-name <nn> ^min <gy> ^max <hcmo> ^layer <lay> ^com <gx> ^commo <cmo> ^compo <cpo> ^pin-name <pn>)
4577 (modify <ff1> ^grid-y <hcmo> ^can-chng-layer nil)
4578 (make total ^net-name <nn> ^row-col row ^coor <hcmo> ^level-pins <np> ^total-pins <np>)
4579 )
4580
4581 (p p387
4582 { <t1> (total ^net-name <nn> ^row-col row ^coor <y> ^level-pins <np> ^total-pins <np> ^min-xy nil ^max-xy nil) }
4583 (pin ^net-name <nn> ^pin-x <px1>)
4584 - (pin ^net-name <nn> ^pin-x < <px1>)
4585 (pin ^net-name <nn> ^pin-x { <px2> > <px1> })
4586 - (pin ^net-name <nn> ^pin-x > <px2>)
4587 -->
4588 (modify <t1> ^min-xy <px1> ^max-xy <px2>)
4589 )
4590
4591 (p p388
4592 (context ^present find-no-of-pins-on-a-row-col)
4593 -->
4594 (make context ^previous find-no-of-pins-on-a-row-col)
4595 (remove 1)
4596 )
4597
4598 (p p389
4599 (context ^previous find-no-of-pins-on-a-row-col)
4600 (total)
4601 -->
4602 (remove 1)
4603 (make context ^present modify-total)
4604 )
4605
4606 (p p390
4607 (context ^present delete-totals)
4608 -->
4609 (modify 1 ^present choose-between-nets-on-the-same-row-col)
4610 )
4611
4612 (p p391
4613 { <c1> (context ^present << choose-between-nets-on-the-same-row-col choose-between-nets-on-the-same-row-col-con >>) }
4614 { <t1> (total ^net-name <nn> ^row-col { << row col >> <rc> } ^coor <xy> ^level-pins <cou> ^total-pins <garb1>) }
4615 - (total ^net-name <> <nn> ^level-pins >= <cou>)
4616 - (total ^net-name <nn> ^row-col <> <rc> ^level-pins >= <cou>)
4617 -->
4618 (remove <c1> <t1>)
4619 (make change-priority)
4620 (make tran-total <rc> <xy> (substr <t1> nets inf))
4621 )
4622
4623 (p p392
4624 (context ^present choose-between-nets-on-the-same-row-col)
4625 (total ^net-name <garb1> ^row-col { << row col >> <garb2> } ^coor <garb3> ^level-pins <cou> ^total-pins <cou>)
4626 { <t1> (total ^level-pins < <cou>) }
4627 -->
4628 (remove <t1>)
4629 )
4630
4631 (p p393
4632 (context ^present choose-between-nets-on-the-same-row-col)
4633 (total ^net-name <garb1> ^row-col { << row col >> <garb2> } ^coor <garb3> ^level-pins <cou> ^total-pins <garb4>)
4634 { <t1> (total ^level-pins <cou1> ^total-pins { < <cou> <> <cou1> }) }
4635 -->
4636 (remove <t1>)
4637 )
4638
4639 (p p394
4640 (context ^present choose-between-nets-on-the-same-row-col)
4641 (total ^net-name <nn> ^row-col { << row col >> <rc> } ^coor <garb1> ^level-pins <cou>)
4642 { <t1> (total ^net-name <nn> ^row-col <> <rc> ^level-pins <cou>) }
4643 -->
4644 (remove <t1>)
4645 )
4646
4647 (p p395
4648 (context ^present choose-between-nets-on-the-same-row-col)
4649 (total ^net-name <nn> ^row-col { << row col >> <rc> } ^coor <xy> ^level-pins <cou> ^total-pins <garb1>)
4650 { <t1> (total ^net-name <nn> ^row-col <rc> ^coor <> <xy> ^level-pins <cou>) }
4651 -->
4652 (remove <t1>)
4653 )
4654
4655 (p p396
4656 { <c1> (context ^present << choose-between-nets-on-the-same-row-col choose-between-nets-on-the-same-row-col-con >>) }
4657 { <t1> (total ^net-name <nn> ^row-col { << row col >> <rc> } ^coor <xy> ^level-pins <cou> ^total-pins <cou>) }
4658 - (total ^net-name <> <nn> ^level-pins <cou> ^total-pins <cou>)
4659 -->
4660 (remove <c1> <t1>)
4661 (make change-priority)
4662 (make tran-total <rc> <xy> (substr <t1> nets inf))
4663 )
4664
4665 (p p397
4666 { <t1> (tran-total <rc> <xy> { <nn> <> nil <> end } <min> <max>) }
4667 -->
4668 (write (crlf) |***** next net to be routed is| <nn> *****)
4669 (make next-segment <nn> <rc> <xy> useless <min> <max>)
4670 (remove <t1>)
4671 (make tran-total <rc> <xy> (substr <t1> 7 inf))
4672 )
4673
4674 (p p398
4675 { <t1> (tran-total <rc> <xy> nil) }
4676 -->
4677 (make dominant-layer)
4678 (remove <t1>)
4679 (make goal cleanup total-verti)
4680 (make goal cleanup counted-verti)
4681 (make goal cleanup total)
4682 (make goal cleanup extend-ff-tried)
4683 )
4684
4685 (p p399
4686 (context ^present choose-between-nets-on-the-same-row-col)
4687 (total ^net-name <nn> ^row-col { << row col >> <garb1> } ^coor <garb2> ^level-pins <cou> ^total-pins <cou>)
4688 { <t1> (total ^net-name <> <nn> ^level-pins <cou> ^total-pins > <cou>) }
4689 -->
4690 (remove <t1>)
4691 )
4692
4693 (p p400
4694 (context ^present choose-between-nets-on-the-same-row-col)
4695 (total ^net-name <nn> ^row-col { << row col >> <garb1> } ^coor <garb2> ^level-pins <cou> ^total-pins <cou1>)
4696 { <t1> (total ^net-name <> <nn> ^level-pins <cou> ^total-pins > <cou1>) }
4697 - (total ^net-name <garb3> ^row-col <garb4> ^coor <garb5> ^level-pins <cou2> ^total-pins <cou2>)
4698 -->
4699 (remove <t1>)
4700 )
4701
4702 (p p401
4703 (context ^present choose-between-nets-on-the-same-row-col)
4704 (total ^net-name <garb1> ^row-col <garb2> ^coor <garb3> ^level-pins <cou1> ^total-pins <cou2>)
4705 { <t1> (total ^net-name <garb4> ^row-col <garb5> ^coor <garb6> ^level-pins < <cou1> ^total-pins < <cou2>) }
4706 -->
4707 (remove <t1>)
4708 )
4709
4710 (p p402
4711 (context ^present choose-between-nets-on-the-same-row-col)
4712 -->
4713 (modify 1 ^present choose-between-nets-on-the-same-row-col-con)
4714 )
4715
4716 (p p403
4717 (context ^present choose-between-nets-on-the-same-row-col-con)
4718 { <t1> (total ^net-name <nn> ^row-col row ^level-pins <cou> ^total-pins <cou2> ^cong nil) }
4719 (total ^net-name <> <nn> ^level-pins <cou> ^total-pins <cou2>)
4720 (pin ^net-name <nn> ^pin-x <px1>)
4721 - (pin ^net-name <nn> ^pin-x < <px1>)
4722 (pin ^net-name <nn> ^pin-x { <px2> > <px1> })
4723 - (pin ^net-name <nn> ^pin-x > <px2>)
4724 (congestion ^direction col ^coordinate { >= <px1> <= <px2> } ^no-of-nets <non>)
4725 - (congestion ^direction col ^coordinate { >= <px1> <= <px2> } ^no-of-nets > <non>)
4726 -->
4727 (modify <t1> ^cong <non>)
4728 )
4729
4730 (p p404
4731 (context ^present choose-between-nets-on-the-same-row-col-con)
4732 { <t1> (total ^net-name <nn> ^row-col col ^level-pins <cou> ^total-pins <cou2> ^cong nil) }
4733 (total <> <nn> { } { } <cou> <cou2>)
4734 (pin ^net-name <nn> ^pin-y <py1>)
4735 - (pin ^net-name <nn> ^pin-y < <py1>)
4736 (pin ^net-name <nn> ^pin-y { <py2> > <py1> })
4737 - (pin ^net-name <nn> ^pin-y > <py2>)
4738 (congestion ^direction row ^coordinate { >= <py1> <= <py2> } ^no-of-nets <non>)
4739 - (congestion ^direction row ^coordinate { >= <py1> <= <py2> } ^no-of-nets > <non>)
4740 -->
4741 (modify <t1> ^cong <non>)
4742 )
4743
4744 (p p405
4745 (context ^present choose-between-nets-on-the-same-row-col-con)
4746 (total ^net-name <nn> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil } ^min-xy <min1> ^max-xy <max1>)
4747 (total ^net-name <> <nn> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil } ^min-xy { <min2> > <max1> } ^max-xy <max2>)
4748 { <t> (total ^net-name <nn1> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil } ^min-xy <= <max1> ^max-xy >= <min2>) }
4749 -->
4750 (remove <t>)
4751 )
4752
4753 (p p406
4754 (context ^present choose-between-nets-on-the-same-row-col-con)
4755 (total ^net-name <nn> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil } ^min-xy <min1> ^max-xy <max1>)
4756 { <t> (total ^net-name <> <nn> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil } ^min-xy >= <min1> ^max-xy <= <max1>) }
4757 -->
4758 (remove <t>)
4759 )
4760
4761 (p p407
4762 (context ^present choose-between-nets-on-the-same-row-col-con)
4763 (total ^net-name <nn> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil })
4764 { <t> (total ^net-name { <nn1> <> <nn> } ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil }) }
4765 (<< vertical-cycle horizontal-cycle >> <nn1>)
4766 -->
4767 (remove <t>)
4768 )
4769
4770 (p p408
4771 (context ^present choose-between-nets-on-the-same-row-col-con)
4772 (total ^net-name <nn> ^row-col row ^coor <y> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil })
4773 { <t> (total ^net-name { <nn1> <> <nn> } ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil }) }
4774 (pin ^net-name <nn1> ^pin-y { <py> < <y> } ^pin-channel-side << left right >>)
4775 - (pin ^net-name <nn> ^pin-y { > <py> < <y> } ^pin-channel-side << left right >>)
4776 -->
4777 (remove <t>)
4778 )
4779
4780 (p p409
4781 (context ^present choose-between-nets-on-the-same-row-col-con)
4782 (total ^net-name <nn> ^row-col row ^coor <y> ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil })
4783 { <t> (total ^net-name { <nn1> <> <nn> } ^level-pins <cou> ^total-pins <cou2> ^cong { <non> <> nil }) }
4784 (pin ^net-name <nn1> ^pin-y { <py> > <y> } ^pin-channel-side << left right >>)
4785 - (pin ^net-name <nn> ^pin-y { > <y> < <py> } ^pin-channel-side << left right >>)
4786 -->
4787 (remove <t>)
4788 )
4789
4790 (p p410
4791 (context ^present choose-between-nets-on-the-same-row-col-con)
4792 (total ^net-name <nn> ^level-pins <cou> ^total-pins <cou2> ^cong <non>)
4793 - (total ^cong nil)
4794 { <t> (total ^net-name <> <nn> ^level-pins <cou> ^total-pins <cou2> ^cong <= <non>) }
4795 -->
4796 (remove <t>)
4797 )
4798
4799 (p p411
4800 (context ^present choose-between-nets-on-the-same-row-col)
4801 (total ^net-name <nn1> ^row-col <rc1> ^coor <xy1> ^level-pins <cou> ^total-pins > <cou>)
4802 { <t1> (total ^net-name <nn2> ^row-col { <rc2> <> <rc1> } ^coor <xy2> ^level-pins <cou> ^total-pins > <cou>) }
4803 { <t2> (total ^net-name <> <nn2> ^row-col <rc2> ^coor <xy2> ^level-pins <cou> ^total-pins > <cou>) }
4804 -->
4805 (remove <t1> <t2>)
4806 )
4807
4808 (p p412
4809 (context ^present choose-between-nets-on-the-same-row-col)
4810 (total ^net-name <nn1> ^row-col <rc1> ^coor <xy1> ^level-pins <cou> ^total-pins > <cou>)
4811 { <t1> (total ^net-name <nn2> ^row-col <rc2> ^coor { <xy2> <> <xy1> } ^level-pins <cou> ^total-pins > <cou>) }
4812 { <t2> (total ^net-name <> <nn2> ^row-col <rc2> ^coor <xy2> ^level-pins <cou> ^total-pins > <cou>) }
4813 -->
4814 (remove <t1> <t2>)
4815 )
4816
4817 (p p413
4818 (context ^present find-no-of-vcg-hcg)
4819 (net ^net-name <nn> ^no-of-bottom-pins { <np> > 1 } ^net-is-routed <> yes)
4820 - (total-verti <nn> bottom)
4821 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4822 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side bottom)
4823 -->
4824 (make total-verti <nn> bottom 0 <np>)
4825 )
4826
4827 (p p414
4828 (context ^present find-no-of-vcg-hcg)
4829 (net ^net-name <nn> ^no-of-bottom-pins { <np> > 0 } ^net-is-routed <> yes)
4830 - (total-verti <nn> bottom)
4831 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4832 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side bottom)
4833 (constraint ^constraint-type << horizontal vertical >> ^net-name-1 <nn>)
4834 -->
4835 (make total-verti <nn> bottom 0 <np>)
4836 )
4837
4838 (p p415
4839 (context ^present find-no-of-vcg-hcg)
4840 (net ^net-name <nn> ^no-of-bottom-pins { <np> > 0 } ^net-is-routed <> yes)
4841 - (total-verti <nn> bottom)
4842 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4843 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side bottom)
4844 (constraint ^constraint-type << horizontal vertical >> ^net-name-2 <nn>)
4845 -->
4846 (make total-verti <nn> bottom 0 <np>)
4847 )
4848
4849 (p p416
4850 (context ^present find-no-of-vcg-hcg)
4851 (ff ^net-name <nn> ^grid-x <gx> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <garb1>)
4852 (pin ^net-name <nn> ^pin-x <gx> ^pin-channel-side top ^pin-name <pn1>)
4853 (net ^net-name { <nn1> <> <nn> } ^no-of-bottom-pins { <np> > 0 } ^net-is-routed <> yes)
4854 (pin ^net-name <nn1> ^pin-x <gx> ^pin-channel-side bottom ^pin-name <pn2>)
4855 - (total-verti <nn1> bottom)
4856 - (constraint ^constraint-type vertical ^net-name-1 <nn> ^net-name-2 <nn1> ^pin-name-1 <pn1> ^pin-name-2 <pn2>)
4857 -->
4858 (make counted-verti <nn1> bottom <nn> <pn1> <pn2>)
4859 (make total-verti <nn1> bottom 1 <np>)
4860 )
4861
4862 (p p417
4863 (context ^present find-no-of-vcg-hcg)
4864 (net ^net-name <nn> ^no-of-left-pins { <np> > 1 } ^net-is-routed <> yes)
4865 - (total-verti <nn> left)
4866 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4867 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side left)
4868 -->
4869 (make total-verti <nn> left 0 <np>)
4870 )
4871
4872 (p p418
4873 (context ^present find-no-of-vcg-hcg)
4874 (net ^net-name <nn> ^no-of-left-pins { <np> > 0 } ^net-is-routed <> yes)
4875 - (total-verti <nn> left)
4876 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4877 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side left)
4878 (constraint ^constraint-type << horizontal vertical >> ^net-name-1 <nn>)
4879 -->
4880 (make total-verti <nn> left 0 <np>)
4881 )
4882
4883 (p p419
4884 (context ^present find-no-of-vcg-hcg)
4885 (net ^net-name <nn> ^no-of-left-pins { <np> > 0 } ^net-is-routed <> yes)
4886 - (total-verti <nn> left)
4887 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4888 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side left)
4889 (constraint ^constraint-type << horizontal vertical >> ^net-name-2 <nn>)
4890 -->
4891 (make total-verti <nn> left 0 <np>)
4892 )
4893
4894 (p p420
4895 (context ^present find-no-of-vcg-hcg)
4896 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <gy> ^grid-layer <garb3> ^pin-name <garb2>)
4897 (pin ^net-name <nn> ^pin-y <gy> ^pin-channel-side right ^pin-name <pn1>)
4898 (net ^net-name { <nn1> <> <nn> } ^no-of-left-pins { <np> > 0 } ^net-is-routed <> yes)
4899 (pin ^net-name <nn1> ^pin-y <gy> ^pin-channel-side left ^pin-name <pn2>)
4900 - (total-verti <nn1> left)
4901 - (constraint ^constraint-type horizontal ^net-name-1 <nn> ^net-name-2 <nn1> ^pin-name-1 <pn1> ^pin-name-2 <pn2>)
4902 -->
4903 (make counted-verti <nn1> left <nn> <pn1> <pn2>)
4904 (make total-verti <nn1> left 1 <np>)
4905 )
4906
4907 (p p421
4908 (context ^present find-no-of-vcg-hcg)
4909 (net ^net-name <nn> ^no-of-top-pins { <np> > 1 } ^net-is-routed <> yes)
4910 - (total-verti <nn> top)
4911 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4912 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side top)
4913 -->
4914 (make total-verti <nn> top 0 <np>)
4915 )
4916
4917 (p p422
4918 (context ^present find-no-of-vcg-hcg)
4919 (net ^net-name <nn> ^no-of-top-pins { <np> > 0 } ^net-is-routed <> yes)
4920 - (total-verti <nn> top)
4921 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4922 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side top)
4923 (constraint ^constraint-type << horizontal vertical >> ^net-name-1 <nn>)
4924 -->
4925 (make total-verti <nn> top 0 <np>)
4926 )
4927
4928 (p p423
4929 (context ^present find-no-of-vcg-hcg)
4930 (net ^net-name <nn> ^no-of-top-pins { <np> > 0 } ^net-is-routed <> yes)
4931 - (total-verti <nn> top)
4932 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4933 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side top)
4934 (constraint ^constraint-type << horizontal vertical >> ^net-name-2 <nn>)
4935 -->
4936 (make total-verti <nn> top 0 <np>)
4937 )
4938
4939 (p p424
4940 (context ^present find-no-of-vcg-hcg)
4941 (net ^net-name <nn> ^no-of-right-pins { <np> > 1 } ^net-is-routed <> yes)
4942 - (total-verti <nn> right)
4943 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4944 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side right)
4945 -->
4946 (make total-verti <nn> right 0 <np>)
4947 )
4948
4949 (p p425
4950 (context ^present find-no-of-vcg-hcg)
4951 (net ^net-name <nn> ^no-of-right-pins { <np> > 0 } ^net-is-routed <> yes)
4952 - (total-verti <nn> right)
4953 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4954 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side right)
4955 (constraint ^constraint-type << horizontal vertical >> ^net-name-1 <nn>)
4956 -->
4957 (make total-verti <nn> right 0 <np>)
4958 )
4959
4960 (p p426
4961 (context ^present find-no-of-vcg-hcg)
4962 (net ^net-name <nn> ^no-of-right-pins { <np> > 0 } ^net-is-routed <> yes)
4963 - (total-verti <nn> right)
4964 (ff ^net-name <nn> ^grid-x <garb1> ^grid-y <garb2> ^grid-layer <garb3> ^pin-name <pn>)
4965 (pin ^net-name <nn> ^pin-name <pn> ^pin-channel-side right)
4966 (constraint ^constraint-type << horizontal vertical >> ^net-name-2 <nn>)
4967 -->
4968 (make total-verti <nn> right 0 <np>)
4969 )
4970
4971 (p p427
4972 (context ^present find-no-of-vcg-hcg)
4973 (total-verti <nn> bottom <ntc>)
4974 (constraint ^constraint-type vertical ^net-name-1 <tn> ^net-name-2 <nn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
4975 - (counted-verti <nn> bottom <tn> <tpn> <bpn>)
4976 -->
4977 (make counted-verti <nn> bottom <tn> <tpn> <bpn>)
4978 (modify 2 ^4 (compute <ntc> + 1))
4979 )
4980
4981 (p p428
4982 (context ^present find-no-of-vcg-hcg)
4983 (total-verti <nn> left <ntc>)
4984 (constraint ^constraint-type horizontal ^net-name-1 <tn> ^net-name-2 <nn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
4985 - (counted-verti <nn> left <tn> <tpn> <bpn>)
4986 -->
4987 (make counted-verti <nn> left <tn> <tpn> <bpn>)
4988 (modify 2 ^4 (compute <ntc> + 1))
4989 )
4990
4991 (p p429
4992 (context ^present find-no-of-vcg-hcg)
4993 (total-verti <nn> top <ntc>)
4994 (constraint ^constraint-type vertical ^net-name-1 <nn> ^net-name-2 <bn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
4995 - (counted-verti <nn> top <bn> <tpn> <bpn>)
4996 -->
4997 (make counted-verti <nn> top <bn> <tpn> <bpn>)
4998 (modify 2 ^4 (compute <ntc> + 1))
4999 )
5000
5001 (p p430
5002 (context ^present find-no-of-vcg-hcg)
5003 (total-verti <nn> right <ntc>)
5004 (constraint ^constraint-type horizontal ^net-name-1 <nn> ^net-name-2 <bn> ^pin-name-1 <tpn> ^pin-name-2 <bpn>)
5005 - (counted-verti <nn> right <bn> <tpn> <bpn>)
5006 -->
5007 (make counted-verti <nn> right <bn> <tpn> <bpn>)
5008 (modify 2 ^4 (compute <ntc> + 1))
5009 )
5010
5011 (p p431
5012 (context ^present find-no-of-vcg-hcg)
5013 -->
5014 (remove 1)
5015 (make context ^previous find-no-of-vcg-hcg)
5016 )
5017
5018 (p p432
5019 (context ^previous find-no-of-vcg-hcg)
5020 (total-verti)
5021 -->
5022 (remove 1)
5023 (make context ^present choose-between-total-verti)
5024 (make context ^present choose-between-total-verti-0)
5025 )
5026
5027 (p p433
5028 (context ^present choose-between-total-verti)
5029 - (total-verti ^4 0)
5030 { <t> (total-verti <nn> bottom <garb> > 1) }
5031 - (ff ^net-name <nn> ^came-from south)
5032 -->
5033 (remove <t>)
5034 )
5035
5036 (p p434
5037 (context ^present choose-between-total-verti)
5038 - (total-verti ^4 0)
5039 { <t> (total-verti <nn> top <garb> > 1) }
5040 - (ff ^net-name <nn> ^came-from north)
5041 -->
5042 (remove <t>)
5043 )
5044
5045 (p p435
5046 (context ^present choose-between-total-verti)
5047 - (total-verti ^4 0)
5048 { <t> (total-verti <nn> left <garb> > 1) }
5049 - (ff ^net-name <nn> ^came-from west)
5050 -->
5051 (remove <t>)
5052 )
5053
5054 (p p436
5055 (context ^present choose-between-total-verti)
5056 - (total-verti ^4 0)
5057 { <t> (total-verti <nn> right <garb> > 1) }
5058 - (ff ^net-name <nn> ^came-from east)
5059 -->
5060 (remove <t>)
5061 )
5062
5063 (p p437
5064 (context ^present choose-between-total-verti)
5065 -->
5066 (modify 1 ^present extend-total-verti)
5067 )
5068
5069 (p p438
5070 (context ^present choose-between-total-verti)
5071 (total-verti ^4 > 0)
5072 (total-verti ^4 0)
5073 -->
5074 (remove 3)
5075 )
5076
5077 (p p439
5078 (context ^present choose-between-total-verti)
5079 (total-verti <nn> { << top bottom >> <tb> } > 0)
5080 (total-verti <nn> { << top bottom >> <> <tb> } 0)
5081 -->
5082 (remove 3)
5083 )
5084
5085 (p p440
5086 (context ^present choose-between-total-verti)
5087 (total-verti <nn> { << left right >> <tb> } > 0)
5088 (total-verti <nn> { << left right >> <> <tb> } 0)
5089 -->
5090 (remove 3)
5091 )
5092
5093 (p p441
5094 (context ^present choose-between-total-verti-0)
5095 (total-verti <nn> { << top bottom >> <tb> } > 0)
5096 (total-verti <nn> { << top bottom >> <> <tb> } > 0)
5097 -->
5098 (remove 2 3)
5099 )
5100
5101 (p p442
5102 (context ^present choose-between-total-verti-0)
5103 (total-verti <nn> { << left right >> <tb> } > 0)
5104 (total-verti <nn> { << left right >> <> <tb> } > 0)
5105 -->
5106 (remove 2 3)
5107 )
5108
5109 (p p443
5110 (context ^present choose-between-total-verti-0)
5111 -->
5112 (remove 1)
5113 )
5114
5115 (p p444
5116 (context ^present extend-total-verti)
5117 (total-verti <nn> bottom ^5 > 1)
5118 - (total-verti ^5 1)
5119 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>)
5120 - (ff ^net-name <nn> ^grid-y < <gy>)
5121 - (vertical ^status nil ^net-name { <nn> <> nil } ^min <= <gy> ^max > <gy> ^com <gx>)
5122 (vertical ^net-name nil ^min { <min> <= <gy> } ^max { > <min> > <gy> } ^com <gx> ^layer <lay> ^compo <vcpo> ^commo <vcmo> ^min-net <mn>)
5123 (congestion ^direction row ^coordinate <como> ^como <gy>)
5124 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <como> ^layer <lay>)
5125 - (vertical ^net-name { <> <nn> <> nil } ^min <= <como> ^max >= <como> ^com <gx> ^layer <lay>)
5126 -->
5127 (make vertical ^net-name nil ^min <min> ^max <gy> ^min-net <mn> ^max-net <nn> ^commo <vcmo> ^compo <vcpo> ^com <gx> ^layer <lay>)
5128 (modify 4 ^min <como> ^min-net <nn>)
5129 (make vertical ^net-name <nn> ^min <gy> ^max <como> ^layer <lay> ^commo <vcmo> ^compo <vcpo> ^pin-name <pn> ^com <gx>)
5130 (modify 3 ^grid-y <como> ^can-chng-layer nil)
5131 (remove 2)
5132 )
5133
5134 (p p445
5135 (context ^present extend-total-verti)
5136 (total-verti <nn> left ^5 > 1)
5137 - (total-verti ^5 1)
5138 (ff ^came-from west ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>)
5139 - (ff ^net-name <nn> ^grid-x < <gx>)
5140 - (horizontal ^status nil ^net-name { <nn> <> nil } ^min <= <gx> ^max > <gx> ^com <gy>)
5141 (horizontal ^net-name nil ^min { <min> <= <gx> } ^max { > <min> > <gx> } ^com <gy> ^layer <lay> ^compo <hcpo> ^commo <hcmo> ^min-net <mn>)
5142 (congestion ^direction col ^coordinate <como> ^como <gx>)
5143 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <como> ^max >= <como> ^com <gy> ^layer <lay>)
5144 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <como> ^layer <lay>)
5145 -->
5146 (make horizontal ^net-name nil ^min <min> ^max <gx> ^min-net <mn> ^max-net <nn> ^commo <hcmo> ^compo <hcpo> ^com <gy> ^layer <lay>)
5147 (modify 4 ^min <como> ^min-net <nn>)
5148 (make horizontal ^net-name <nn> ^min <gx> ^max <como> ^layer <lay> ^commo <hcmo> ^compo <hcpo> ^pin-name <pn> ^com <gy>)
5149 (modify 3 ^grid-x <como> ^can-chng-layer nil)
5150 (remove 2)
5151 )
5152
5153 (p p446
5154 (context ^present extend-total-verti)
5155 (total-verti <nn> top ^5 > 1)
5156 - (total-verti ^5 1)
5157 (ff ^came-from north ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>)
5158 - (ff ^net-name <nn> ^grid-y > <gy>)
5159 - (vertical ^status nil ^net-name { <nn> <> nil } ^min < <gy> ^max >= <gy> ^com <gx>)
5160 (vertical ^net-name nil ^max { <max> >= <gy> } ^min { < <max> < <gy> } ^com <gx> ^layer <lay> ^compo <vcpo> ^commo <vcmo> ^max-net <mn>)
5161 (congestion ^direction row ^coordinate <gy> ^como <como>)
5162 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <gx> ^max >= <gx> ^com <como> ^layer <lay>)
5163 - (vertical ^net-name { <> <nn> <> nil } ^min <= <como> ^max >= <como> ^com <gx> ^layer <lay>)
5164 -->
5165 (make vertical ^net-name nil ^min <gy> ^max <max> ^max-net <mn> ^min-net <nn> ^commo <vcmo> ^compo <vcpo> ^com <gx> ^layer <lay>)
5166 (modify 4 ^max <como> ^max-net <nn>)
5167 (make vertical ^net-name <nn> ^max <gy> ^min <como> ^layer <lay> ^commo <vcmo> ^compo <vcpo> ^pin-name <pn> ^com <gx>)
5168 (modify 3 ^grid-y <como> ^can-chng-layer nil)
5169 (remove 2)
5170 )
5171
5172 (p p447
5173 (context ^present extend-total-verti)
5174 (total-verti <nn> right ^5 > 1)
5175 - (total-verti ^5 1)
5176 (ff ^came-from east ^net-name <nn> ^grid-x <gx> ^grid-y <gy> ^grid-layer <lay> ^pin-name <pn>)
5177 - (ff ^net-name <nn> ^grid-x > <gx>)
5178 - (horizontal ^net-name { <nn> <> nil } ^min < <gx> ^max >= <gx> ^status nil ^com <gy>)
5179 (horizontal ^net-name nil ^max { <max> >= <gx> } ^min { < <max> < <gx> } ^com <gy> ^layer <lay> ^compo <hcpo> ^commo <hcmo> ^max-net <mn>)
5180 (congestion ^direction col ^coordinate <gx> ^como <como>)
5181 - (horizontal ^net-name { <> <nn> <> nil } ^min <= <como> ^max >= <como> ^com <gy> ^layer <lay>)
5182 - (vertical ^net-name { <> <nn> <> nil } ^min <= <gy> ^max >= <gy> ^com <como> ^layer <lay>)
5183 -->
5184 (make horizontal ^net-name nil ^min <gx> ^max <max> ^max-net <mn> ^min-net <nn> ^commo <hcmo> ^compo <hcpo> ^com <gy> ^layer <lay>)
5185 (modify 4 ^max <como> ^max-net <nn>)
5186 (make horizontal ^net-name <nn> ^max <gx> ^min <como> ^layer <lay> ^commo <hcmo> ^compo <hcpo> ^pin-name <pn> ^com <gy>)
5187 (modify 3 ^grid-x <como> ^can-chng-layer nil)
5188 (remove 2)
5189 )
5190
5191 (p p448
5192 (context ^present extend-total-verti)
5193 { <c2> (total-verti <nn> bottom ^5 1) }
5194 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5195 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> > <gy> } ^com { <vcom> < <gx> } ^layer <lay> ^pin-name <pn>) }
5196 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5197 - (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmin>)
5198 { <c6> (vertical ^net-name nil ^min <vvmin> ^max { <vmin> > <vvmin> } ^com <vcom> ^layer <lay> ^compo <garb1> ^commo <garb2>) }
5199 (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { > <hmin> >= <gx> } ^com { <hcom> >= <vvmin> < <vmin> })
5200 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <gx> ^com { >= <vvmin> < <hcom> })
5201 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <vcom> < <gx> })
5202 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin> > <hcom> })
5203 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5204 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5205 -->
5206 (modify <c6> ^max <hcom> ^max-net <nn>)
5207 (modify <c4> ^min <hcom>)
5208 (make pull-ff north <nn> <gx> <gy> <gx> <hcom>)
5209 (make ff ^net-name <nn> ^pin-name <pn> ^grid-layer <lay> ^grid-x <vcom> ^grid-y <hcom> ^came-from north)
5210 (modify 1 ^present find-no-of-pins-on-a-row-col)
5211 )
5212
5213 (p p449
5214 (context ^present extend-total-verti)
5215 { <c2> (total-verti <nn> bottom ^5 1) }
5216 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5217 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> > <gy> } ^com { <vcom> < <gx> } ^layer <lay> ^pin-name <pn>) }
5218 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5219 { <c5> (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmin> ^grid-layer <garb1> ^pin-name <garb2>) }
5220 { <c7> (vertical ^net-name nil ^min <vvmin> ^max { <vmin> > <vvmin> } ^com <vcom> ^layer <lay> ^compo <garb3> ^commo <garb4>) }
5221 (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { > <hmin> >= <gx> } ^com { <hcom> >= <vvmin> < <vmin> })
5222 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <gx> ^com { >= <vvmin> < <hcom> })
5223 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <vcom> < <gx> })
5224 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin> > <hcom> })
5225 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5226 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5227 -->
5228 (modify <c7> ^max <hcom> ^max-net <nn>)
5229 (modify <c4> ^min <hcom>)
5230 (make pull-ff north <nn> <gx> <gy> <gx> <hcom>)
5231 (modify <c5> ^grid-y <hcom> ^grid-layer <lay>)
5232 (modify 1 ^present find-no-of-pins-on-a-row-col)
5233 )
5234
5235 (p p450
5236 (context ^present extend-total-verti)
5237 { <c2> (total-verti <nn> bottom ^5 1) }
5238 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5239 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> > <gy> } ^com { <vcom> < <gx> } ^layer <lay> ^pin-name <pn>) }
5240 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5241 { <c6> (vertical ^net-name nil ^min <vvmin> ^max { <vmin> > <vvmin> } ^com <vcom> ^layer <lay> ^compo <garb1> ^commo <garb2>) }
5242 (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { > <hmin> >= <gx> } ^com { <hcom> >= <vvmin> < <vmin> })
5243 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <gx> ^com { >= <vvmin> < <hcom> })
5244 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <vcom> < <gx> })
5245 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin> > <hcom> })
5246 { <c41> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin1> > <gy> } ^com { <vcom1> > <gx> } ^layer <lay> ^pin-name <pn1>) }
5247 - (vertical-s ^net-name <> <nn> ^com <vcom1>)
5248 { <c61> (vertical ^net-name nil ^min <vvmin1> ^max { <vmin1> > <vvmin1> } ^com <vcom1> ^layer <lay>) }
5249 (horizontal ^net-name nil ^min { <hmin1> <= <gx> } ^max { > <hmin1> >= <vcom1> } ^com { <hcom1> >= <vvmin1> < <vmin1> <= <hcom> })
5250 - (horizontal ^net-name nil ^min <= <gx> ^max >= <vcom1> ^com { >= <vvmin1> < <hcom1> })
5251 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <gx> < <vcom1> })
5252 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin1> > <hcom1> })
5253 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom1> ^max >= <vcom1> ^com <hcom1> ^layer <lay>)
5254 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom1> ^max >= <hcom1> ^com <vcom> ^layer <lay>)
5255 -->
5256 (modify <c61> ^max <hcom1> ^max-net <nn>)
5257 (modify <c41> ^min <hcom1>)
5258 (make pull-ff north <nn> <gx> <gy> <gx> <hcom1>)
5259 (make ff ^net-name <nn> ^pin-name <pn1> ^grid-layer <lay> ^grid-x <vcom1> ^grid-y <hcom1> ^came-from north)
5260 (modify 1 ^present find-no-of-pins-on-a-row-col)
5261 )
5262
5263 (p p451
5264 (context ^present extend-total-verti)
5265 { <c2> (total-verti <nn> bottom ^5 1) }
5266 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5267 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> > <gy> } ^com { <vcom> > <gx> } ^layer <lay> ^pin-name <pn>) }
5268 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5269 - (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmin>)
5270 { <c6> (vertical ^net-name nil ^min <vvmin> ^max { <vmin> > <vvmin> } ^com <vcom> ^layer <lay>) }
5271 (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { > <hmin> >= <vcom> } ^com { <hcom> >= <vvmin> < <vmin> })
5272 - (horizontal ^net-name nil ^min <= <gx> ^max >= <vcom> ^com { >= <vvmin> < <hcom> })
5273 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <gx> < <vcom> })
5274 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin> > <hcom> })
5275 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5276 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5277 -->
5278 (modify <c6> ^max <hcom> ^max-net <nn>)
5279 (modify <c4> ^min <hcom>)
5280 (make pull-ff north <nn> <gx> <gy> <gx> <hcom>)
5281 (make ff ^net-name <nn> ^pin-name <pn> ^grid-layer <lay> ^grid-x <vcom> ^grid-y <hcom> ^came-from north)
5282 (modify 1 ^present find-no-of-pins-on-a-row-col)
5283 )
5284
5285 (p p452
5286 (context ^present extend-total-verti)
5287 { <c2> (total-verti <nn> bottom ^5 1) }
5288 (ff ^came-from south ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5289 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min { <vmin> > <gy> } ^com { <vcom> > <gx> } ^layer <lay> ^pin-name <pn>) }
5290 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5291 { <c5> (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmin> ^grid-layer <garb1> ^pin-name <garb2>) }
5292 { <c7> (vertical ^net-name nil ^min <vvmin> ^max { <vmin> > <vvmin> } ^com <vcom> ^layer <lay>) }
5293 (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { > <hmin> >= <vcom> } ^com { <hcom> >= <vvmin> < <vmin> })
5294 - (horizontal ^net-name nil ^min <= <gx> ^max >= <vcom> ^com { >= <vvmin> < <hcom> })
5295 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <gx> < <vcom> })
5296 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { < <vmin> > <hcom> })
5297 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5298 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5299 -->
5300 (modify <c7> ^max <hcom> ^max-net <nn>)
5301 (modify <c4> ^min <hcom>)
5302 (make pull-ff north <nn> <gx> <gy> <gx> <hcom>)
5303 (modify <c5> ^grid-y <hcom> ^grid-layer <lay>)
5304 (modify 1 ^present find-no-of-pins-on-a-row-col)
5305 )
5306
5307 (p p453
5308 (context ^present extend-total-verti)
5309 { <c2> (total-verti <nn> top ^5 1) }
5310 (ff ^came-from north ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5311 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max { <vmax> < <gy> } ^com { <vcom> > <gx> } ^layer <lay> ^compo <garb2> ^commo <garb3> ^pin-name <pn>) }
5312 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5313 - (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmax>)
5314 { <c6> (vertical ^net-name nil ^min <vmax> ^max { <vvmax> > <vmax> } ^com <vcom> ^layer <lay> ^compo <garb4> ^commo <garb5>) }
5315 (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { > <hmin> >= <vcom> } ^com { <hcom> <= <vvmax> > <vmax> })
5316 - (horizontal ^net-name nil ^min <= <gx> ^max >= <vcom> ^com { <= <vvmax> > <hcom> })
5317 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <gx> < <vcom> })
5318 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { > <vmax> < <hcom> })
5319 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5320 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5321 -->
5322 (modify <c6> ^min <hcom> ^min-net <nn>)
5323 (modify <c4> ^max <hcom>)
5324 (make pull-ff south <nn> <gx> <gy> <gx> <hcom>)
5325 (make ff ^net-name <nn> ^pin-name <pn> ^grid-layer <lay> ^grid-x <vcom> ^grid-y <hcom> ^came-from south)
5326 (modify 1 ^present find-no-of-pins-on-a-row-col)
5327 )
5328
5329 (p p454
5330 (context ^present extend-total-verti)
5331 { <c2> (total-verti <nn> top ^5 1) }
5332 (ff ^came-from north ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5333 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max { <vmax> < <gy> } ^com { <vcom> > <gx> } ^layer <lay> ^pin-name <pn>) }
5334 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5335 { <c5> (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmax> ^grid-layer <garb2> ^pin-name <garb3>) }
5336 { <c7> (vertical ^net-name nil ^min <vmax> ^max { <vvmax> > <vmax> } ^com <vcom> ^layer <lay> ^compo <garb4> ^commo <garb5>) }
5337 (horizontal ^net-name nil ^min { <hmin> <= <gx> } ^max { > <hmin> >= <vcom> } ^com { <hcom> <= <vvmax> > <vmax> })
5338 - (horizontal ^net-name nil ^min <= <gx> ^max >= <vcom> ^com { <= <vvmax> > <hcom> })
5339 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <gx> < <vcom> })
5340 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { > <vmax> < <hcom> })
5341 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5342 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5343 -->
5344 (modify <c7> ^min <hcom> ^min-net <nn>)
5345 (modify <c4> ^max <hcom>)
5346 (make pull-ff south <nn> <gx> <gy> <gx> <hcom>)
5347 (modify <c5> ^grid-y <hcom> ^grid-layer <lay>)
5348 (modify 1 ^present find-no-of-pins-on-a-row-col)
5349 )
5350
5351 (p p455
5352 (context ^present extend-total-verti)
5353 { <c2> (total-verti <nn> top ^5 1) }
5354 (ff ^came-from north ^net-name <nn> ^grid-x <gx> ^grid-y <gy>)
5355 { <c4> (vertical ^status nil ^net-name { <nn> <> nil } ^min <garb1> ^max { <vmax> < <gy> } ^com { <vcom> < <gx> } ^layer <lay> ^compo <garb2> ^commo <garb3> ^pin-name <pn>) }
5356 - (vertical-s ^net-name <> <nn> ^com <vcom>)
5357 - (ff ^net-name <nn> ^grid-x <vcom> ^grid-y <vmax>)
5358 { <c6> (vertical ^net-name nil ^min <vmax> ^max { <vvmax> > <vmax> } ^com <vcom> ^layer <lay> ^compo <garb4> ^commo <garb5>) }
5359 (horizontal ^net-name nil ^min { <hmin> <= <vcom> } ^max { > <hmin> >= <gx> } ^com { <hcom> <= <vvmax> > <vmax> })
5360 - (horizontal ^net-name nil ^min <= <vcom> ^max >= <gx> ^com { <= <vvmax> > <hcom> })
5361 - (vertical ^status nil ^net-name { <nn> <> nil } ^com { > <vcom> < <gx> })
5362 - (horizontal ^status nil ^net-name { <nn> <> nil } ^com { > <vmax> < <hcom> })
5363 - (horizontal ^status nil ^net-name { <> <nn> <> nil } ^min <= <vcom> ^max >= <vcom> ^com <hcom> ^layer <lay>)
5364 - (vertical ^status nil ^net-name { <> <nn> <> nil } ^min <= <hcom> ^max >= <hcom> ^com <vcom> ^layer <lay>)
5365 -->
5366 (modify <c6> ^min <hcom> ^min-net <nn>)
5367 (modify <c4> ^max <hcom>)
5368