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

View File

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