aboutsummaryrefslogtreecommitdiffstats
path: root/generic/viaduct/fabulous/fasm.cc
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2023-02-21 14:21:30 +0100
committergatecat <gatecat@ds0.me>2023-02-21 14:41:48 +0100
commit0ed964247e8f3efba4a2569ddf7131b54736b632 (patch)
tree5281ecc7ec9cd7045c7dc201933636887f4c6d1e /generic/viaduct/fabulous/fasm.cc
parent03b6fb3ddb29b6487ba5a14a1ac191a368a14c51 (diff)
downloadnextpnr-0ed964247e8f3efba4a2569ddf7131b54736b632.tar.gz
nextpnr-0ed964247e8f3efba4a2569ddf7131b54736b632.tar.bz2
nextpnr-0ed964247e8f3efba4a2569ddf7131b54736b632.zip
fabulous: Add support for packing carry chains
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'generic/viaduct/fabulous/fasm.cc')
-rw-r--r--generic/viaduct/fabulous/fasm.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/generic/viaduct/fabulous/fasm.cc b/generic/viaduct/fabulous/fasm.cc
index e4b95f62..047ffcbd 100644
--- a/generic/viaduct/fabulous/fasm.cc
+++ b/generic/viaduct/fabulous/fasm.cc
@@ -107,11 +107,15 @@ struct FabFasmWriter
}
}
+ void add_feature(const std::string &name) { out << prefix << name << std::endl; }
+
void write_logic(const CellInfo *lc)
{
prefix = format_name(ctx->getBelName(lc->bel)) + ".";
if (lc->type.in(id_FABULOUS_LC, id_FABULOUS_COMB)) {
write_int_vector_param(lc, "INIT", 0U, 1U << cfg.clb.lut_k); // todo lut depermute and thru
+ if (bool_or_default(lc->params, id_I0MUX, false))
+ add_feature("IOmux"); // typo in FABulous?
}
if (lc->type == id_FABULOUS_LC) {
write_bool(lc, "FF");