fix dot graph construction
This commit is contained in:
1 parent
8aa0f09254
commit
e8a9025c56
1 file changed
+3
-3
@@ -652,11 +652,11 @@ class Circuit:
|
|||||||
region.append(n)
|
region.append(n)
|
||||||
yield stem, region
|
yield stem, region
|
||||||
|
|
||||||
def dot(self, format='svg', graph_attr={}, line_labels={}):
|
def dot(self, tlib: 'TechLib', format='svg', graph_attr={}, line_labels={}):
|
||||||
from graphviz import Digraph
|
from graphviz import Digraph
|
||||||
dot = Digraph(format=format, graph_attr={'rankdir': 'LR', 'splines': 'true', 'size': '10', 'ranksep': '0.1'} | graph_attr)
|
dot = Digraph(format=format, graph_attr={'rankdir': 'LR', 'splines': 'true', 'size': '10', 'ranksep': '0.1'} | graph_attr)
|
||||||
|
|
||||||
s_dict = dict((n, i) for i, n in enumerate(self.s_nodes))
|
s_dict = dict((n, i) for i, n in enumerate(self.s_nodes(tlib)))
|
||||||
node_level = np.zeros(len(self.nodes), dtype=np.uint32)
|
node_level = np.zeros(len(self.nodes), dtype=np.uint32)
|
||||||
level_nodes = defaultdict(list)
|
level_nodes = defaultdict(list)
|
||||||
for n, lv in self.topological_order_with_level():
|
for n, lv in self.topological_order_with_level():
|
||||||
@@ -679,7 +679,7 @@ class Circuit:
|
|||||||
reader = f'{l.reader.index}:i{l.reader_pin}' if len(l.reader.ins)>1 else f'{l.reader.index}'
|
reader = f'{l.reader.index}:i{l.reader_pin}' if len(l.reader.ins)>1 else f'{l.reader.index}'
|
||||||
label = str(line_labels.get(l, l.index))
|
label = str(line_labels.get(l, l.index))
|
||||||
if node_level[l.driver] == node_level[l.reader]:
|
if node_level[l.driver] == node_level[l.reader]:
|
||||||
s.node(f'_{l.index}_')
|
dot.node(f'_{l.index}_')
|
||||||
dot.edge(driver, f'_{l.index}_', style='dotted', label=label)
|
dot.edge(driver, f'_{l.index}_', style='dotted', label=label)
|
||||||
dot.edge(f'_{l.index}_', reader, style='dotted', label=label)
|
dot.edge(f'_{l.index}_', reader, style='dotted', label=label)
|
||||||
elif node_level[l.driver] > node_level[l.reader]:
|
elif node_level[l.driver] > node_level[l.reader]:
|
||||||
|
|||||||
Reference in new issue
Block a user