loglib

/* Atmel AVR Microcontrollers */

/*
 * Contributed by Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>.
 */

/*
 * Several of the AVR controllers are identical in their port
 * configuration and pinout, but only differ in their memory
 * layout, and possibly other "soft" items.  Thus they all use
 * the same SCM part.
 *
 * Unfortunately, some packaging options use a different pin numbering
 * than others, so the usual way of assigning $plname doesn't work.
 * Instead, the variants are differentiated using $rlname.
 *
 * The $rlname variants append the package name to the base
 * part name (e. g. at90s2333 => DIL28, at90s2333fp => TQFP32).
 *
 * The existing part names are:
 *
 * part         AVR controllers covered         Package options
 *
 * at90s2313    AT90(L)S2313, AT90(L)S1200      (empty) DIL20
 *              ATtiny2313                      so      SOIC20
 *                                              so      SSOP20 (1200 only)
 *
 * at90s2323    AT90(L)S2323                    (empty) DIL8
 *                                              so      SOIC8
 *
 * at90s2333    AT90(L)S2333, AT90(L)S4433      (empty) DIL28
 *              ATmega8, ATmega48/88/168        fp      TQFP32
 *
 * at90s2343    AT90(L)S2343                    (empty) DIL8
 *              ATtiny11/12/13/15/25/45/85      so      SOIC8
 *                                              qfn     QFN20/MLF20
 *
 * at90s4414    AT90(L)S4414, AT90(L)S8515      (empty) DIL40
 *              ATmega8515, ATmega162           plcc    PLCC44/PLCC44s
 *                                              fp      TQFP44
 *
 * at90s4434    AT90(L)S4434, AT90(L)S8535      (empty) DIL40
 *              ATmega16, ATmega164/324/644     plcc    PLCC44/PLCC44s
 *                                              fp      TQFP44
 *
 * at90usbx2    AT90USB162, AT90USB82           (empty) VQFP32
 *
 * atmega103    ATmega103(L), ATmega128(L)      (empty) TQFP64
 *              ATmega1281, ATmega2561
 *
 * atmega1280   ATmega640, ATmega1280,          (empty) TQFP100
 *              ATmega2560
 *
 * attinyx4     ATtiny24, ATtiny44, ATtiny84    (empty) DIL14, SOIC14
 *                                              qfn     QFN20, MLF20
 *
 */


part at90s2313: class "at90s2313" dil20 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2313 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7);
  xlat (/reset, xtal1, xtal2)
  to (1, 5, 4);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6)
  to (2, 3, 6, 7, 8, 9, 11);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (12, 13, 14, 15, 16, 17, 18, 19);
  net "gnd": (10);
  net "vcc": (20);
}

part at90s2313so: class "at90s2313" so20, ssop20 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2313 SOIC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7);
  xlat (/reset, xtal1, xtal2)
  to (1, 5, 4);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6)
  to (2, 3, 6, 7, 8, 9, 11);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (12, 13, 14, 15, 16, 17, 18, 19);
  net "gnd": (10);
  net "vcc": (20);
}

part at90s2323: class "at90s2323" dil8 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2323 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2,
  pb0, pb1, pb2);
  xlat (/reset, xtal1, xtal2)
  to (1, 2, 3);
  xlat (pb0, pb1, pb2)
  to (5, 6, 7);
  net "gnd": (4);
  net "vcc": (8);
}

part at90s2323so: class "at90s2323" so8 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2323 SOIC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2,
  pb0, pb1, pb2);
  xlat (/reset, xtal1, xtal2)
  to (1, 2, 3);
  xlat (pb0, pb1, pb2)
  to (5, 6, 7);
  net "gnd": (4);
  net "vcc": (8);
}

part at90s2343: class "at90s2343" dil8 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2343 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset,
  pb0, pb1, pb2, pb3, pb4);
  xlat (/reset)
  to (1);
  xlat (pb0, pb1, pb2, pb3, pb4)
  to (5, 6, 7, 2, 3);
  net "gnd": (4);
  net "vcc": (8);
}

part at90s2343so: class "at90s2343" so8 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2343 SOIC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset,
  pb0, pb1, pb2, pb3, pb4);
  xlat (/reset)
  to (1);
  xlat (pb0, pb1, pb2, pb3, pb4)
  to (5, 6, 7, 2, 3);
  net "gnd": (4);
  net "vcc": (8);
}

part at90s2343qfn: class "at90s2343" qfn20, mlf20 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2343 QFN/MLF" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset,
  pb0, pb1, pb2, pb3, pb4);
  xlat (/reset)
  to (1);
  xlat (pb0, pb1, pb2, pb3, pb4)
  to (11, 12, 14, 2, 5);
  net "gnd": (8);
  net "vcc": (15);
}

part at90s2333: class "at90s2333" dil28 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2333 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5,
  pb0, pb1, pb2, pb3, pb4, pb5);
  xlat (/reset, xtal1, xtal2, aref)
  to (1, 9, 10, 21);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (2, 3, 4, 5, 6, 11, 12, 13);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5)
  to (23, 24, 25, 26, 27, 28);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5)
  to (14, 15, 16, 17, 18, 19);
  net "agnd": (22);
  net "avcc": (20);
  net "gnd": (8);
  net "vcc": (7);
}

