diff --git a/b_asic/basic_operation.py b/b_asic/basic_operation.py index 6810a9a753e327773d6ed8fe11e136b4ffb686e1..42689a74b0b173725f58e438c2fb6ed89598a9ba 100644 --- a/b_asic/basic_operation.py +++ b/b_asic/basic_operation.py @@ -23,7 +23,7 @@ class BasicOperation(Operation): _output_ports: List[OutputPort] _parameters: Dict[str, Optional[Any]] - def __init__(self, identifier: OperationId): + def __init__(self): """ Construct a BasicOperation. """ diff --git a/b_asic/signal.py b/b_asic/signal.py index 4fac563faf48cb6a6a7ea585cf7aea44ce259758..6ef55c8d076320d52e5044296af0e3e65617728c 100644 --- a/b_asic/signal.py +++ b/b_asic/signal.py @@ -6,9 +6,6 @@ TODO: More info. from b_asic.operation import Operation from typing import NewType -SignalId = NewType("SignalId", int) - - class SignalSource: """ Handle to a signal source. @@ -50,22 +47,14 @@ class Signal: A connection between two operations consisting of a source and destination handle. TODO: More info. """ - _identifier: SignalId source: SignalSource destination: SignalDestination - def __init__(self, identifier: SignalId, source: SignalSource, destination: SignalDestination): + def __init__(self, source: SignalSource, destination: SignalDestination): """ Construct a Signal. """ - self._identifier = identifier self.source = source self.destination = destination - def identifier(self) -> SignalId: - """ - Get the unique identifier. - """ - return self._identifier - # TODO: More stuff. diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index 3c709ab3a57b9c81b455630f89f315341e602384..3f804f0e9b81dfa2797ba40016eaba96414b2509 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -5,12 +5,14 @@ TODO: More info. from b_asic.operation import Operation from b_asic.basic_operation import BasicOperation -from b_asic.signal import SignalSource, SignalDestination +from b_asic.signal import Signal, SignalSource, SignalDestination from b_asic.simulation import SimulationState, OperationState from typing import List, Dict # Types OperationId = NewType("OperationId", int) +SignalId = NewType("SignalId", int) + class SFG(BasicOperation): @@ -20,8 +22,9 @@ class SFG(BasicOperation): """ _operations: Dict[OperationID, Operation] + _signals: Dict[SignalID, Signal] - def __init__(self, identifier: OperationId, input_destinations: List[SignalDestination], output_sources: List[SignalSource]): + def __init__(self, input_destinations: List[SignalDestination], output_sources: List[SignalSource]): """ Construct a SFG. """ @@ -29,6 +32,7 @@ class SFG(BasicOperation): # TODO: Allocate input/output ports with appropriate IDs. self._operations = dict # Map Operation ID to Operation objects + self._signals = dict # Map Signal ID to Signal objects # TODO: Traverse the graph between the inputs/outputs and add to self._operations. # TODO: Connect ports with signals with appropriate IDs. @@ -37,6 +41,5 @@ class SFG(BasicOperation): return [] # TODO: Implement def split(self) -> List[Operation]: - return self._operations + return self - # TODO: More stuff. diff --git a/b_asic/simulation.py b/b_asic/simulation.py index e219445b38abf7fc755295a4ccf8b6284ce6651b..5f9dffb6fe9e5d8b8850cd7a35ace9b450360520 100644 --- a/b_asic/simulation.py +++ b/b_asic/simulation.py @@ -3,7 +3,6 @@ B-ASIC Simulation Module. TODO: More info. """ -from b_asic.operation import OperationId from numbers import Number from typing import List, Dict