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:
objectThe 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