diff options
author | David Shah <dave@ds0.me> | 2018-12-14 14:59:14 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2018-12-14 14:59:14 +0000 |
commit | 9dc845b20d74031cd7bb4a520fc241d086befe77 (patch) | |
tree | 987db547448a7db7317254fbb857d97c2f2c8774 /ecp5/cells.cc | |
parent | 36b1650df71f750df06e07c3af737bb118bced22 (diff) | |
download | nextpnr-9dc845b20d74031cd7bb4a520fc241d086befe77.tar.gz nextpnr-9dc845b20d74031cd7bb4a520fc241d086befe77.tar.bz2 nextpnr-9dc845b20d74031cd7bb4a520fc241d086befe77.zip |
ecp5: Add ODDR packing
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5/cells.cc')
-rw-r--r-- | ecp5/cells.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ecp5/cells.cc b/ecp5/cells.cc index fee1d982..58d4797c 100644 --- a/ecp5/cells.cc +++ b/ecp5/cells.cc @@ -127,11 +127,17 @@ std::unique_ptr<CellInfo> create_ecp5_cell(Context *ctx, IdString type, std::str } else if (type == ctx->id("TRELLIS_IO")) { new_cell->params[ctx->id("DIR")] = "INPUT"; new_cell->attrs[ctx->id("IO_TYPE")] = "LVCMOS33"; + new_cell->params[ctx->id("DATAMUX_ODDR")] = "PADDO"; + new_cell->params[ctx->id("DATAMUX_MDDR")] = "PADDO"; add_port(ctx, new_cell.get(), "B", PORT_INOUT); add_port(ctx, new_cell.get(), "I", PORT_IN); add_port(ctx, new_cell.get(), "T", PORT_IN); add_port(ctx, new_cell.get(), "O", PORT_OUT); + + add_port(ctx, new_cell.get(), "IOLDO", PORT_IN); + add_port(ctx, new_cell.get(), "IOLTO", PORT_IN); + } else if (type == ctx->id("LUT4")) { new_cell->params[ctx->id("INIT")] = "0"; @@ -179,7 +185,6 @@ std::unique_ptr<CellInfo> create_ecp5_cell(Context *ctx, IdString type, std::str new_cell->params[ctx->id("DELAY.DEL_VALUE")] = "0"; new_cell->params[ctx->id("DELAY.WAIT_FOR_EDGE")] = "DISABLED"; - new_cell->params[ctx->id("DATAMUX_ODDR")] = "PADDO"; if (type == id_IOLOGIC) { new_cell->params[ctx->id("IDDRXN.MODE")] = "NONE"; new_cell->params[ctx->id("ODDRXN.MODE")] = "NONE"; |