Device¶
The Device class is a container representing a Xilinx device. Device has methods for programming, memory access, and contains the detected collection of debug cores. The collection of detected devices is held in the session
see chipscopy.Session.devices
-
class
chipscopy.api.device.device.
Device
(*, hw_server, cs_server, device_identification, disable_core_scan)[source]¶ Bases:
object
The Device class represents a single Xilinx Versal device. Device has methods for programming, memory access, and contains the detected collection of debug cores. The collection of detected devices is held in the session - see session.devices.
-
property
ibert_cores
¶ Returns: list of detected IBERT cores in the device
- Return type
QueryList
[IBERT
]
-
property
trace_cores
¶ Returns: list of detected Trace cores in the device
- Return type
QueryList
[Trace
]
-
property
noc_core
¶ Returns: List with one NOC core for the device
- Return type
-
property
ddrs
¶ Returns: list of detected DDRMC cores in the device
-
property
sysmon_root
¶ Returns: List with one SysMon core for the device
-
property
memory_target_names
¶ Returns: list of supported memory targets
-
program
(pdi_file_path, *, skip_reset=False, show_progress_bar=True, done=None)[source]¶ Program the device with a given PDI file.
- Parameters
pdi_file_path (
Union
[str
,Path
]) – PDI file pathskip_reset (
bool
) – False = Do not reset device prior to programshow_progress_bar (
bool
) – False if the progress bar doesn’t need to be showndone (
Optional
[NewType()
(DoneFutureCallback
,Callable
[[ForwardRef
],None
])]) – Optional async future callback
-
discover_and_setup_cores
(*, hub_address_list=None, ltx_file=None, ila_scan=True, vio_scan=True, noc_scan=False, ddr_scan=True, pcie_scan=True, ibert_scan=False, sysmon_scan=False)[source]¶ Scan device for debug cores. This may take some time depending on what gets scanned.
- Parameters
hub_address_list (
Optional
[List
[int
]]) – List of debug hub addresses to scanltx_file (
Optional
[str
]) – LTX file (which contains debug hub addresses)ila_scan (
bool
) – True=Scan Device for ILAsvio_scan (
bool
) – True=Scan Device for VIOsibert_scan (
bool
) – True=Scan Device for IBERTspcie_scan (
bool
) – True=Scan Device for PCIEsnoc_scan (
bool
) – True=Scan Device for NOCddr_scan (
bool
) – True=Scan Device for DDRssysmon_scan (
bool
) – True=Scan Device for System Monitor
-
memory_write
(address, values, *, size='w', target=None)[source]¶ Write list of values to given memory address. This method is slow because it locates the memory context in the target tree every time. If you want to execute a large number of memory operations, grab a memory context and do the operations in batch.
- Note: This method should not be used in inner loops. It is not the fastest because it looks up
the memory target every time. Inner loops should just call the find_memory_target once.
-
memory_read
(address, num=1, *, size='w', target=None)[source]¶ Read num values from given memory address. This method is slow because it locates the memory context in the target tree every time. If you want to execute a large number of memory operations, grab a memory context and do all the operations in batch.
- Note: This method should not be used in inner loops. It is not the fastest because it looks up
the memory target every time. Inner loops should just call the find_memory_target once.
- Return type
List
[int
]
-
property