AP(5) | FILE FORMATS | AP(5) |
ap - Alliance physical format
See the file buster/alliance/alc_origin.1.en.gz.
file ::=
version
header
connectors
segments
instances
transistors
patterns
end_of_file
version ::= 'V ALLIANCE 2.2 SETUP : ' version_number
header ::= 'H ' name ',' file_type ',' abindex ',' nb_desc
',' date ',' index_beg ',' link_mode ','
bounding_box ',' [ abutment_box ]
/* name : name of the figure */
/* file_type : type of the file */
/* abindex : index of the abutment box */
/* nb_desc : number of descriptors */
/* date : saving file date */
/* index_beg : index of the begining of the linkage */
/* link_mode : indication on the linkage */
/* (update or not) */
/* bounding_box : coordinates and size of the */
/* bounding box */
/* abutment_box : coordinates and size, if defined, */
/* of the abutment box */
connectors ::= { connector }
connector ::= 'C ' index ',' x ',' y ',' w ',' orientation
',' layer ',' name ',' connector_type ','
nextindex ',' endnet
/* x, y, w : coordinates and size of the connector */
/* orientation : north, south, east, or west */
/* layer : layer of the connector */
/* name : name of the connector */
/* connector_type : input or output or ... */
/* nextindex : next index in the linkage */
/* endnet : end in the linkage of the net */
segments ::= { segment }
segment ::= 'S ' index ',' x ',' y ',' d ',' w ',' direction
',' layer ',' name ',' nextindex ',' endnet
/* x, y, d, w : coordinates and size of the segment */
/* direction : horizontaly or verticaly */
/* layer : layer of the segment */
/* name : name of the segment */
/* nextindex : next index in the linkage */
/* endnet : end in the linkage of the net */
instances ::= { instance [ connectors ] }
/* In case of updated linkage, an instance is followed */
/* by his connectors */
instance ::= 'I ' index ',' x ',' y ',' instance_name ','
model_name ',' geoop ',' nextindex ',' endnet
/* x, y : coordinates of the instance */
/* instance_name : local name of the instance */
/* model_name : name of the model */
/* geoop : geometric operation */
/* nextindex : next index in the linkage */
/* endnet : end in the linkage of the net */
transistors ::= { transistor }
transistor ::= 'T ' index ',' x ',' y ',' instance_name ','
trans_name ',' geoop ',' nextindex ',' endnet
/* x, y : coordinates of the transistor */
/* instance_name : name of the instance */
/* trans_name : generic name of the transistor */
/* geoop : geometric operation */
/* nextindex : next index in the linkage */
/* endnet : end in the linkage of the net */
patterns ::= { pattern }
pattern ::= 'M ' index ',' x ',' y ',' instance_name ','
pattern_name ',' int_index ',' nextindex ','
endnet
/* x, y : coordinates of the pattern */
/* instance_name : name of the instance of the pattern */
/* pattern_name : name of the pattern */
/* int_index : internal index of the pattern */
/* nextindex : next index in the linkage */
/* endnet : end in the linkage of the net */
end_of_file ::= 'EOF'
version_number ::= number
file_type ::= 'P'
abindex ::= index
nb_desc ::= number
date ::= day '/' month '/' year
index_beg ::= index
index ::= number
link_mode ::= 'A JOUR' | 'PAS A JOUR'
/* updated, not updated */
bounding_box ::= x ',' y ',' dx ',' dy
abutment_box ::= x ',' y ',' dx ',' dy
x ::= number
y ::= number
d ::= number
/* lenght */
w ::= number
/* width */
dx ::= number
dy ::= number
direction ::= 'H' | 'V'
/* horizontaly or verticaly */
orientation ::= 'NORD' | 'SUD' | 'EST' | 'OUEST'
/* North, south, east, west */
layer ::= 'POLY' | 'ALU1' | 'ALU2' | 'DIFN' | 'DIFP' |
'T_ALU1' | 'T_ALU2' | 'CAISSON_N' | 'CAISSON_P'
/* poly : polysilicium */
/* alu1 : first metal */
/* alu2 : second metal */
/* difn : N diffusion */
/* difp : P diffusion */
/* t_alu1 : first metal through route */
/* t_alu2 : second metal through route */
/* caisson_n : N bulk */
/* caisson_p : P bulk */
connector_type ::= 'IN' | 'OUT' | 'INOUT'
nextindex ::= index
endnet ::= 'NON' | 'FIN'
/* non : not the end of the net */
/* fin : end of the net */
model_name ::= name
instance_name ::= name
geoop ::= 'NOSYM' | 'ROT_P' | 'ROT_M' | 'SYM_X' | 'SYM_Y' |
'SYMXY' | 'SY_RP' | 'SY_RM'
/* nosym : no operation */
/* rot_p : rotates 90 degrees counter clockwise */
/* rot_m : rotates 90 degrees clockwise */
/* sym_y : y becomes -y */
/* sym_x : x becomes -x */
/* symxy : x becomes -x and y becomes -y */
/* sy_rp : y becomes -y then rotates 90 degrees */
/* counter clockwise */
/* sy_rm : y becomes -y then rotates 90 degrees */
/* clockwise */
trans_name ::= 'T' transistor_type '_' d '_' w
pattern_name ::= 'CONT_POLY' | 'CONT_DIF_N' | 'CONT_DIF_P' |
'CONT_VIA' | 'C_X_N' | 'C_X_P' | 'REF_CON'
| 'REF_REF'
/* cont_poly : poly alu1 contact */
/* cont_dif_n : alu1 difn contact */
/* cont_dif_p : alu1 difp contact */
/* cont_via : alu2 alu1 contact */
/* c_x_n : L shaped N transistor corner filling */
/* c_x_p : L shaped P transistor corner filling */
/* ref_con : kind of reference, for multi-acces */
/* connectors */
/* ref_ref : kind of reference, for all other uses */
int_index ::= index
transistor_type ::= 'P' | 'N'
number ::= { '0' | '1'| '2' | '3' | '4' | '5' |
'6' | '7'| '8' | '9' }
name ::= word
This example is the physical design of a nand with two input. See example 1 in the description of alc logical format for more details.
V ALLIANCE 2.2 SETUP : 2 H na2_y,P,10,66,25/10/91,-1,PAS A JOUR,0,0,28,53,5,3,18,42 C 0,20,45,2,NORD,ALU2,i0,INOUT,-1,FIN C 1,14,45,2,NORD,ALU2,f,INOUT,-1,FIN C 2,8,45,2,NORD,ALU2,i1,INOUT,-1,FIN C 3,20,3,2,SUD,ALU2,i0,INOUT,-1,FIN C 4,14,3,2,SUD,ALU2,f,INOUT,-1,FIN C 5,8,3,2,SUD,ALU2,i1,INOUT,-1,FIN C 6,23,43,8,EST,ALU1,vdd,INOUT,-1,FIN C 7,5,43,8,OUEST,ALU1,vdd,INOUT,-1,FIN C 8,5,5,8,OUEST,ALU1,vss,INOUT,-1,FIN C 9,23,5,8,EST,ALU1,vss,INOUT,-1,FIN S 11,5,5,18,8,H,ALU1,vss,-1,FIN S 12,8,2,12,2,H,DIFP,*,-1,FIN S 13,8,27,11,3,V,DIFP,*,-1,FIN S 14,20,27,11,3,V,DIFP,*,-1,FIN S 15,20,22,6,2,V,ALU1,*,-1,FIN S 16,19,22,1,2,H,ALU1,*,-1,FIN S 17,5,43,18,8,H,ALU1,vdd,-1,FIN S 18,8,33,10,2,V,ALU1,vdd,-1,FIN S 19,8,22,6,2,V,ALU1,*,-1,FIN S 20,8,22,1,2,H,ALU1,*,-1,FIN S 21,14,30,5,2,V,ALU1,*,-1,FIN S 22,14,13,17,1,V,ALU1,*,-1,FIN S 23,14,13,6,1,H,ALU1,*,-1,FIN S 24,17,22,2,2,H,POLY,*,-1,FIN S 25,17,20,5,1,V,POLY,*,-1,FIN S 26,9,22,2,2,H,POLY,*,-1,FIN S 27,11,20,5,1,V,POLY,*,-1,FIN S 28,8,45,12,2,H,DIFN,*,-1,FIN S 29,5,39,18,26,H,CAISSON_N,*,-1,FIN S 30,8,7,11,3,V,DIFN,*,-1,FIN S 31,8,3,42,2,V,ALU2,i1,-1,FIN S 32,14,3,42,2,V,ALU2,f,-1,FIN S 33,14,27,11,3,V,DIFP,*,-1,FIN S 34,20,7,11,3,V,DIFN,*,-1,FIN S 35,14,7,11,3,V,DIFN,*,-1,FIN S 36,20,3,42,2,V,ALU2,i0,-1,FIN T 37,17,5,*,TN_15_1,NOSYM,-1,FIN T 38,11,5,*,TN_15_1,NOSYM,-1,FIN T 39,17,25,*,TP_15_1,NOSYM,-1,FIN T 40,11,25,*,TP_15_1,NOSYM,-1,FIN S 41,20,43,2,1,V,ALU1,vdd,-1,FIN S 42,8,45,12,1,H,ALU1,vdd,-1,FIN S 43,20,33,10,2,V,ALU1,vdd,-1,FIN S 44,8,2,11,2,V,ALU1,vss,-1,FIN S 45,8,2,12,2,H,ALU1,vss,-1,FIN M 46,20,37,*,CONT_DIF_P,2,-1,FIN M 47,8,37,*,CONT_DIF_P,2,-1,FIN M 48,14,45,*,CONT_DIF_N,1,-1,FIN M 49,14,2,*,CONT_DIF_P,2,-1,FIN M 50,8,13,*,CONT_DIF_N,1,-1,FIN M 51,20,13,*,CONT_DIF_N,1,-1,FIN M 52,8,33,*,CONT_DIF_P,2,-1,FIN M 53,20,33,*,CONT_DIF_P,2,-1,FIN M 54,9,22,*,CONT_POLY,0,-1,FIN M 55,19,22,*,CONT_POLY,0,-1,FIN M 56,8,28,*,CONT_VIA,3,-1,FIN M 57,20,28,*,CONT_VIA,3,-1,FIN M 58,14,22,*,CONT_VIA,3,-1,FIN M 59,8,8,*,CONT_DIF_N,1,-1,FIN M 60,20,2,*,CONT_DIF_P,2,-1,FIN M 61,8,2,*,CONT_DIF_P,2,-1,FIN M 62,20,45,*,CONT_DIF_N,1,-1,FIN M 63,8,45,*,CONT_DIF_N,1,-1,FIN M 64,14,29,*,CONT_DIF_P,2,-1,FIN M 65,14,35,*,CONT_DIF_P,2,-1,FIN EOF
This example is the physical design of a small circuit including three nand.
V ALLIANCE 2.2 SETUP : 2 H test_nand,P,-1,57,12/ 4/92,10,A JOUR,3,1,61,60, C 0,12,2,2,SUD,ALU2,a,IN,8,FIN C 1,24,2,2,SUD,ALU2,b,IN,21,FIN C 2,30,2,2,SUD,ALU2,c,IN,19,FIN C 3,42,2,2,SUD,ALU2,d,IN,31,FIN C 4,54,2,2,SUD,ALU2,s,OUT,36,FIN C 5,4,47,1,EST,ALU1,vdd,IN,39,FIN C 6,4,8,1,EST,ALU1,vss,IN,7,FIN I 7,9,7,I1,na2_y,NOSYM,33,FIN C 8,24,49,2,NORD,ALU2,i0,INOUT,11,NON C 9,18,49,2,NORD,ALU2,f,INOUT,18,FIN C 10,12,49,2,NORD,ALU2,i1,INOUT,13,NON C 11,24,7,2,SUD,ALU2,i0,INOUT,41,NON C 12,18,7,2,SUD,ALU2,f,INOUT,9,NON C 13,12,7,2,SUD,ALU2,i1,INOUT,40,NON C 14,27,47,8,EST,ALU1,vdd,INOUT,15,NON C 15,9,47,8,OUEST,ALU1,vdd,INOUT,46,NON C 16,9,9,8,OUEST,ALU1,vss,INOUT,45,NON C 17,27,9,8,EST,ALU1,vss,INOUT,16,NON I 18,27,7,I2,na2_y,NOSYM,35,FIN C 19,42,49,2,NORD,ALU2,i0,INOUT,22,NON C 20,36,49,2,NORD,ALU2,f,INOUT,29,FIN C 21,30,49,2,NORD,ALU2,i1,INOUT,24,NON C 22,42,7,2,SUD,ALU2,i0,INOUT,43,NON C 23,36,7,2,SUD,ALU2,f,INOUT,20,NON C 24,30,7,2,SUD,ALU2,i1,INOUT,42,NON C 25,45,47,8,EST,ALU1,vdd,INOUT,26,NON C 26,27,47,8,OUEST,ALU1,vdd,INOUT,14,NON C 27,27,9,8,OUEST,ALU1,vss,INOUT,17,NON C 28,45,9,8,EST,ALU1,vss,INOUT,27,NON I 29,45,7,I3,na2_y,NOSYM,-1,FIN C 30,60,49,2,NORD,ALU2,i0,INOUT,52,NON C 31,54,49,2,NORD,ALU2,f,INOUT,34,NON C 32,48,49,2,NORD,ALU2,i1,INOUT,51,NON C 33,60,7,2,SUD,ALU2,i0,INOUT,30,NON C 34,54,7,2,SUD,ALU2,f,INOUT,44,NON C 35,48,7,2,SUD,ALU2,i1,INOUT,32,NON C 36,63,47,8,EST,ALU1,vdd,INOUT,37,NON C 37,45,47,8,OUEST,ALU1,vdd,INOUT,25,NON C 38,45,9,8,OUEST,ALU1,vss,INOUT,28,NON C 39,63,9,8,EST,ALU1,vss,INOUT,38,NON S 40,12,2,5,2,V,ALU2,*,0,NON S 41,24,2,5,2,V,ALU2,*,1,NON S 42,30,2,5,2,V,ALU2,*,2,NON S 43,42,2,5,2,V,ALU2,*,3,NON S 44,54,2,5,2,V,ALU2,*,4,NON S 45,4,8,5,1,H,ALU1,*,6,NON S 46,4,47,5,1,H,ALU1,*,5,NON S 47,18,55,42,1,H,ALU1,x,53,NON S 48,36,60,12,1,H,ALU1,y,54,NON S 49,18,49,6,2,V,ALU2,*,12,NON S 50,36,49,11,2,V,ALU2,*,23,NON S 51,48,49,11,2,V,ALU2,*,55,NON S 52,60,49,6,2,V,ALU2,*,56,NON M 53,18,55,*,CONT_VIA,3,49,NON M 54,36,60,*,CONT_VIA,3,50,NON M 55,48,60,*,CONT_VIA,3,48,NON M 56,60,55,*,CONT_VIA,3,47,NON EOF
See the file buster/alliance/alc_bug_report.1.en.gz.
October 1, 1997 | ASIM/LIP6 |