20 #include "../../../Common/str.h"
25 log(
"Merging bitstreams.");
29 if(!selectedOptions.partialNotFull){
30 log(
"Merging the whole FPGA");
40 throw runtime_error(
string(
"Currently only full clock region height relocations are supported (use row numbers multiple of ").append(
to_string(
XUS_CLB_PER_CLOCK_REGION)).append(
")."));
42 throw runtime_error(
string(
"Currently only full clock region height relocations are supported (use row numbers multiple of ").append(
to_string(
XUS_CLB_PER_CLOCK_REGION)).append(
")."));
44 throw runtime_error(
string(
"Currently only full clock region height relocations are supported (use row numbers multiple of ").append(
to_string(
XUS_CLB_PER_CLOCK_REGION)).append(
")."));
51 flexiMerge(srcBitstream, endianDifference, src, dst);
52 log(
"Merging bitstreams complete.");
Endianness
< Endianness in byteman is represented not only by big/little endian, but also by potential bit swapp...
@ NATIVE
System native will always be the fastest endianess to process.
#define XUS_CLB_PER_CLOCK_REGION
Endianness loadedBitstreamEndianness
The endianess of the currently loaded bitstream.
void merge(XilinxUltraScale *, std::string, Rect2D, Coord2D)
void ensureRegionCompatibility(Rect2D src, Coord2D dst)
void fastMerge(XilinxConfigurationAccessPort *srcBitstream, Rect2D src, Coord2D dst)
void flexiMerge(XilinxConfigurationAccessPort *srcBitstream, Endianness endianConversionNeeded, Rect2D src, Coord2D dst)
void parseParams(std::string params)
std::string to_string(Endianness e)
Endianness diff(Endianness e1, Endianness e2)