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 --- |