PyRogue Device Tree

The PyRogue device tree for Simple-Kria-Kv260-Example is defined in the firmware/python/simple_kria_kv260_example/ package. The package contains three source files: _Root.py, _Application.py, and __init__.py.

Hierarchy

  • Root (firmware/python/simple_kria_kv260_example/_Root.py)

    • AxiSocCore — platform core device at offset 0x04_0000_0000 (socCore.AxiSocCore)

    • Application — application device at offset 0x04_8000_0000 (firmware/python/simple_kria_kv260_example/_Application.py)

      • SsiPrbsTx — PRBS transmit generator at offset 0x0_0000 (surf.protocols.ssi.SsiPrbsTx)

      • SsiPrbsRx — PRBS receive checker at offset 0x1_0000 (surf.protocols.ssi.SsiPrbsRx)

      • HdaInputBus — HDA input bus read register at offset 0x2_0000 (pr.RemoteVariable, read-only, polled every 1 s)

      • HdaOutputBus — HDA output bus write register at offset 0x2_0100 (pr.RemoteVariable, read/write)

      • HdaTriBus — HDA tristate control register at offset 0x2_0104 (pr.RemoteVariable, read/write)

    • prbsRx — software-side PRBS checker (pyrogue.utilities.prbs.PrbsRx, 128-bit, connected to DMA TCP stream port 10000)

    • prbTx — software-side PRBS generator (pyrogue.utilities.prbs.PrbsTx, 128-bit, connected to DMA TCP stream port 10000)

Public surface

__init__.py re-exports the two implementation classes:

from simple_kria_kv260_example._Application import *
from simple_kria_kv260_example._Root       import *

Startup sequence

Root.__init__ performs the following steps (from firmware/python/simple_kria_kv260_example/_Root.py):

  • Opens a TCP memory-map client to the board at port 9000 (tcpMemBase).

  • Opens a TCP stream client for DMA lane 0 at port 10000 (dataStream).

  • Opens a TCP stream client for DMA lane 1 at port 10512 (xvcStream).

  • Instantiates a local XVC server on port 2542 and connects the XVC stream to it (dmaClk → JTAG passthrough).

  • Adds AxiSocCore and Application as child devices with the offsets above.

  • Connects the data stream to the software-side prbsRx and prbTx objects for host-driven PRBS loopback testing.

For the PyRogue API reference see reference/pyrogue_api.html.