from collections import defaultdict
from skidl import Pin, Part, Alias, SchLib, SKIDL, TEMPLATE

from skidl.pin import pin_types

SKIDL_lib_version = '0.0.1'

DSP_Freescale = SchLib(tool=SKIDL).add_parts(*[
        Part(**{ 'name':'DSP96002', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'DSP96002'}), 'ref_prefix':'U', 'fplist':[''], 'footprint':'', 'keywords':'DSP 32bit Dual Port Processor', 'description':'', 'datasheet':'http://cache.freescale.com/files/dsp/doc/inactive/DSP96002.pdf', 'search_text':'/usr/share/kicad/symbols/DSP_Freescale.kicad_sym\nDSP96002\n\nDSP 32bit Dual Port Processor', 'pins':[
            Pin(num='A1',name='B.A23',func=pin_types.TRISTATE,unit=1),
            Pin(num='A10',name='A.S0',func=pin_types.TRISTATE,unit=1),
            Pin(num='A11',name='A.T_STROBE',func=pin_types.TRISTATE,unit=1),
            Pin(num='A12',name='A.AENB',func=pin_types.INPUT,unit=1),
            Pin(num='A13',name='A.A2',func=pin_types.TRISTATE,unit=1),
            Pin(num='A14',name='A.A4',func=pin_types.TRISTATE,unit=1),
            Pin(num='A15',name='A.A7',func=pin_types.TRISTATE,unit=1),
            Pin(num='A16',name='A.A10',func=pin_types.TRISTATE,unit=1),
            Pin(num='A17',name='A.A13',func=pin_types.TRISTATE,unit=1),
            Pin(num='A18',name='A.A16',func=pin_types.TRISTATE,unit=1),
            Pin(num='A2',name='B.A27',func=pin_types.TRISTATE,unit=1),
            Pin(num='A3',name='B.A29',func=pin_types.TRISTATE,unit=1),
            Pin(num='A4',name='B.A31',func=pin_types.TRISTATE,unit=1),
            Pin(num='A5',name='MODA/IRQA',func=pin_types.INPUT,unit=1),
            Pin(num='A6',name='A.BB',func=pin_types.INPUT,unit=1),
            Pin(num='A7',name='A.BR',func=pin_types.OUTPUT,unit=1),
            Pin(num='A9',name='A.R/W',func=pin_types.TRISTATE,unit=1),
            Pin(num='B1',name='B.A20',func=pin_types.TRISTATE,unit=1),
            Pin(num='B10',name='A.BUS_STR',func=pin_types.OUTPUT,unit=1),
            Pin(num='B11',name='A.A0',func=pin_types.TRISTATE,unit=1),
            Pin(num='B12',name='A.A3',func=pin_types.TRISTATE,unit=1),
            Pin(num='B13',name='A.A6',func=pin_types.TRISTATE,unit=1),
            Pin(num='B14',name='A.A9',func=pin_types.TRISTATE,unit=1),
            Pin(num='B15',name='A.A11',func=pin_types.TRISTATE,unit=1),
            Pin(num='B16',name='A.A14',func=pin_types.TRISTATE,unit=1),
            Pin(num='B17',name='A.A18',func=pin_types.TRISTATE,unit=1),
            Pin(num='B18',name='A.A20',func=pin_types.TRISTATE,unit=1),
            Pin(num='B2',name='B.A25',func=pin_types.TRISTATE,unit=1),
            Pin(num='B3',name='B.A28',func=pin_types.TRISTATE,unit=1),
            Pin(num='B4',name='B.A30',func=pin_types.TRISTATE,unit=1),
            Pin(num='B5',name='MODB/IRQB',func=pin_types.INPUT,unit=1),
            Pin(num='B6',name='A.BG',func=pin_types.INPUT,unit=1),
            Pin(num='B7',name='A.BA',func=pin_types.OPENCOLL,unit=1),
            Pin(num='B8',name='B.T_TYPE',func=pin_types.OUTPUT,unit=1),
            Pin(num='B9',name='A.S1',func=pin_types.TRISTATE,unit=1),
            Pin(num='C1',name='B.A17',func=pin_types.TRISTATE,unit=1),
            Pin(num='C10',name='A.A1',func=pin_types.TRISTATE,unit=1),
            Pin(num='C11',name='A.A5',func=pin_types.TRISTATE,unit=1),
            Pin(num='C12',name='A.A8',func=pin_types.TRISTATE,unit=1),
            Pin(num='C13',name='A.A12',func=pin_types.TRISTATE,unit=1),
            Pin(num='C14',name='A.A15',func=pin_types.TRISTATE,unit=1),
            Pin(num='C15',name='A.A17',func=pin_types.TRISTATE,unit=1),
            Pin(num='C16',name='A.A19',func=pin_types.TRISTATE,unit=1),
            Pin(num='C17',name='A.A21',func=pin_types.TRISTATE,unit=1),
            Pin(num='C18',name='A.A23',func=pin_types.TRISTATE,unit=1),
            Pin(num='C2',name='B.A21',func=pin_types.TRISTATE,unit=1),
            Pin(num='C3',name='B.A26',func=pin_types.TRISTATE,unit=1),
            Pin(num='C4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='C5',name='MODC/IRQC',func=pin_types.INPUT,unit=1),
            Pin(num='C6',name='RESET',func=pin_types.INPUT,unit=1),
            Pin(num='C7',name='A.BUS_LOCK',func=pin_types.OUTPUT,unit=1),
            Pin(num='C8',name='A.T_TYPE',func=pin_types.OUTPUT,unit=1),
            Pin(num='D1',name='B.A15',func=pin_types.TRISTATE,unit=1),
            Pin(num='D10',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='D11',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D12',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='D13',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D14',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D16',name='A.A22',func=pin_types.TRISTATE,unit=1),
            Pin(num='D17',name='A.A25',func=pin_types.TRISTATE,unit=1),
            Pin(num='D18',name='A.A26',func=pin_types.TRISTATE,unit=1),
            Pin(num='D2',name='B.A18',func=pin_types.TRISTATE,unit=1),
            Pin(num='D3',name='B.A24',func=pin_types.TRISTATE,unit=1),
            Pin(num='D5',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D6',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D7',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='D8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='D9',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='E1',name='B.A13',func=pin_types.TRISTATE,unit=1),
            Pin(num='E15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='E16',name='A.A24',func=pin_types.TRISTATE,unit=1),
            Pin(num='E17',name='A.A28',func=pin_types.TRISTATE,unit=1),
            Pin(num='E18',name='A.A29',func=pin_types.TRISTATE,unit=1),
            Pin(num='E2',name='B.A16',func=pin_types.TRISTATE,unit=1),
            Pin(num='E3',name='B.A22',func=pin_types.TRISTATE,unit=1),
            Pin(num='E4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='F1',name='B.A12',func=pin_types.TRISTATE,unit=1),
            Pin(num='F15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='F16',name='A.A27',func=pin_types.TRISTATE,unit=1),
            Pin(num='F17',name='A.A30',func=pin_types.TRISTATE,unit=1),
            Pin(num='F18',name='A.D31',func=pin_types.TRISTATE,unit=1),
            Pin(num='F2',name='B.A14',func=pin_types.TRISTATE,unit=1),
            Pin(num='F3',name='B.A19',func=pin_types.TRISTATE,unit=1),
            Pin(num='F4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='G1',name='B.A9',func=pin_types.TRISTATE,unit=1),
            Pin(num='G15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='G16',name='A.A31',func=pin_types.TRISTATE,unit=1),
            Pin(num='G17',name='A.D30',func=pin_types.TRISTATE,unit=1),
            Pin(num='G18',name='A.D29',func=pin_types.TRISTATE,unit=1),
            Pin(num='G2',name='B.A10',func=pin_types.TRISTATE,unit=1),
            Pin(num='G3',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='G4',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='H1',name='B.A8',func=pin_types.TRISTATE,unit=1),
            Pin(num='H15',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='H16',name='A.D28',func=pin_types.TRISTATE,unit=1),
            Pin(num='H17',name='A.D27',func=pin_types.TRISTATE,unit=1),
            Pin(num='H18',name='A.D26',func=pin_types.TRISTATE,unit=1),
            Pin(num='H2',name='CLK',func=pin_types.INPUT,unit=1),
            Pin(num='H3',name='B.A11',func=pin_types.TRISTATE,unit=1),
            Pin(num='H4',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='J1',name='A.TACK',func=pin_types.INPUT,unit=1),
            Pin(num='J15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='J16',name='A.D24',func=pin_types.TRISTATE,unit=1),
            Pin(num='J17',name='A.D25',func=pin_types.TRISTATE,unit=1),
            Pin(num='J18',name='A.D23',func=pin_types.TRISTATE,unit=1),
            Pin(num='J2',name='B.TACK',func=pin_types.INPUT,unit=1),
            Pin(num='J3',name='B.A7',func=pin_types.TRISTATE,unit=1),
            Pin(num='J4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='K1',name='B.A4',func=pin_types.TRISTATE,unit=1),
            Pin(num='K15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='K16',name='A.D20',func=pin_types.TRISTATE,unit=1),
            Pin(num='K17',name='A.D21',func=pin_types.TRISTATE,unit=1),
            Pin(num='K18',name='A.D22',func=pin_types.TRISTATE,unit=1),
            Pin(num='K2',name='B.A5',func=pin_types.TRISTATE,unit=1),
            Pin(num='K3',name='B.A6',func=pin_types.TRISTATE,unit=1),
            Pin(num='K4',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='L1',name='B.A3',func=pin_types.TRISTATE,unit=1),
            Pin(num='L15',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='L16',name='A.D16',func=pin_types.TRISTATE,unit=1),
            Pin(num='L17',name='A.D18',func=pin_types.TRISTATE,unit=1),
            Pin(num='L18',name='A.D19',func=pin_types.TRISTATE,unit=1),
            Pin(num='L2',name='B.A1',func=pin_types.TRISTATE,unit=1),
            Pin(num='L3',name='B.A2',func=pin_types.TRISTATE,unit=1),
            Pin(num='L4',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='M1',name='B.A0',func=pin_types.TRISTATE,unit=1),
            Pin(num='M15',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='M16',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='M17',name='A.DENB',func=pin_types.INPUT,unit=1),
            Pin(num='M18',name='A.D17',func=pin_types.TRISTATE,unit=1),
            Pin(num='M2',name='B.S1',func=pin_types.TRISTATE,unit=1),
            Pin(num='M3',name='B.S0',func=pin_types.TRISTATE,unit=1),
            Pin(num='M4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='N1',name='B.AENB',func=pin_types.INPUT,unit=1),
            Pin(num='N15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='N16',name='A.D11',func=pin_types.TRISTATE,unit=1),
            Pin(num='N17',name='A.D14',func=pin_types.TRISTATE,unit=1),
            Pin(num='N18',name='A.D15',func=pin_types.TRISTATE,unit=1),
            Pin(num='N4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='P1',name='B.R/W',func=pin_types.TRISTATE,unit=1),
            Pin(num='P15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='P16',name='A.D7',func=pin_types.TRISTATE,unit=1),
            Pin(num='P17',name='A.D12',func=pin_types.TRISTATE,unit=1),
            Pin(num='P18',name='A.D13',func=pin_types.TRISTATE,unit=1),
            Pin(num='P2',name='B.T_STROBE',func=pin_types.TRISTATE,unit=1),
            Pin(num='P3',name='B.BUS_LOCK',func=pin_types.OUTPUT,unit=1),
            Pin(num='P4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R1',name='B.BUS_STR',func=pin_types.OUTPUT,unit=1),
            Pin(num='R10',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='R11',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='R12',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R13',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R14',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R15',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R16',name='A.D5',func=pin_types.TRISTATE,unit=1),
            Pin(num='R17',name='A.D9',func=pin_types.TRISTATE,unit=1),
            Pin(num='R18',name='A.D10',func=pin_types.TRISTATE,unit=1),
            Pin(num='R2',name='B.BR',func=pin_types.OUTPUT,unit=1),
            Pin(num='R3',name='B.BB',func=pin_types.INPUT,unit=1),
            Pin(num='R4',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R5',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R6',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R7',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='R8',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='R9',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='T1',name='B.BG',func=pin_types.INPUT,unit=1),
            Pin(num='T10',name='B.D17',func=pin_types.TRISTATE,unit=1),
            Pin(num='T11',name='B.D14',func=pin_types.TRISTATE,unit=1),
            Pin(num='T12',name='B.D11',func=pin_types.TRISTATE,unit=1),
            Pin(num='T13',name='B.D7',func=pin_types.TRISTATE,unit=1),
            Pin(num='T14',name='B.D4',func=pin_types.TRISTATE,unit=1),
            Pin(num='T15',name='B.D1',func=pin_types.TRISTATE,unit=1),
            Pin(num='T16',name='A.D2',func=pin_types.TRISTATE,unit=1),
            Pin(num='T17',name='A.D6',func=pin_types.TRISTATE,unit=1),
            Pin(num='T18',name='A.D8',func=pin_types.TRISTATE,unit=1),
            Pin(num='T2',name='B.BA',func=pin_types.OPENCOLL,unit=1),
            Pin(num='T3',name='A.HOSTREQ',func=pin_types.OUTPUT,unit=1),
            Pin(num='T4',name='DEBUGREQ',func=pin_types.INPUT,unit=1),
            Pin(num='T5',name='A.HOSTSEL',func=pin_types.INPUT,unit=1),
            Pin(num='T6',name='B.D31',func=pin_types.TRISTATE,unit=1),
            Pin(num='T7',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='T8',name='B.D26',func=pin_types.TRISTATE,unit=1),
            Pin(num='T9',name='B.D22',func=pin_types.TRISTATE,unit=1),
            Pin(num='U1',name='B.HOSTREQ',func=pin_types.OUTPUT,unit=1),
            Pin(num='U10',name='B.D18',func=pin_types.TRISTATE,unit=1),
            Pin(num='U11',name='B.D15',func=pin_types.TRISTATE,unit=1),
            Pin(num='U12',name='B.D12',func=pin_types.TRISTATE,unit=1),
            Pin(num='U13',name='B.D9',func=pin_types.TRISTATE,unit=1),
            Pin(num='U14',name='B.D6',func=pin_types.TRISTATE,unit=1),
            Pin(num='U15',name='B.D3',func=pin_types.TRISTATE,unit=1),
            Pin(num='U16',name='B.D0',func=pin_types.TRISTATE,unit=1),
            Pin(num='U17',name='A.D3',func=pin_types.TRISTATE,unit=1),
            Pin(num='U18',name='A.D4',func=pin_types.TRISTATE,unit=1),
            Pin(num='U2',name='DSCK/OS1',func=pin_types.BIDIR,unit=1),
            Pin(num='U4',name='A.HOSTACK',func=pin_types.INPUT,unit=1),
            Pin(num='U5',name='B.DENB',func=pin_types.INPUT,unit=1),
            Pin(num='U6',name='B.D29',func=pin_types.TRISTATE,unit=1),
            Pin(num='U7',name='B.D27',func=pin_types.TRISTATE,unit=1),
            Pin(num='U8',name='B.D24',func=pin_types.TRISTATE,unit=1),
            Pin(num='U9',name='B.D21',func=pin_types.TRISTATE,unit=1),
            Pin(num='V1',name='DSO',func=pin_types.OUTPUT,unit=1),
            Pin(num='V10',name='B.D19',func=pin_types.TRISTATE,unit=1),
            Pin(num='V11',name='B.D16',func=pin_types.TRISTATE,unit=1),
            Pin(num='V12',name='B.D13',func=pin_types.TRISTATE,unit=1),
            Pin(num='V13',name='B.D10',func=pin_types.TRISTATE,unit=1),
            Pin(num='V14',name='B.D8',func=pin_types.TRISTATE,unit=1),
            Pin(num='V15',name='B.D5',func=pin_types.TRISTATE,unit=1),
            Pin(num='V16',name='B.D2',func=pin_types.TRISTATE,unit=1),
            Pin(num='V17',name='A.D0',func=pin_types.TRISTATE,unit=1),
            Pin(num='V18',name='A.D1',func=pin_types.TRISTATE,unit=1),
            Pin(num='V2',name='DSI/OS0',func=pin_types.BIDIR,unit=1),
            Pin(num='V3',name='B.HOSTACK',func=pin_types.INPUT,unit=1),
            Pin(num='V4',name='B.HOSTSEL',func=pin_types.INPUT,unit=1),
            Pin(num='V5',name='B.D30',func=pin_types.TRISTATE,unit=1),
            Pin(num='V6',name='B.D28',func=pin_types.TRISTATE,unit=1),
            Pin(num='V7',name='B.D25',func=pin_types.TRISTATE,unit=1),
            Pin(num='V8',name='B.D23',func=pin_types.TRISTATE,unit=1),
            Pin(num='V9',name='B.D20',func=pin_types.TRISTATE,unit=1)], 'unit_defs':[] })])