Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AP(5)				 FILE FORMATS				 AP(5)

NAME
       ap - Alliance physical format

BNF DESCRIPTION
       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

EXAMPLES
   Example 1
       This example is the physical design of a	nand with two input. See exam-
       ple 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

   Example 2
       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

ASIM/LIP6			October	1, 1997				 AP(5)

NAME | BNF DESCRIPTION | EXAMPLES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ap&sektion=5&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help