gem5
v21.0.0.0
|
#include <hdlcd.hh>
Public Member Functions | |
PixelPump (HDLcd &p, ClockDomain &pxl_clk, unsigned pixel_chunk) | |
void | dumpSettings () |
![]() | |
BasePixelPump (EventManager &em, ClockDomain &pxl_clk, unsigned pixel_chunk) | |
virtual | ~BasePixelPump () |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
void | updateTimings (const DisplayTimings &timings) |
Update frame size using display timing. More... | |
void | renderFrame () |
Render an entire frame in non-caching mode. More... | |
void | start () |
Starting pushing pixels in timing mode. More... | |
void | stop () |
Immediately stop pushing pixels. More... | |
const DisplayTimings & | timings () const |
Get a constant reference of the current display timings. More... | |
bool | active () const |
Is the pixel pump active and refreshing the display? More... | |
bool | underrun () const |
Did a buffer underrun occur within this refresh interval? More... | |
bool | visibleLine () const |
Is the current line within the visible range? More... | |
unsigned | posX () const |
Current pixel position within the visible area. More... | |
unsigned | posY () const |
Current pixel position within the visible area. More... | |
![]() | |
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. More... | |
void | setCurTick (Tick newVal) |
EventManager (EventManager &em) | |
Event manger manages events in the event queue. More... | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
![]() | |
void | updateClockPeriod () |
Update the tick to the current tick. More... | |
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. More... | |
Cycles | curCycle () const |
Determine the current cycle, corresponding to a tick aligned to a clock edge. More... | |
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. More... | |
uint64_t | frequency () const |
Tick | clockPeriod () const |
double | voltage () const |
Cycles | ticksToCycles (Tick t) const |
Tick | cyclesToTicks (Cycles c) const |
![]() | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
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. More... | |
size_t | nextLine (std::vector< Pixel >::iterator pixel_it, size_t line_length) override |
Get the next line of pixels directly from memory. More... | |
void | onVSyncBegin () override |
First pixel clock of the first VSync line. More... | |
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). More... | |
void | onUnderrun (unsigned x, unsigned y) override |
Buffer underrun occurred on a frame. More... | |
void | onFrameDone () override |
Finished displaying the visible region of a frame. More... | |
![]() | |
virtual void | onHSyncBegin () |
Start of the HSync region. More... | |
virtual void | onHSyncEnd () |
Start of the first pixel after the HSync region. More... | |
![]() | |
Clocked (ClockDomain &clk_domain) | |
Create a clocked object and set the clock domain based on the parameters. More... | |
Clocked (Clocked &)=delete | |
Clocked & | operator= (Clocked &)=delete |
virtual | ~Clocked () |
Virtual destructor due to inheritance. More... | |
void | resetClock () const |
Reset the object's clock using the current global tick value. More... | |
virtual void | clockPeriodUpdated () |
A hook subclasses can implement so they can do any extra work that's needed when the clock rate is changed. More... | |
Protected Attributes | |
HDLcd & | parent |
![]() | |
EventQueue * | eventq |
A pointer to this object's event queue. More... | |
Additional Inherited Members | |
![]() | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
Serializes all the SimObjects. More... | |
static void | unserializeGlobals (CheckpointIn &cp) |
![]() | |
FrameBuffer | fb |
Output frame buffer. More... | |
|
inline |
void HDLcd::PixelPump::dumpSettings | ( | ) |
Definition at line 676 of file hdlcd.cc.
References inform, and ArmISA::t.
Referenced by 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 BasePixelPump.
Definition at line 341 of file hdlcd.hh.
References HDLcd::lineNext(), and parent.
|
inlineoverrideprotectedvirtual |
Get the next pixel from the scan line buffer.
p | Output pixel value, undefined on underrun |
Implements BasePixelPump.
Definition at line 339 of file hdlcd.hh.
References MipsISA::p, parent, and HDLcd::pxlNext().
|
inlineoverrideprotectedvirtual |
Finished displaying the visible region of a frame.
Reimplemented from BasePixelPump.
Definition at line 356 of file hdlcd.hh.
References parent, and 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 BasePixelPump.
Definition at line 351 of file hdlcd.hh.
References parent, and HDLcd::pxlUnderrun().
|
inlineoverrideprotectedvirtual |
First pixel clock of the first VSync line.
Reimplemented from BasePixelPump.
Definition at line 347 of file hdlcd.hh.
References parent, and 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 BasePixelPump.
Definition at line 348 of file hdlcd.hh.
References parent, and HDLcd::pxlVSyncEnd().
|
protected |
Definition at line 359 of file hdlcd.hh.
Referenced by nextLine(), nextPixel(), onFrameDone(), onUnderrun(), onVSyncBegin(), and onVSyncEnd().