buffer_proto5: extend search domain to also vary the clock shape (square/sine)

This commit is contained in:
2022-01-17 23:01:38 -08:00
parent 3788af6ceb
commit 9aa33bf479

View File

@@ -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())); driver.add_measurement(meas::Current::new("couplingbot", g.coupling_wire_bot.clone()));
let base = format!("buffer5-{}", id); 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,
base, base,
*driver.size(), *driver.size(),
@@ -382,6 +382,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results {
p.wraps2, p.wraps2,
p.wrap1_coverage, p.wrap1_coverage,
p.wrap2_coverage, p.wrap2_coverage,
p.clock_type,
); );
if p.dry_run { if p.dry_run {
@@ -425,6 +426,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results {
format!("{}/results.txt", prefix), format!("{}/results.txt", prefix),
format!("{:#?}\n", res), format!("{:#?}\n", res),
).unwrap(); ).unwrap();
info!("completed sim: {}", prefix);
res res
} }
@@ -433,12 +435,12 @@ fn main() {
coremem::init_logging(); coremem::init_logging();
let i = 62; let i = 62;
let dry_run = false; let dry_run = false;
let clock_type = PulseType::Square;
let mut variants = Vec::new(); let mut variants = Vec::new();
for ferro_major in [1360e-6, 2320e-6, 1680e-6] { for ferro_major in [1360e-6, 2320e-6, 1680e-6] {
// 10e-9 is enough to see m2 peak, 275e-9 for it to stabilize // 10e-9 is enough to see m2 peak, 275e-9 for it to stabilize
for post_time in [10e-9, 275e-9] { for post_time in [10e-9, 275e-9] {
for peak_clock_current in [400.0, 100.0, 1600.0, 25.0] { for peak_clock_current in [400.0, 100.0, 1600.0, 25.0] {
for clock_type in [PulseType::Square, PulseType::Sine] {
for wrap1_density in [1.0, 0.5, 0.2] { for wrap1_density in [1.0, 0.5, 0.2] {
for wrap2_density in [1.0, 0.5, 0.2, 0.0] { for wrap2_density in [1.0, 0.5, 0.2, 0.0] {
for (wrap1_cov, wrap2_cov) in [ for (wrap1_cov, wrap2_cov) in [
@@ -449,6 +451,7 @@ fn main() {
variants.push(( variants.push((
peak_clock_current, peak_clock_current,
post_time, post_time,
clock_type,
ferro_major, ferro_major,
wrap1_cov, wrap1_cov,
wrap2_cov, wrap2_cov,
@@ -461,8 +464,9 @@ 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); 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 { let base_params = Params {
dry_run, dry_run,