return True
return False
+# pin numbers increase clockwise
+class PinClock:
+ def __init__(self, dev_pins = 2):
+ assert((dev_pins % 2) == 0)
+ self.dev_pins = dev_pins
+ # the corresponding pin
+ def via(self, pin_a):
+ assert(pin_a >= 1)
+ assert(pin_a <= self.dev_pins)
+ return self.dev_pins + 1 - pin_a # the opposite pin
+
+# pin numbers increase in "colums"
+class PinCols:
+ def __init__(self, dev_pins = 2):
+ assert((dev_pins % 2) == 0)
+ self.dev_pins = dev_pins
+ # the corresponding pin
+ def via(self, pin_a):
+ assert(pin_a >= 1)
+ assert(pin_a <= self.dev_pins)
+ return self.dev_pins / 2 + pin_a # the opposite pin
+
class NetList:
# Netlist is a dir of Nets
def __init__(self):
print device.name, pin_name, 'single node nets, instances:', len(pins)
return True
- def connected_via(self, kind, device, pin_name, net2, dev_pins=2):
+ def connected_via(self, kind, device, pin_name, net2, pinmap=PinClock(2)):
"connected via kind-device"
(pin, net_name) = self.find_pin_net_dev(device, pin_name)
if net_name == None:
return False
r = res[0]
if ((kind == 'R') and r.device.startswith('RA')): # 4 resistors in 8 pin package
- dev_pins = 8
+ pinmap = PinClock(8)
pin_a = int(r.pin)
- assert(pin_a >= 1)
- assert(pin_a <= dev_pins)
- pin_b = dev_pins+1-pin_a # the opposite pin
+ pin_b = pinmap.via(pin_a) # the opposite pin
node = Node((r.device, `pin_b`))
#print 'through:', r, node, self.find_net(node), net2
self.parse_line(combined_line, number-1)
combined_line = l
self.parse_line(combined_line, number-1)
- f.close()
+ f.close()