gem5 v24.0.0.0
|
#include <hdlcd.hh>
Public Member Functions | |
PixelPump (HDLcd &p, ClockDomain &pxl_clk, unsigned pixel_chunk) | |
void | dumpSettings () |
Public Member Functions inherited from gem5::BasePixelPump | |
BasePixelPump (EventManager &em, ClockDomain &pxl_clk, unsigned pixel_chunk) | |
virtual | ~BasePixelPump () |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
void | updateTimings (const DisplayTimings &timings) |
Update frame size using display timing. | |
void | renderFrame () |
Render an entire frame in non-caching mode. | |
void | start () |
Starting pushing pixels in timing mode. | |
void | stop () |
Immediately stop pushing pixels. | |
const DisplayTimings & | timings () const |
Get a constant reference of the current display timings. | |
bool | active () const |
Is the pixel pump active and refreshing the display? | |
bool | underrun () const |
Did a buffer underrun occur within this refresh interval? | |
bool | visibleLine () const |
Is the current line within the visible range? | |
unsigned | posX () const |
Current pixel position within the visible area. | |
unsigned | posY () const |
Current pixel position within the visible area. | |
Public Member Functions inherited from gem5::EventManager | |
EventQueue * | eventQueue () const |
void | schedule (Event &event, Tick when) |
void | deschedule (Event &event) |
void | reschedule (Event &event, Tick when, bool always=false) |
void | schedule (Event *event, Tick when) |
void | deschedule (Event *event) |
void | reschedule (Event *event, Tick when, bool always=false) |
void | wakeupEventQueue (Tick when=(Tick) -1) |
This function is not needed by the usual gem5 event loop but may be necessary in derived EventQueues which host gem5 on other schedulers. | |
void | setCurTick (Tick newVal) |
EventManager (EventManager &em) | |
Event manger manages events in the event queue. | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
Public Member Functions inherited from gem5::Clocked | |
void | updateClockPeriod () |
Update the tick to the current tick. | |
Tick | clockEdge (Cycles cycles=Cycles(0)) const |
Determine the tick when a cycle begins, by default the current one, but the argument also enables the caller to determine a future cycle. | |
Cycles | curCycle () const |
Determine the current cycle, corresponding to a tick aligned to a clock edge. | |
Tick | nextCycle () const |
Based on the clock of the object, determine the start tick of the first cycle that is at least one cycle in the future. | |
uint64_t | frequency () const |
Tick | clockPeriod () const |
double | voltage () const |
Cycles | ticksToCycles (Tick t) const |
Tick | cyclesToTicks (Cycles c) const |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Protected Member Functions | |
bool | nextPixel (Pixel &p) override |
Get the next pixel from the scan line buffer. | |
size_t | nextLine (std::vector< Pixel >::iterator pixel_it, size_t line_length) override |
Get the next line of pixels directly from memory. | |
void | onVSyncBegin () override |
First pixel clock of the first VSync line. | |
void | onVSyncEnd () override |
Callback on the first pixel of the line after the end VSync region (typically the first pixel of the vertical back porch). | |
void | onUnderrun (unsigned x, unsigned y) override |
Buffer underrun occurred on a frame. | |
void | onFrameDone () override |
Finished displaying the visible region of a frame. | |
Protected Member Functions inherited from gem5::BasePixelPump | |
virtual void | onHSyncBegin () |
Start of the HSync region. | |
virtual void | onHSyncEnd () |
Start of the first pixel after the HSync region. | |
Protected Member Functions inherited from gem5::Clocked | |
Clocked (ClockDomain &clk_domain) | |
Create a clocked object and set the clock domain based on the parameters. | |
Clocked (Clocked &)=delete | |
Clocked & | operator= (Clocked &)=delete |
virtual | ~Clocked () |
Virtual destructor due to inheritance. | |
void | resetClock () const |
Reset the object's clock using the current global tick value. | |
virtual void | clockPeriodUpdated () |
A hook subclasses can implement so they can do any extra work that's needed when the clock rate is changed. | |
Protected Attributes | |
HDLcd & | parent |
Protected Attributes inherited from gem5::EventManager | |
EventQueue * | eventq |
A pointer to this object's event queue. | |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Public Attributes inherited from gem5::BasePixelPump | |
FrameBuffer | fb |
Output frame buffer. | |
|
inline |
void gem5::HDLcd::PixelPump::dumpSettings | ( | ) |
Definition at line 678 of file hdlcd.cc.
References inform, and gem5::ArmISA::t.
Referenced by gem5::HDLcd::pxlFrameDone().
|
inlineoverrideprotectedvirtual |
Get the next line of pixels directly from memory.
This is for use from the renderFrame which is called in non-caching mode.
The default implementation falls back to calling nextPixel over and over, but a more efficient implementation could retrieve the entire line of pixels all at once using fewer access to memory which bypass any intermediate structures like an incoming FIFO.
ps | A vector iterator to store retrieved pixels into. |
line_length | The number of pixels being requested. |
Reimplemented from gem5::BasePixelPump.
Definition at line 345 of file hdlcd.hh.
References gem5::HDLcd::lineNext(), and parent.
|
inlineoverrideprotectedvirtual |
Get the next pixel from the scan line buffer.
p | Output pixel value, undefined on underrun |
Implements gem5::BasePixelPump.
Definition at line 343 of file hdlcd.hh.
References gem5::MipsISA::p, parent, and gem5::HDLcd::pxlNext().
|
inlineoverrideprotectedvirtual |
Finished displaying the visible region of a frame.
Reimplemented from gem5::BasePixelPump.
Definition at line 360 of file hdlcd.hh.
References parent, and gem5::HDLcd::pxlFrameDone().
|
inlineoverrideprotectedvirtual |
Buffer underrun occurred on a frame.
This method is called once if there is buffer underrun while refreshing the display. The underrun state is reset on the next refresh.
x | Coordinate within the visible region. |
y | Coordinate within the visible region. |
Reimplemented from gem5::BasePixelPump.
Definition at line 355 of file hdlcd.hh.
References parent, and gem5::HDLcd::pxlUnderrun().
|
inlineoverrideprotectedvirtual |
First pixel clock of the first VSync line.
Reimplemented from gem5::BasePixelPump.
Definition at line 351 of file hdlcd.hh.
References parent, and gem5::HDLcd::pxlVSyncBegin().
|
inlineoverrideprotectedvirtual |
Callback on the first pixel of the line after the end VSync region (typically the first pixel of the vertical back porch).
Reimplemented from gem5::BasePixelPump.
Definition at line 352 of file hdlcd.hh.
References parent, and gem5::HDLcd::pxlVSyncEnd().
|
protected |
Definition at line 363 of file hdlcd.hh.
Referenced by nextLine(), nextPixel(), onFrameDone(), onUnderrun(), onVSyncBegin(), and onVSyncEnd().