From 9aa33bf4791c27db32f07fae2609d372101e7da4 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 17 Jan 2022 23:01:38 -0800 Subject: [PATCH] buffer_proto5: extend search domain to also vary the clock shape (square/sine) --- examples/buffer_proto5.rs | 42 +++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/examples/buffer_proto5.rs b/examples/buffer_proto5.rs index 1ce948c..ee7a0df 100644 --- a/examples/buffer_proto5.rs +++ b/examples/buffer_proto5.rs @@ -368,7 +368,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results { driver.add_measurement(meas::Current::new("couplingbot", g.coupling_wire_bot.clone())); let base = format!("buffer5-{}", id); - let prefix = format!("out/{}/{}-{}-{}setmA-{}setps-{}clkmA-{}clkps-{}um-{}ferromaj-{}:{}wraps-{}:{}cov", + let prefix = format!("out/{}/{}-{}-{}setmA-{}setps-{}clkmA-{}clkps-{}um-{}ferromaj-{}:{}wraps-{}:{}cov-{:?}clk", base, base, *driver.size(), @@ -382,6 +382,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results { p.wraps2, p.wrap1_coverage, p.wrap2_coverage, + p.clock_type, ); if p.dry_run { @@ -425,6 +426,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results { format!("{}/results.txt", prefix), format!("{:#?}\n", res), ).unwrap(); + info!("completed sim: {}", prefix); res } @@ -433,28 +435,30 @@ fn main() { coremem::init_logging(); let i = 62; let dry_run = false; - let clock_type = PulseType::Square; let mut variants = Vec::new(); for ferro_major in [1360e-6, 2320e-6, 1680e-6] { // 10e-9 is enough to see m2 peak, 275e-9 for it to stabilize for post_time in [10e-9, 275e-9] { for peak_clock_current in [400.0, 100.0, 1600.0, 25.0] { - for wrap1_density in [1.0, 0.5, 0.2] { - for wrap2_density in [1.0, 0.5, 0.2, 0.0] { - for (wrap1_cov, wrap2_cov) in [ - (0.8, 0.8), - (0.8, 0.25), - (0.25, 0.8), - ] { - variants.push(( - peak_clock_current, - post_time, - ferro_major, - wrap1_cov, - wrap2_cov, - wrap1_density, - wrap2_density - )); + for clock_type in [PulseType::Square, PulseType::Sine] { + for wrap1_density in [1.0, 0.5, 0.2] { + for wrap2_density in [1.0, 0.5, 0.2, 0.0] { + for (wrap1_cov, wrap2_cov) in [ + (0.8, 0.8), + (0.8, 0.25), + (0.25, 0.8), + ] { + variants.push(( + peak_clock_current, + post_time, + clock_type, + ferro_major, + wrap1_cov, + wrap2_cov, + wrap1_density, + wrap2_density + )); + } } } } @@ -462,7 +466,7 @@ fn main() { } } - for (peak_clock_current, post_time, ferro_major, wrap1_coverage, wrap2_coverage, wrap1_density, wrap2_density) in variants { + for (peak_clock_current, post_time, clock_type, ferro_major, wrap1_coverage, wrap2_coverage, wrap1_density, wrap2_density) in variants { info!("{}A {}s {}m {}:{}cov {}:{}density", peak_clock_current, post_time, ferro_major, wrap1_coverage, wrap2_coverage, wrap1_density, wrap2_density); let base_params = Params { dry_run,