Esempio n. 1
0
        // zastanowic sie nad RamAddressRegister - bo moj adres jest troche pokopany - adres ma 8 bitow ale korzysta tylko z 6 (64 miejsca)
        public void Run()
        {
            CounterClass.CounterCable  = 0;
            CounterClass.CounterAction = 0;

            DataBus       DataBus   = new DataBus();
            DataBusHelper BusHelper = new DataBusHelper(DataBus);

            BusHelper.PutDataToRegisterA(new byte[] { 1, 0, 1, 0, 1, 0, 1, 0 });

            Cable.Join(new Pin()
            {
                State = 1
            }, DataBus.INFromA);
            Cable.Join(new Pin()
            {
                State = 1
            }, DataBus.INClock);

            BusHelper.SetRamAddress(63);  // 0 - 63
            Cable.Join(new Pin()
            {
                State = 1
            }, DataBus.INToRam);

            Cable.Join(new Pin()
            {
                State = 1
            }, DataBus.INFromRam);
            Cable.Join(new Pin()
            {
                State = 1
            }, DataBus.INToB);


            int k = 8;

            //Ram8 r = new Ram8();



            //Cable.Join(new Pin() { State = 1 }, Db.RegisterA.WriteEnable);

            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput1);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput2);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput3);
            ////Cable.Join(new Pin() { State = 0 }, registerA.DataInput4);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput5);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput6);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput7);
            ////Cable.Join(new Pin() { State = 1 }, registerA.DataInput8);

            ////z A do B
            //Cable.Join(new Pin() { State = 1 }, Db.FromA);
            //Cable.Join(new Pin() { State = 1 }, Db.ToB);

            //// z A do Ramu adres:111111 (64)
            //Cable.Join(new Pin() { State = 1 }, Db.FromA);


            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn1);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn2);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn3);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow1);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow2);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow3);
            //Cable.Join(new Pin() { State = 1 }, Db.ToRam);

            //// z Ramu adres 000000 (0) do B - skasowanie B
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressColumn1);
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressColumn2);
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressColumn3);
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressRow1);
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressRow2);
            //Cable.Join(new Pin() { State = 0 }, Db.RamAddressRow3);
            //Cable.Join(new Pin() { State = 1 }, Db.FromRam);

            //Cable.Join(new Pin() { State = 0 }, Db.ToB);
            //Cable.Join(new Pin() { State = 1 }, Db.ToB);

            //// z Ramu adres 11 do B - Przywrocenie stanu B
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn1);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn2);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressColumn3);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow1);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow2);
            //Cable.Join(new Pin() { State = 1 }, Db.RamAddressRow3);
            //Cable.Join(new Pin() { State = 0 }, Db.FromRam);
            //Cable.Join(new Pin() { State = 1 }, Db.FromRam);
            //Cable.Join(new Pin() { State = 0 }, Db.ToB);
            //Cable.Join(new Pin() { State = 1 }, Db.ToB);



            //int i1 = registerA.DataOutput1.State;
            //int i2 = registerA.DataOutput2.State;
            //int i3 = registerA.DataOutput3.State;
            //int i4 = registerA.DataOutput4.State;
            //int i5 = registerA.DataOutput5.State;
            //int i6 = registerA.DataOutput6.State;
            //int i7 = registerA.DataOutput7.State;
            //int i8 = registerA.DataOutput8.State;


            //Cable.Join(new Pin() { State = 0 }, registerA.WriteEnable);

            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput1);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput2);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput3);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput4);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput5);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput6);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput7);
            //Cable.Join(new Pin() { State = 0 }, registerA.DataInput8);

            //int q1 = registerA.DataOutput1.State;
            //int q2 = registerA.DataOutput2.State;
            //int q3 = registerA.DataOutput3.State;
            //int q4 = registerA.DataOutput4.State;
            //int q5 = registerA.DataOutput5.State;
            //int q6 = registerA.DataOutput6.State;
            //int q7 = registerA.DataOutput7.State;
            //int q8 = registerA.DataOutput8.State;


            //Cable.Join(new Pin() { State = 1 }, registerA.ReadEnable);

            //int w1 = registerA.DataOutput1.State;
            //int w2 = registerA.DataOutput2.State;
            //int w3 = registerA.DataOutput3.State;
            //int w4 = registerA.DataOutput4.State;
            //int w5 = registerA.DataOutput5.State;
            //int w6 = registerA.DataOutput6.State;
            //int w7 = registerA.DataOutput7.State;
            //int w8 = registerA.DataOutput8.State;



            // 1. zaladowac program do ramu

            //Ram8 ram = new Ram8();
            //DataBusHelper ramHelper = new DataBusHelper(ram);

            //string ins1 = "mov eax, 3";


            //byte[] value1 = new byte[] { 1, 0, 0, 0, 0, 0, 0, 1 };
            //byte[] value2 = new byte[] { 1, 0, 0, 1, 1, 0, 0, 1 };

            //ramHelper.SaveInRam(value1, 0);
            //var aa = ramHelper.LoadFromRam(0);

            // 2. uruchomic program
            // zegar tworzy impulsy, licznik impulsow uruchamia odpowiednia sciezke ktora wykonuje kroki programu
            // a) Instruction counter ++
            // b) Fetch instruction
            // c) decoding
            // d) executing
        }
Esempio n. 2
0
 public DataBusHelper(DataBus dataBus)
 {
     this.DataBus = dataBus;
 }