From e7ddf6fde5391f45938714f1a1100fcf67400c54 Mon Sep 17 00:00:00 2001 From: Cesar Strauss Date: Thu, 24 Sep 2020 08:45:17 -0300 Subject: [PATCH] Use nmutil simulator module to simplify choosing among engines --- src/soc/experiment/alu_fsm.py | 84 +++++++++++------------------------ 1 file changed, 26 insertions(+), 58 deletions(-) diff --git a/src/soc/experiment/alu_fsm.py b/src/soc/experiment/alu_fsm.py index 468ddefe..70dbb9bb 100644 --- a/src/soc/experiment/alu_fsm.py +++ b/src/soc/experiment/alu_fsm.py @@ -17,7 +17,6 @@ The basic rules are: """ from nmigen import Elaboratable, Signal, Module, Cat -from nmigen.back.pysim import Simulator from nmigen.cli import rtlil from math import log2 import os @@ -28,6 +27,8 @@ from soc.fu.base_input_record import CompOpSubsetBase from soc.decoder.power_enums import (MicrOp, Function) from nmutil.gtkw import write_gtkw +from nmutil.sim_tmp_alternative import Simulator, is_engine_pysim, \ + nmigen_sim_top_module class CompFSMOpSubset(CompOpSubsetBase): @@ -215,72 +216,39 @@ def test_shifter(): with open("test_shifter.il", "w") as f: f.write(il) - engine = os.environ.get("NMIGEN_SIM_MODE") - gtkwave_style = { 'in': {'color': 'orange'}, 'out': {'color': 'yellow'}, } - # Allow for differences in signal naming among the engines - - if engine == "cxxsim": - module = "shf" - gtkwave_desc = [ - 'clk', - {'comment': 'Shifter Demonstration'}, - ('prev port', [ - ('op__sdir', 'in'), - ('p_data_i[7:0]', 'in'), - ('p_shift_i[7:0]', 'in'), - ('p_valid_i', 'in'), - ('p_p_ready_o', 'out'), - ]), - ('internal', [ - 'fsm_state[1:0]', - 'count[3:0]', - 'shift_reg[7:0]', - ]), - ('next port', [ - ('n_data_o[7:0]', 'out'), - ('n_n_valid_o', 'out'), - ('n_ready_i', 'in'), - ]), - ] - else: - module = "top.shf" - gtkwave_desc = [ - 'clk', - {'comment': 'Shifter Demonstration'}, - ('prev port', [ - ('op__sdir', 'in'), - ('p_data_i[7:0]', 'in'), - ('p_shift_i[7:0]', 'in'), - ('p_valid_i', 'in'), - ('p_ready_o', 'out'), - ]), - ('internal', [ - 'fsm_state', - 'count[3:0]', - 'shift_reg[7:0]', - ]), - ('next port', [ - ('n_data_o[7:0]', 'out'), - ('n_valid_o', 'out'), - ('n_ready_i', 'in'), - ]), - ] - + gtkwave_desc = [ + 'clk', + {'comment': 'Shifter Demonstration'}, + ('prev port', [ + ('op__sdir', 'in'), + ('p_data_i[7:0]', 'in'), + ('p_shift_i[7:0]', 'in'), + ('p_valid_i', 'in'), + ('p_ready_o' if is_engine_pysim() else 'p_p_ready_o', 'out'), + ]), + ('internal', [ + 'fsm_state' if is_engine_pysim() else 'fsm_state[1:0]', + 'count[3:0]', + 'shift_reg[7:0]', + ]), + ('next port', [ + ('n_data_o[7:0]', 'out'), + ('n_valid_o' if is_engine_pysim() else 'n_n_valid_o', 'out'), + ('n_ready_i', 'in'), + ]), + ] + + module = nmigen_sim_top_module + "shf" write_gtkw("test_shifter.gtkw", "test_shifter.vcd", gtkwave_desc, gtkwave_style, module=module, loc=__file__, base='dec') - if engine: - sim = Simulator(m, engine=engine) - else: - # old developer versions do not have the engine parameter - sim = Simulator(m) - + sim = Simulator(m) sim.add_clock(1e-6) def send(data, shift, direction): -- 2.30.2