CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
esiaccel.bsp.common.MMIOIndirection Class Reference
Inheritance diagram for esiaccel.bsp.common.MMIOIndirection:
Inheritance graph
[legend]
Collaboration diagram for esiaccel.bsp.common.MMIOIndirection:
Collaboration graph
[legend]

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 506 of file common.py.

Member Function Documentation

◆ build()

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

Definition at line 528 of file common.py.

Member Data Documentation

◆ clk

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

Definition at line 521 of file common.py.

Referenced by esiaccel.bsp.common.ESI_Manifest_ROM_Wrapper.build().

◆ downstream

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

Definition at line 525 of file common.py.

◆ rst

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

Definition at line 522 of file common.py.

◆ upstream

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

Definition at line 524 of file common.py.


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