From 5b659dcb8805829964e4b4226a18081a2423bb11 Mon Sep 17 00:00:00 2001 From: Mora Unie Youer Date: Fri, 2 May 2025 15:53:18 +0300 Subject: feat: use larger gates if specific is not found --- src/main.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index cb8c5f1..f6dea25 100644 --- a/src/main.rs +++ b/src/main.rs @@ -529,8 +529,16 @@ fn pick_chip_by_logic<'input>( if let Some(chip) = series.logic_to_chip.get(&(gate, inputs)) { Some(*chip) } else { - // todo!() - None + // Returning first larger by size + // NOTE: this is not the optimal solution, but for my case it is the best (delay is lowest + // possible) + let larger_gate = series + .logic_to_chip + .keys() + .filter(|&&(g, i)| g == gate && i > inputs) + .sorted() + .next(); + larger_gate.map(|conf| series.logic_to_chip[conf]) } } -- cgit v1.2.3-70-g09d2