use std::path::PathBuf;
use topstitch::ModDef;
fn main() {
let examples = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("examples");
let input = examples.join("input");
let block = ModDef::from_verilog_files(
"block",
&[&input.join("pack.sv"), &input.join("block.sv")],
false,
false,
);
let block_parameterized = block.parameterize(&[("N", 32)], None, None);
let stub = block_parameterized.stub("stub");
let a = stub.get_port("a");
let b_array = stub.get_port("b").subdivide(2);
a.connect(&b_array[0]);
b_array[1].tieoff(0);
stub.get_port("c").connect(&stub.get_port("d"));
let output_dir = examples.join("output");
std::fs::create_dir_all(&output_dir).expect("should be possible to create output dir");
let output_file = output_dir.join("stub.sv");
stub.emit_to_file(&output_file, true);
eprintln!("Emitted to output file: {}", output_file.display());
}