From 5b659dcb8805829964e4b4226a18081a2423bb11 Mon Sep 17 00:00:00 2001
From: Mora Unie Youer <mora_unie_youer@riseup.net>
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(-)
(limited to 'src/main.rs')
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