aboutsummaryrefslogtreecommitdiffstats
path: root/mistral/archdefs.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-05-14 18:26:51 +0100
committergatecat <gatecat@ds0.me>2021-05-15 14:54:33 +0100
commitb2f45b1aab596d4185f3a6c6a60d6b97c6aa4ad0 (patch)
treee0ef9574367be55f8fd9adb4c54d185f7d8e7a0b /mistral/archdefs.h
parentbd525d3548df30b5e4831348fdad7fe5fd5180c2 (diff)
downloadnextpnr-b2f45b1aab596d4185f3a6c6a60d6b97c6aa4ad0.tar.gz
nextpnr-b2f45b1aab596d4185f3a6c6a60d6b97c6aa4ad0.tar.bz2
nextpnr-b2f45b1aab596d4185f3a6c6a60d6b97c6aa4ad0.zip
mistral: Account for TD input count limit
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'mistral/archdefs.h')
-rw-r--r--mistral/archdefs.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/mistral/archdefs.h b/mistral/archdefs.h
index 35b5bf63..181bc618 100644
--- a/mistral/archdefs.h
+++ b/mistral/archdefs.h
@@ -182,6 +182,13 @@ struct ArchCellInfo : BaseClusterInfo
int used_lut_input_count; // excluding those null/constant
int lut_bits_count;
+ // for the LAB routeability check (see the detailed description in lab.cc); usually the same signal feeding
+ // multiple ALMs in a LAB is counted multiple times, due to not knowing which routing resources it will need
+ // in each case. But carry chains where we know how things will pack are allowed to share across ALMs as a
+ // special case, primarily to support adders/subtractors with a 'B invert' control signal shared across all
+ // ALMs.
+ int chain_shared_input_count;
+
bool is_carry, is_shared, is_extended;
bool carry_start, carry_end;
} combInfo;