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