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 offset0x04_0000_0000(socCore.AxiSocCore)Application— application device at offset0x04_8000_0000(firmware/python/simple_kria_kv260_example/_Application.py)SsiPrbsTx— PRBS transmit generator at offset0x0_0000(surf.protocols.ssi.SsiPrbsTx)SsiPrbsRx— PRBS receive checker at offset0x1_0000(surf.protocols.ssi.SsiPrbsRx)HdaInputBus— HDA input bus read register at offset0x2_0000(pr.RemoteVariable, read-only, polled every 1 s)HdaOutputBus— HDA output bus write register at offset0x2_0100(pr.RemoteVariable, read/write)HdaTriBus— HDA tristate control register at offset0x2_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
AxiSocCoreandApplicationas child devices with the offsets above.Connects the data stream to the software-side
prbsRxandprbTxobjects for host-driven PRBS loopback testing.
For the PyRogue API reference see reference/pyrogue_api.html.