part at90s2333fp: class "at90s2333" pqfp32 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S2333 TQFP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5,
  pb0, pb1, pb2, pb3, pb4, pb5);
  xlat (/reset, xtal1, xtal2, aref)
  to (29, 7, 8, 20);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (30, 31, 32, 1, 2, 9, 10, 11);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5)
  to (23, 24, 25, 26, 27, 28);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5)
  to (12, 13, 14, 15, 16, 17);
  net "agnd": (21);
  net "avcc": (18);
  net "gnd": (5);
  net "vcc": (4);
}

part at90s4414: class "at90s4414" dil40 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4414/8515 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, icp, oc1b, ale,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, icp, oc1b, ale)
  to (9, 19, 18, 31, 29, 30);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (10, 11, 12, 13, 14, 15, 16, 17);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (21, 22, 23, 24, 25, 26, 27, 28);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (1, 2, 3, 4, 5, 6, 7, 8);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (39, 38, 37, 36, 35, 34, 33, 32);
  net "gnd": (20);
  net "vcc": (40);
}

part at90s4414plcc: class "at90s4414" plcc44, plcc44s {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4414/8515 PLCC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, icp, oc1b, ale,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, icp, oc1b, ale)
  to (10, 21, 20, 35, 32, 33);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (11, 13, 14, 15, 16, 17, 18, 19);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (24, 25, 26, 27, 28, 29, 30, 31);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (2, 3, 4, 5, 6, 7, 8, 9);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (43, 42, 41, 40, 39, 38, 37, 36);
  net "gnd": (22);
  net "vcc": (44);
}

part at90s4414fp: class "at90s4414" tqfp44 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4414/8515 TQFP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, icp, oc1b, ale,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, icp, oc1b, ale)
  to (4, 15, 14, 29, 26, 27);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (5, 7, 8, 9, 10, 11, 12, 13);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (18, 19, 20, 21, 22, 23, 24, 25);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (40, 41, 42, 43, 44, 1, 2, 3);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (37, 36, 35, 34, 33, 32, 31, 30);
  net "gnd": (16);
  net "vcc": (38);
}

part at90s4434: class "at90s4434" dil40 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4434/8535/Mega163 PDIP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, aref)
  to (9, 13, 12, 32);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (14, 15, 16, 17, 18, 19, 20, 21);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (22, 23, 24, 25, 26, 27, 28, 29);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (1, 2, 3, 4, 5, 6, 7, 8);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (40, 39, 38, 37, 36, 35, 34, 33);
  net "agnd": (31);
  net "avcc": (30);
  net "gnd": (11);
  net "vcc": (10);
}

part at90s4434plcc: class "at90s4434" default plcc44, plcc44s {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4434/8535/Mega163 PLCC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, aref)
  to (10, 14, 13, 35);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (15, 16, 17, 18, 19, 20, 21, 22);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (25, 26, 27, 28, 29, 30, 31, 32);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (2, 3, 4, 5, 6, 7, 8, 9);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (43, 42, 41, 40, 39, 38, 37, 36);
  net "agnd": (34);
  net "avcc": (33);
  net "gnd": (1, 12, 24);
  net "vcc": (44, 11, 23);
}

part at90s4434fp: class "at90s4434" tqfp44 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90(L)S4434/8535 TQFP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (/reset, xtal1, xtal2, aref)
  to (4, 8, 7, 29);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (9, 10, 11, 12, 13, 14, 15, 16);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (19, 20, 21, 22, 23, 24, 25, 26);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (40, 41, 42, 43, 44, 1, 2, 3);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (37, 36, 35, 34, 33, 32, 31, 30);
  net "agnd": (28);
  net "avcc": (27);
  net "gnd": (39, 6, 18);
  net "vcc": (38, 5, 17);
}

part at90usbx2: class "at90usbx2" pqfp32 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "AT90USB82/162" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (uvcc, "d-/sdata", "d+/sck", ugnd, ucap,
  xtal1,
  pc0, pc1, pc2,      pc4, pc5, pc6, pc7,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7);
  xlat (uvcc, "d-/sdata", "d+/sck", ugnd, ucap,
  xtal1,
  pc0, pc1, pc2,      pc4, pc5, pc6, pc7,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to   (31,  30,         29,       28,   27,
  1,
  2,   24,  5,        26,  25,  23,  22,
  6,   7,   8,   9,   10,  11,  12,  13,
  14,  15,  16,  17,  18,  19,  20,  21);
  net "gnd": (3);
  net "vcc": (4);
  net "avcc": (32);
}

