blob: e08fa23ef34daf480c450df92156484d4e5fd95a [file] [log] [blame]
#include <gflags/gflags.h>
#include <fstream>
#include <iostream>
#include "configuration_packets.h"
DEFINE_string(o, "", "Output RBT file");
DEFINE_string(aux, "", "Input auxiliary data file");
DEFINE_string(arch, "Series7", "FPGA architecture");
int main(int argc, char** argv) {
gflags::ParseCommandLineFlags(&argc, &argv, true);
if (argc != 2) {
std::cerr << "Error: Input bits file not specified"
<< std::endl;
return 1;
}
std::ofstream out_file;
if (!FLAGS_o.empty()) {
out_file.open(FLAGS_o.c_str(), std::ofstream::out);
if (!out_file.good()) {
std::cerr << "Error: Can't open output file\n";
return 1;
}
}
std::ostream& out = (FLAGS_o.empty()) ? std::cout : out_file;
try {
std::shared_ptr<ConfigurationPackets> packets =
ConfigurationPackets::InitFromFile(argv[1], FLAGS_arch);
packets->AddAuxData(FLAGS_aux);
packets->WriteBits(out);
} catch (std::runtime_error& e) {
std::cerr << "Error: " << e.what();
return 1;
}
if (!FLAGS_o.empty()) {
out_file.close();
}
return 0;
}