1AP(5)                            FILE FORMATS                            AP(5)
2
3
4

NAME

6       ap - Alliance physical format
7

BNF DESCRIPTION

9       file ::=
10          version
11          header
12          connectors
13          segments
14          instances
15          transistors
16          patterns
17          end_of_file
18
19       version ::= 'V ALLIANCE 2.2 SETUP : ' version_number
20
21       header ::= 'H ' name ',' file_type ',' abindex ',' nb_desc
22                  ',' date ',' index_beg ',' link_mode ','
23                  bounding_box ',' [ abutment_box ]
24          /* name         : name of the figure                   */
25          /* file_type    : type of the file                     */
26          /* abindex      : index of the abutment box            */
27          /* nb_desc      : number of descriptors                */
28          /* date         : saving file date                     */
29          /* index_beg    : index of the beginning of the linkage */
30          /* link_mode    : indication on the linkage            */
31          /*                (update or not)                      */
32          /* bounding_box : coordinates and size of the          */
33          /*                bounding box                         */
34          /* abutment_box : coordinates and size, if defined,    */
35          /*                of the abutment box                  */
36
37       connectors ::= { connector }
38
39       connector ::= 'C ' index ',' x ',' y ',' w ',' orientation
40                     ',' layer ',' name ',' connector_type ','
41                     nextindex ',' endnet
42          /* x, y, w  : coordinates and size of the connector    */
43          /* orientation    : north, south, east, or west        */
44          /* layer          : layer of the connector             */
45          /* name           : name of the connector              */
46          /* connector_type : input or output or ...             */
47          /* nextindex      : next index in the linkage          */
48          /* endnet         : end in the linkage of the net      */
49
50       segments ::= { segment }
51
52       segment ::= 'S ' index ',' x ',' y ',' d ',' w ',' direction
53                   ',' layer ',' name ',' nextindex ',' endnet
54          /* x, y, d, w    : coordinates and size of the segment */
55          /* direction     : horizontaly or verticaly            */
56          /* layer         : layer of the segment                */
57          /* name          : name of the segment                 */
58          /* nextindex     : next index in the linkage           */
59          /* endnet        : end in the linkage of the net       */
60
61       instances ::= { instance [ connectors ] }
62          /* In case of updated linkage, an instance is followed */
63          /* by his connectors                                   */
64
65       instance ::= 'I ' index ',' x ',' y ',' instance_name ','
66                    model_name ',' geoop ',' nextindex ',' endnet
67          /* x, y           : coordinates of the instance        */
68          /* instance_name  : local name of the instance         */
69          /* model_name     : name of the model                  */
70          /* geoop          : geometric operation                */
71          /* nextindex      : next index in the linkage          */
72          /* endnet         : end in the linkage of the net      */
73
74       transistors ::= { transistor }
75
76       transistor ::= 'T ' index ',' x ',' y ',' instance_name ','
77                      trans_name ',' geoop ',' nextindex ',' endnet
78          /* x, y           : coordinates of the transistor      */
79          /* instance_name  : name of the instance               */
80          /* trans_name     : generic name of the transistor     */
81          /* geoop          : geometric operation                */
82          /* nextindex      : next index in the linkage          */
83          /* endnet         : end in the linkage of the net      */
84
85       patterns ::= { pattern }
86
87       pattern ::= 'M ' index ',' x ',' y ',' instance_name ','
88                   pattern_name ',' int_index ',' nextindex ','
89                   endnet
90          /* x, y          : coordinates of the pattern          */
91          /* instance_name : name of the instance of the pattern */
92          /* pattern_name  : name of the pattern                 */
93          /* int_index     : internal index of the pattern       */
94          /* nextindex     : next index in the linkage           */
95          /* endnet        : end in the linkage of the net       */
96
97       end_of_file ::= 'EOF'
98
99       version_number ::= number
100
101       file_type ::= 'P'
102
103       abindex ::= index
104
105       nb_desc ::= number
106
107       date ::= day '/' month '/' year
108
109       index_beg ::= index
110
111       index ::= number
112
113       link_mode ::= 'A JOUR' | 'PAS A JOUR'
114          /* updated, not updated */
115
116       bounding_box ::= x ',' y ',' dx ',' dy
117
118       abutment_box ::= x ',' y ',' dx ',' dy
119
120       x ::= number
121
122       y ::= number
123
124       d ::= number
125          /* length */
126
127       w ::= number
128          /* width */
129
130       dx ::= number
131
132       dy ::= number
133
134       direction ::= 'H' | 'V'
135          /* horizontaly or verticaly */
136
137       orientation ::= 'NORD' | 'SUD' | 'EST' | 'OUEST'
138          /* North, south, east, west */
139
140       layer ::= 'POLY' | 'ALU1' | 'ALU2' | 'DIFN' | 'DIFP' |
141                 'T_ALU1' | 'T_ALU2' | 'CAISSON_N' | 'CAISSON_P'
142          /* poly       : polysilicium                           */
143          /* alu1       : first metal                            */
144          /* alu2       : second metal                           */
145          /* difn       : N diffusion                            */
146          /* difp       : P diffusion                            */
147          /* t_alu1     : first metal through route              */
148          /* t_alu2     : second metal through route             */
149          /* caisson_n  : N bulk                                 */
150          /* caisson_p  : P bulk                                 */
151
152       connector_type ::= 'IN' | 'OUT' | 'INOUT'
153
154       nextindex ::= index
155
156       endnet ::= 'NON' | 'FIN'
157          /* non        : not the end of the net                 */
158          /* fin        : end of the net                         */
159
160       model_name ::= name
161
162       instance_name ::= name
163
164       geoop ::= 'NOSYM' | 'ROT_P' | 'ROT_M' | 'SYM_X' | 'SYM_Y' |
165                 'SYMXY' | 'SY_RP' | 'SY_RM'
166          /* nosym  : no operation                               */
167          /* rot_p  : rotates 90 degrees counter clockwise       */
168          /* rot_m  : rotates 90 degrees clockwise               */
169          /* sym_y  : y becomes -y                               */
170          /* sym_x  : x becomes -x                               */
171          /* symxy  : x becomes -x and y becomes -y              */
172          /* sy_rp  : y becomes -y then rotates 90 degrees       */
173          /*          counter clockwise                          */
174          /* sy_rm  : y becomes -y then rotates 90 degrees       */
175          /*          clockwise                                  */
176
177       trans_name ::= 'T' transistor_type '_' d '_' w
178
179       pattern_name ::= 'CONT_POLY' | 'CONT_DIF_N' | 'CONT_DIF_P' |
180                        'CONT_VIA' | 'C_X_N' | 'C_X_P' | 'REF_CON'
181                        | 'REF_REF'
182          /* cont_poly  : poly alu1 contact                      */
183          /* cont_dif_n : alu1 difn contact                      */
184          /* cont_dif_p : alu1 difp contact                      */
185          /* cont_via   : alu2 alu1 contact                      */
186          /* c_x_n      : L shaped N transistor corner filling   */
187          /* c_x_p      : L shaped P transistor corner filling   */
188          /* ref_con    : kind of reference, for multi-acces     */
189          /*              connectors                             */
190          /* ref_ref    : kind of reference, for all other uses  */
191
192       int_index ::= index
193
194       transistor_type ::= 'P' | 'N'
195
196       number ::= { '0' | '1'| '2' | '3' | '4' | '5' |
197                    '6' | '7'| '8' | '9' }
198
199       name ::= word
200

