コード例 #1
0
ファイル: Program.cs プロジェクト: codelyok13/Mips32
 private static void InstructionDecodeAndRegisterFetch(int pc, out string instruction, out string control, out string selected)
 {
     InstructionMem.Fill(new string[] { "00111101000010011111111111111111" });
     instruction = InstructionMem.GetInstruction(pc);
     control     = ControlUnit.SetInput(instruction.Substring(0, 6), instruction.Substring(26, 6));
     Register.SetData(instruction.Substring(6, 5), instruction.Substring(11, 5));
     a4to1 = new Mux(new string[] { instruction.Substring(11, 5), instruction.Substring(16, 5), Convert.ToString(31, 2), "" })
     {
         select = control.Substring(0, 2)
     };
     selected = a4to1.Selected();
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: codelyok13/Mips32
        private static string MemoryAccess(string control, string result) //add pc so i can jump and link
        {
            Datamem.writeEHB = control.Substring(14, 5).Replace("_", ""); //Write enable, half and byte
            Datamem.DataIn(result, Register.data2);                       //perform operation

            string data = Extender.Extend(Datamem.DataOut(result).Substring(16, 16), control.Substring(20, 3));

            m4to1 = new Mux(new String[] { Datamem.DataOut(result), data, result })
            {
                select = control.Substring(26, 2)
            };
            return(m4to1.Selected());
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: codelyok13/Mips32
        private static string AddressCalc(string instruction, string control)
        {
            c2to1 = new Mux(new String[] { Register.data1, instruction.Substring(6, 5) });
            d2to1 = new Mux(new String[] { Register.data2, Extender.Extend(instruction.Substring(16, 16), control.Substring(20, 1) + "0") });
            string selection = control.Substring(4, 4).Replace("_", "");

            c2to1.select = selection[0].ToString();
            d2to1.select = selection[1].ToString();

            string result = ALU.Result(c2to1.Selected(), d2to1.Selected(), control.Substring(9, 4));

            return(result);
        }