diff --git a/xc7/arch.cc b/xc7/arch.cc index df21c208..764d2231 100644 --- a/xc7/arch.cc +++ b/xc7/arch.cc @@ -67,6 +67,8 @@ std::vector TorcInfo::construct_site_index_to_type(Arch* ctx, const Si const auto &type = pd->getName(); if (type == "SLICEL" || type == "SLICEM") site_index_to_type[i] = id_SLICE_LUT6; + else if (type == "IOB33S" || type == "IOB33M") + site_index_to_type[i] = id_IOB; else site_index_to_type[i] = ctx->id(type); } @@ -788,7 +790,7 @@ TimingPortClass Arch::getPortTimingClass(const CellInfo *cell, IdString port, Id // TODO //if (port == id_OMUX) } - else if (cell->type == id_IOB33S) { + else if (cell->type == id_IOB) { if (port == id_I) return TMG_STARTPOINT; else if (port == id_O) diff --git a/xc7/cells.cc b/xc7/cells.cc index f5f23f5a..dbdc4b82 100644 --- a/xc7/cells.cc +++ b/xc7/cells.cc @@ -70,7 +70,7 @@ std::unique_ptr create_ice_cell(Context *ctx, IdString type, std::stri add_port(ctx, new_cell.get(), "OMUX", PORT_OUT); add_port(ctx, new_cell.get(), "COUT", PORT_OUT); } else if (type == ctx->id("IOBUF")) { - new_cell->type = id_IOB33S; + new_cell->type = id_IOB; new_cell->params[ctx->id("PIN_TYPE")] = "0"; new_cell->params[ctx->id("PULLUP")] = "0"; new_cell->params[ctx->id("NEG_TRIGGER")] = "0"; diff --git a/xc7/constids.inc b/xc7/constids.inc index 8e07efd9..c760bdb0 100644 --- a/xc7/constids.inc +++ b/xc7/constids.inc @@ -456,6 +456,4 @@ X(FDPE) X(BUFGCTRL) X(SLICE_LUT6) -X(IOBUF) -X(IOB33S) -X(IOB33M) // What is the difference between IOB33S and IOB33M? +X(IOB) diff --git a/xc7/xdl.cc b/xc7/xdl.cc index f2aed473..3fa20d5a 100644 --- a/xc7/xdl.cc +++ b/xc7/xdl.cc @@ -54,7 +54,7 @@ void write_xdl(const Context *ctx, std::ostream &out) for (const auto& cell : ctx->cells) { const char* type; if (cell.second->type == id_SLICE_LUT6) type = "SLICEL"; - else if (cell.second->type == id_IOB33S) type = "IOB33S"; + else if (cell.second->type == id_IOB) type = "IOB33S"; else if (cell.second->type == id_BUFGCTRL) type = "BUFGCTRL"; else log_error("Unsupported cell type '%s'.\n", cell.second->type.c_str(ctx)); @@ -141,7 +141,7 @@ void write_xdl(const Context *ctx, std::ostream &out) instPtr->setConfig(setting, name, "#FF"); } } - else if (cell.second->type == id_IOB33S) { + else if (cell.second->type == id_IOB) { if (get_net_or_empty(cell.second.get(), id_I)) { instPtr->setConfig("IUSED", "", "0"); instPtr->setConfig("IBUF_LOW_PWR", "", "TRUE");