Alveo class Provides an interface to access IP Cores in Xilinx FPGAs, the compatible devices are the Xilinx Alveo. More...
#include <hardware.hpp>
Public Member Functions | |
Alveo (const std::string &bitstream_file, const std::string &xclbin_file) | |
Construct a new Alveo object. More... | |
Alveo ()=delete | |
virtual | ~Alveo () |
Alveo destructor method Destroy the Alveo object. | |
Status | Reset () override |
Reset method Sets the Alveo instance to its initial state. More... | |
std::shared_ptr< IDataMover > | GetDataMover (const uint64_t address) override |
GetDataMover method Used for accessing the IDataMover instance of the Alveo object. It allocates buffers into an specific memory bank inside of the Alveo card. More... | |
std::shared_ptr< IAccelerator > | GetAccelerator (const std::string &kernelname) override |
GetAccelerator method. More... | |
std::shared_ptr< IAccelerator > | GetAccelerator (const uint64_t address) override |
GetAccelerator method (overload - not implemented) More... | |
![]() | |
virtual | ~IHardware ()=default |
~IHardware destructor method Destroy the IHardware object. | |
virtual std::shared_ptr< IExecutionGraph > | GetExecutionStream (const std::string &name, const IExecutionGraph::Type type=IExecutionGraph::Type::STREAM, const std::shared_ptr< ExecutionGraphParameters > params=nullptr) |
GetExecutionStream. More... | |
virtual std::vector< float > | GetClocks () noexcept |
Get clocks from the PL. More... | |
virtual Status | SetClocks (const std::vector< float > &clocks) |
Set clocks to the PL. More... | |
Additional Inherited Members | |
![]() | |
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... | |
Alveo class Provides an interface to access IP Cores in Xilinx FPGAs, the compatible devices are the Xilinx Alveo.
This class does not have support for bitstream
cynq::Alveo::Alveo | ( | const std::string & | bitstream_file, |
const std::string & | xclbin_file | ||
) |
Construct a new Alveo object.
Configure the FPGA with an xclbin object. The bitstream is unused and this only takes into account the xclbin file.
As future work, the XCLBIN will be embedded into the binary to avoid reading it from an external file.
bitstream_file | "unused" |
xclbin_file | full path to the xclbin object. |
|
delete |
No default constructor required
|
overridevirtual |
GetAccelerator method.
Finds and wraps the XRT Kernel into an IAccelerator object to make the API uniform across platforms. There are still differences between the Alveo cards and Ultrascale that will be addressed in the future.
kernelname | kernel name for XRT kernel |
Implements cynq::IHardware.
|
overridevirtual |
GetAccelerator method (overload - not implemented)
Do not use this method since it is not implemented and it will lead to a nullptr
address | a unsigned integer of 64 bits representing an address. |
Implements cynq::IHardware.
|
overridevirtual |
GetDataMover method Used for accessing the IDataMover instance of the Alveo object. It allocates buffers into an specific memory bank inside of the Alveo card.
address | it is the memory bank id. You can get the memory bank by querying the cynq::IAccelerator::GetMemoryBank. |
Implements cynq::IHardware.
|
overridevirtual |
Reset method Sets the Alveo instance to its initial state.
Implements cynq::IHardware.