Combine IOB33S and IOB33M
This commit is contained in:
parent
f7be783a32
commit
3e1085ecb5
@ -67,6 +67,8 @@ std::vector<IdString> TorcInfo::construct_site_index_to_type(Arch* ctx, const Si
|
|||||||
const auto &type = pd->getName();
|
const auto &type = pd->getName();
|
||||||
if (type == "SLICEL" || type == "SLICEM")
|
if (type == "SLICEL" || type == "SLICEM")
|
||||||
site_index_to_type[i] = id_SLICE_LUT6;
|
site_index_to_type[i] = id_SLICE_LUT6;
|
||||||
|
else if (type == "IOB33S" || type == "IOB33M")
|
||||||
|
site_index_to_type[i] = id_IOB;
|
||||||
else
|
else
|
||||||
site_index_to_type[i] = ctx->id(type);
|
site_index_to_type[i] = ctx->id(type);
|
||||||
}
|
}
|
||||||
@ -788,7 +790,7 @@ TimingPortClass Arch::getPortTimingClass(const CellInfo *cell, IdString port, Id
|
|||||||
// TODO
|
// TODO
|
||||||
//if (port == id_OMUX)
|
//if (port == id_OMUX)
|
||||||
}
|
}
|
||||||
else if (cell->type == id_IOB33S) {
|
else if (cell->type == id_IOB) {
|
||||||
if (port == id_I)
|
if (port == id_I)
|
||||||
return TMG_STARTPOINT;
|
return TMG_STARTPOINT;
|
||||||
else if (port == id_O)
|
else if (port == id_O)
|
||||||
|
@ -70,7 +70,7 @@ std::unique_ptr<CellInfo> create_ice_cell(Context *ctx, IdString type, std::stri
|
|||||||
add_port(ctx, new_cell.get(), "OMUX", PORT_OUT);
|
add_port(ctx, new_cell.get(), "OMUX", PORT_OUT);
|
||||||
add_port(ctx, new_cell.get(), "COUT", PORT_OUT);
|
add_port(ctx, new_cell.get(), "COUT", PORT_OUT);
|
||||||
} else if (type == ctx->id("IOBUF")) {
|
} 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("PIN_TYPE")] = "0";
|
||||||
new_cell->params[ctx->id("PULLUP")] = "0";
|
new_cell->params[ctx->id("PULLUP")] = "0";
|
||||||
new_cell->params[ctx->id("NEG_TRIGGER")] = "0";
|
new_cell->params[ctx->id("NEG_TRIGGER")] = "0";
|
||||||
|
@ -456,6 +456,4 @@ X(FDPE)
|
|||||||
|
|
||||||
X(BUFGCTRL)
|
X(BUFGCTRL)
|
||||||
X(SLICE_LUT6)
|
X(SLICE_LUT6)
|
||||||
X(IOBUF)
|
X(IOB)
|
||||||
X(IOB33S)
|
|
||||||
X(IOB33M) // What is the difference between IOB33S and IOB33M?
|
|
||||||
|
@ -54,7 +54,7 @@ void write_xdl(const Context *ctx, std::ostream &out)
|
|||||||
for (const auto& cell : ctx->cells) {
|
for (const auto& cell : ctx->cells) {
|
||||||
const char* type;
|
const char* type;
|
||||||
if (cell.second->type == id_SLICE_LUT6) type = "SLICEL";
|
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 if (cell.second->type == id_BUFGCTRL) type = "BUFGCTRL";
|
||||||
else log_error("Unsupported cell type '%s'.\n", cell.second->type.c_str(ctx));
|
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");
|
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)) {
|
if (get_net_or_empty(cell.second.get(), id_I)) {
|
||||||
instPtr->setConfig("IUSED", "", "0");
|
instPtr->setConfig("IUSED", "", "0");
|
||||||
instPtr->setConfig("IBUF_LOW_PWR", "", "TRUE");
|
instPtr->setConfig("IBUF_LOW_PWR", "", "TRUE");
|
||||||
|
Loading…
Reference in New Issue
Block a user