diff --git a/nexus/fasm.cc b/nexus/fasm.cc index 6ca5c9f3..0afefa4b 100644 --- a/nexus/fasm.cc +++ b/nexus/fasm.cc @@ -385,9 +385,13 @@ struct NexusFasmWriter } else if (tmux == PINMUX_1 || t == nullptr) { is_input = true; } + auto &bank = bank_cfg[ctx->get_bel_pad(bel)->bank]; + if (is_lifcl_17 && (is_output || !is_input)) + bank.diff_used = true; // what exactly should this bit be called? const char *iodir = is_input ? "INPUT" : (is_output ? "OUTPUT" : "BIDIR"); write_bit(stringf("BASE_TYPE.%s_%s", iodir, str_or_default(cell->attrs, id_IO_TYPE, "LVCMOS18H").c_str())); write_ioattr(cell, "PULLMODE", "NONE"); + write_ioattr(cell, "SLEWRATE", "MED"); pop(); write_cell_muxes(cell); pop();