diff --git a/architecture_simulator/gui/toy_svg_directives.py b/architecture_simulator/gui/toy_svg_directives.py index dea12505..2eb8ad91 100644 --- a/architecture_simulator/gui/toy_svg_directives.py +++ b/architecture_simulator/gui/toy_svg_directives.py @@ -40,29 +40,51 @@ def __init__(self): self.text_alu_out = SvgWriteDirective() # Control unit signal paths and texts to highlight. self.path_control_unit_write_ram = SvgFillDirectiveControlUnit() + self.path_control_unit_write_ram_2 = SvgFillDirectiveControlUnit() self.text_write_ram = SvgFillDirectiveControlUnit() + self.text_write_ram_2 = SvgFillDirectiveControlUnit() self.path_control_unit_inc_pc = SvgFillDirectiveControlUnit() + self.path_control_unit_inc_pc_2 = SvgFillDirectiveControlUnit() self.text_inc_pc = SvgFillDirectiveControlUnit() self.path_control_unit_set_pc = SvgFillDirectiveControlUnit() + self.path_control_unit_set_pc_2 = SvgFillDirectiveControlUnit() self.text_set_pc = SvgFillDirectiveControlUnit() self.path_control_unit_addr_ir = SvgFillDirectiveControlUnit() + self.path_control_unit_addr_ir_2 = SvgFillDirectiveControlUnit() self.text_addr_ir = SvgFillDirectiveControlUnit() + self.text_addr_ir_2 = SvgFillDirectiveControlUnit() self.path_control_unit_set_ir = SvgFillDirectiveControlUnit() + self.path_control_unit_set_ir_2 = SvgFillDirectiveControlUnit() self.text_set_ir = SvgFillDirectiveControlUnit() + self.text_set_ir_2 = SvgFillDirectiveControlUnit() self.path_control_unit_set_accu = SvgFillDirectiveControlUnit() + self.path_control_unit_set_accu_2 = SvgFillDirectiveControlUnit() self.text_set_accu = SvgFillDirectiveControlUnit() + self.text_set_accu_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alucin = SvgFillDirectiveControlUnit() + self.path_control_unit_alucin_2 = SvgFillDirectiveControlUnit() self.text_alucin = SvgFillDirectiveControlUnit() + self.text_alucin_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alumode = SvgFillDirectiveControlUnit() + self.path_control_unit_alumode_2 = SvgFillDirectiveControlUnit() self.text_alumode = SvgFillDirectiveControlUnit() + self.text_alumode_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alu3 = SvgFillDirectiveControlUnit() + self.path_control_unit_alu3_2 = SvgFillDirectiveControlUnit() self.text_alu3 = SvgFillDirectiveControlUnit() + self.text_alu3_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alu2 = SvgFillDirectiveControlUnit() + self.path_control_unit_alu2_2 = SvgFillDirectiveControlUnit() self.text_alu2 = SvgFillDirectiveControlUnit() + self.text_alu2_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alu1 = SvgFillDirectiveControlUnit() + self.path_control_unit_alu1_2 = SvgFillDirectiveControlUnit() self.text_alu1 = SvgFillDirectiveControlUnit() + self.text_alu1_2 = SvgFillDirectiveControlUnit() self.path_control_unit_alu0 = SvgFillDirectiveControlUnit() + self.path_control_unit_alu0_2 = SvgFillDirectiveControlUnit() self.text_alu0 = SvgFillDirectiveControlUnit() + self.text_alu0_2 = SvgFillDirectiveControlUnit() def export(self) -> list[tuple[str, str, Any]]: """Exports all SvgDirectives into a format that the front end understands. @@ -174,4 +196,4 @@ class SvgFillDirectiveControlUnit(SvgFillDirective): """SVG Fill Directive for the control unit signals.""" def __init__(self): - super().__init__(color_on="#ED6B03", color_off="#000000") + super().__init__(color_on="#ed0202", color_off="#000000") diff --git a/architecture_simulator/gui/webgui.py b/architecture_simulator/gui/webgui.py index 256171a9..d4cf20b3 100644 --- a/architecture_simulator/gui/webgui.py +++ b/architecture_simulator/gui/webgui.py @@ -740,6 +740,23 @@ def get_toy_svg_update_values(sim: ToySimulation) -> list[tuple[str, str, Any]]: assert isinstance(control_unit_text, SvgFillDirectiveControlUnit) control_unit_path.do_highlight = value control_unit_text.do_highlight = value + + try: + control_unit_path_2 = getattr( + result, "path_control_unit_" + name + "_2" + ) + except AttributeError: + pass + else: + control_unit_path_2.do_highlight = value + + try: + control_unit_text_2 = getattr(result, "text_" + name + "_2") + except AttributeError: + pass + else: + control_unit_text_2.do_highlight = value + return result.export() diff --git a/webgui/img/toy_structure.svg b/webgui/img/toy_structure.svg index 9d6ffa46..586d022a 100755 --- a/webgui/img/toy_structure.svg +++ b/webgui/img/toy_structure.svg @@ -1,14 +1,14 @@ OpcodeNOP-32768-32768-32768-3276815 NOPClockClockMultiplexerMultiplexerPCPCProgram CounterProgram CounterRAMRAMArithmetic Logic UnitArithmetic Logic UnitACCUACCUALUCINALUCINALU0ALU1ALU2ALU3ALUMODEALUCINSET[IR]SET[ACCU]WRITE[RAM]ADDR=IRADDR=IRADDR=IR