return False
print device.name, pin_name, 'single node nets, instances:', len(pins)
return True
- def connected_res(self, device, pin_name, net2):
- "connected via resistor"
+
+ def connected_via(self, kind, device, pin_name, net2):
+ "connected via kind-device"
(pin, net_name) = self.find_net_dev(device, pin_name)
nodes = self.netlist[net_name]
res = []
for n in nodes.nodes:
- if n.device.startswith('R'):
+ if n.device.startswith(kind):
res.append(n)
if res == []:
- print device.name, 'pin', pin, pin_name, 'NOT connected to resistor'
+ print device.name, 'pin', pin, pin_name, 'NOT connected to', kind+'-device'
return False
if len(res) != 1:
- print device.name, 'pin', pin, pin_name, 'connected to multiple resistors'
+ print device.name, 'pin', pin, pin_name, 'connected to multiple', kind+'-devices'
return False
r = res[0]
- if r.device.startswith('RA'): # 4 resistors in 8 pin package
+ if (kind == 'R') and r.device.startswith('RA'): # 4 resistors in 8 pin package
pin_a = int(r.pin)
assert(pin_a >= 1)
assert(pin_a <= 8)
pin_b = `8+1-pin_a` # the opposite pin
- else: # assume standard 2-pin resistor
+ else: # assume standard 2-pin component
pin_a = int(r.pin)
assert(pin_a >= 1)
assert(pin_a <= 2)
pin_b = `2+1-pin_a` # the opposite pin
node = Node((r.device, pin_b))
- #print 'resistor:', r, node, self.find_net(node), net2
+ #print 'through:', r, node, self.find_net(node), net2
if not self.connected_net(node, net2):
- print device.name, pin, pin_name, 'NOT pulled to', net2
+ print device.name, pin, pin_name, 'NOT connected to', net2, 'via', kind+'-device'
return False
print device.name, pin, pin_name, 'is pulled to', net2
return True
+ def connected_cap(self, device, pin_name, net2):
+ "connected via capacitor"
+ return self.connected_via('C', device, pin_name, net2)
+ def connected_res(self, device, pin_name, net2):
+ "connected via resistor"
+ return self.connected_via('R', device, pin_name, net2)
+
def device_nets(self, device):
mask = Node((device, '*'))
res = []
print nets
return False
nets.append(net_name)
- print device.name, 'uniq_net OK'
+ print device.name, 'separate_pins OK'
return True
class Parts: