Skip to content
Snippets Groups Projects
Commit bfe75042 authored by Elias Johansson's avatar Elias Johansson
Browse files

made very simple test processor for testing generall graphics modules

parent ec21829d
No related branches found
No related tags found
No related merge requests found
......@@ -10,6 +10,9 @@ from simudator.gui.module_graphics_item.mia.mia_memory_graphic import MemoryGrap
from simudator.gui.module_graphics_item.mia.mia_micro_memory_graphic import (
MicroMemoryGraphicsItem,
)
from simudator.gui.module_graphics_item.mia.mia_register_graphic import (
RegisterGraphicsItem,
)
from simudator.gui.module_graphics_item.mia.pc_graphic import PcGraphicsItem
from simudator.gui.module_graphics_item.mia.supc_graphic import SupcGraphicsItem
from simudator.gui.module_graphics_item.mia.upc_graphic import uPcGraphicsItem
......@@ -17,5 +20,6 @@ from simudator.gui.module_graphics_item.mia.upc_graphic import uPcGraphicsItem
__all__ = ["MemoryGraphicsItem", "MicroMemoryGraphicsItem", "ArGraphicsItem",
"PcGraphicsItem", "AsrGraphicsItem", "HrGraphicsItem",
"SupcGraphicsItem", "uPcGraphicsItem", "FlagGraphicsItem",
"BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem"
"BusGraphicsItem", "AluGraphicsItem", "GrxGraphicsItem", "IrGraphicsItem",
"RegisterGraphicsItem"
]
import sys
from PyQt5.QtWidgets import QApplication
from simudator.cli.cli import CLI
from simudator.core.modules import Memory, Register
from simudator.core.processor import Processor, Signal
from simudator.gui.gui import GUI
from simudator.gui.module_graphics_item.mia import (
MemoryGraphicsItem,
RegisterGraphicsItem,
)
class SIMPLE_CPU(Processor):
"""
This cpu is made to test core modules and module graphics items for these modules.
"""
def __init__(self) -> None:
super().__init__()
# Creating all signals
# Signals follow the naming convention 'to_from'
self.max_line_len = 100
# Dummy values used when the values in the constructor is not needed
# unused = Signal(self)
# Needed since optional arguments need to be in the correct order
mem_input = Signal(self, "mem_input")
mem_output = Signal(self, "mem_output")
mem_control = Signal(self, "mem_control")
mem_adress = Signal(self, "mem_adress")
register_signal = Signal(self, "empty")
self.memory = Memory(mem_input, mem_output,mem_control,mem_adress, 10)
self.input_register = Register(register_signal, mem_input, name="Input Reg")
self.output_register = Register(mem_output,
register_signal, name="Output Reg")
self.control_register = Register(mem_control,
register_signal, name="Control Reg")
self.adress_register = Register(mem_adress, register_signal, name="Adress Reg")
ALLTHEMODULES = [self.memory, self.input_register, self.output_register,
self.control_register, self.adress_register]
for module in ALLTHEMODULES:
self.add_module(module)
self.lambdas = {}
def launch_gui(self):
app = QApplication(sys.argv)
self.reset()
gui = GUI(self)
gui.addModuleGraphicsItem(MemoryGraphicsItem(self.memory))
gui.addModuleGraphicsItem(RegisterGraphicsItem(self.input_register))
gui.addModuleGraphicsItem(RegisterGraphicsItem(self.output_register))
gui.addModuleGraphicsItem(RegisterGraphicsItem(self.control_register))
gui.addModuleGraphicsItem(RegisterGraphicsItem(self.adress_register))
gui.addAllSignals()
gui.show()
app.exec()
def launch_cli(self):
cli = CLI(self)
self.reset()
cli.run()
if __name__ == "__main__":
# this is bad terminal code, but who cares
cpu = SIMPLE_CPU()
flag = None
try:
flag = sys.argv[1]
except IndexError:
pass
if flag in ("gui", "g", "-gui"):
cpu.launch_gui()
else:
cpu.launch_cli()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment