|
gem5
v22.0.0.2
|
#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. 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... | |
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. More... | |
| void | setCurTick (Tick newVal) |
| EventManager (EventManager &em) | |
| Event manger manages events in the event queue. More... | |
| EventManager (EventManager *em) | |
| EventManager (EventQueue *eq) | |
Public Member Functions inherited from gem5::Clocked | |
| 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 |
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. 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... | |
Protected Member Functions inherited from gem5::BasePixelPump | |
| virtual void | onHSyncBegin () |
| Start of the HSync region. More... | |
| virtual void | onHSyncEnd () |
| Start of the first pixel after the HSync region. More... | |
Protected Member Functions inherited from gem5::Clocked | |
| 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 |
Protected Attributes inherited from gem5::EventManager | |
| EventQueue * | eventq |
| A pointer to this object's event queue. More... | |
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. More... | |
| static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
| Generate a checkpoint file so that the serialization can be routed to it. More... | |
Public Attributes inherited from gem5::BasePixelPump | |
| FrameBuffer | fb |
| Output frame buffer. More... | |
|
inline |
| void gem5::HDLcd::PixelPump::dumpSettings | ( | ) |
Definition at line 678 of file hdlcd.cc.
References inform, and gem5::VegaISA::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::VegaISA::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().