From 8163159517fadc192bb6b5ea2ebe0134b08e4432 Mon Sep 17 00:00:00 2001
From: Kevin <Kevin>
Date: Mon, 4 May 2020 14:06:47 +0200
Subject: [PATCH] changed replace_operations method

---
 b_asic/signal_flow_graph.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index 28e0f66b..d449a0a7 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -414,12 +414,12 @@ class SFG(AbstractOperation):
         operation: The operation used for replacement.
         """
 
+        _sfg = self()
+
         inputs = []
         outputs = []
 
-        for _operation in self.operations:
-            if _operation.graph_id not in operation_ids:
-                continue
+        for _operation in [_sfg.find_by_id(_id) for _id in operation_ids]:
             
             # Retrive input operations
             for _signal in _operation.input_signals:
@@ -431,8 +431,8 @@ class SFG(AbstractOperation):
                 if _signal.destination.operation.graph_id not in operation_ids:
                     outputs.append(_signal.destination.operation)
 
-        assert len(inputs) + len(outputs) == \
-            operation.input_count + operation.output_count, "The input and output count must match"
+        assert len(inputs) == operation.input_count, "The input count must match"
+        assert len(outputs) == operation.output_count, "The output count must match"
 
         for index_in, _input in enumerate(inputs):
             for _signal in _input.output_signals:
@@ -443,8 +443,8 @@ class SFG(AbstractOperation):
             for _signal in _output.input_signals:
                 _signal.remove_source()
                 _signal.set_source(operation.output(index_out))
-        
-        return self()
+       
+        return _sfg
 
     def _evaluate_source(self, src: OutputPort, results: MutableResultMap, registers: MutableRegisterMap, prefix: str) -> Number:
         src_prefix = prefix
-- 
GitLab