UltraScale class Provides an interface to access IP Cores in Xilinx FPGAs, the compatible devices are the following: ZCU102, ZCU106, K26.
More...
#include <hardware.hpp>
|
enum | Type { None = 0
, XRT
} |
| Type Type of runtime supported by the IHardware. More...
|
|
static std::shared_ptr< IHardware > | Create (const HardwareArchitecture hw, const std::string &bitstream, const std::string &xclbin) |
| Create method Factory method to create a hardware-specific subclasses for accelerators and data movers. More...
|
|
static std::shared_ptr< IHardware > | Create (const HardwareArchitecture hw, const std::string &config) |
| Create method Factory method to create a hardware-specific subclasses for accelerators and data movers. More...
|
|
UltraScale class Provides an interface to access IP Cores in Xilinx FPGAs, the compatible devices are the following: ZCU102, ZCU106, K26.
This class DO NOT have the support for XCLBIN kernels YET and it takes into account the Vivado workflow only
◆ UltraScale() [1/2]
cynq::UltraScale::UltraScale |
( |
const std::string & |
bitstream_file, |
|
|
const std::string & |
xclbin_file |
|
) |
| |
Construct a new UltraScale object.
Configure the FPGA with an overlay (bitstream) or a xclbin object. The configuration files are mutually exclusive. If using a bitstream, the xclbin must be the default one. If no bitstream passed (empty), the xclbin file is mandatory.
- Parameters
-
bitstream_file | full path to the bitstream object (.bit file) |
xclbin_file | full path to the xclbin object (use the default one in the third-party/resources). |
◆ UltraScale() [2/2]
cynq::UltraScale::UltraScale |
( |
| ) |
|
|
delete |
No default constructor required
◆ DeviceQuery()
Status cynq::UltraScale::DeviceQuery |
( |
| ) |
|
Queries the device looking for its characteristics.
To be defined in future releases.
- Returns
- Status
◆ GetAccelerator() [1/2]
std::shared_ptr< IAccelerator > cynq::UltraScale::GetAccelerator |
( |
const std::string & |
kernelname | ) |
|
|
overridevirtual |
GetAccelerator method (overload - not implemented) Do not use this method since it is not implemented and it will lead to a nullptr.
- Parameters
-
kernelname | kernel name for XRT kernel (not used) |
- Returns
- std::shared_ptr<IAccelerator> nullptr
Implements cynq::IHardware.
◆ GetAccelerator() [2/2]
std::shared_ptr< IAccelerator > cynq::UltraScale::GetAccelerator |
( |
const uint64_t |
address | ) |
|
|
overridevirtual |
GetAccelerator method Instance of IAccelerator inheritors separating the hardware logic from the specific logic of the accelerator.
- Parameters
-
address | a unsigned integer of 64 bits representing an address. |
- Returns
- std::shared_ptr<IAccelerator> Returns an IAccelerator pointer with reference counting. It should be thread-safe.
Implements cynq::IHardware.
◆ GetClocks()
std::vector< float > cynq::UltraScale::GetClocks |
( |
| ) |
|
|
overridevirtualnoexcept |
Get clocks from the PL.
This allows to check the current clocks from the PL in MHz. This method is optionally implementable. If it is not implemented, the number of elements of the vector is equal to zero.
- Returns
- a vector with a number of elements equal to the valid clocks
Reimplemented from cynq::IHardware.
◆ GetDataMover()
std::shared_ptr< IDataMover > cynq::UltraScale::GetDataMover |
( |
const uint64_t |
address | ) |
|
|
overridevirtual |
GetDataMover method Used for accessing the IDataMover instance of the UltraScale object.
- Parameters
-
address | a unsigned integer of 64 bits representing an address. |
- Returns
- std::shared_ptr<IDataMover> Returns an IDataMover pointer with reference counting. It should be thread-safe.
Implements cynq::IHardware.
◆ KernelQuery()
Status cynq::UltraScale::KernelQuery |
( |
| ) |
|
Queries the kernels available in the design.
To be defined in future releases.
- Returns
- Status
◆ Reset()
Status cynq::UltraScale::Reset |
( |
| ) |
|
|
overridevirtual |
◆ SetClocks()
Status cynq::UltraScale::SetClocks |
( |
const std::vector< float > & |
clocks | ) |
|
|
overridevirtual |
Set clocks to the PL.
This allows to set the current clocks from the PL in MHz. This method is optionally implementable. If it is not implemented, no changes are performed
- Returns
- Status of the operation
Reimplemented from cynq::IHardware.
The documentation for this class was generated from the following files:
- /mnt/usbkey/lleon/cynq/include/cynq/ultrascale/hardware.hpp
- /mnt/usbkey/lleon/cynq/src/cynq/ultrascale/hardware.cpp