1
0
mirror of git://projects.qi-hardware.com/xue.git synced 2025-04-21 12:27:27 +03:00

initial import

This commit is contained in:
Andres Calderon
2010-07-24 06:58:53 -05:00
commit d6f7c20935
57 changed files with 124168 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
#EXAMPLE 1: Creation of a KICAD component of a XILINX FPGA using the PARTGen utility
# Runing the Xilinx PARTGen utility
partgen -v xc6slx75fgg484
# Generate the KICAD library
./xil2kc.py --pkg-file=samples/xc6slx75fgg484.pkg -o xc6slx75fgg484.lib
#EXAMPLE 2: Creation of a KICAD component library from IBIS file
#EXAMPLE 2.a
./ibis2kc.py --ibis-file=samples/micron_ddr2_2Gb.ibs --output-file=micron_ddr2_2Gb.lib --vcc-prefix=VDD --gnd-prefix=VSS
#EXAMPLE 2.b
./ibis2kc.py --ibis-file=samples/k8001.ibs --output-file=k8001.lib --vcc-prefix=VDD --gnd-prefix=GND

View File

127
emqbit-utilities/kicad/ibis2kc.py Executable file
View File

@@ -0,0 +1,127 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Copyright (C) 2010 Andres Calderon, andres.calderon@emqbit.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
import re
import sys
import getopt
from operator import attrgetter
from kccomp import *
def pin_cmp(X,Y):
r = re.compile('([A-Z|a-z]+)?([0-9]+)?([\x20-\x7E]+)?')
mo = r.match(X.name)
mi = r.match(Y.name)
if mo.group(2) and mi.group(2):
return cmp((mo.group(1),int(mo.group(2)),mo.group(3)),(mi.group(1),int(mi.group(2)),mi.group(3)))
else:
return cmp((mo.group(1),mo.group(2),mo.group(3)),(mi.group(1),mi.group(2),mi.group(3)))
def usage(appname):
print "usage : " + appname + " --ibis-file=inputfile.pkg --output-file=output.lib --vcc-prefix=prefix --gnd-prefix=prefix"
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'i:o:v:g:', ['ibis-file=', 'output-file=','vcc-prefix=', 'gnd-prefix='])
except getopt.GetoptError:
usage(sys.argv[0])
sys.exit(2)
inputfile=None
outputfile=None
vcc_prefix="VCC"
gnd_prefix="GND"
for o, a in opts:
if o in ("-i", "--ibis-file"):
inputfile = a
elif o in ("-o", "--output-file"):
outputfile = a
elif o in ("-v", "--vcc-prefix"):
vcc_prefix = a
elif o in ("-g", "--gnd-prefix"):
gnd_prefix = a
if inputfile==None:
usage(sys.argv[0])
sys.exit(2)
if outputfile==None:
outputfile = inputfile.split('.')[0] + '.lib'
f = open(inputfile,'r')
raw_data = f.read()
regexp = re.compile('\[Component\]([\x20-\x7E]*?)[\r\n|\n][\x20-\x7E\n\r]*?\[Pin\].+[\r\n|\n]?([\x20-\x7E\n\r^\|]*?)[\r\n|\n]?\[')
matches = [m.groups() for m in regexp.finditer(raw_data)]
xl = KcLibrary (outputfile)
for m in matches:
part = m[0].strip()
print ' Importing: ' + part
comp = KcComponent(part);
xl.add_part(comp)
pins = []
for line in m[1].split('\n'):
tags = re.split('\s+',line.strip())
if len(tags[0]) and (len(tags)>1) and (tags[0][0]!="|"):
pins.append(KcPin(tags[1],tags[0]))
un = KcUnit(1)
comp.add_unit(un)
pins=sorted(pins, cmp=pin_cmp)
signals = []
for p in pins:
if re.search(vcc_prefix,p.name):
un.top_pins.append(p)
elif re.search(gnd_prefix,p.name):
un.bot_pins.append(p)
else:
signals.append(p)
for p in signals:
if (p.name.find('#')>0):
p.pin_type = 'I'
p.electrical_type = 'I'
sp=len(signals)/2
for p in signals[0:sp]:
un.left_pins.append(p)
for p in signals[sp:]:
un.right_pins.append(p)
xl.write()
#end-main
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,95 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Copyright (C) 2010 Andres Calderon, andres.calderon@emqbit.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
from datetime import datetime
class KcLibrary:
def __init__(self, name):
self.name = name
self.parts = []
def add_part(self, unit):
self.parts.append(unit)
def write(self):
of = open(self.name,'w')
of.writelines('EESchema-LIBRARY Version 2.3 Date: ' + datetime.now().strftime("%d/%m/%Y-%H:%M:%S") + '\n\n')
for p in self.parts:
p.write(of)
class KcComponent:
def __init__(self, part):
self.part = part
self.units = []
def add_unit(self, unit):
self.units.append(unit)
def write(self, of):
of.writelines('DEF ' + self.part + " U 0 40 Y Y " + str(len(self.units)) + " F N\n")
of.writelines('F0 "U" 0 100 70 H V C C\n')
of.writelines('F1 "' + self.part + '" 0 -100 70 H V C C\n')
of.writelines('DRAW\n')
for u in self.units:
u.write(of,self.part)
of.writelines('ENDDRAW\n')
of.writelines('ENDDEF\n')
class KcUnit:
def __init__(self, id_unit):
self.id_unit = id_unit
self.top_pins = []
self.bot_pins = []
self.left_pins = []
self.right_pins = []
def write(self, of, part):
ll = max(self.left_pins, key=lambda KcPin: len(KcPin.name))
lr = max(self.right_pins, key=lambda KcPin: len(KcPin.name))
sl = (len( ll.name + " " + part + " " + lr.name))/2
H = max(len(self.left_pins),len(self.right_pins),10)/2*100
W = max(len(self.top_pins)+6,len(self.bot_pins)+6,sl)/2*100
of.writelines('S ' + str(-W) + ' ' + str(-H-100) + ' ' + str(W) + ' ' + str(H+100) + ' ' + str(self.id_unit) +' 1 0 f\n')
self.write_pin(of,self.left_pins, -W-300, (len(self.right_pins)/2*100),0,-100,'R')
self.write_pin(of,self.right_pins, W+300,-(len(self.right_pins)/2*100),0, 100,'L')
self.write_pin(of,self.top_pins,-(len(self.top_pins)/2*100), H+400,100,0,'D')
self.write_pin(of,self.bot_pins,-(len(self.bot_pins)/2*100),-H-400,100,0,'U')
def write_pin(self, of, pins, x, y, dx, dy, d):
for signal in pins:
of.writelines('X ' + signal.name + ' ' + signal.pin + ' ' + str(x) + ' ' + str(y) +' 300 ' + d + ' 60 60 ' + str(self.id_unit) + ' 1 ' + signal.electrical_type + ' ' + signal.pin_type + '\n')
x = x + dx
y = y + dy
class KcPin:
def __init__(self, name, pin , electrical_type='P', pin_type=''):
self.pin = pin
self.name = name
self.pin_type = pin_type
self.electrical_type = electrical_type

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,489 @@
package xc6slx75fgg484
# PartGen M.53d
# Trace-length data does not apply to this package type or is not yet available. Values will be listed as N.A.
# pad pin vref vcco function nearest diff. tracelength
# name name bank bank name CLB pair (um)
pin PAD1 A3 0 0 IO_L1P_HSWAPEN_0 N.A. 0M N.A.
pin PAD2 A4 0 0 IO_L1N_VREF_0 N.A. 0S N.A.
pin PAD3 C5 0 0 IO_L2P_0 N.A. 1M N.A.
pin PAD4 A5 0 0 IO_L2N_0 N.A. 1S N.A.
pin PAD5 D6 0 0 IO_L3P_0 N.A. 2M N.A.
pin PAD6 C6 0 0 IO_L3N_0 N.A. 2S N.A.
pin PAD7 B6 0 0 IO_L4P_0 N.A. 3M N.A.
pin PAD8 A6 0 0 IO_L4N_0 N.A. 3S N.A.
pin PAD9 C7 0 0 IO_L5P_0 N.A. 4M N.A.
pin PAD10 A7 0 0 IO_L5N_0 N.A. 4S N.A.
pin PAD11 B8 0 0 IO_L6P_0 N.A. 5M N.A.
pin PAD12 A8 0 0 IO_L6N_0 N.A. 5S N.A.
pin PAD13 D9 0 0 IO_L7P_0 N.A. 6M N.A.
pin PAD14 C8 0 0 IO_L7N_0 N.A. 6S N.A.
pin PAD15 C9 0 0 IO_L8P_0 N.A. 7M N.A.
pin PAD16 A9 0 0 IO_L8N_VREF_0 N.A. 7S N.A.
pin PAD17 E12 0 0 IO_L43P_0 N.A. 8M N.A.
pin PAD18 D12 0 0 IO_L43N_0 N.A. 8S N.A.
pin PAD19 F13 0 0 IO_L45P_0 N.A. 9M N.A.
pin PAD20 D13 0 0 IO_L45N_0 N.A. 9S N.A.
pin PAD21 D7 0 0 IO_L32P_0 N.A. 10M N.A.
pin PAD22 D8 0 0 IO_L32N_0 N.A. 10S N.A.
pin PAD23 D10 0 0 IO_L33P_0 N.A. 11M N.A.
pin PAD24 C10 0 0 IO_L33N_0 N.A. 11S N.A.
pin PAD25 B10 0 0 IO_L34P_GCLK19_0 N.A. 12M N.A.
pin PAD26 A10 0 0 IO_L34N_GCLK18_0 N.A. 12S N.A.
pin PAD27 C11 0 0 IO_L35P_GCLK17_0 N.A. 13M N.A.
pin PAD28 A11 0 0 IO_L35N_GCLK16_0 N.A. 13S N.A.
pin PAD29 D11 0 0 IO_L36P_GCLK15_0 N.A. 14M N.A.
pin PAD30 C12 0 0 IO_L36N_GCLK14_0 N.A. 14S N.A.
pin PAD31 B12 0 0 IO_L37P_GCLK13_0 N.A. 15M N.A.
pin PAD32 A12 0 0 IO_L37N_GCLK12_0 N.A. 15S N.A.
pin PAD33 C13 0 0 IO_L38P_0 N.A. 16M N.A.
pin PAD34 A13 0 0 IO_L38N_VREF_0 N.A. 16S N.A.
pin PAD35 H13 0 0 IO_L46P_0 N.A. 17M N.A.
pin PAD36 G13 0 0 IO_L46N_0 N.A. 17S N.A.
pin PAD37 E14 0 0 IO_L47P_0 N.A. 18M N.A.
pin PAD38 F15 0 0 IO_L47N_0 N.A. 18S N.A.
pin PAD39 F14 0 0 IO_L48P_0 N.A. 19M N.A.
pin PAD40 H14 0 0 IO_L48N_0 N.A. 19S N.A.
pin PAD41 D14 0 0 IO_L49P_0 N.A. 20M N.A.
pin PAD42 C14 0 0 IO_L49N_0 N.A. 20S N.A.
pin PAD43 B14 0 0 IO_L50P_0 N.A. 21M N.A.
pin PAD44 A14 0 0 IO_L50N_0 N.A. 21S N.A.
pin PAD45 C15 0 0 IO_L51P_0 N.A. 22M N.A.
pin PAD46 A15 0 0 IO_L51N_0 N.A. 22S N.A.
pin PAD47 D15 0 0 IO_L62P_0 N.A. 23M N.A.
pin PAD48 C16 0 0 IO_L62N_VREF_0 N.A. 23S N.A.
pin PAD49 B16 0 0 IO_L63P_SCP7_0 N.A. 24M N.A.
pin PAD50 A16 0 0 IO_L63N_SCP6_0 N.A. 24S N.A.
pin PAD51 C17 0 0 IO_L64P_SCP5_0 N.A. 25M N.A.
pin PAD52 A17 0 0 IO_L64N_SCP4_0 N.A. 25S N.A.
pin PAD53 B18 0 0 IO_L65P_SCP3_0 N.A. 26M N.A.
pin PAD54 A18 0 0 IO_L65N_SCP2_0 N.A. 26S N.A.
pin PAD55 E16 0 0 IO_L66P_SCP1_0 N.A. 27M N.A.
pin PAD56 D17 0 0 IO_L66N_SCP0_0 N.A. 27S N.A.
pin PAD57 C19 1 1 IO_L1P_A25_1 N.A. 28M N.A.
pin PAD58 B20 1 1 IO_L1N_A24_VREF_1 X67Y187 28S N.A.
pin PAD73 G16 1 1 IO_L9P_1 N.A. 29M N.A.
pin PAD74 G17 1 1 IO_L9N_1 X67Y165 29S N.A.
pin PAD75 F16 1 1 IO_L10P_1 N.A. 30M N.A.
pin PAD76 F17 1 1 IO_L10N_1 X67Y164 30S N.A.
pin PAD93 B21 1 1 IO_L19P_1 N.A. 31M N.A.
pin PAD94 B22 1 1 IO_L19N_1 X67Y149 31S N.A.
pin PAD95 A20 1 1 IO_L20P_1 N.A. 32M N.A.
pin PAD96 A21 1 1 IO_L20N_1 X67Y146 32S N.A.
pin PAD97 K16 1 1 IO_L21P_1 N.A. 33M N.A.
pin PAD98 J16 1 1 IO_L21N_1 X67Y143 33S N.A.
pin PAD111 H16 1 1 IO_L28P_1 N.A. 34M N.A.
pin PAD112 H17 1 1 IO_L28N_VREF_1 X67Y124 34S N.A.
pin PAD113 D19 1 1 IO_L29P_A23_M1A13_1 N.A. 35M N.A.
pin PAD114 D20 1 1 IO_L29N_A22_M1A14_1 X67Y122 35S N.A.
pin PAD115 F18 1 1 IO_L30P_A21_M1RESET_1 N.A. 36M N.A.
pin PAD116 F19 1 1 IO_L30N_A20_M1A11_1 X67Y120 36S N.A.
pin PAD117 D21 1 1 IO_L31P_A19_M1CKE_1 N.A. 37M N.A.
pin PAD118 D22 1 1 IO_L31N_A18_M1A12_1 X67Y118 37S N.A.
pin PAD119 C20 1 1 IO_L32P_A17_M1A8_1 N.A. 38M N.A.
pin PAD120 C22 1 1 IO_L32N_A16_M1A9_1 X67Y117 38S N.A.
pin PAD121 G19 1 1 IO_L33P_A15_M1A10_1 N.A. 39M N.A.
pin PAD122 F20 1 1 IO_L33N_A14_M1A4_1 X67Y116 39S N.A.
pin PAD123 H19 1 1 IO_L34P_A13_M1WE_1 N.A. 40M N.A.
pin PAD124 H18 1 1 IO_L34N_A12_M1BA2_1 X67Y115 40S N.A.
pin PAD125 E20 1 1 IO_L35P_A11_M1A7_1 N.A. 41M N.A.
pin PAD126 E22 1 1 IO_L35N_A10_M1A2_1 X67Y114 41S N.A.
pin PAD127 J17 1 1 IO_L36P_A9_M1BA0_1 N.A. 42M N.A.
pin PAD128 K17 1 1 IO_L36N_A8_M1BA1_1 X67Y101 42S N.A.
pin PAD129 F21 1 1 IO_L37P_A7_M1A0_1 N.A. 43M N.A.
pin PAD130 F22 1 1 IO_L37N_A6_M1A1_1 X67Y100 43S N.A.
pin PAD131 H20 1 1 IO_L38P_A5_M1CLK_1 N.A. 44M N.A.
pin PAD132 J19 1 1 IO_L38N_A4_M1CLKN_1 X67Y99 44S N.A.
pin PAD133 G20 1 1 IO_L39P_M1A3_1 N.A. 45M N.A.
pin PAD134 G22 1 1 IO_L39N_M1ODT_1 X67Y98 45S N.A.
pin PAD135 K20 1 1 IO_L40P_GCLK11_M1A5_1 N.A. 46M N.A.
pin PAD136 K19 1 1 IO_L40N_GCLK10_M1A6_1 X67Y97 46S N.A.
pin PAD137 H21 1 1 IO_L41P_GCLK9_IRDY1_M1RASN_1 N.A. 47M N.A.
pin PAD138 H22 1 1 IO_L41N_GCLK8_M1CASN_1 X67Y96 47S N.A.
pin PAD139 M20 1 1 IO_L42P_GCLK7_M1UDM_1 N.A. 48M N.A.
pin PAD140 L19 1 1 IO_L42N_GCLK6_TRDY1_M1LDM_1 X67Y93 48S N.A.
pin PAD141 J20 1 1 IO_L43P_GCLK5_M1DQ4_1 N.A. 49M N.A.
pin PAD142 J22 1 1 IO_L43N_GCLK4_M1DQ5_1 X67Y92 49S N.A.
pin PAD143 K21 1 1 IO_L44P_A3_M1DQ6_1 N.A. 50M N.A.
pin PAD144 K22 1 1 IO_L44N_A2_M1DQ7_1 X67Y91 50S N.A.
pin PAD145 L20 1 1 IO_L45P_A1_M1LDQS_1 N.A. 51M N.A.
pin PAD146 L22 1 1 IO_L45N_A0_M1LDQSN_1 X67Y88 51S N.A.
pin PAD147 M21 1 1 IO_L46P_FCS_B_M1DQ2_1 N.A. 52M N.A.
pin PAD148 M22 1 1 IO_L46N_FOE_B_M1DQ3_1 X67Y85 52S N.A.
pin PAD149 N20 1 1 IO_L47P_FWE_B_M1DQ0_1 N.A. 53M N.A.
pin PAD150 N22 1 1 IO_L47N_LDC_M1DQ1_1 X67Y82 53S N.A.
pin PAD151 P21 1 1 IO_L48P_HDC_M1DQ8_1 N.A. 54M N.A.
pin PAD152 P22 1 1 IO_L48N_M1DQ9_1 X67Y79 54S N.A.
pin PAD153 R20 1 1 IO_L49P_M1DQ10_1 N.A. 55M N.A.
pin PAD154 R22 1 1 IO_L49N_M1DQ11_1 X67Y76 55S N.A.
pin PAD155 T21 1 1 IO_L50P_M1UDQS_1 N.A. 56M N.A.
pin PAD156 T22 1 1 IO_L50N_M1UDQSN_1 X67Y73 56S N.A.
pin PAD157 U20 1 1 IO_L51P_M1DQ12_1 N.A. 57M N.A.
pin PAD158 U22 1 1 IO_L51N_M1DQ13_1 X67Y70 57S N.A.
pin PAD159 V21 1 1 IO_L52P_M1DQ14_1 N.A. 58M N.A.
pin PAD160 V22 1 1 IO_L52N_M1DQ15_1 X67Y67 58S N.A.
pin PAD161 M19 1 1 IO_L53P_1 N.A. 59M N.A.
pin PAD162 N19 1 1 IO_L53N_VREF_1 X67Y66 59S N.A.
pin PAD171 M16 1 1 IO_L58P_1 N.A. 60M N.A.
pin PAD172 L15 1 1 IO_L58N_1 X67Y57 60S N.A.
pin PAD173 P19 1 1 IO_L59P_1 N.A. 61M N.A.
pin PAD174 P20 1 1 IO_L59N_1 X67Y54 61S N.A.
pin PAD175 W20 1 1 IO_L60P_1 N.A. 62M N.A.
pin PAD176 W22 1 1 IO_L60N_1 X67Y53 62S N.A.
pin PAD177 L17 1 1 IO_L61P_1 N.A. 63M N.A.
pin PAD178 K18 1 1 IO_L61N_1 X67Y51 63S N.A.
pin PAD195 U19 1 1 IO_L70P_1 N.A. 64M N.A.
pin PAD196 V20 1 1 IO_L70N_1 X67Y30 64S N.A.
pin PAD197 M17 1 1 IO_L71P_1 N.A. 65M N.A.
pin PAD198 M18 1 1 IO_L71N_1 X67Y28 65S N.A.
pin PAD199 P17 1 1 IO_L72P_1 N.A. 66M N.A.
pin PAD200 N16 1 1 IO_L72N_1 X67Y25 66S N.A.
pin PAD201 P18 1 1 IO_L73P_1 N.A. 67M N.A.
pin PAD202 R19 1 1 IO_L73N_1 X67Y23 67S N.A.
pin PAD203 T19 1 1 IO_L74P_AWAKE_1 N.A. 68M N.A.
pin PAD204 T20 1 1 IO_L74N_DOUT_BUSY_1 X67Y20 68S N.A.
pin PAD205 Y21 2 2 IO_L1P_CCLK_2 N.A. 69M N.A.
pin PAD206 AA22 2 2 IO_L1N_M0_CMPMISO_2 N.A. 69S N.A.
pin PAD207 AA21 2 2 IO_L2P_CMPCLK_2 N.A. 70M N.A.
pin PAD208 AB21 2 2 IO_L2N_CMPMOSI_2 N.A. 70S N.A.
pin PAD209 AA20 2 2 IO_L3P_D0_DIN_MISO_MISO1_2 N.A. 71M N.A.
pin PAD210 AB20 2 2 IO_L3N_MOSI_CSI_B_MISO0_2 N.A. 71S N.A.
pin PAD211 T18 2 2 IO_L4P_2 N.A. 72M N.A.
pin PAD212 T17 2 2 IO_L4N_VREF_2 N.A. 72S N.A.
pin PAD213 Y19 2 2 IO_L5P_2 N.A. 73M N.A.
pin PAD214 AB19 2 2 IO_L5N_2 N.A. 73S N.A.
pin PAD215 U14 2 2 IO_L12P_D1_MISO2_2 N.A. 74M N.A.
pin PAD216 U13 2 2 IO_L12N_D2_MISO3_2 N.A. 74S N.A.
pin PAD217 U15 2 2 IO_L13P_M1_2 N.A. 75M N.A.
pin PAD218 V15 2 2 IO_L13N_D10_2 N.A. 75S N.A.
pin PAD219 AA18 2 2 IO_L14P_D11_2 N.A. 76M N.A.
pin PAD220 AB18 2 2 IO_L14N_D12_2 N.A. 76S N.A.
pin PAD221 Y17 2 2 IO_L15P_2 N.A. 77M N.A.
pin PAD222 AB17 2 2 IO_L15N_2 N.A. 77S N.A.
pin PAD223 AA14 2 2 IO_L16P_2 N.A. 78M N.A.
pin PAD224 AB14 2 2 IO_L16N_VREF_2 N.A. 78S N.A.
pin PAD225 Y15 2 2 IO_L21P_2 N.A. 79M N.A.
pin PAD226 AB15 2 2 IO_L21N_2 N.A. 79S N.A.
pin PAD227 AA16 2 2 IO_L19P_2 N.A. 80M N.A.
pin PAD228 AB16 2 2 IO_L19N_2 N.A. 80S N.A.
pin PAD229 W12 2 2 IO_L29P_GCLK3_2 N.A. 81M N.A.
pin PAD230 Y12 2 2 IO_L29N_GCLK2_2 N.A. 81S N.A.
pin PAD231 Y13 2 2 IO_L30P_GCLK1_D13_2 N.A. 82M N.A.
pin PAD232 AB13 2 2 IO_L30N_GCLK0_USERCCLK_2 N.A. 82S N.A.
pin PAD233 AA12 2 2 IO_L31P_GCLK31_D14_2 N.A. 83M N.A.
pin PAD234 AB12 2 2 IO_L31N_GCLK30_D15_2 N.A. 83S N.A.
pin PAD235 Y11 2 2 IO_L32P_GCLK29_2 N.A. 84M N.A.
pin PAD236 AB11 2 2 IO_L32N_GCLK28_2 N.A. 84S N.A.
pin PAD237 AA8 2 2 IO_L45P_2 N.A. 85M N.A.
pin PAD238 AB8 2 2 IO_L45N_2 N.A. 85S N.A.
pin PAD239 Y3 2 2 IO_L58P_2 N.A. 86M N.A.
pin PAD240 AB3 2 2 IO_L58N_2 N.A. 86S N.A.
pin PAD241 AA10 2 2 IO_L41P_2 N.A. 87M N.A.
pin PAD242 AB10 2 2 IO_L41N_VREF_2 N.A. 87S N.A.
pin PAD243 V11 2 2 IO_L42P_2 N.A. 88M N.A.
pin PAD244 W11 2 2 IO_L42N_2 N.A. 88S N.A.
pin PAD245 Y9 2 2 IO_L43P_2 N.A. 89M N.A.
pin PAD246 AB9 2 2 IO_L43N_2 N.A. 89S N.A.
pin PAD247 Y7 2 2 IO_L48P_D7_2 N.A. 90M N.A.
pin PAD248 AB7 2 2 IO_L48N_RDWR_B_VREF_2 N.A. 90S N.A.
pin PAD249 AA6 2 2 IO_L49P_D3_2 N.A. 91M N.A.
pin PAD250 AB6 2 2 IO_L49N_D4_2 N.A. 91S N.A.
pin PAD253 W4 2 2 IO_L62P_D5_2 N.A. 92M N.A.
pin PAD254 Y4 2 2 IO_L62N_D6_2 N.A. 92S N.A.
pin PAD255 AA4 2 2 IO_L57P_2 N.A. 93M N.A.
pin PAD256 AB4 2 2 IO_L57N_2 N.A. 93S N.A.
pin PAD257 AA2 2 2 IO_L64P_D8_2 N.A. 94M N.A.
pin PAD258 AB2 2 2 IO_L64N_D9_2 N.A. 94S N.A.
pin PAD259 T6 2 2 IO_L65P_INIT_B_2 N.A. 95M N.A.
pin PAD260 T5 2 2 IO_L65N_CSO_B_2 N.A. 95S N.A.
pin PAD261 Y2 3 3 IO_L1P_3 N.A. 96M N.A.
pin PAD262 Y1 3 3 IO_L1N_VREF_3 X2Y0 96S N.A.
pin PAD263 W3 3 3 IO_L2P_3 N.A. 97M N.A.
pin PAD264 W1 3 3 IO_L2N_3 X2Y3 97S N.A.
pin PAD273 P8 3 3 IO_L7P_3 N.A. 98M N.A.
pin PAD274 P7 3 3 IO_L7N_3 X2Y14 98S N.A.
pin PAD275 P6 3 3 IO_L8P_3 N.A. 99M N.A.
pin PAD276 P5 3 3 IO_L8N_3 X2Y16 99S N.A.
pin PAD277 T4 3 3 IO_L9P_3 N.A. 100M N.A.
pin PAD278 T3 3 3 IO_L9N_3 X2Y19 100S N.A.
pin PAD279 U4 3 3 IO_L10P_3 N.A. 101M N.A.
pin PAD280 V3 3 3 IO_L10N_3 X2Y21 101S N.A.
pin PAD281 N6 3 3 IO_L11P_3 N.A. 102M N.A.
pin PAD282 N7 3 3 IO_L11N_3 X2Y23 102S N.A.
pin PAD305 M7 3 3 IO_L23P_3 N.A. 103M N.A.
pin PAD306 M8 3 3 IO_L23N_3 X2Y51 103S N.A.
pin PAD307 R4 3 3 IO_L24P_3 N.A. 104M N.A.
pin PAD308 P4 3 3 IO_L24N_3 X2Y53 104S N.A.
pin PAD309 M6 3 3 IO_L25P_3 N.A. 105M N.A.
pin PAD310 L6 3 3 IO_L25N_3 X2Y54 105S N.A.
pin PAD311 P3 3 3 IO_L26P_3 N.A. 106M N.A.
pin PAD312 N4 3 3 IO_L26N_3 X2Y57 106S N.A.
pin PAD321 M5 3 3 IO_L31P_3 N.A. 107M N.A.
pin PAD322 M4 3 3 IO_L31N_VREF_3 X2Y66 107S N.A.
pin PAD323 V2 3 3 IO_L32P_M3DQ14_3 N.A. 108M N.A.
pin PAD324 V1 3 3 IO_L32N_M3DQ15_3 X2Y67 108S N.A.
pin PAD325 U3 3 3 IO_L33P_M3DQ12_3 N.A. 109M N.A.
pin PAD326 U1 3 3 IO_L33N_M3DQ13_3 X2Y70 109S N.A.
pin PAD327 T2 3 3 IO_L34P_M3UDQS_3 N.A. 110M N.A.
pin PAD328 T1 3 3 IO_L34N_M3UDQSN_3 X2Y73 110S N.A.
pin PAD329 R3 3 3 IO_L35P_M3DQ10_3 N.A. 111M N.A.
pin PAD330 R1 3 3 IO_L35N_M3DQ11_3 X2Y76 111S N.A.
pin PAD331 P2 3 3 IO_L36P_M3DQ8_3 N.A. 112M N.A.
pin PAD332 P1 3 3 IO_L36N_M3DQ9_3 X2Y79 112S N.A.
pin PAD333 N3 3 3 IO_L37P_M3DQ0_3 N.A. 113M N.A.
pin PAD334 N1 3 3 IO_L37N_M3DQ1_3 X2Y82 113S N.A.
pin PAD335 M2 3 3 IO_L38P_M3DQ2_3 N.A. 114M N.A.
pin PAD336 M1 3 3 IO_L38N_M3DQ3_3 X2Y85 114S N.A.
pin PAD337 L3 3 3 IO_L39P_M3LDQS_3 N.A. 115M N.A.
pin PAD338 L1 3 3 IO_L39N_M3LDQSN_3 X2Y88 115S N.A.
pin PAD339 K2 3 3 IO_L40P_M3DQ6_3 N.A. 116M N.A.
pin PAD340 K1 3 3 IO_L40N_M3DQ7_3 X2Y91 116S N.A.
pin PAD341 J3 3 3 IO_L41P_GCLK27_M3DQ4_3 N.A. 117M N.A.
pin PAD342 J1 3 3 IO_L41N_GCLK26_M3DQ5_3 X2Y92 117S N.A.
pin PAD343 M3 3 3 IO_L42P_GCLK25_TRDY2_M3UDM_3 N.A. 118M N.A.
pin PAD344 L4 3 3 IO_L42N_GCLK24_M3LDM_3 X2Y93 118S N.A.
pin PAD345 K5 3 3 IO_L43P_GCLK23_M3RASN_3 N.A. 119M N.A.
pin PAD346 K4 3 3 IO_L43N_GCLK22_IRDY2_M3CASN_3 X2Y96 119S N.A.
pin PAD347 K3 3 3 IO_L44P_GCLK21_M3A5_3 N.A. 120M N.A.
pin PAD348 J4 3 3 IO_L44N_GCLK20_M3A6_3 X2Y97 120S N.A.
pin PAD349 K6 3 3 IO_L45P_M3A3_3 N.A. 121M N.A.
pin PAD350 J6 3 3 IO_L45N_M3ODT_3 X2Y98 121S N.A.
pin PAD351 H4 3 3 IO_L46P_M3CLK_3 N.A. 122M N.A.
pin PAD352 H3 3 3 IO_L46N_M3CLKN_3 X2Y99 122S N.A.
pin PAD353 H2 3 3 IO_L47P_M3A0_3 N.A. 123M N.A.
pin PAD354 H1 3 3 IO_L47N_M3A1_3 X2Y100 123S N.A.
pin PAD355 G3 3 3 IO_L48P_M3BA0_3 N.A. 124M N.A.
pin PAD356 G1 3 3 IO_L48N_M3BA1_3 X2Y101 124S N.A.
pin PAD357 H6 3 3 IO_L49P_M3A7_3 N.A. 125M N.A.
pin PAD358 H5 3 3 IO_L49N_M3A2_3 X2Y114 125S N.A.
pin PAD359 F2 3 3 IO_L50P_M3WE_3 N.A. 126M N.A.
pin PAD360 F1 3 3 IO_L50N_M3BA2_3 X2Y115 126S N.A.
pin PAD361 G4 3 3 IO_L51P_M3A10_3 N.A. 127M N.A.
pin PAD362 F3 3 3 IO_L51N_M3A4_3 X2Y116 127S N.A.
pin PAD363 E3 3 3 IO_L52P_M3A8_3 N.A. 128M N.A.
pin PAD364 E1 3 3 IO_L52N_M3A9_3 X2Y117 128S N.A.
pin PAD365 D2 3 3 IO_L53P_M3CKE_3 N.A. 129M N.A.
pin PAD366 D1 3 3 IO_L53N_M3A12_3 X2Y118 129S N.A.
pin PAD367 C3 3 3 IO_L54P_M3RESET_3 N.A. 130M N.A.
pin PAD368 C1 3 3 IO_L54N_M3A11_3 X2Y120 130S N.A.
pin PAD369 G6 3 3 IO_L55P_M3A13_3 N.A. 131M N.A.
pin PAD370 F5 3 3 IO_L55N_M3A14_3 X2Y122 131S N.A.
pin PAD373 K7 3 3 IO_L57P_3 N.A. 132M N.A.
pin PAD374 K8 3 3 IO_L57N_VREF_3 X2Y125 132S N.A.
pin PAD377 D5 3 3 IO_L58P_3 N.A. 133M N.A.
pin PAD378 E4 3 3 IO_L58N_3 X2Y131 133S N.A.
pin PAD379 J7 3 3 IO_L59P_3 N.A. 134M N.A.
pin PAD380 H8 3 3 IO_L59N_3 X2Y134 134S N.A.
pin PAD381 B2 3 3 IO_L60P_3 N.A. 135M N.A.
pin PAD382 B1 3 3 IO_L60N_3 X2Y137 135S N.A.
pin PAD419 G7 3 3 IO_L80P_3 N.A. 136M N.A.
pin PAD420 F7 3 3 IO_L80N_3 X2Y182 136S N.A.
pin PAD421 D3 3 3 IO_L81P_3 N.A. 137M N.A.
pin PAD422 C4 3 3 IO_L81N_3 X2Y184 137S N.A.
pin PAD423 E5 3 3 IO_L82P_3 N.A. 138M N.A.
pin PAD424 E6 3 3 IO_L82N_3 X2Y186 138S N.A.
pin PAD425 A2 3 3 IO_L83P_3 N.A. 139M N.A.
pin PAD426 B3 3 3 IO_L83N_VREF_3 N.A. 139S N.A.
pkgpin CMPCS_B_2 Y20 -1 -1 CMPCS_B_2 N.A. N.A. N.A.
pkgpin DONE_2 Y22 -1 -1 DONE_2 N.A. N.A. N.A.
pkgpin GND N9 -1 -1 GND N.A. N.A. N.A.
pkgpin GND U7 -1 -1 GND N.A. N.A. N.A.
pkgpin GND M10 -1 -1 GND N.A. N.A. N.A.
pkgpin GND K10 -1 -1 GND N.A. N.A. N.A.
pkgpin GND L13 -1 -1 GND N.A. N.A. N.A.
pkgpin GND A1 -1 -1 GND N.A. N.A. N.A.
pkgpin GND N13 -1 -1 GND N.A. N.A. N.A.
pkgpin GND A22 -1 -1 GND N.A. N.A. N.A.
pkgpin GND R18 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AA13 -1 -1 GND N.A. N.A. N.A.
pkgpin GND W19 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AA17 -1 -1 GND N.A. N.A. N.A.
pkgpin GND K14 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AA5 -1 -1 GND N.A. N.A. N.A.
pkgpin GND L5 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AA9 -1 -1 GND N.A. N.A. N.A.
pkgpin GND M14 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AB1 -1 -1 GND N.A. N.A. N.A.
pkgpin GND N2 -1 -1 GND N.A. N.A. N.A.
pkgpin GND AB22 -1 -1 GND N.A. N.A. N.A.
pkgpin GND P12 -1 -1 GND N.A. N.A. N.A.
pkgpin GND B13 -1 -1 GND N.A. N.A. N.A.
pkgpin GND U2 -1 -1 GND N.A. N.A. N.A.
pkgpin GND B17 -1 -1 GND N.A. N.A. N.A.
pkgpin GND V14 -1 -1 GND N.A. N.A. N.A.
pkgpin GND B5 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J9 -1 -1 GND N.A. N.A. N.A.
pkgpin GND B9 -1 -1 GND N.A. N.A. N.A.
pkgpin GND K12 -1 -1 GND N.A. N.A. N.A.
pkgpin GND D18 -1 -1 GND N.A. N.A. N.A.
pkgpin GND L11 -1 -1 GND N.A. N.A. N.A.
pkgpin GND D4 -1 -1 GND N.A. N.A. N.A.
pkgpin GND L18 -1 -1 GND N.A. N.A. N.A.
pkgpin GND E11 -1 -1 GND N.A. N.A. N.A.
pkgpin GND L9 -1 -1 GND N.A. N.A. N.A.
pkgpin GND E15 -1 -1 GND N.A. N.A. N.A.
pkgpin GND M12 -1 -1 GND N.A. N.A. N.A.
pkgpin GND E2 -1 -1 GND N.A. N.A. N.A.
pkgpin GND N11 -1 -1 GND N.A. N.A. N.A.
pkgpin GND E21 -1 -1 GND N.A. N.A. N.A.
pkgpin GND N17 -1 -1 GND N.A. N.A. N.A.
pkgpin GND E7 -1 -1 GND N.A. N.A. N.A.
pkgpin GND N21 -1 -1 GND N.A. N.A. N.A.
pkgpin GND G18 -1 -1 GND N.A. N.A. N.A.
pkgpin GND P10 -1 -1 GND N.A. N.A. N.A.
pkgpin GND G5 -1 -1 GND N.A. N.A. N.A.
pkgpin GND P14 -1 -1 GND N.A. N.A. N.A.
pkgpin GND H7 -1 -1 GND N.A. N.A. N.A.
pkgpin GND R5 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J11 -1 -1 GND N.A. N.A. N.A.
pkgpin GND U21 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J13 -1 -1 GND N.A. N.A. N.A.
pkgpin GND V10 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J15 -1 -1 GND N.A. N.A. N.A.
pkgpin GND W16 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J2 -1 -1 GND N.A. N.A. N.A.
pkgpin GND W7 -1 -1 GND N.A. N.A. N.A.
pkgpin GND J21 -1 -1 GND N.A. N.A. N.A.
pkgpin GND V4 -1 -1 GND N.A. N.A. N.A.
pkgpin NC V5 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R7 -1 -1 NC N.A. N.A. N.A.
pkgpin NC E8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC F8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC E10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC F10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC G11 -1 -1 NC N.A. N.A. N.A.
pkgpin NC H11 -1 -1 NC N.A. N.A. N.A.
pkgpin NC G8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC F9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC H12 -1 -1 NC N.A. N.A. N.A.
pkgpin NC F12 -1 -1 NC N.A. N.A. N.A.
pkgpin NC G9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC H10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W18 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y18 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T16 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T15 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U17 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U16 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V19 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V18 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R16 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R15 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V17 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W17 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y16 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V13 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W13 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W14 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y14 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T12 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U12 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T14 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R13 -1 -1 NC N.A. N.A. N.A.
pkgpin NC R11 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T11 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V7 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC V9 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U8 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U10 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W6 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y6 -1 -1 NC N.A. N.A. N.A.
pkgpin NC Y5 -1 -1 NC N.A. N.A. N.A.
pkgpin NC AB5 -1 -1 NC N.A. N.A. N.A.
pkgpin NC U6 -1 -1 NC N.A. N.A. N.A.
pkgpin NC W15 -1 -1 NC N.A. N.A. N.A.
pkgpin NC T7 -1 -1 NC N.A. N.A. N.A.
pkgpin PROGRAM_B_2 AA1 -1 -1 PROGRAM_B_2 N.A. N.A. N.A.
pkgpin RFUSE P15 -1 -1 RFUSE N.A. N.A. N.A.
pkgpin SUSPEND N15 -1 -1 SUSPEND N.A. N.A. N.A.
pkgpin TCK G15 -1 -1 TCK N.A. N.A. N.A.
pkgpin TDI E18 -1 -1 TDI N.A. N.A. N.A.
pkgpin TDO A19 -1 -1 TDO N.A. N.A. N.A.
pkgpin TMS C18 -1 -1 TMS N.A. N.A. N.A.
pkgpin VBATT R17 -1 -1 VBATT N.A. N.A. N.A.
pkgpin VCCAUX R10 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX V6 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX R6 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX F11 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX G12 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX U11 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX H9 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX K15 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX L8 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX M15 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX N8 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX H15 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX D16 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCAUX R12 -1 -1 VCCAUX N.A. N.A. N.A.
pkgpin VCCINT R14 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT J14 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT J8 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT K11 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT K13 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT K9 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT J10 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT L12 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT L14 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT J12 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT M13 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT M9 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT N10 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT N12 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT N14 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT P11 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT P13 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT P9 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT M11 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCINT L10 -1 -1 VCCINT N.A. N.A. N.A.
pkgpin VCCO_0 B4 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 B7 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 E13 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 E17 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 E9 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 G10 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 G14 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 B11 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 B15 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_0 B19 -1 0 VCCO_0 N.A. N.A. N.A.
pkgpin VCCO_1 W21 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 E19 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 G21 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 J18 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 C21 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 N18 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 R21 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 U18 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 L21 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_1 L16 -1 1 VCCO_1 N.A. N.A. N.A.
pkgpin VCCO_2 V8 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 AA15 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 AA19 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 AA3 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 W5 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 T13 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 T9 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 V12 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 V16 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 AA7 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_2 AA11 -1 2 VCCO_2 N.A. N.A. N.A.
pkgpin VCCO_3 W2 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 C2 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 F4 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 F6 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 G2 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 L2 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 L7 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 N5 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 R2 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 U5 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VCCO_3 J5 -1 3 VCCO_3 N.A. N.A. N.A.
pkgpin VFS P16 -1 -1 VFS N.A. N.A. N.A.

