2021-06-26 15:24:07 +02:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2020-10-31 08:46:53 +01:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2020 Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
|
|
|
|
*/
|
|
|
|
|
|
2021-02-24 06:36:48 +01:00
|
|
|
#include <sstream>
|
2020-10-31 08:46:53 +01:00
|
|
|
#include <stdexcept>
|
|
|
|
|
|
|
|
|
|
#include "configBitstreamParser.hpp"
|
|
|
|
|
#include "display.hpp"
|
|
|
|
|
#include "efinixHexParser.hpp"
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
EfinixHexParser::EfinixHexParser(const string &filename, bool reverseOrder):
|
|
|
|
|
ConfigBitstreamParser(filename, ConfigBitstreamParser::ASCII_MODE,
|
|
|
|
|
false), _reverseOrder(reverseOrder)
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
int EfinixHexParser::parse()
|
|
|
|
|
{
|
2021-02-24 06:36:48 +01:00
|
|
|
string buffer;
|
|
|
|
|
istringstream lineStream(_raw_data);
|
2020-10-31 08:46:53 +01:00
|
|
|
|
2021-02-24 06:36:48 +01:00
|
|
|
while (std::getline(lineStream, buffer, '\n')) {
|
|
|
|
|
_bit_data += std::stol(buffer, nullptr, 16);
|
2020-10-31 08:46:53 +01:00
|
|
|
}
|
|
|
|
|
_bit_length = _bit_data.size() * 8;
|
|
|
|
|
|
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
|
}
|