traffic_gen.cc (9342:6fec8f26e56d) traffic_gen.cc (9391:8f24dcb13b85)
1/*
2 * Copyright (c) 2012 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

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

365 " block size (%d)\n", blocksize, port.deviceBlockSize());
366
367}
368
369void
370TrafficGen::StateGraph::LinearGen::execute()
371{
372 // choose if we generate a read or a write here
1/*
2 * Copyright (c) 2012 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

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

365 " block size (%d)\n", blocksize, port.deviceBlockSize());
366
367}
368
369void
370TrafficGen::StateGraph::LinearGen::execute()
371{
372 // choose if we generate a read or a write here
373 bool isRead = random_mt.random<uint8_t>(0, 100) < readPercent;
373 bool isRead = readPercent != 0 &&
374 (readPercent == 100 || random_mt.random<uint8_t>(0, 100) < readPercent);
374
375
375 if (readPercent == 0)
376 assert(!isRead);
376 assert((readPercent == 0 && !isRead) || (readPercent == 100 && isRead) ||
377 readPercent != 100);
377
378 DPRINTF(TrafficGen, "LinearGen::execute: %c to addr %x, size %d\n",
379 isRead ? 'r' : 'w', nextAddr, blocksize);
380
381 // Create new request
382 Request::Flags flags;
383 Request *req = new Request(nextAddr, blocksize, flags, masterID);
384

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

437 fatal("TrafficGen %s block size (%d) is larger than port"
438 " block size (%d)\n", name(), blocksize, port.deviceBlockSize());
439}
440
441void
442TrafficGen::StateGraph::RandomGen::execute()
443{
444 // choose if we generate a read or a write here
378
379 DPRINTF(TrafficGen, "LinearGen::execute: %c to addr %x, size %d\n",
380 isRead ? 'r' : 'w', nextAddr, blocksize);
381
382 // Create new request
383 Request::Flags flags;
384 Request *req = new Request(nextAddr, blocksize, flags, masterID);
385

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

438 fatal("TrafficGen %s block size (%d) is larger than port"
439 " block size (%d)\n", name(), blocksize, port.deviceBlockSize());
440}
441
442void
443TrafficGen::StateGraph::RandomGen::execute()
444{
445 // choose if we generate a read or a write here
445 bool isRead = random_mt.random<uint8_t>(0, 100) < readPercent;
446 bool isRead = readPercent != 0 &&
447 (readPercent == 100 || random_mt.random<uint8_t>(0, 100) < readPercent);
446
448
447 if (readPercent == 0)
448 assert(!isRead);
449 assert((readPercent == 0 && !isRead) || (readPercent == 100 && isRead) ||
450 readPercent != 100);
449
450 // address of the request
451 Addr addr = random_mt.random<Addr>(startAddr, endAddr - 1);
452
453 // round down to start address of block
454 addr -= addr % blocksize;
455
456 DPRINTF(TrafficGen, "RandomGen::execute: %c to addr %x, size %d\n",

--- 182 unchanged lines hidden ---
451
452 // address of the request
453 Addr addr = random_mt.random<Addr>(startAddr, endAddr - 1);
454
455 // round down to start address of block
456 addr -= addr % blocksize;
457
458 DPRINTF(TrafficGen, "RandomGen::execute: %c to addr %x, size %d\n",

--- 182 unchanged lines hidden ---