18 ensureInitializedBitstreamArrays();
22 int bitstreamSize = bitstreamEnd - bitstreamBegin;
25 for(
int i = 0 ; i < bitstreamSize ; i++)
29 for(
int i = 0 ; i < bitstreamSize ; i++)
33 for(
int i = 0 ; i < bitstreamSize ; i++)
37 for(
int i = 0 ; i < bitstreamSize ; i++)
40 loadedBitstreamEndianness = newEndianness;
44 ensureInitializedBitstreamArrays();
45 uint32_t r, y, c, b, m, w, mask, newVal;
49 r = y / CLB_PER_CLOCK_REGION;
50 if(b == BLOCKTYPE_LOGIC){
51 bitstreamCLB[r][c][m*WORDS_PER_FRAME + w] = (mask & newVal) | ((mask^0xFFFFFFFF) & bitstreamCLB[r][c][m*WORDS_PER_FRAME + w]);
52 }
else if(b == BLOCKTYPE_BLOCKRAM){
53 bitstreamBRAM[r][numberOfBRAMsBeforeCol[r][c]][m*WORDS_PER_FRAME + w] = (mask & newVal) | ((mask^0xFFFFFFFF) & bitstreamBRAM[r][numberOfBRAMsBeforeCol[r][c]][m*WORDS_PER_FRAME + w]);
55 bitstreamHasValidData =
true;
Endianness
< Endianness in byteman is represented not only by big/little endian, but also by potential bit swapp...
@ BE_BS
Big endian with bit swaps inside each byte.
@ LE_BS
Little endian with bit swaps inside each byte.
@ LE
Little endian ("LE" instead of full-er name, so it does not conflict with linux's reserved endianess ...
@ BE
Big endian ("BE" instead of full-er name, so it does not conflict with linux's reserved endianess wor...
@ NATIVE
System native will always be the fastest endianess to process.
void setBitstreamWord(std::string params)
void ensureSelectedEndianness(Endianness newEndianness)
uint32_t NativeToLittleEndian32(uint32_t x)
uint32_t NativeToAnyEndianness32(uint32_t x, Endianness e)
uint32_t NativeToBigEndian32(uint32_t x)
uint32_t BitSwap32(uint32_t x)
Endianness diff(Endianness e1, Endianness e2)
bool multipleUints(std::stringstream &ss)