Пример #1
0
        public void TestAllInstructions()
        {
            _instructionList = new Instructions();

            PipeLinedDataPath pipeLineTest = new PipeLinedDataPath(_instructionList);

            pipeLineTest.ProcessInstructions();
        }
Пример #2
0
        public PipeLinedDataPath(IInstructions instructions)
        {
            pipelineStage = new PipeLineStagesContainer(instructions);

            InitializeMainMemory();
            InitializeRegisters();

            _instructions     = instructions;
            _instructionIndex = 0;
        }
Пример #3
0
        public void TestNOOPInstruction()
        {
            _instructionList = new TestInstructions()
            {
                mipsInstructions = new List <int>()
                {
                    0x00000000
                }
            };

            PipeLinedDataPath pipeLineTest = new PipeLinedDataPath(_instructionList);

            pipeLineTest.ProcessInstructions();
        }
Пример #4
0
        public PipeLineStagesContainer(IInstructions instructions)
        {
            ifid_write = StageClassFactory.getInstructionFetchClass(instructions);
            ifid_read  = StageClassFactory.getInstructionFetchClass(instructions);

            idex_write = StageClassFactory.getInstructionDecodeClass();
            idex_read  = StageClassFactory.getInstructionDecodeClass();

            exmem_write = StageClassFactory.getExecuteStageClass();
            exmem_read  = StageClassFactory.getExecuteStageClass();

            memwb_write = StageClassFactory.getMemoryStageClass();
            memwb_read  = StageClassFactory.getMemoryStageClass();
        }
Пример #5
0
        private IInstructions GetInstructions(string instructionString)
        {
            IInstructions instructions = null;
            var           commands     = instructionString.Trim().Select(s => EnumHelper.GetEnumValue <InstructionCommands>(s.ToString().ToUpper())).ToArray();

            if (commands.Length == 0)
            {
                throw new Exception("(GetInstructions) Cannot get any instruction command");
            }
            if (commands.Any(a => a == 0))
            {
                throw new Exception("(GetInstructions) Cannot get any instructions properly");
            }

            instructions          = new Instructions();
            instructions.Commands = commands;

            return(instructions);
        }
Пример #6
0
 public ConstantsReader(IList<Instr> instrs)
 {
     this.instructions = new ListInstrs(instrs);
 }
Пример #7
0
 ConstantsReader(IInstructions instructions, bool emulateConvInstrs)
 {
     this.instructions      = instructions;
     this.emulateConvInstrs = emulateConvInstrs;
 }
Пример #8
0
 ConstantsReader(IInstructions instructions)
     : this(instructions, true)
 {
 }
Пример #9
0
 public InstructionFetchStage(IInstructions instructions)
 {
     _currentInstruction = 0;
     _instructions       = instructions.mipsInstructions;
 }
Пример #10
0
 public RuntimeWriter(IInstructions <T> instructions, ISessions sessions)
 {
     _instructions = instructions;
     _sessions     = sessions;
 }
Пример #11
0
 public RuntimeWriter(IInstructions <T> instructions) : this(instructions, Sessions.Default)
 {
 }
Пример #12
0
 public static InstructionFetchStage getInstructionFetchClass(IInstructions instructions)
 {
     return(new InstructionFetchStage(instructions));
 }