import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
import net.mograsim.machine.Machine;
import net.mograsim.machine.MachineDefinition;
+import net.mograsim.machine.MainMemory;
import net.mograsim.machine.Register;
+import net.mograsim.machine.mi.MicroInstructionMemory;
+import net.mograsim.machine.mi.StandardMicroInstructionMemory;
+import net.mograsim.machine.standard.memory.WordAddressableMemory;
public class Am2900Machine implements Machine
{
private Am2900MachineDefinition machineDefinition;
private LogicModelModifiable logicModel;
private Timeline timeline;
+ private MainMemory mainMemory;
+ private MicroInstructionMemory instMemory;
private CoreClock clock;
public Am2900Machine(Am2900MachineDefinition am2900MachineDefinition)
this.machineDefinition = am2900MachineDefinition;
logicModel = new LogicModelModifiable();
IndirectModelComponentCreator.createComponent(logicModel,
- "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/ModelAm2900.json");
+ "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/Am2900.json");
CoreModelParameters params = new CoreModelParameters();
params.gateProcessTime = 50;
params.wireTravelTime = 10;
+ mainMemory = new WordAddressableMemory(am2900MachineDefinition.getMainMemoryDefinition());
+ instMemory = new StandardMicroInstructionMemory(am2900MachineDefinition.getMicroInstructionMemoryDefinition());
timeline = LogicCoreAdapter.convert(logicModel, params);
}
}
+ @Override
+ public MainMemory getMainMemory()
+ {
+ return mainMemory;
+ }
+
+ @Override
+ public MicroInstructionMemory getMicroInstructionMemory()
+ {
+ return instMemory;
+ }
+
}