platforminfo Utility
The platforminfo
command line utility
reports platform meta-data including information on interface, clock, valid SLRs and
allocated resources, and memory in a structured format. This information can be
referenced when allocating kernels to SLRs or memory resources for instance.
The following command options are available to use with platforminfo
:
Option | Description |
---|---|
-f [ --force
] |
Overwrite an existing output file. |
-h [ --help
] |
Print help message and exit. |
-k [ --keys
] |
Get keys for a given platform. Returns a list of JSON paths. |
-l [ --list
] |
List platforms. Searches the user repo paths $PLATFORM_REPO_PATHS and then the install locations to find .xpfm files. |
-e [ --extended
] |
List platforms with extended information. Use with '--list'. |
-d [ --hw ]
<arg> |
Hardware platform definition (*.dsa) on which to operate. The value must be a full path, including file name and .dsa extension. |
-s [ --sw ]
<arg> |
Software platform definition (*.spfm) on which to operate. The value must be a full path, including file name and .spfm extension. |
-p [ --platform ]
<arg> |
Xilinx® platform definition
(*.xpfm) on which to operate.
The value for --platform can be a full
path including file name and .xpfm
extension, as shown in example 1 below. If supplying a file name and
.xpfm extension without a path,
this utility will search only the current working directory. You can
also specify just the base name for the platform. When the value is a
base name, this utility will search the $PLATFORM_REPO_PATHS, and the
install locations, to find a corresponding .xpfm file, as shown in example 2 below.
|
-o [ --output ]
<arg> |
Specify an output file to write the results to. By default the output is returned to the terminal (stdout). |
-j [ --json ]
<arg> |
Specify JSON format for the generated output. When
used with no value, the platforminfo
utility prints the entire platform in JSON format. This option also
accepts an argument that specifies a JSON path, as returned by the
-k option. The JSON path, when
valid, is used to fetch a JSON subtree, list, or
value.
|
-v [ --verbose
] |
Specify more detailed information output. The default behavior is to produce a human-readable report containing the most important characteristics of the specified platform. |
--help
or --list
options,
a platform must be specified. You can specify the platform using the --platform
option, or using either --hw
, --sw
. You can also simply insert
the platform name or full path into the command line positionally.To understand the generated report, condensed output logs, based on the following command are reviewed. Note that the report is broken down into specific sections for better understandability.
platforminfo -p $PLATFORM_REPO_PATHS/xilinx_u200_xdma_201830_1.xpfm
Basic Platform Information
Platform information and high-level description are reported.
Platform: xdma
File: /proj/xbuilds/2020.2_daily_latest/internal_platforms/xilinx_u200_xdma_201830_3/xilinx_u200_xdma_201830_3.xpfm
Description:
Hardware Platform Information
General information on the hardware platform is reported. For the Software Emulation and Hardware Emulation field, a "1" indicates this platform is suitable for these configurations.
Vendor: xilinx
Board: U200 (xdma)
Name: xdma
Version: 201830.3
Generated Version: 2018.3
Hardware: 1
Software Emulation: 1
Hardware Emulation: 1
Hardware Emulation Platform: 0
FPGA Family: virtexuplus
FPGA Device: xcu200
Board Vendor: xilinx.com
Board Name: xilinx.com:au200:1.0
Board Part: xcu200-fsgd2104-2-e
Interface Information
The following shows the reported PCIe interface information.
Interface Name: PCIe
Interface Type: gen3x16
PCIe Vendor Id: 0x10EE
PCIe Device Id: 0x5000
PCIe Subsystem Id: 0x000E
Clock Information
Reports the maximum kernel clock frequencies available. The Clock Index is the
reference used in the --kernel_frequency v++
directive
when overriding the default value.
Default Clock Index: 0
Clock Index: 1
Frequency: 500.000000
Clock Index: 0
Frequency: 300.000000
Valid SLRs
Reports the valid SLRs in the platform.
SLR0, SLR1, SLR2
Resource Availability
The total available resources and resources available per SLR are reported. This information can be used to assess applicability of the platform for the design and help guide allocation of compute unit to available SLRs.
=====
Total
=====
LUTs: 1047139
FFs: 2186064
BRAMs: 1896
DSPs: 6833
=======
Per SLR
=======
SLR0:
LUTs: 354690
FFs: 723308
BRAMs: 638
DSPs: 2265
SLR1:
LUTs: 159739
FFs: 331654
BRAMs: 326
DSPs: 1317
SLR2:
LUTs: 354839
FFs: 723294
BRAMs: 638
DSPs: 2265
Memory Information
Type: ddr4
Bus SP Tag: DDR
Segment Index: 0
Consumption: automatic
SP Tag: bank0
SLR: SLR0
Max Masters: 15
Segment Index: 1
Consumption: default
SP Tag: bank1
SLR: SLR1
Max Masters: 15
Segment Index: 2
Consumption: automatic
SP Tag: bank2
SLR: SLR1
Max Masters: 15
Segment Index: 3
Consumption: automatic
SP Tag: bank3
SLR: SLR2
Max Masters: 15
Bus SP Tag: PLRAM
Segment Index: 0
Consumption: explicit
SLR: SLR0
Max Masters: 15
Segment Index: 1
Consumption: explicit
SLR: SLR1
Max Masters: 15
Segment Index: 2
Consumption: explicit
SLR: SLR2
Max Masters: 15
The Bus SP Tag
heading can be DDR or PLRAM
and gives associated information below.
The Segment Index
field is used in
association with the SP Tag
to generate the associated memory
resource index as shown below.
Bus SP Tag[Segment Index]
For example, if Segment Index
is 0, then the
associated DDR resource index would be DDR[0].
This memory index is used when specifying memory resources in the v++
command as shown below:
v++ … --connectivity.sp vadd.m_axi_gmem:DDR[3]
There can be more than one Segment Index
associated with an SLR. For instance, in the output above, SLR1 has both Segment Index
1 and 2.
The Consumption
field indicates how a memory
resource is used when building the design:
- default
- If the
--connectivity.sp
directive is not specified, it uses this memory resource by default duringv++
build. For example in the report below, DDR withSegment Index
1 is used by default.
- automatic
- When the maximum number of memory interfaces have been used under
Consumption: default
have been fully applied, then the interfaces underautomatic
is used. The maximum number of interfaces per memory resource are given in the Max Masters field.
- explicit
- For PLRAM, consumption is set to
explicit
which indicates this memory resource is only used when explicitly indicated through thev++
command line.
Feature ROM Information
The feature ROM information provides build related information on ROM platform and can be requested by Xilinx Support when debugging system issues.
ROM Major Version: 10
ROM Minor Version: 1
ROM Vivado Build ID: 2388429
ROM DDR Channel Count: 5
ROM DDR Channel Size: 16
ROM Feature Bit Map: 655885
ROM UUID: 00194bb3-707b-49c4-911e-a66899000b6b
ROM CDMA Base Address 0: 620756992
ROM CDMA Base Address 1: 0
ROM CDMA Base Address 2: 0
ROM CDMA Base Address 3: 0
Software Platform Information
Although software platform information is reported, it is only useful for users that have an OS running on the device, and not applicable to users that use a host machine.
Number of Runtimes: 1
Default System Configuration: config0_0
System Configurations:
System Config Name: config0_0
System Config Description: config0_0 Linux OS on x86_0
System Config Default Processor Group: x86_0
System Config Default Boot Image:
System Config Is QEMU Supported: 0
System Config Processor Groups:
Processor Group Name: x86_0
Processor Group CPU Type: x86
Processor Group OS Name: Linux OS
System Config Boot Images:
Supported Runtimes:
Runtime: OpenCL
Platforminfo for xilinx_zcu104_base_202010_1
platforminfo -p xilinx_zcu104_base_202010_1
==========================
Basic Platform Information
==========================
Platform: xilinx_zcu104_base_202010_1
File: /platforms/xilinx_zcu104_base_202010_1/xilinx_zcu104_base_202010_1.xpfm
Description:
A basic static platform targeting the ZCU104 evaluation board, which includes 2GB DDR4, GEM, USB, SDIO interface and UART of the Processing System. It reserves most of the PL resources for user to add acceleration kernels
=====================================
Hardware Platform (Shell) Information
=====================================
Vendor: xilinx
Board: zcu104_base
Name: zcu104_base
Version: 1.0
Generated Version: 2020.1
Software Emulation: 1
Hardware Emulation: 0
FPGA Family: zynquplus
FPGA Device: xczu7ev
Board Vendor: xilinx.com
Board Name: xilinx.com:zcu104:1.1
Board Part: xczu7ev-ffvc1156-2-e
Maximum Number of Compute Units: 60
=================
Clock Information
=================
Default Clock Index: 0
Clock Index: 0
Frequency: 150.000000
Clock Index: 1
Frequency: 300.000000
Clock Index: 2
Frequency: 75.000000
Clock Index: 3
Frequency: 100.000000
Clock Index: 4
Frequency: 200.000000
Clock Index: 5
Frequency: 400.000000
Clock Index: 6
Frequency: 600.000000
==================
Memory Information
==================
Bus SP Tag: HP0
Bus SP Tag: HP1
Bus SP Tag: HP2
Bus SP Tag: HP3
Bus SP Tag: HPC0
Bus SP Tag: HPC1
=======================
Feature ROM Information
=======================
=============================
Software Platform Information
=============================
Number of Runtimes: 1
Default System Configuration: xilinx_zcu104_base_202010_1
System Configurations:
System Config Name: xilinx_zcu104_base_202010_1
System Config Description: xilinx_zcu104_base_202010_1
System Config Default Processor Group: xrt
System Config Default Boot Image: standard
System Config Is QEMU Supported: 1
System Config Processor Groups:
Processor Group Name: xrt
Processor Group CPU Type: cortex-a53
Processor Group OS Name: linux
System Config Boot Images:
Boot Image Name: standard
Boot Image Type:
Boot Image BIF: xilinx_zcu104_base_202010_1/boot/linux.bif
Boot Image Data: xilinx_zcu104_base_202010_1/xrt/image
Boot Image Boot Mode: sd
Boot Image RootFileSystem:
Boot Image Mount Path: /mnt
Boot Image Read Me: xilinx_zcu104_base_202010_1/boot/generic.readme
Boot Image QEMU Args: xilinx_zcu104_base_202010_1/qemu/pmu_args.txt:xilinx_zcu104_base_202010_1/qemu/qemu_args.txt
Boot Image QEMU Boot:
Boot Image QEMU Dev Tree:
Supported Runtimes:
Runtime: OpenCL