bitparser: reverOrder is now configurable, fix _bit_length must be in bit instead of byte

This commit is contained in:
Gwenhael Goavec-Merou 2020-09-25 18:42:32 +02:00
parent 9a8a7400b9
commit fceaada9ba
2 changed files with 11 additions and 5 deletions

View File

@ -14,10 +14,10 @@ using namespace std;
#define display(...) \
do { if (_verbose) fprintf(stdout, __VA_ARGS__);} while(0)
BitParser::BitParser(const string &filename, bool verbose):
BitParser::BitParser(const string &filename, bool reverseOrder, bool verbose):
ConfigBitstreamParser(filename, ConfigBitstreamParser::BIN_MODE,
verbose), fieldA(), part_name(), date(), hour(),
design_name(), userID(), toolVersion()
design_name(), userID(), toolVersion(), _reverseOrder(reverseOrder)
{
}
BitParser::~BitParser()
@ -126,9 +126,14 @@ int BitParser::parse()
return -1;
}
for (int i = 0; i < _bit_length; i++) {
_bit_data[i] = reverseByte(_bit_data[i]);
if (_reverseOrder) {
for (int i = 0; i < _bit_length; i++) {
_bit_data[i] = reverseByte(_bit_data[i]);
}
}
/* convert size to bit */
_bit_length *= 8;
return 0;
}

View File

@ -8,7 +8,7 @@
class BitParser: public ConfigBitstreamParser {
public:
BitParser(const std::string &filename, bool verbose = false);
BitParser(const std::string &filename, bool reverseOrder, bool verbose = false);
~BitParser();
int parse() override;
@ -21,6 +21,7 @@ class BitParser: public ConfigBitstreamParser {
std::string design_name;
std::string userID;
std::string toolVersion;
bool _reverseOrder;
};
#endif