mirror of https://github.com/YosysHQ/nextpnr.git
create CPE_CPLINES cells and set properties on them
This commit is contained in:
parent
944b8cfe92
commit
b3c8829fe1
|
|
@ -443,6 +443,42 @@ void GateMateImpl::postRoute()
|
||||||
if (extra_data.type == PipExtra::PIP_EXTRA_MUX && (extra_data.flags & MUX_ROUTING)) {
|
if (extra_data.type == PipExtra::PIP_EXTRA_MUX && (extra_data.flags & MUX_ROUTING)) {
|
||||||
nets_with_bridges.insert(ni->name);
|
nets_with_bridges.insert(ni->name);
|
||||||
}
|
}
|
||||||
|
if (extra_data.type == PipExtra::PIP_EXTRA_MUX && (extra_data.mask != 0)) {
|
||||||
|
PipId pip = w.second.pip;
|
||||||
|
IdStringList id = ctx->getPipName(pip);
|
||||||
|
Loc loc = ctx->getPipLocation(pip);
|
||||||
|
BelId bel = ctx->getBelByLocation({loc.x, loc.y, CPE_CPLINES_Z});
|
||||||
|
CellInfo *cell = ctx->getBoundBelCell(bel);
|
||||||
|
if (!cell) {
|
||||||
|
IdString name = ctx->idf("cplines$%s", id[0].c_str(ctx));
|
||||||
|
cell = ctx->createCell(name, id_CPE_CPLINES);
|
||||||
|
ctx->bindBel(bel, cell, PlaceStrength::STRENGTH_FIXED);
|
||||||
|
}
|
||||||
|
if (extra_data.mask & PipMask::C_SELX)
|
||||||
|
cell->setParam(id_C_SELX, Property(extra_data.data & PipMask::C_SELX ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_SELY1)
|
||||||
|
cell->setParam(id_C_SELY1, Property(extra_data.data & PipMask::C_SELY1 ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_SELY2)
|
||||||
|
cell->setParam(id_C_SELY2, Property(extra_data.data & PipMask::C_SELY2 ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_SEL_C)
|
||||||
|
cell->setParam(id_C_SEL_C, Property(extra_data.data & PipMask::C_SEL_C ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_SEL_P)
|
||||||
|
cell->setParam(id_C_SEL_P, Property(extra_data.data & PipMask::C_SEL_P ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_Y12)
|
||||||
|
cell->setParam(id_C_Y12, Property(extra_data.data & PipMask::C_Y12 ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_CX_I)
|
||||||
|
cell->setParam(id_C_CX_I, Property(extra_data.data & PipMask::C_CX_I ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_CY1_I)
|
||||||
|
cell->setParam(id_C_CY1_I, Property(extra_data.data & PipMask::C_CY1_I ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_CY2_I)
|
||||||
|
cell->setParam(id_C_CY2_I, Property(extra_data.data & PipMask::C_CY2_I ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_PX_I)
|
||||||
|
cell->setParam(id_C_PX_I, Property(extra_data.data & PipMask::C_PX_I ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_PY1_I)
|
||||||
|
cell->setParam(id_C_PY1_I, Property(extra_data.data & PipMask::C_PY1_I ? 1 : 0, 1));
|
||||||
|
if (extra_data.mask & PipMask::C_PY2_I)
|
||||||
|
cell->setParam(id_C_PY2_I, Property(extra_data.data & PipMask::C_PY2_I ? 1 : 0, 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue