Identifying Platform Clocks - 2021.2 English

Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 English
The handling of clocks in accelerator cards has evolved to support multiple platform clocks and clock frequencies. Improved clock handling is dependent on a fixed-status platform clock that is available to drive additional kernel frequencies. You can determine if the target platform shell has fixed clocks by using the platforminfo -v command. For example, the following command returns verbose information related to a newer shell for the U200 platform:
platforminfo -v -p xilinx_u200_gen3x16_xdma_1_202110_1 -o pfmClocks.txt
The information reported in the output file includes the following clock details:
=================
Clock Information
=================
...
...
  Clock Index:         2
    Frequency:         50.000000
    Name:              ii_level0_wire_ulp_m_aclk_ctrl_00
    Pretty Name:       PL 2
    Inst Ref:          ii_level0_wire
    Comp Ref:          ii_level0_wire
    Period:            20.000000
    Normalized Period: .020000
    Status:            fixed
...

In the example above you can see that Clock Index: 2 is a fixed status clock. In fact, although not shown here, this platform shell provides three fixed status clocks which can be used to drive multiple clock frequencies in linked kernels. You can use the --clock.xxx options to drive kernel clocks as explained above.

However, on older platform shells, such as the xilinx_u200_xdma_201830_2, there are no fixed platform clocks to drive clock frequencies in linked kernels. This can be determined by reviewing the Clock Information reported by the following command:
platforminfo -v -p xilinx_u200_xdma_201830_2 -o pfmClocks.txt

On legacy platforms, without fixed-status clocks, you can use the v++ --kernel frequency option to specify the clock frequency as described in Vitis Compiler General Options.