diff --git a/tests/test_cycle_timing.py.bak b/tests/test_cycle_timing.py similarity index 92% rename from tests/test_cycle_timing.py.bak rename to tests/test_cycle_timing.py index 4f79189..3d73aae 100644 --- a/tests/test_cycle_timing.py.bak +++ b/tests/test_cycle_timing.py @@ -16,7 +16,7 @@ cycle counts by inspecting event.time values. import pytest import simpy -from cm_inst import ALUInst, Addr, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu.events import ( TokenReceived, Matched, Executed, Emitted, IRAMWritten, ResultSent, CellWritten, DeferredRead as DeferredReadEvent, DeferredSatisfied, @@ -24,7 +24,7 @@ from emu.events import ( from emu.network import build_topology from emu.types import PEConfig, SMConfig from sm_mod import Presence -from tokens import DyadToken, IRAMWriteToken, MonadToken, SMToken +from tokens import DyadToken, PELocalWriteToken, MonadToken, SMToken # ============================================================================= @@ -50,8 +50,8 @@ class TestAC1_DyadicTiming: system = build_topology(env, [pe_config, pe1_config], sm_configs) # Inject two dyadic tokens for the same offset - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x2222, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x2222, port=Port.R) def injector(): yield system.pes[0].input_store.put(token_l) @@ -104,7 +104,7 @@ class TestAC2_MonadicTiming: system = build_topology(env, [pe_config, pe1_config], []) # Inject a monadic token - token = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) def injector(): yield system.pes[0].input_store.put(token) @@ -145,7 +145,7 @@ class TestAC2_MonadicTiming: system = build_topology(env, [pe_config, pe1_config], []) # Inject a dyadic token at a monadic instruction - token = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) + token = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) def injector(): yield system.pes[0].input_store.put(token) @@ -240,8 +240,8 @@ class TestAC3_PipelineOverlap: system = build_topology(env, [pe_config, pe1_config], []) - token1 = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) - token2 = MonadToken(target=0, offset=0, ctx=0, data=0x2222, inline=False) + token1 = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) + token2 = MonadToken(target=0, offset=0, act_id=0, data=0x2222, inline=False) def injector(): yield system.pes[0].input_store.put(token1) @@ -282,9 +282,9 @@ class TestAC3_PipelineOverlap: system = build_topology(env, [pe_config, pe1_config], []) - token1 = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) - token2 = MonadToken(target=0, offset=0, ctx=0, data=0x2222, inline=False) - token3 = MonadToken(target=0, offset=0, ctx=0, data=0x3333, inline=False) + token1 = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) + token2 = MonadToken(target=0, offset=0, act_id=0, data=0x2222, inline=False) + token3 = MonadToken(target=0, offset=0, act_id=0, data=0x3333, inline=False) def injector(): yield system.pes[0].input_store.put(token1) @@ -325,12 +325,12 @@ class TestAC3_MatchingStoreSafety: system = build_topology(env, [pe_config, pe1_config], []) # Pair 1: offset 0 - token1_l = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) - token1_r = DyadToken(target=0, offset=0, ctx=0, data=0x2222, port=Port.R, gen=0, wide=False) + token1_l = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) + token1_r = DyadToken(target=0, offset=0, act_id=0, data=0x2222, port=Port.R) # Pair 2: offset 1 - token2_l = DyadToken(target=0, offset=1, ctx=0, data=0x3333, port=Port.L, gen=0, wide=False) - token2_r = DyadToken(target=0, offset=1, ctx=0, data=0x4444, port=Port.R, gen=0, wide=False) + token2_l = DyadToken(target=0, offset=1, act_id=0, data=0x3333, port=Port.L) + token2_r = DyadToken(target=0, offset=1, act_id=0, data=0x4444, port=Port.R) def injector(): # Inject pair 1 @@ -387,7 +387,7 @@ class TestAC4_SMReadTiming: system = build_topology(env, [pe_config], [sm_config]) # Create a read token with return route to PE - ret_token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + ret_token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) token = SMToken(target=0, addr=0, op=MemOp.READ, flags=None, data=0, ret=ret_token) def injector(): @@ -436,7 +436,7 @@ class TestAC4_SMReadTiming: system = build_topology(env, [pe_config], [sm_config]) # Create a read token with return route to PE - ret_token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + ret_token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) token = SMToken(target=0, addr=0, op=MemOp.READ, flags=None, data=0, ret=ret_token) def injector(): @@ -528,8 +528,8 @@ class TestAC4_SMExecTiming: system = build_topology(env, [pe_config], [sm_config]) # Pre-fill T0 with tokens at address 256 (tier boundary) - token1 = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) - token2 = MonadToken(target=0, offset=0, ctx=0, data=0x2222, inline=False) + token1 = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) + token2 = MonadToken(target=0, offset=0, act_id=0, data=0x2222, inline=False) system.sms[0].t0_store.append(token1) system.sms[0].t0_store.append(token2) @@ -581,7 +581,7 @@ class TestAC4_DeferredReadTiming: system = build_topology(env, [pe_config], [sm_config]) # Create deferred read token - ret_token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + ret_token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) read_token = SMToken(target=0, addr=0, op=MemOp.READ, flags=None, data=0, ret=ret_token) # Create write token to satisfy the deferred read @@ -646,7 +646,7 @@ class TestAC5_NetworkDeliveryTiming: system = build_topology(env, [pe0_config, pe1_config], []) # Inject monadic token to PE0 - token = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) def injector(): yield system.pes[0].input_store.put(token) @@ -686,7 +686,7 @@ class TestAC5_NetworkDeliveryTiming: system = build_topology(env, [pe_config], [sm_config]) # Inject monadic token to PE - token = MonadToken(target=0, offset=0, ctx=0, data=0x5678, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x5678, inline=False) def injector(): yield system.pes[0].input_store.put(token) @@ -726,7 +726,7 @@ class TestAC5_NetworkDeliveryTiming: system = build_topology(env, [pe_config], [sm_config]) # Create read token with return to PE0 - ret_token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + ret_token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) token = SMToken(target=0, addr=0, op=MemOp.READ, flags=None, data=0, ret=ret_token) def injector(): @@ -758,7 +758,7 @@ class TestAC5_NetworkDeliveryTiming: system = build_topology(env, [pe_config], []) # Inject directly (zero-delay) - token = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) system.inject(token) # Token should be in PE's input store immediately @@ -788,8 +788,8 @@ class TestAC6_ParallelExecution: system = build_topology(env, [pe0_config, pe1_config], []) - token0 = MonadToken(target=0, offset=0, ctx=0, data=0x1111, inline=False) - token1 = MonadToken(target=1, offset=0, ctx=0, data=0x2222, inline=False) + token0 = MonadToken(target=0, offset=0, act_id=0, data=0x1111, inline=False) + token1 = MonadToken(target=1, offset=0, act_id=0, data=0x2222, inline=False) def injector(): yield system.pes[0].input_store.put(token0) @@ -832,10 +832,10 @@ class TestAC6_ParallelExecution: system = build_topology(env, [pe_config], [sm_config]) # PE token - pe_token = MonadToken(target=0, offset=0, ctx=0, data=0x5555, inline=False) + pe_token = MonadToken(target=0, offset=0, act_id=0, data=0x5555, inline=False) # SM token - ret_token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + ret_token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) sm_token = SMToken(target=0, addr=0, op=MemOp.READ, flags=None, data=0, ret=ret_token) def injector(): diff --git a/tests/test_e2e.py.bak b/tests/test_e2e.py similarity index 99% rename from tests/test_e2e.py.bak rename to tests/test_e2e.py index 553a005..bd19b11 100644 --- a/tests/test_e2e.py.bak +++ b/tests/test_e2e.py @@ -14,7 +14,7 @@ import simpy from asm import assemble, assemble_to_tokens from emu import build_topology -from tokens import IRAMWriteToken, MonadToken, SMToken +from tokens import PELocalWriteToken, MonadToken, SMToken def run_program_direct(source: str, until: int = 1000) -> dict: @@ -68,7 +68,7 @@ def run_program_tokens(source: str, until: int = 1000) -> dict: for token in tokens: if isinstance(token, SMToken): max_sm_id = max(max_sm_id, token.target) - elif isinstance(token, IRAMWriteToken): + elif isinstance(token, PELocalWriteToken): max_pe_id = max(max_pe_id, token.target) elif isinstance(token, MonadToken): max_pe_id = max(max_pe_id, token.target) diff --git a/tests/test_exec_bootstrap.py.bak b/tests/test_exec_bootstrap.py similarity index 98% rename from tests/test_exec_bootstrap.py.bak rename to tests/test_exec_bootstrap.py index 02a5e71..5b99e1f 100644 --- a/tests/test_exec_bootstrap.py.bak +++ b/tests/test_exec_bootstrap.py @@ -13,11 +13,11 @@ Verifies acceptance criteria: import pytest import simpy -from cm_inst import ALUInst, Addr, MemOp, Port, RoutingOp +from cm_inst import OutputStyle, MemOp, Port, RoutingOp, Instruction from emu import build_topology from emu.types import PEConfig, SMConfig from sm_mod import Presence -from tokens import DyadToken, IRAMWriteToken, MonadToken, SMToken +from tokens import DyadToken, PELocalWriteToken, MonadToken, SMToken class TestAC2_1IRAMWriteTokenRouting: @@ -58,7 +58,7 @@ class TestAC2_1IRAMWriteTokenRouting: # Verify token arrived at PE 2's input_store (inject appends directly to items) assert len(sys.pes[2].input_store.items) > 0 received = sys.pes[2].input_store.items[0] - assert isinstance(received, IRAMWriteToken) + assert isinstance(received, PELocalWriteToken) assert received.target == 2 assert received.offset == 10 @@ -235,7 +235,7 @@ class TestAC5_2ExecTokensProcessedNormally: ) # Create dyad token to be injected by EXEC - token_l = DyadToken(target=1, offset=0, act_id=0, data=0xABCD, port=Port.L, gen=0, wide=False) + token_l = DyadToken(target=1, offset=0, act_id=0, data=0xABCD, port=Port.L) # Pre-populate T0 sys.sms[0].t0_store.append(token_l) diff --git a/tests/test_foundation_types.py b/tests/test_foundation_types.py index 02d3c03..db9527b 100644 --- a/tests/test_foundation_types.py +++ b/tests/test_foundation_types.py @@ -529,7 +529,7 @@ class TestIRAMWriteTokenRemoved: def test_iramwrite_token_does_not_exist(self): """IRAMWriteToken is no longer available in tokens module.""" with pytest.raises(ImportError): - from tokens import IRAMWriteToken # type: ignore + from tokens import PELocalWriteToken # type: ignore # ============================================================================ diff --git a/tests/test_integration.py.bak b/tests/test_integration.py similarity index 96% rename from tests/test_integration.py.bak rename to tests/test_integration.py index 6644db8..079db4e 100644 --- a/tests/test_integration.py.bak +++ b/tests/test_integration.py @@ -9,10 +9,10 @@ Verifies: import simpy -from cm_inst import Addr, ALUInst, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu import PEConfig, SMConfig, build_topology from sm_mod import Presence -from tokens import CMToken, DyadToken, IRAMWriteToken, MonadToken, SMToken +from tokens import CMToken, DyadToken, PELocalWriteToken, MonadToken, SMToken class TestAC51IRAMInitialization: @@ -164,11 +164,11 @@ class TestAC53TokenInjection: ) # Inject token to PE0 - token0 = MonadToken(target=0, offset=0, ctx=0, data=10, inline=False) + token0 = MonadToken(target=0, offset=0, act_id=0, data=10, inline=False) sys.inject(token0) # Inject token to PE1 - token1 = MonadToken(target=1, offset=0, ctx=0, data=20, inline=False) + token1 = MonadToken(target=1, offset=0, act_id=0, data=20, inline=False) sys.inject(token1) # Verify tokens arrived at correct PEs @@ -253,7 +253,7 @@ class TestAC51GenCounterInitialization: sys = build_topology( env, - [PEConfig(pe_id=0, iram={}, gen_counters=[1, 0, 2, 3])], + [PEConfig(pe_id=0, iram={}, 0, 2, 3])], [], ) @@ -266,7 +266,7 @@ class TestAC51GenCounterInitialization: sys = build_topology( env, - [PEConfig(pe_id=0, iram={}, gen_counters=None)], + [PEConfig(pe_id=0, iram={})], [], ) @@ -344,10 +344,10 @@ class TestAC61E2EConstFedsAdd: # Inject tokens via SimPy process def injector(): yield sys.pes[0].input_store.put( - MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) ) yield sys.pes[0].input_store.put( - MonadToken(target=0, offset=1, ctx=0, data=0, inline=False) + MonadToken(target=0, offset=1, act_id=0, data=0, inline=False) ) env.process(injector()) @@ -409,10 +409,10 @@ class TestAC62E2ESMRoundTrip: # Inject tokens via SimPy process (FIFO order ensures WRITE before READ) def injector(): yield sys.pes[0].input_store.put( - MonadToken(target=0, offset=0, ctx=0, data=42, inline=False) + MonadToken(target=0, offset=0, act_id=0, data=42, inline=False) ) yield sys.pes[0].input_store.put( - MonadToken(target=0, offset=1, ctx=0, data=0, inline=False) + MonadToken(target=0, offset=1, act_id=0, data=0, inline=False) ) env.process(injector()) @@ -463,7 +463,7 @@ class TestAC63E2EDualFanout: # Inject token via SimPy process def injector(): yield sys.pes[0].input_store.put( - MonadToken(target=0, offset=0, ctx=0, data=99, inline=False) + MonadToken(target=0, offset=0, act_id=0, data=99, inline=False) ) env.process(injector()) @@ -500,7 +500,7 @@ class TestAC64E2ESwitchRouting: sys = build_topology( env, [ - PEConfig(pe_id=0, iram=pe0_iram, gen_counters=[0, 0, 0, 0]), + PEConfig(pe_id=0, iram=pe0_iram, 0, 0, 0]), PEConfig(pe_id=1, iram={}), # PE1: receives data token PEConfig(pe_id=2, iram={}), # PE2: receives inline trigger ], @@ -571,7 +571,7 @@ class TestAC64E2ESwitchRouting: sys = build_topology( env, [ - PEConfig(pe_id=0, iram=pe0_iram, gen_counters=[0, 0, 0, 0]), + PEConfig(pe_id=0, iram=pe0_iram, 0, 0, 0]), PEConfig(pe_id=1, iram={}), # PE1: receives inline trigger PEConfig(pe_id=2, iram={}), # PE2: receives data token ], diff --git a/tests/test_network.py.bak b/tests/test_network.py similarity index 96% rename from tests/test_network.py.bak rename to tests/test_network.py index 703a493..cd9780b 100644 --- a/tests/test_network.py.bak +++ b/tests/test_network.py @@ -10,7 +10,7 @@ Verifies: import simpy -from cm_inst import ALUInst, Addr, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu import build_topology, PEConfig, SMConfig from emu.pe import ProcessingElement from sm_mod import Presence @@ -424,11 +424,11 @@ class TestAC44BackpressureRelease: # Inject seeds to both PEs def inject_pe0(): - token = MonadToken(target=0, offset=0, ctx=0, data=0, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0, inline=False) yield pe0.input_store.put(token) def inject_pe2(): - token = MonadToken(target=2, offset=0, ctx=0, data=2, inline=False) + token = MonadToken(target=2, offset=0, act_id=0, data=2, inline=False) yield pe2.input_store.put(token) # Consumer that drains destination @@ -475,7 +475,7 @@ class TestNetworkIntegration: # Inject seed def inject(): - seed = MonadToken(target=0, offset=0, ctx=0, data=123, inline=False) + seed = MonadToken(target=0, offset=0, act_id=0, data=123, inline=False) yield pe0.input_store.put(seed) env.process(inject()) @@ -511,7 +511,7 @@ class TestNetworkIntegration: [sm_config], ) - seed = MonadToken(target=0, offset=0, ctx=0, data=88, inline=False) + seed = MonadToken(target=0, offset=0, act_id=0, data=88, inline=False) sys.inject(seed) env.run() @@ -669,8 +669,8 @@ class TestRestrictedTopology: # Inject tokens def injector(): - yield sys.pes[0].input_store.put(MonadToken(target=0, offset=0, ctx=0, data=0, inline=False)) - yield sys.pes[0].input_store.put(MonadToken(target=0, offset=1, ctx=0, data=0, inline=False)) + yield sys.pes[0].input_store.put(MonadToken(target=0, offset=0, act_id=0, data=0, inline=False)) + yield sys.pes[0].input_store.put(MonadToken(target=0, offset=1, act_id=0, data=0, inline=False)) env.process(injector()) env.run() @@ -701,7 +701,7 @@ class TestSystemInjectTokenAPI: sys = build_topology(env, [PEConfig(0, pe0_iram), PEConfig(1, {})], []) # Inject MonadToken via unified API - token = MonadToken(target=0, offset=0, ctx=0, data=0xABCD, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0xABCD, inline=False) sys.inject(token) env.run() @@ -732,11 +732,11 @@ class TestSystemInjectTokenAPI: sys.pes[0].route_table[1] = output_store # Create and inject first DyadToken - token1 = DyadToken(target=0, offset=0, ctx=0, data=10, port=Port.L, gen=0, wide=False) + token1 = DyadToken(target=0, offset=0, act_id=0, data=10, port=Port.L) sys.inject(token1) # Create and inject second DyadToken to fire the instruction - token2 = DyadToken(target=0, offset=0, ctx=0, data=20, port=Port.R, gen=0, wide=False) + token2 = DyadToken(target=0, offset=0, act_id=0, data=20, port=Port.R) sys.inject(token2) env.run() diff --git a/tests/test_network_events.py.bak b/tests/test_network_events.py similarity index 99% rename from tests/test_network_events.py.bak rename to tests/test_network_events.py index d8aefc4..1177517 100644 --- a/tests/test_network_events.py.bak +++ b/tests/test_network_events.py @@ -9,7 +9,7 @@ Verifies: import simpy -from cm_inst import ALUInst, Addr, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu import build_topology, PEConfig, SMConfig from emu.events import ( TokenReceived, Emitted, CellWritten, ResultSent, diff --git a/tests/test_pe.py.bak b/tests/test_pe.py similarity index 92% rename from tests/test_pe.py.bak rename to tests/test_pe.py index 5c0b57d..1e26533 100644 --- a/tests/test_pe.py.bak +++ b/tests/test_pe.py @@ -17,10 +17,10 @@ import pytest import simpy from hypothesis import given -from cm_inst import ALUInst, Addr, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu.pe import ProcessingElement from tests.conftest import dyad_token -from tokens import DyadToken, IRAMWriteToken, MonadToken +from tokens import DyadToken, PELocalWriteToken, MonadToken def _inject_token(pe, token): @@ -109,7 +109,7 @@ class TestMonadicBypass: pe.route_table[1] = output_store # Create and inject monadic token - token = MonadToken(target=0, offset=0, ctx=0, data=0x1234, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x1234, inline=False) env.process(_inject_token(pe, token)) # Run simulation @@ -160,8 +160,8 @@ class TestDyadicMatching: pe.route_table[1] = output_store # Inject L then R tokens - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x2222, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x2222, port=Port.R) env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -181,8 +181,8 @@ class TestDyadicMatching: pe.route_table[1] = output_store # Inject R then L tokens (reversed order) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x2222, port=Port.R, gen=0, wide=False) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x2222, port=Port.R) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) env.process(_inject_two_tokens(pe, token_r, token_l)) env.run(until=100) @@ -215,8 +215,8 @@ class TestOutputFormatterSingleMode: pe.route_table[2] = output_store # Inject dyadic tokens for ADD - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x0005, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x0003, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x0005, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x0003, port=Port.R) env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -251,8 +251,8 @@ class TestOutputFormatterDualMode: pe.route_table[3] = output_r # Inject dyadic tokens - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x0010, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x0020, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x0010, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x0020, port=Port.R) env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -288,8 +288,8 @@ class TestOutputFormatterSwitchMode: pe.route_table[3] = output_r # Inject equal tokens (bool_out = True) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1234, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x1234, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1234, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x1234, port=Port.R) env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -329,8 +329,8 @@ class TestOutputFormatterSwitchMode: pe.route_table[3] = output_r # Inject unequal tokens (bool_out = False) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1234, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x5678, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1234, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x5678, port=Port.R) env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -364,7 +364,7 @@ class TestOutputFormatterSuppressMode: pe.route_table[1] = output_store # Inject monad token - token = MonadToken(target=0, offset=0, ctx=0, data=0x4567, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x4567, inline=False) env.process(_inject_token(pe, token)) env.run(until=100) @@ -391,8 +391,8 @@ class TestOutputFormatterSuppressMode: pe.route_table[1] = output_store # Inject dyadic tokens: L=42, R=0 (false condition for GATE) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x002A, port=Port.L, gen=0, wide=False) # 42 - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x0000, port=Port.R, gen=0, wide=False) # 0 = false + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x002A, port=Port.L) # 42 + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x0000, port=Port.R) # 0 = false env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -419,8 +419,8 @@ class TestOutputFormatterSuppressMode: pe.route_table[1] = output_store # Inject dyadic tokens: L=42, R=1 (true condition for GATE) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x002A, port=Port.L, gen=0, wide=False) # 42 - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x0001, port=Port.R, gen=0, wide=False) # 1 = true + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x002A, port=Port.L) # 42 + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x0001, port=Port.R) # 1 = true env.process(_inject_two_tokens(pe, token_l, token_r)) env.run(until=100) @@ -446,7 +446,7 @@ class TestNonExistentOffset: pe.route_table[1] = output_store # Inject monad token targeting non-existent offset - token = MonadToken(target=0, offset=99, ctx=0, data=0xDEAD, inline=False) + token = MonadToken(target=0, offset=99, act_id=0, data=0xDEAD, inline=False) env.process(_inject_token(pe, token)) @@ -527,8 +527,8 @@ class TestIRAMWriteToken: yield pe.input_store.put(write_token) yield env.timeout(10) # Now inject dyadic tokens for the loaded ADD instruction - token_l = DyadToken(target=0, offset=3, ctx=0, data=0x10, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=3, ctx=0, data=0x20, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=3, act_id=0, data=0x10, port=Port.L) + token_r = DyadToken(target=0, offset=3, act_id=0, data=0x20, port=Port.R) yield pe.input_store.put(token_l) yield pe.input_store.put(token_r) diff --git a/tests/test_pe_events.py.bak b/tests/test_pe_events.py similarity index 89% rename from tests/test_pe_events.py.bak rename to tests/test_pe_events.py index f9c732c..d3c3f00 100644 --- a/tests/test_pe_events.py.bak +++ b/tests/test_pe_events.py @@ -12,12 +12,12 @@ Verifies acceptance criteria: import pytest import simpy -from cm_inst import ALUInst, Addr, ArithOp, MemOp, Port, RoutingOp, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, RoutingOp, Instruction from emu.events import ( TokenReceived, Matched, Executed, Emitted, IRAMWritten, ) from emu.pe import ProcessingElement -from tokens import DyadToken, IRAMWriteToken, MonadToken, SMToken +from tokens import DyadToken, PELocalWriteToken, MonadToken, SMToken class TestAC2_1TokenReceived: @@ -34,7 +34,7 @@ class TestAC2_1TokenReceived: pe = ProcessingElement(env, 0, {}, on_event=on_event) # Create and inject MonadToken - token = MonadToken(target=0, offset=0, ctx=0, data=0x1234, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=0x1234, inline=False) def inject(): yield pe.input_store.put(token) @@ -63,7 +63,7 @@ class TestAC2_1TokenReceived: pe.route_table[1] = output_store # Create and inject DyadToken - token = DyadToken(target=0, offset=0, ctx=0, data=0x5678, port=Port.L, gen=0, wide=False) + token = DyadToken(target=0, offset=0, act_id=0, data=0x5678, port=Port.L) def inject(): yield pe.input_store.put(token) @@ -94,8 +94,8 @@ class TestAC2_2Matched: output_store = simpy.Store(env) pe.route_table[1] = output_store - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x1111, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x2222, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x1111, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x2222, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -127,8 +127,8 @@ class TestAC2_2Matched: output_store = simpy.Store(env) pe.route_table[1] = output_store - token_r = DyadToken(target=0, offset=5, ctx=1, data=0x4444, port=Port.R, gen=0, wide=False) - token_l = DyadToken(target=0, offset=5, ctx=1, data=0x3333, port=Port.L, gen=0, wide=False) + token_r = DyadToken(target=0, offset=5, act_id=1, data=0x4444, port=Port.R) + token_l = DyadToken(target=0, offset=5, act_id=1, data=0x3333, port=Port.L) def inject(): yield pe.input_store.put(token_r) @@ -164,8 +164,8 @@ class TestAC2_3Executed: output_store = simpy.Store(env) pe.route_table[1] = output_store - token_l = DyadToken(target=0, offset=0, ctx=0, data=10, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=20, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=10, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=20, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -199,8 +199,8 @@ class TestAC2_3Executed: pe.route_table[2] = output_r # Equal operands (bool_out=True) - token_l = DyadToken(target=0, offset=0, ctx=0, data=0x5555, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0x5555, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0x5555, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0x5555, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -234,8 +234,8 @@ class TestAC2_4Emitted: output_store = simpy.Store(env) pe.route_table[1] = output_store - token_l = DyadToken(target=0, offset=0, ctx=0, data=5, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=3, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=5, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=3, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -271,8 +271,8 @@ class TestAC2_4Emitted: pe.route_table[1] = output_l pe.route_table[2] = output_r - token_l = DyadToken(target=0, offset=0, ctx=0, data=10, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=20, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=10, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=20, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -307,8 +307,8 @@ class TestAC2_4Emitted: pe.route_table[1] = output_l pe.route_table[2] = output_r - token_l = DyadToken(target=0, offset=0, ctx=0, data=0xAAAA, port=Port.L, gen=0, wide=False) - token_r = DyadToken(target=0, offset=0, ctx=0, data=0xAAAA, port=Port.R, gen=0, wide=False) + token_l = DyadToken(target=0, offset=0, act_id=0, data=0xAAAA, port=Port.L) + token_r = DyadToken(target=0, offset=0, act_id=0, data=0xAAAA, port=Port.R) def inject(): yield pe.input_store.put(token_l) @@ -336,7 +336,7 @@ class TestAC2_4Emitted: pe.sm_routes[0] = sm_store # Inject tokens to trigger SMInst - token_l = MonadToken(target=0, offset=0, ctx=0, data=50, inline=False) + token_l = MonadToken(target=0, offset=0, act_id=0, data=50, inline=False) def inject(): yield pe.input_store.put(token_l) @@ -460,7 +460,7 @@ class TestCTXOvrdEmit: pe = ProcessingElement(env, 0, iram, on_event=on_event) pe.route_table[0] = simpy.Store(env) - token = MonadToken(target=0, offset=0, ctx=0, data=42, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=42, inline=False) def inject(): yield pe.input_store.put(token) @@ -501,7 +501,7 @@ class TestCTXOvrdEmit: pe.route_table[0] = simpy.Store(env) pe.gen_counters[target_ctx] = 5 - token = MonadToken(target=0, offset=0, ctx=0, data=99, inline=False) + token = MonadToken(target=0, offset=0, act_id=0, data=99, inline=False) def inject(): yield pe.input_store.put(token) diff --git a/tests/test_seed_const.py.bak b/tests/test_seed_const.py similarity index 99% rename from tests/test_seed_const.py.bak rename to tests/test_seed_const.py index f2dd75c..c5ad390 100644 --- a/tests/test_seed_const.py.bak +++ b/tests/test_seed_const.py @@ -17,7 +17,7 @@ from asm.ir import ( IRGraph, IRNode, IREdge, SystemConfig, SourceLoc, ResolvedDest, ) from asm.opcodes import is_dyadic -from cm_inst import ArithOp, LogicOp, RoutingOp, Port, Addr +from cm_inst import OutputStyle, ArithOp, LogicOp, RoutingOp, Port from emu import build_topology from tokens import DyadToken, MonadToken diff --git a/tests/test_sm_graph_nodes.py.bak b/tests/test_sm_graph_nodes.py similarity index 99% rename from tests/test_sm_graph_nodes.py.bak rename to tests/test_sm_graph_nodes.py index ed51f22..0256c92 100644 --- a/tests/test_sm_graph_nodes.py.bak +++ b/tests/test_sm_graph_nodes.py @@ -8,7 +8,7 @@ from __future__ import annotations import pytest -from cm_inst import ArithOp, MemOp, Port, Addr, ALUInst, SMInst +from cm_inst import OutputStyle, ArithOp, MemOp, Port, Instruction from asm.ir import ( IRGraph, IRNode, IREdge, IRDataDef, SourceLoc, SystemConfig, ResolvedDest, collect_all_nodes_and_edges, collect_all_data_defs,