Files
openFPGALoader/src/latticeBitParser.hpp
T

46 lines
1.1 KiB
C++
Raw Normal View History

2021-06-26 15:24:07 +02:00
// SPDX-License-Identifier: Apache-2.0
2019-12-20 08:47:38 +01:00
/*
* Copyright (C) 2019-2022 Gwenhael Goavec-Merou <[email protected]>
2019-12-20 08:47:38 +01:00
*/
#ifndef SRC_LATTICEBITPARSER_HPP_
#define SRC_LATTICEBITPARSER_HPP_
2019-12-20 08:47:38 +01:00
#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <vector>
2019-12-20 08:47:38 +01:00
#include "configBitstreamParser.hpp"
class LatticeBitParser: public ConfigBitstreamParser {
public:
LatticeBitParser(const std::string &filename, bool machxo2, bool ecp3,
bool verbose = false);
2019-12-20 08:47:38 +01:00
~LatticeBitParser();
int parse() override;
/*!
* \brief return configuration data with structure similar to jedec
* \return configuration data
*/
std::vector<std::string> &getDataArray() {return _bit_array;}
2019-12-20 08:47:38 +01:00
private:
int parseHeader();
bool parseCfgData();
/*!
* \brief format a 32-bit value as 8 zero-padded lowercase hex digits
* \param[in] id: value to format
* \return 8-character hex string
*/
static std::string fmtIdcode(uint32_t id);
2021-02-24 06:36:48 +01:00
size_t _endHeader;
bool _is_machXO2;
bool _is_ecp3;
/* data storage for machXO2 */
std::vector<std::string> _bit_array;
2019-12-20 08:47:38 +01:00
};
#endif // SRC_LATTICEBITPARSER_HPP_