part atmega103: tqfp64_08 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "ATmega103/128(L) TQFP" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (/reset, xtal1, xtal2, aref, /pen,
  pf0, pf1, pf2, pf3, pf4, pf5, pf6, pf7,
  pe0, pe1, pe2, pe3, pe4, pe5, pe6, pe7,
  pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7,
  pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7,
  pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7,
  pg0, pg1, pg2, pg3, pg4);
  xlat (/reset, xtal1, xtal2, aref, /pen)
  to (20, 24, 23, 62, 1);
  xlat (pf0, pf1, pf2, pf3, pf4, pf5, pf6, pf7)
  to (61, 60, 59, 58, 57, 56, 55, 54);
  xlat (pe0, pe1, pe2, pe3, pe4, pe5, pe6, pe7)
  to (2, 3, 4, 5, 6, 7, 8, 9);
  xlat (pd0, pd1, pd2, pd3, pd4, pd5, pd6, pd7)
  to (25, 26, 27, 28, 29, 30, 31, 32);
  xlat (pc0, pc1, pc2, pc3, pc4, pc5, pc6, pc7)
  to (35, 36, 37, 38, 39, 40, 41, 42);
  xlat (pb0, pb1, pb2, pb3, pb4, pb5, pb6, pb7)
  to (10, 11, 12, 13, 14, 15, 16, 17);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (51, 50, 49, 48, 47, 46, 45, 44);
  xlat (pg0, pg1, pg2, pg3, pg4)
  to (33, 34, 43, 18, 19);
  net "avcc": (64);
  net "gnd": (63, 53, 22);
  net "vcc": (52, 21);
}

part atmega1280 : default tqfp100 {
    newattr "$comment"="AVR Microcontroller";
    newattr "$type"="ATmega640/1280/2560 TQFP";
    newattr "$manufacturer"="Atmel";
    pin (/reset,aref,pa0,pa1,pa2,pa3,
     pa4,pa5,pa6,pa7,pb0,pb1,pb2,pb3,
     pb4,pb5,pb6,pb7,pc0,pc1,pc2,pc3,
     pc4,pc5,pc6,pc7,pd0,pd1,pd2,pd3,
     pd4,pd5,pd6,pd7,pe0,pe1,pe2,pe3,
     pe4,pe5,pe6,pe7,pf0,pf1,pf2,pf3,
     pf4,pf5,pf6,pf7,pg0,pg1,pg2,pg3,
     pg4,pg5,ph0,ph1,ph2,ph3,ph4,ph5,
     ph6,ph7,pj0,pj1,pj2,pj3,pj4,pj5,
     pj6,pj7,pk0,pk1,pk2,pk3,pk4,pk5,
     pk6,pk7,pl0,pl1,pl2,pl3,pl4,pl5,
     pl6,pl7,xtal1,xtal2);
    xlat (/reset,aref,pa0,pa1,pa2,pa3,
     pa4,pa5,pa6,pa7,pb0,pb1,pb2,pb3,
     pb4,pb5,pb6,pb7,pc0,pc1,pc2,pc3,
     pc4,pc5,pc6,pc7,pd0,pd1,pd2,pd3,
     pd4,pd5,pd6,pd7,pe0,pe1,pe2,pe3,
     pe4,pe5,pe6,pe7,pf0,pf1,pf2,pf3,
     pf4,pf5,pf6,pf7,pg0,pg1,pg2,pg3,
     pg4,pg5,ph0,ph1,ph2,ph3,ph4,ph5,
     ph6,ph7,pj0,pj1,pj2,pj3,pj4,pj5,
     pj6,pj7,pk0,pk1,pk2,pk3,pk4,pk5,
     pk6,pk7,pl0,pl1,pl2,pl3,pl4,pl5,
     pl6,pl7,xtal1,xtal2) to
     (30,98,78,77,76,75,74,73,72,71,19,
     20,21,22,23,24,25,26,53,54,55,56,
     57,58,59,60,43,44,45,46,47,48,49,
     50,2,3,4,5,6,7,8,9,97,96,95,94,93,
     92,91,90,51,52,70,28,29,1,12,13,14,
     15,16,17,18,27,63,64,65,66,67,68,
     69,79,89,88,87,86,85,84,83,82,35,
     36,37,38,39,40,41,42,34,33);
    net "gnd" : (11,32,62,81,99);
    net "vcc" : (10,31,61,80);
    net "avcc" : (100);
}

part attinyx4: class "attinyx4" dil14, so14 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "ATtiny24/44/84 DIP/SOIC" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (pb0, pb1, pb2, pb3,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (pb0, pb1, pb2, pb3)
  to (2, 3, 5, 4);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (13, 12, 11, 10, 9, 8, 7, 6);
  net "gnd": (14);
  net "vcc": (1);
}

part attinyx4qfn: class "attinyx4" qfn20, mlf20 {
  newattr "$comment" = "AVR Microcontroller" ;
  newattr "$type" = "ATtiny24/44/84 QFN/MLF" ;
  newattr "$manufacturer" = "Atmel" ;
  pin (pb0, pb1, pb2, pb3,
  pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7);
  xlat (pb0, pb1, pb2, pb3)
  to (11, 12, 14, 13);
  xlat (pa0, pa1, pa2, pa3, pa4, pa5, pa6, pa7)
  to (5, 4, 3, 2, 1, 20, 16, 15);
  net "gnd": (8);
  net "vcc": (9);
}

end.
