base_gen.cc (12804:f47e75dce5c6) | base_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 --- 28 unchanged lines hidden (view full) --- 39 * Sascha Bischoff 40 * Neha Agarwal 41 */ 42 43#include "cpu/testers/traffic_gen/base_gen.hh" 44 45#include <algorithm> 46 | 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 --- 28 unchanged lines hidden (view full) --- 39 * Sascha Bischoff 40 * Neha Agarwal 41 */ 42 43#include "cpu/testers/traffic_gen/base_gen.hh" 44 45#include <algorithm> 46 |
47#include "base/logging.hh" |
|
47#include "base/random.hh" 48#include "base/trace.hh" | 48#include "base/random.hh" 49#include "base/trace.hh" |
50#include "cpu/testers/traffic_gen/base.hh" |
|
49#include "debug/TrafficGen.hh" | 51#include "debug/TrafficGen.hh" |
52#include "sim/system.hh" |
|
50 | 53 |
51BaseGen::BaseGen(const std::string& _name, MasterID master_id, Tick _duration) 52 : _name(_name), masterID(master_id), duration(_duration) | 54BaseGen::BaseGen(BaseTrafficGen &gen, Tick _duration) 55 : _name(gen.name()), masterID(gen.masterID), 56 cacheLineSize(gen.system->cacheLineSize()), 57 duration(_duration) |
53{ 54} 55 56PacketPtr 57BaseGen::getPacket(Addr addr, unsigned size, const MemCmd& cmd, 58 Request::FlagsType flags) 59{ 60 // Create new request --- 9 unchanged lines hidden (view full) --- 70 pkt->dataDynamic(pkt_data); 71 72 if (cmd.isWrite()) { 73 std::fill_n(pkt_data, req->getSize(), (uint8_t)masterID); 74 } 75 76 return pkt; 77} | 58{ 59} 60 61PacketPtr 62BaseGen::getPacket(Addr addr, unsigned size, const MemCmd& cmd, 63 Request::FlagsType flags) 64{ 65 // Create new request --- 9 unchanged lines hidden (view full) --- 75 pkt->dataDynamic(pkt_data); 76 77 if (cmd.isWrite()) { 78 std::fill_n(pkt_data, req->getSize(), (uint8_t)masterID); 79 } 80 81 return pkt; 82} |
83 84StochasticGen::StochasticGen(BaseTrafficGen &gen, 85 Tick _duration, 86 Addr start_addr, Addr end_addr, Addr _blocksize, 87 Tick min_period, Tick max_period, 88 uint8_t read_percent, Addr data_limit) 89 : BaseGen(gen, _duration), 90 startAddr(start_addr), endAddr(end_addr), 91 blocksize(_blocksize), minPeriod(min_period), 92 maxPeriod(max_period), readPercent(read_percent), 93 dataLimit(data_limit) 94{ 95 if (blocksize > cacheLineSize) 96 fatal("TrafficGen %s block size (%d) is larger than " 97 "cache line size (%d)\n", name(), 98 blocksize, cacheLineSize); 99 100 if (read_percent > 100) 101 fatal("%s cannot have more than 100% reads", name()); 102 103 if (min_period > max_period) 104 fatal("%s cannot have min_period > max_period", name()); 105} |
|