combine_stdcell/
combine_stdcell.rs1use reda_gds::GdsLibrary;
2
3fn main_result() -> Result<(), Box<dyn std::error::Error>> {
4 let mut lib = GdsLibrary::load_file("./data/leafcell/bitcell.gds")?;
5 let sense_amp = GdsLibrary::load_file("./data/leafcell/sense_amp.gds")?;
6 let write_driver = GdsLibrary::load_file("./data/leafcell/write_driver.gds")?;
7 let column_tri_gate = GdsLibrary::load_file("./data/leafcell/column_tri_gate.gds")?;
8 let precharge = GdsLibrary::load_file("./data/leafcell/precharge.gds")?;
9
10 println!("{}", lib.meters_per_dbunit);
11 println!("{}", precharge.meters_per_dbunit);
12 println!("{}", sense_amp.meters_per_dbunit);
13 println!("{}", column_tri_gate.meters_per_dbunit);
14 println!("{}", write_driver.meters_per_dbunit);
15
16 lib.structures.insert("precharge".into(), precharge.structures.iter().nth(0).unwrap().1.clone());
17 lib.structures.insert("sense_amp".into(), sense_amp.structures.iter().nth(0).unwrap().1.clone());
18 lib.structures.insert("tri_gate".into(), column_tri_gate.structures.iter().nth(0).unwrap().1.clone());
19 lib.structures.insert("write_driver".into(), write_driver.structures.iter().nth(0).unwrap().1.clone());
20
21 println!("{}", lib.structures.len());
22
23 lib.save_gds_file("./data/leafcell/leafcell.gds")?;
24
25 let lib = GdsLibrary::load_file("./data/leafcell/leafcell.gds")?;
26 println!("{}", lib.structures.len());
27 println!("{}", lib.meters_per_dbunit);
28
29 Ok(())
30}
31
32fn main() {
33 if let Err(e) = main_result() {
34 eprintln!("{}", e);
35 }
36}