|
gem5
|
Base class for all generators, with the shared functionality and virtual functions for entering, executing and leaving the generator. More...
#include <generators.hh>
Public Member Functions | |
| BaseGen (const std::string &_name, MasterID master_id, Tick _duration) | |
| Create a base generator. More... | |
| virtual | ~BaseGen () |
| std::string | name () const |
| Get the name, useful for DPRINTFs. More... | |
| virtual void | enter ()=0 |
| Enter this generator state. More... | |
| virtual PacketPtr | getNextPacket ()=0 |
| Get the next generated packet. More... | |
| virtual void | exit () |
| Exit this generator state. More... | |
| virtual Tick | nextPacketTick (bool elastic, Tick delay) const =0 |
| Determine the tick when the next packet is available. More... | |
Public Attributes | |
| const Tick | duration |
| Time to spend in this state. More... | |
Protected Member Functions | |
| PacketPtr | getPacket (Addr addr, unsigned size, const MemCmd &cmd, Request::FlagsType flags=0) |
| Generate a new request and associated packet. More... | |
Protected Attributes | |
| const std::string | _name |
| Name to use for status and debug printing. More... | |
| const MasterID | masterID |
| The MasterID used for generating requests. More... | |
Base class for all generators, with the shared functionality and virtual functions for entering, executing and leaving the generator.
Definition at line 63 of file generators.hh.
Create a base generator.
| _name | Name to use for status and debug |
| master_id | MasterID set on each request |
| _duration | duration of this state before transitioning |
Definition at line 51 of file generators.cc.
|
inlinevirtual |
Definition at line 99 of file generators.hh.
|
pure virtual |
|
inlinevirtual |
Exit this generator state.
By default do nothing.
Reimplemented in TraceGen.
Definition at line 123 of file generators.hh.
|
pure virtual |
|
protected |
Generate a new request and associated packet.
| addr | Physical address to use |
| size | Size of the request |
| cmd | Memory command to send |
| flags | Optional request flags |
Definition at line 57 of file generators.cc.
References Packet::dataDynamic(), Request::getSize(), MemCmd::isWrite(), masterID, and Request::setPC().
Referenced by LinearGen::getNextPacket(), RandomGen::getNextPacket(), DramGen::getNextPacket(), DramRotGen::getNextPacket(), and TraceGen::getNextPacket().
|
inline |
Get the name, useful for DPRINTFs.
Definition at line 106 of file generators.hh.
References _name.
Referenced by TraceGen::exit().
Determine the tick when the next packet is available.
MaxTick means that there will not be any further packets in the current activation cycle of the generator.
| elastic | should the injection respond to flow control or not |
| delay | time the previous packet spent waiting |
|
protected |
Name to use for status and debug printing.
Definition at line 69 of file generators.hh.
Referenced by name().
| const Tick BaseGen::duration |
Time to spend in this state.
Definition at line 88 of file generators.hh.
|
protected |
The MasterID used for generating requests.
Definition at line 72 of file generators.hh.
Referenced by getPacket().