use std::fs::File;
use std::io::Read;
extern crate serde_json;
extern crate xc2bit;
use xc2bit::*;
extern crate xc2par;
use xc2par::*;
extern crate yosys_netlist_json;
fn main() {
let args = ::std::env::args().collect::<Vec<_>>();
if args.len() != 2 {
println!("Usage: {} file.json", args[0]);
::std::process::exit(1);
}
let mut f = File::open(&args[1]).expect("failed to open file");
let mut data = Vec::new();
f.read_to_end(&mut data).expect("failed to read data");
let mut input_graph = serde_json::from_slice(&data).unwrap();
let device_type = XC2DeviceSpeedPackage::from_str("xc2c32a-4-vq44").expect("invalid device name");
if let PARResult::Success(y) = do_par(&mut input_graph, device_type, &XC2ParOptions::new(), None) {
let bitstream = produce_bitstream(device_type, &input_graph, &y);
bitstream.to_jed(&mut ::std::io::stdout()).unwrap();
} else {
panic!("PAR failed!");
}
}