summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lace.rb18
1 files changed, 9 insertions, 9 deletions
diff --git a/lace.rb b/lace.rb
index 1d7f2f9..a9b0f36 100644
--- a/lace.rb
+++ b/lace.rb
@@ -79,25 +79,25 @@ module Lace
79 end 79 end
80 80
81 def real_nets(refs) 81 def real_nets(refs)
82 n = 1
83 nets = {} 82 nets = {}
84 seen = Set.new 83 seen = Set.new
85 @nets.each do | id, net | 84 @nets.each do | id, net |
86 next if seen.member?(net.object_id) 85 next if seen.member?(net.object_id)
87 seen.add(net.object_id) 86 seen.add(net.object_id)
88 name = net.name
89 unless name
90 name = "$unnamed#{n}"
91 n += 1
92 end
93 raise "Multiple disconnected nets named #{name}" if nets.member?(name)
94 nodes = [] 87 nodes = []
88 parts = []
95 refs.each do | ref, comp | 89 refs.each do | ref, comp |
96 comp.pins.each do | pin, pinnet | 90 comp.pins.each do | pin, pinnet |
97 nodes << {:ref => ref, :pin => pin} if definitive_net(pinnet).object_id == net.object_id 91 next unless definitive_net(pinnet).object_id == net.object_id
92 nodes << {:ref => ref, :pin => pin}
93 parts << "#{ref}$#{pin}"
98 end 94 end
99 end 95 end
100 nets[name] = nodes if nodes.size > 1 96 next unless nodes.size > 1
97 name = net.name
98 name = parts.sort.join("_") unless name
99 raise "Multiple disconnected nets named #{name}" if nets.member?(name)
100 nets[name] = nodes
101 end 101 end
102 return nets 102 return nets
103 end 103 end