diff options
author | gatecat <gatecat@ds0.me> | 2022-09-30 13:27:51 +0200 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2022-09-30 13:27:51 +0200 |
commit | 3826a31ad3667d691d95ae027bd0ce66c5596f73 (patch) | |
tree | 4c9bf5a5f1b7312bca77b2e3bc9573e7063d0359 /generic/viaduct/fabulous/fasm.cc | |
parent | 124c0fc8121f0ac1e7d9823f3f1576e5fa2c087b (diff) | |
download | nextpnr-3826a31ad3667d691d95ae027bd0ce66c5596f73.tar.gz nextpnr-3826a31ad3667d691d95ae027bd0ce66c5596f73.tar.bz2 nextpnr-3826a31ad3667d691d95ae027bd0ce66c5596f73.zip |
fabulous: Pack, validity check and FASM support for muxes
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'generic/viaduct/fabulous/fasm.cc')
-rw-r--r-- | generic/viaduct/fabulous/fasm.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/generic/viaduct/fabulous/fasm.cc b/generic/viaduct/fabulous/fasm.cc index e4725555..e4b95f62 100644 --- a/generic/viaduct/fabulous/fasm.cc +++ b/generic/viaduct/fabulous/fasm.cc @@ -123,6 +123,14 @@ struct FabFasmWriter write_bool(lc, "NEG_SR"); write_bool(lc, "ASYNC_SR"); } + if (lc->type.in(id_FABULOUS_MUX4, id_FABULOUS_MUX8)) { + // TODO: don't hardcode prefix + out << prefix << "I.c0" << std::endl; + } + if (lc->type == id_FABULOUS_MUX8) { + // TODO: don't hardcode prefix + out << prefix << "I.c1" << std::endl; + } } void write_io(const CellInfo *io) @@ -161,7 +169,8 @@ struct FabFasmWriter void write_cell(const CellInfo *ci) { out << stringf("# config for cell '%s'\n", ctx->nameOf(ci)) << std::endl; - if (ci->type.in(id_FABULOUS_COMB, id_FABULOUS_FF, id_FABULOUS_LC)) + if (ci->type.in(id_FABULOUS_COMB, id_FABULOUS_FF, id_FABULOUS_LC, id_FABULOUS_MUX2, id_FABULOUS_MUX4, + id_FABULOUS_MUX8)) write_logic(ci); else if (ci->type == id_IO_1_bidirectional_frame_config_pass) write_io(ci); |