Dedup WAUSED features.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
diff --git a/dump_features.java b/dump_features.java
index e25e78c..260a3b2 100644
--- a/dump_features.java
+++ b/dump_features.java
@@ -148,6 +148,7 @@
boolean[] haveff = {false, false};
boolean[] srused = {false, false, false, false};
boolean[] ceused = {false, false, false, false};
+ boolean[] waused = {false, false, false};
for (BEL b : si.getBELs()) {
String belName = b.getName();
@@ -171,8 +172,9 @@
tfeat.add(belName.replaceAll("[56]", "") + ".SRL.LARGE");
for (int i = 6; i <= 8; i++) {
- if (c.getPhysicalPinMapping("WADR" + i) != null)
- tfeat.add("WA" + (i+1) + "USED");
+ if (c.getPhysicalPinMapping("WADR" + i) != null) {
+ waused[i-6] = true;
+ }
}
if (c.getType().contains("SRLC32") && c.getEDIFCellInst() != null) {
EDIFPortInst epi = c.getEDIFCellInst().getPortInst("D");
@@ -229,7 +231,6 @@
tfeat.add(belName.replaceAll("[56]", "") + ".INIT[" + i + "]");
}
}
-
} else if (belName.contains("FF")) {
boolean is_latch = false, is_sync = false, srval = false;
String clkpin, srpin, cepin;
@@ -360,6 +361,15 @@
}
tfeat.add(sp.getBELName() + "." + sp.getInputPinName());
}
+ if (si.getSiteTypeEnum() == SiteTypeEnum.SLICEM) {
+ for (int i = 0; i < 3; i++) {
+ if(waused[i]) {
+ tfeat.add("WA" + (i+7) + "USED.1");
+ } else {
+ tfeat.add("WA" + (i+7) + "USED.0");
+ }
+ }
+ }
} else if (si.getSiteTypeEnum() == SiteTypeEnum.BUFCE_LEAF) {
String name = site_index_in_tile(si.getTile(), si.getSite());
for (Cell c : si.getCells()) {