| #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; | |
| } |