CIRCT 24.0.0git
Loading...
Searching...
No Matches
esiaccel.bsp.common.MMIOIndirection Class Reference
Inheritance diagram for esiaccel.bsp.common.MMIOIndirection:
Collaboration diagram for esiaccel.bsp.common.MMIOIndirection:

Public Member Functions

 build (ports)

Static Public Attributes

 clk = Clock()
 rst = Reset()
 upstream = Input(esi.MMIO.read_write.type)
 downstream = Output(esi.MMIO.read_write.type)

Detailed Description

Some platforms do not support MMIO space greater than a certain size (e.g.
Vitis 2022's limit is 4k). This module implements a level of indirection to
provide access to a full 32-bit address space.

MMIO addresses:
  - 0x0:  0 constant
  - 0x8:  64 bit ESI magic number for Indirect MMIO (0x312bf0cc_E5100E51)
  - 0x10: Version number for Indirect MMIO (0)
  - 0x18: Location of read/write in the virtual MMIO space.
  - 0x20: A read from this location will initiate a read in the virtual MMIO
          space specified by the address stored in 0x18 and return the result.
          A write to this location will initiate a write into the virtual MMIO
          space to the virtual address specified in 0x18.

Definition at line 872 of file common.py.

Member Function Documentation

◆ build()

esiaccel.bsp.common.MMIOIndirection.build ( ports)

Definition at line 894 of file common.py.

Member Data Documentation

◆ clk

esiaccel.bsp.common.MMIOIndirection.clk = Clock()
static

Definition at line 887 of file common.py.

◆ downstream

esiaccel.bsp.common.MMIOIndirection.downstream = Output(esi.MMIO.read_write.type)
static

Definition at line 891 of file common.py.

◆ rst

esiaccel.bsp.common.MMIOIndirection.rst = Reset()
static

Definition at line 888 of file common.py.

◆ upstream

esiaccel.bsp.common.MMIOIndirection.upstream = Input(esi.MMIO.read_write.type)
static

Definition at line 890 of file common.py.


The documentation for this class was generated from the following file: