DESCRIPTION
The .al format is the ALLIANCE format for the logical view of a cell. We give below the BNF description of the format :file ::= version header connectors instances transistors signals crosstalk_capacitances end_of_file version ::= 'V ALLIANCE : ' version_number header ::= 'H ' name ',' file_type ',' date /// name : name of the figure /// date : saving file date connectors ::= { connector } connector ::= 'C ' name ',' connector_direction ',' connector_type ',' net_num [list_of_physical_node] list_of_physical_node ::= { ',' node_num } instances ::= { instance connectors } /// An instance is followed by his connectors instance ::= 'I ' model_name ',' instance_name transistors ::= { transistor } transistor ::= 'T' type ',' lenght ',' width ',' drain ',' grid ',' source ',' bulk ',' xs ',' xd ',' ps ',' pd ',' x ',' y [ ',' node_drain ',' node_grid ',' node_source ',' node_bulk ] ',' trname /// drain : number of the net connected to the drain /// grid : number of the net connected to the grid /// source : number of the net connected to the source /// bulk : number of the net connected to the bulk /// xs, xd : To compute respectivly the source and /// drain area /// ps, pd : perimeter of the source and drain /// x, y : coordinate of the transistor in a layout /// node_drain : number of the node connected to the drain /// node_grid : number of the node connected to the grid /// node_source : number of the node connected to the source /// node_bulk : number of the node connected to the bulk signals ::= { signal } signal := sig_index [ { resistance } ] [ { capacitance } ] sig_index ::= 'S ' net_num ',' signal_type [ list_of_signal_name ] list_of_signal_name ::= { ',' signal_name } resistance := 'R ' layer ',' node1 ',' node2 ',' resi ',' capa ',' x ',' y ',' dx ',' dy capacitance := 'Q ' capa /// Each resistance is describe as a resistor beetwen two nodes /// connected to the ground with capacitor with a value of capa/2. /// Capacitance is the entire capacitance of the net to ground. crosstalk_capacitances ::= { crosstalk_capacitance } crosstalk_capacitance ::= K capa ',' sig1 ',' node1 ',' sig2 ',' node2 end_of_file ::= 'EOF' version_number ::= number file_type ::= 'L' date ::= day '/' month '/' year connector_direction ::= 'IN' | 'OUT' | 'INOUT' | 'UNKNOWN' | 'TRISTATE' | 'TRANSCV' /// in : input /// out : output /// inout : input and output /// unknown : no information is available /// tristate : tristate output /// transcv : tristate output and input connector_type ::= 'EXTERNAL' | 'INTERNAL' net_num ::= number node_num ::= number model_name ::= name instance_name ::= name type ::= 'N' | 'P' lenght ::= float width ::= float drain ::= net_num grid ::= net_num source ::= net_num bulk ::= net_num node1 ::= node_num node2 ::= node_num sig1 ::= net_num sig2 ::= net_num xs ::= float xd ::= float ps ::= float pd ::= float x ::= float y ::= float dx ::= float dy ::= float trname :: name layer ::= 'X' | 'PY' | 'A1' | 'A2' | 'CY' | 'CN' | 'CP' | 'CV' | 'CW' | 'CA' | 'RE' signal_type ::= 'EXTERNAL' | 'INTERNAL' capa ::= float resi ::= float signal_name ::= name number ::= { '0' | '1'| '2' | '3' | '4' | '5' | '6' | '7'| '8' | '9' } float ::= number [ '.' number ] name ::= word
EXAMPLES
Example 1
This example is the representation of a nand whith two input, extracted with Lynx at transistor level.
V ALLIANCE : 6 H na2_y,L,29/ 3/99 C vss,UNKNOWN,EXTERNAL,2,1,9 C vdd,UNKNOWN,EXTERNAL,1,9,13 C i1,UNKNOWN,EXTERNAL,6,1,8 C i0,UNKNOWN,EXTERNAL,5,2,8 C f,UNKNOWN,EXTERNAL,3,1,11 T P,1,12,1,5,3,1,2,2,28,28,17,32.5,4,3,7,3,tr_00004 T P,1,12,3,6,1,1,2,2,28,28,11,32.5,7,7,1,2,tr_00003 T N,1,12,3,5,4,2,2,2,28,28,17,12.5,3,1,1,8,tr_00002 T N,1,12,4,6,2,2,2,2,28,28,11,12.5,1,2,2,5,tr_00001 S 6,EXTERNAL,i1 Q 0.020455 W 4,3,CV,0,0,7.2,17.6,0,0 W 6,5,CV,0,0,6.4,22.4,0,0 W 5,8,A2,0.4,0.00408,6.4,22.4,1.6,13.6 W 1,5,A2,0.6,0.006,6.4,2.4,1.6,20 W 3,6,A1,0.3,0.00168,6.4,17.6,1.6,4.8 W 4,7,PY,500,0.00315,8.8,17.6,0.8,8.4 W 2,4,PY,450,0.00285,8.8,10,0.8,7.6 S 5,EXTERNAL,i0 Q 0.020455 W 5,4,CV,0,0,15.2,17.6,0,0 W 7,6,CV,0,0,16,22.4,0,0 W 6,8,A2,0.4,0.00408,16,22.4,1.6,13.6 W 2,6,A2,0.6,0.006,16,2.4,1.6,20 W 4,7,A1,0.3,0.00168,16,17.6,1.6,4.8 W 5,3,PY,500,0.00315,13.6,17.6,0.8,8.4 W 1,5,PY,450,0.00285,13.6,10,0.8,7.6 S 4,INTERNAL Q 0 S 3,EXTERNAL,f Q 0.021985 W 3,4,CV,0,0,16,10.4,0,0 W 6,5,CV,0,0,11.2,17.6,0,0 W 8,7,CV,0,0,11.2,23.2,0,0 W 9,7,CV,0,0,11.2,28,0,0 W 5,11,A2,0.55,0.00552,11.2,17.6,1.6,18.4 W 1,5,A2,0.45,0.00456,11.2,2.4,1.6,15.2 W 10,9,A1,0.2,0.00126,11.2,24.4,1.6,3.6 W 8,10,A1,0,0.00042,11.2,23.2,1.6,1.2 W 6,8,A1,0.7,0.00161,11.2,17.6,0.8,5.6 W 2,6,A1,0.9,0.00207,11.2,10.4,0.8,7.2 W 2,4,A1,0.6,0.00138,11.2,10.4,4.8,0.8 S 2,EXTERNAL,vss Q 0.0245 W 4,3,CV,0,0,6.4,1.6,0,0 W 7,6,CV,0,0,11.2,1.6,0,0 W 11,10,CV,0,0,16,1.6,0,0 W 3,2,CV,0,0,6.4,6.4,0,0 W 12,2,CV,0,0,6.4,10.4,0,0 W 3,12,A1,0.4,0.00224,6.4,4,1.6,6.4 W 10,9,A1,0,0.00174,16,4,2.4,6.4 W 6,10,A1,0,0.00348,11.2,4,4.8,6.4 W 3,6,A1,0,0.00348,6.4,4,4.8,6.4 W 1,3,A1,0,0.00174,4,4,2.4,6.4 S 1,EXTERNAL,vdd Q 0.02846 W 5,1,CV,0,0,6.4,26.4,0,0 W 6,4,CV,0,0,16,26.4,0,0 W 7,1,CV,0,0,6.4,29.6,0,0 W 8,4,CV,0,0,16,29.6,0,0 W 14,10,CV,0,0,6.4,36,0,0 W 15,11,CV,0,0,11.2,36,0,0 W 16,12,CV,0,0,16,36,0,0 W 7,10,A1,0.3,0.00168,6.4,29.6,1.6,4.8 W 5,7,A1,0.2,0.00112,6.4,26.4,1.6,3.2 W 8,12,A1,0.3,0.00168,16,29.6,1.6,4.8 W 6,8,A1,0.2,0.00112,16,26.4,1.6,3.2 W 12,13,A1,0,0.00174,16,34.4,2.4,6.4 W 9,10,A1,0,0.00174,4,34.4,2.4,6.4 W 11,12,A1,0,0.00348,11.2,36,4.8,6.4 W 10,11,A1,0,0.00348,6.4,36,4.8,6.4 K 0.00213,1,1,2,1 K 0.00454,5,6,2,1 K 0.00199,6,8,2,1 EOF
Example 2
This example is a xor designed with three cells.
V ALLIANCE : 6 H gxor,L,29/ 3/99 C vss,UNKNOWN,EXTERNAL,4,1,2,9,10 C vdd,UNKNOWN,EXTERNAL,6,1,2,10,3 C s,UNKNOWN,EXTERNAL,8,2 C b,UNKNOWN,EXTERNAL,5,5 C a,UNKNOWN,EXTERNAL,3,1 I ndrvp_y,auxsc3 C vss,UNKNOWN,INTERNAL,4,8,9 C vdd,UNKNOWN,INTERNAL,6,9,10 C i,UNKNOWN,INTERNAL,5,4,9 C f,UNKNOWN,INTERNAL,7,8,12 I mx2_y,s C vss,UNKNOWN,INTERNAL,4,4,8 C vdd,UNKNOWN,INTERNAL,6,5,9 C t,UNKNOWN,INTERNAL,8,1,3 C l1,UNKNOWN,INTERNAL,7,1,11 C l0,UNKNOWN,INTERNAL,2,4,8 C i1,UNKNOWN,INTERNAL,3,11,13 C i0,UNKNOWN,INTERNAL,5,1,8 I ndrvp_y,auxsc1 C vss,UNKNOWN,INTERNAL,4,2,3 C vdd,UNKNOWN,INTERNAL,6,2,4 C i,UNKNOWN,INTERNAL,3,10,12 C f,UNKNOWN,INTERNAL,2,1,7 S 8,EXTERNAL,s Q 0.0072 W 2,1,A2,0.55,0.00528,79.2,0,1.6,17.6 S 7,INTERNAL,auxsc3 Q 0.02142 W 3,2,CV,0,0,64.8,8.8,0,0 W 5,4,CV,0,0,74.4,8.8,0,0 W 7,6,CV,0,0,74.4,12.8,0,0 W 10,9,CV,0,0,88.8,12.8,0,0 W 9,8,A2,0.15,0.00144,88.8,12.8,1.6,4.8 W 6,10,A1,1.8,0.00414,74.4,12.8,14.4,0.8 W 4,7,A2,0.1,0.0012,74.4,8.8,1.6,4 W 2,1,A2,0.25,0.00264,64.8,8.8,1.6,8.8 W 3,5,A1,1.2,0.00276,64.8,8.8,9.6,0.8 S 6,EXTERNAL,vdd Q 0.05453 W 7,6,CV,0,0,37.6,48,0,0 W 8,6,CV,0,0,37.6,51.2,0,0 W 6,5,A1,0.1,0.00754,37.6,49.6,10.4,6.4 W 4,6,A1,0,0.0029,33.6,49.6,4,6.4 W 8,3,A2,0.05,0.00203,37.6,51.2,3.2,5.6 W 7,8,A2,0.05,0.00116,37.6,48,3.2,3.2 W 1,7,A2,0.75,0.0174,37.6,0,3.2,48 S 5,EXTERNAL,b Q 0.02922 W 3,2,CV,0,0,50.4,4.8,0,0 W 7,6,CV,0,0,98.4,4.8,0,0 W 6,4,A2,0.4,0.00384,98.4,4.8,1.6,12.8 W 5,6,A2,0.15,0.00144,98.4,0,1.6,4.8 W 2,1,A2,0.4,0.00384,50.4,4.8,1.6,12.8 W 3,7,A1,6,0.0138,50.4,4.8,48,0.8 S 4,EXTERNAL,vss Q 0.05453 W 6,5,CV,0,0,44,17.6,0,0 W 6,7,CV,0,0,44,20.8,0,0 W 7,10,A2,0.55,0.01305,44,20.8,3.2,36 W 1,5,A2,0.25,0.00638,44,0,3.2,17.6 W 5,7,A2,0.05,0.00116,44,17.6,3.2,3.2 W 6,4,A1,0,0.0029,44,19.2,4,6.4 W 3,6,A1,0.1,0.00754,33.6,19.2,10.4,6.4 S 3,EXTERNAL,a Q 0.03282 W 3,2,CV,0,0,16.8,8.8,0,0 W 5,4,CV,0,0,60,8.8,0,0 W 7,6,CV,0,0,60,12.8,0,0 W 9,8,CV,0,0,69.6,12.8,0,0 W 8,11,A2,0.15,0.00144,69.6,12.8,1.6,4.8 W 6,9,A1,1.2,0.00276,60,12.8,9.6,0.8 W 4,7,A2,0.1,0.0012,60,8.8,1.6,4 W 2,10,A2,0.25,0.00264,16.8,8.8,1.6,8.8 W 1,2,A2,0.25,0.00264,16.8,0,1.6,8.8 W 3,5,A1,5.4,0.01242,16.8,8.8,43.2,0.8 S 2,INTERNAL,auxsc1 Q 0.0225 W 3,2,CV,0,0,7.2,12.8,0,0 W 6,5,CV,0,0,55.2,12.8,0,0 W 5,4,A2,0.15,0.00144,55.2,12.8,1.6,4.8 W 2,1,A2,0.15,0.00144,7.2,12.8,1.6,4.8 W 3,6,A1,6,0.0138,7.2,12.8,48,0.8 S 1,INTERNAL,implicit Q 0 EOF