113
emqbit-utilities/kicad/xil2kc.py Executable file
View File

@@ -0,0 +1,113 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Copyright (C) 2010 Andres Calderon, andres.calderon@emqbit.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
import re
import sys
import getopt
from kccomp import *
def usage(appname):
print "usage : " + appname + " --pkg-file=inputfile.pkg --output-file=output.lib"
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'p:o:', ['pkg-file=', 'output-file='])
except getopt.GetoptError:
usage(sys.argv[0])
sys.exit(2)
inputfile=None
outputfile=None
for o, a in opts:
if o in ("-p", "--pkg-file"):
inputfile = a
elif o in ("-o", "--output-file"):
outputfile = a
if inputfile==None:
usage(sys.argv[0])
sys.exit(2)
part = inputfile.split('.')[0]
if outputfile==None:
outputfile = part+'.lib'
f = open(inputfile,'r')
pl = re.compile('^(pin|pkgpin)')
pins = []
for line in f.read().split('\n'):
if pl.search(line):
tags = re.split('\s+',line)
# pin or function pin vref vcco
# pkgpin name name bank bank
pins.append((tags[0],tags[5], tags[2],tags[3],tags[4]))
f.close()
m = {}
for i in xrange(len(pins)):
if m.has_key(pins[i][4]):
m[pins[i][4]].append(i)
else:
m[pins[i][4]] = []
xl = KcLibrary (outputfile)
comp = KcComponent(part);
xl.add_part(comp)
subpart=1
for id_bank in m:
un = KcUnit(subpart)
comp.add_unit(un)
subpart=subpart+1
signals = []
for signal in m[id_bank]:
if re.search("VCC",pins[signal][1]):
un.top_pins.append(KcPin(pins[signal][1],pins[signal][2]))
else:
if re.search("GND",pins[signal][1]):
un.bot_pins.append(KcPin(pins[signal][1],pins[signal][2]))
else:
signals.append(KcPin(pins[signal][1],pins[signal][2]))
#signals=sorted(signals, key=lambda KcPin: KcPin.name)
#for signal in signals:
#if(signal.name=="NC"):
#signal.pin_type = 'N'
sp=len(signals)/2
for signal in signals[0:sp]:
un.left_pins.append(signal)
for signal in signals[sp:]:
un.right_pins.append(signal)
xl.write()
#end-main
if __name__ == "__main__":
main()