dram_gen.cc (12804:f47e75dce5c6) dram_gen.cc (12811:269967d5b4e4)
1/*
1/*
2 * Copyright (c) 2012-2013, 2016-2017 ARM Limited
2 * Copyright (c) 2012-2013, 2016-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed here under. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 32 unchanged lines hidden (view full) ---

43#include "cpu/testers/traffic_gen/dram_gen.hh"
44
45#include <algorithm>
46
47#include "base/random.hh"
48#include "base/trace.hh"
49#include "debug/TrafficGen.hh"
50
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed here under. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 32 unchanged lines hidden (view full) ---

43#include "cpu/testers/traffic_gen/dram_gen.hh"
44
45#include <algorithm>
46
47#include "base/random.hh"
48#include "base/trace.hh"
49#include "debug/TrafficGen.hh"
50
51
52DramGen::DramGen(BaseTrafficGen &gen, Tick _duration,
53 Addr start_addr, Addr end_addr, Addr _blocksize,
54 Tick min_period, Tick max_period,
55 uint8_t read_percent, Addr data_limit,
56 unsigned int num_seq_pkts, unsigned int page_size,
57 unsigned int nbr_of_banks_DRAM,
58 unsigned int nbr_of_banks_util,
59 unsigned int addr_mapping,
60 unsigned int nbr_of_ranks)
61 : RandomGen(gen, _duration, start_addr, end_addr,
62 _blocksize, min_period, max_period, read_percent, data_limit),
63 numSeqPkts(num_seq_pkts), countNumSeqPkts(0), addr(0),
64 isRead(true), pageSize(page_size),
65 pageBits(floorLog2(page_size / _blocksize)),
66 bankBits(floorLog2(nbr_of_banks_DRAM)),
67 blockBits(floorLog2(_blocksize)),
68 nbrOfBanksDRAM(nbr_of_banks_DRAM),
69 nbrOfBanksUtil(nbr_of_banks_util), addrMapping(addr_mapping),
70 rankBits(floorLog2(nbr_of_ranks)),
71 nbrOfRanks(nbr_of_ranks)
72{
73 if (addrMapping != 1 && addrMapping != 0) {
74 addrMapping = 1;
75 warn("Unknown address mapping specified, using RoRaBaCoCh\n");
76 }
77
78 if (nbr_of_banks_util > nbr_of_banks_DRAM)
79 fatal("Attempting to use more banks (%d) than "
80 "what is available (%d)\n",
81 nbr_of_banks_util, nbr_of_banks_DRAM);
82}
83
51PacketPtr
52DramGen::getNextPacket()
53{
54 // if this is the first of the packets in series to be generated,
55 // start counting again
56 if (countNumSeqPkts == 0) {
57 countNumSeqPkts = numSeqPkts;
58

--- 107 unchanged lines hidden ---
84PacketPtr
85DramGen::getNextPacket()
86{
87 // if this is the first of the packets in series to be generated,
88 // start counting again
89 if (countNumSeqPkts == 0) {
90 countNumSeqPkts = numSeqPkts;
91

--- 107 unchanged lines hidden ---