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()));
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,