EXAMPLES

202   Example 1
203       This example is the physical design of a nand with two input. See exam‐
204       ple 1 in the description of alc logical format for more details.
205
206       V ALLIANCE 2.2 SETUP : 2
207       H na2_y,P,10,66,25/10/91,-1,PAS A JOUR,0,0,28,53,5,3,18,42
208       C 0,20,45,2,NORD,ALU2,i0,INOUT,-1,FIN
209       C 1,14,45,2,NORD,ALU2,f,INOUT,-1,FIN
210       C 2,8,45,2,NORD,ALU2,i1,INOUT,-1,FIN
211       C 3,20,3,2,SUD,ALU2,i0,INOUT,-1,FIN
212       C 4,14,3,2,SUD,ALU2,f,INOUT,-1,FIN
213       C 5,8,3,2,SUD,ALU2,i1,INOUT,-1,FIN
214       C 6,23,43,8,EST,ALU1,vdd,INOUT,-1,FIN
215       C 7,5,43,8,OUEST,ALU1,vdd,INOUT,-1,FIN
216       C 8,5,5,8,OUEST,ALU1,vss,INOUT,-1,FIN
217       C 9,23,5,8,EST,ALU1,vss,INOUT,-1,FIN
218       S 11,5,5,18,8,H,ALU1,vss,-1,FIN
219       S 12,8,2,12,2,H,DIFP,*,-1,FIN
220       S 13,8,27,11,3,V,DIFP,*,-1,FIN
221       S 14,20,27,11,3,V,DIFP,*,-1,FIN
222       S 15,20,22,6,2,V,ALU1,*,-1,FIN
223       S 16,19,22,1,2,H,ALU1,*,-1,FIN
224       S 17,5,43,18,8,H,ALU1,vdd,-1,FIN
225       S 18,8,33,10,2,V,ALU1,vdd,-1,FIN
226       S 19,8,22,6,2,V,ALU1,*,-1,FIN
227       S 20,8,22,1,2,H,ALU1,*,-1,FIN
228       S 21,14,30,5,2,V,ALU1,*,-1,FIN
229       S 22,14,13,17,1,V,ALU1,*,-1,FIN
230       S 23,14,13,6,1,H,ALU1,*,-1,FIN
231       S 24,17,22,2,2,H,POLY,*,-1,FIN
232       S 25,17,20,5,1,V,POLY,*,-1,FIN
233       S 26,9,22,2,2,H,POLY,*,-1,FIN
234       S 27,11,20,5,1,V,POLY,*,-1,FIN
235       S 28,8,45,12,2,H,DIFN,*,-1,FIN
236       S 29,5,39,18,26,H,CAISSON_N,*,-1,FIN
237       S 30,8,7,11,3,V,DIFN,*,-1,FIN
238       S 31,8,3,42,2,V,ALU2,i1,-1,FIN
239       S 32,14,3,42,2,V,ALU2,f,-1,FIN
240       S 33,14,27,11,3,V,DIFP,*,-1,FIN
241       S 34,20,7,11,3,V,DIFN,*,-1,FIN
242       S 35,14,7,11,3,V,DIFN,*,-1,FIN
243       S 36,20,3,42,2,V,ALU2,i0,-1,FIN
244       T 37,17,5,*,TN_15_1,NOSYM,-1,FIN
245       T 38,11,5,*,TN_15_1,NOSYM,-1,FIN
246       T 39,17,25,*,TP_15_1,NOSYM,-1,FIN
247       T 40,11,25,*,TP_15_1,NOSYM,-1,FIN
248       S 41,20,43,2,1,V,ALU1,vdd,-1,FIN
249       S 42,8,45,12,1,H,ALU1,vdd,-1,FIN
250       S 43,20,33,10,2,V,ALU1,vdd,-1,FIN
251       S 44,8,2,11,2,V,ALU1,vss,-1,FIN
252       S 45,8,2,12,2,H,ALU1,vss,-1,FIN
253       M 46,20,37,*,CONT_DIF_P,2,-1,FIN
254       M 47,8,37,*,CONT_DIF_P,2,-1,FIN
255       M 48,14,45,*,CONT_DIF_N,1,-1,FIN
256       M 49,14,2,*,CONT_DIF_P,2,-1,FIN
257       M 50,8,13,*,CONT_DIF_N,1,-1,FIN
258       M 51,20,13,*,CONT_DIF_N,1,-1,FIN
259       M 52,8,33,*,CONT_DIF_P,2,-1,FIN
260       M 53,20,33,*,CONT_DIF_P,2,-1,FIN
261       M 54,9,22,*,CONT_POLY,0,-1,FIN
262       M 55,19,22,*,CONT_POLY,0,-1,FIN
263       M 56,8,28,*,CONT_VIA,3,-1,FIN
264       M 57,20,28,*,CONT_VIA,3,-1,FIN
265       M 58,14,22,*,CONT_VIA,3,-1,FIN
266       M 59,8,8,*,CONT_DIF_N,1,-1,FIN
267       M 60,20,2,*,CONT_DIF_P,2,-1,FIN
268       M 61,8,2,*,CONT_DIF_P,2,-1,FIN
269       M 62,20,45,*,CONT_DIF_N,1,-1,FIN
270       M 63,8,45,*,CONT_DIF_N,1,-1,FIN
271       M 64,14,29,*,CONT_DIF_P,2,-1,FIN
272       M 65,14,35,*,CONT_DIF_P,2,-1,FIN
273       EOF
274
275   Example 2
276       This example is the physical design of a small circuit including  three
277       nand.
278
279       V ALLIANCE 2.2 SETUP : 2
280       H test_nand,P,-1,57,12/ 4/92,10,A JOUR,3,1,61,60,
281       C 0,12,2,2,SUD,ALU2,a,IN,8,FIN
282       C 1,24,2,2,SUD,ALU2,b,IN,21,FIN
283       C 2,30,2,2,SUD,ALU2,c,IN,19,FIN
284       C 3,42,2,2,SUD,ALU2,d,IN,31,FIN
285       C 4,54,2,2,SUD,ALU2,s,OUT,36,FIN
286       C 5,4,47,1,EST,ALU1,vdd,IN,39,FIN
287       C 6,4,8,1,EST,ALU1,vss,IN,7,FIN
288       I 7,9,7,I1,na2_y,NOSYM,33,FIN
289       C 8,24,49,2,NORD,ALU2,i0,INOUT,11,NON
290       C 9,18,49,2,NORD,ALU2,f,INOUT,18,FIN
291       C 10,12,49,2,NORD,ALU2,i1,INOUT,13,NON
292       C 11,24,7,2,SUD,ALU2,i0,INOUT,41,NON
293       C 12,18,7,2,SUD,ALU2,f,INOUT,9,NON
294       C 13,12,7,2,SUD,ALU2,i1,INOUT,40,NON
295       C 14,27,47,8,EST,ALU1,vdd,INOUT,15,NON
296       C 15,9,47,8,OUEST,ALU1,vdd,INOUT,46,NON
297       C 16,9,9,8,OUEST,ALU1,vss,INOUT,45,NON
298       C 17,27,9,8,EST,ALU1,vss,INOUT,16,NON
299       I 18,27,7,I2,na2_y,NOSYM,35,FIN
300       C 19,42,49,2,NORD,ALU2,i0,INOUT,22,NON
301       C 20,36,49,2,NORD,ALU2,f,INOUT,29,FIN
302       C 21,30,49,2,NORD,ALU2,i1,INOUT,24,NON
303       C 22,42,7,2,SUD,ALU2,i0,INOUT,43,NON
304       C 23,36,7,2,SUD,ALU2,f,INOUT,20,NON
305       C 24,30,7,2,SUD,ALU2,i1,INOUT,42,NON
306       C 25,45,47,8,EST,ALU1,vdd,INOUT,26,NON
307       C 26,27,47,8,OUEST,ALU1,vdd,INOUT,14,NON
308       C 27,27,9,8,OUEST,ALU1,vss,INOUT,17,NON
309       C 28,45,9,8,EST,ALU1,vss,INOUT,27,NON
310       I 29,45,7,I3,na2_y,NOSYM,-1,FIN
311       C 30,60,49,2,NORD,ALU2,i0,INOUT,52,NON
312       C 31,54,49,2,NORD,ALU2,f,INOUT,34,NON
313       C 32,48,49,2,NORD,ALU2,i1,INOUT,51,NON
314       C 33,60,7,2,SUD,ALU2,i0,INOUT,30,NON
315       C 34,54,7,2,SUD,ALU2,f,INOUT,44,NON
316       C 35,48,7,2,SUD,ALU2,i1,INOUT,32,NON
317       C 36,63,47,8,EST,ALU1,vdd,INOUT,37,NON
318       C 37,45,47,8,OUEST,ALU1,vdd,INOUT,25,NON
319       C 38,45,9,8,OUEST,ALU1,vss,INOUT,28,NON
320       C 39,63,9,8,EST,ALU1,vss,INOUT,38,NON
321       S 40,12,2,5,2,V,ALU2,*,0,NON
322       S 41,24,2,5,2,V,ALU2,*,1,NON
323       S 42,30,2,5,2,V,ALU2,*,2,NON
324       S 43,42,2,5,2,V,ALU2,*,3,NON
325       S 44,54,2,5,2,V,ALU2,*,4,NON
326       S 45,4,8,5,1,H,ALU1,*,6,NON
327       S 46,4,47,5,1,H,ALU1,*,5,NON
328       S 47,18,55,42,1,H,ALU1,x,53,NON
329       S 48,36,60,12,1,H,ALU1,y,54,NON
330       S 49,18,49,6,2,V,ALU2,*,12,NON
331       S 50,36,49,11,2,V,ALU2,*,23,NON
332       S 51,48,49,11,2,V,ALU2,*,55,NON
333       S 52,60,49,6,2,V,ALU2,*,56,NON
334       M 53,18,55,*,CONT_VIA,3,49,NON
335       M 54,36,60,*,CONT_VIA,3,50,NON
336       M 55,48,60,*,CONT_VIA,3,48,NON
337       M 56,60,55,*,CONT_VIA,3,47,NON
338       EOF
339
340
341
342
343
344ASIM/LIP6                       October 1, 1997                          AP(5)
Impressum