def testMidterm():

    assembler = Assembler("../testMidterm.in")
    simulator = Simulator()

    assembler.instructions[0].execCycles = 4

    # todo: specify instruction starting point.Currently assume 0.
    # Write instructions into instruction memory.
    for i in range(len(assembler.instructions)):
        simulator.instrMemory.write(i, assembler.instructions[i])

    # Initialize some registers and data memory
    intRegisters = simulator.registerDict[RegType.GP_INT]
    floatRegisters = simulator.registerDict[RegType.GP_INT]
    for i in range(len(intRegisters)):
        simulator.registerDict[RegType.GP_INT][i].write(i)
    for i in range(len(floatRegisters)):
        simulator.registerDict[RegType.GP_FLOAT][i].write(float(i))
    for i in range(simulator.dataMemory.totalSize):
        simulator.dataMemory.write(i, i)

    # Keep calling tick until finished
    while not simulator.finished(
    ) and simulator.controlUnit.cycleCounter < 100:
        simulator.tick()

    with open("tmp", 'w') as f:
        json.dump(simulator.frameList,
                  f,
                  default=lambda obj: obj.__dict__,
                  indent=4)
    mainwindow = Ui_MainWindow()
    mainwindow.uiStart()
Esempio n. 2
0
from View.ui.mainwindow import Ui_MainWindow

if __name__ == '__main__':
    assembler = Assembler("testLec9ScoreboardingExample.in")
    simulator = Simulator()

    # todo: specify instruction starting point.Currently assume 0.
    # Write instructions into instruction memory.
    for i in range(len(assembler.instructions)):
        simulator.instrMemory.write(i, assembler.instructions[i])

    # Initialize some registers and data memory
    intRegisters = simulator.registerDict[RegType.GP_INT]
    floatRegisters = simulator.registerDict[RegType.GP_INT]
    for i in range(len(intRegisters)):
        simulator.registerDict[RegType.GP_INT][i].write(i)
    for i in range(len(floatRegisters)):
        simulator.registerDict[RegType.GP_FLOAT][i].write(float(i))
    for i in range(simulator.dataMemory.totalSize):
        simulator.dataMemory.write(i, i)

    # Keep calling tick until finished
    while not simulator.finished() and simulator.controlUnit.cycleCounter < 1000:
        simulator.tick()

    with open("tmp", 'w') as f:
        json.dump(simulator.frameList, f, default=lambda obj: obj.__dict__, indent=4)
    mainwindow = Ui_MainWindow()
    mainwindow.uiStart()