Esempio n. 1
0
        static void Main(string[] args)
        {
            var sim = new Simulator();
            var traceReader = new UsimmTraceReader(TraceFilename);
            var dram = new Dram(sim, 1, 4);
            var core = new Core(sim, traceReader, dram, 4, 192);

            while (sim.Now < SimCycles)
            {
                core.Tick();
                dram.Tick();
                sim.Tick();
            }

            Console.WriteLine(core.InsnsRetired.ToString() + " instructions " +
                    "retired in " + sim.Now.ToString() + " cycles");
        }
Esempio n. 2
0
        public Dram(Simulator sim, int channelBits, int bankBits)
        {
            Sim = sim;

            ChannelBits = channelBits;
            BankBits = bankBits;
            BankLsb = RowSizeBits + channelBits;
            RowLsb = BankLsb + bankBits;

            ClockDivider = 4;
            tCCD = 4;
            tCL = 11;
            tRCD = 11;
            tRP = 11;
            tRAS = 28;

            int numChannels = 1 << ChannelBits;
            int numBanksPerChannel = 1 << BankBits;
            Channels = new ChannelState[numChannels];
            for (int i = 0; i < Channels.Length; i++)
            {
                Channels[i] = new ChannelState(numBanksPerChannel);
            }
        }