Skip to content
Snippets Groups Projects

Resolve "Signal Interface"

Merged Kevin Scott requested to merge 45-signal-interface into develop
Files
12
+ 10
6
@@ -8,7 +8,7 @@ from typing import List, Dict, Optional, Any
from numbers import Number
from b_asic.port import InputPort, OutputPort
from b_asic.signal import SignalSource, SignalDestination
from b_asic.signal import Signal
from b_asic.operation import Operation
from b_asic.simulation import SimulationState, OperationState
@@ -73,7 +73,7 @@ class BasicOperation(Operation):
while self_state.iteration < state.iteration:
input_values: List[Number] = [0] * input_count
for i in range(input_count):
source: SignalSource = self._input_ports[i].signal().source
source: Signal = self._input_ports[i].signal
input_values[i] = source.operation.evaluate_outputs(state)[source.port_index]
self_state.output_values = self.evaluate(input_values)
@@ -81,7 +81,7 @@ class BasicOperation(Operation):
self_state.iteration += 1
for i in range(output_count):
for signal in self._output_ports[i].signals():
destination: SignalDestination = signal.destination
destination: Signal = signal.destination
destination.evaluate_outputs(state)
return self_state.output_values
@@ -96,9 +96,13 @@ class BasicOperation(Operation):
@property
def neighbours(self) -> List[Operation]:
neighbours: List[Operation] = []
for port in self._output_ports + self._input_ports:
for signal in port.signals():
neighbours += [signal.source.operation, signal.destination.operation]
for port in self._input_ports:
for signal in port.signals:
neighbours.append(signal.source.operation)
for port in self._output_ports:
for signal in port.signals:
neighbours.append(signal.destination.operation)
return neighbours
Loading