mirror of https://github.com/YosysHQ/nextpnr.git
Disable packing DFF in RAMIO
This commit is contained in:
parent
8a9a760e90
commit
9fc045a7bd
|
|
@ -738,7 +738,7 @@ std::pair<CellInfo *, CellInfo *> GateMatePacker::move_ram_io(CellInfo *cell, Id
|
||||||
bool place, Loc cpe_loc)
|
bool place, Loc cpe_loc)
|
||||||
{
|
{
|
||||||
CellInfo *cpe_half = nullptr;
|
CellInfo *cpe_half = nullptr;
|
||||||
CellInfo *cpe_ff = nullptr;
|
// CellInfo *cpe_ff = nullptr;
|
||||||
CellInfo *cpe_ramio = nullptr;
|
CellInfo *cpe_ramio = nullptr;
|
||||||
NetInfo *i_net = cell->getPort(iPort);
|
NetInfo *i_net = cell->getPort(iPort);
|
||||||
NetInfo *o_net = cell->getPort(oPort);
|
NetInfo *o_net = cell->getPort(oPort);
|
||||||
|
|
@ -758,9 +758,9 @@ std::pair<CellInfo *, CellInfo *> GateMatePacker::move_ram_io(CellInfo *cell, Id
|
||||||
if (o_net) {
|
if (o_net) {
|
||||||
if (o_net != net_PACKER_GND && o_net != net_PACKER_VCC &&
|
if (o_net != net_PACKER_GND && o_net != net_PACKER_VCC &&
|
||||||
o_net->driver.cell->getPort(o_net->driver.port)->users.entries() == 1 &&
|
o_net->driver.cell->getPort(o_net->driver.port)->users.entries() == 1 &&
|
||||||
o_net->driver.cell->type.in(id_CC_LUT1, id_CC_LUT2, id_CC_L2T4, id_CC_MX2, id_CC_DFF, id_CC_DLT)) {
|
o_net->driver.cell->type.in(id_CC_LUT1, id_CC_LUT2, id_CC_L2T4, id_CC_MX2 /*, id_CC_DFF, id_CC_DLT*/)) {
|
||||||
CellInfo &ci = *o_net->driver.cell;
|
CellInfo &ci = *o_net->driver.cell;
|
||||||
if (ci.type.in(id_CC_DFF, id_CC_DLT)) {
|
/* if (ci.type.in(id_CC_DFF, id_CC_DLT)) {
|
||||||
cpe_half = create_cell_ptr(id_CPE_L2T4, ctx->idf("%s$%s_cpe", cell->name.c_str(ctx), oPort.c_str(ctx)));
|
cpe_half = create_cell_ptr(id_CPE_L2T4, ctx->idf("%s$%s_cpe", cell->name.c_str(ctx), oPort.c_str(ctx)));
|
||||||
ci.renamePort(id_Q, id_DOUT);
|
ci.renamePort(id_Q, id_DOUT);
|
||||||
NetInfo *d_net = ci.getPort(id_D);
|
NetInfo *d_net = ci.getPort(id_D);
|
||||||
|
|
@ -780,7 +780,8 @@ std::pair<CellInfo *, CellInfo *> GateMatePacker::move_ram_io(CellInfo *cell, Id
|
||||||
ci.addInput(id_DIN);
|
ci.addInput(id_DIN);
|
||||||
ci.connectPort(id_DIN, conn);
|
ci.connectPort(id_DIN, conn);
|
||||||
cpe_ff = &ci;
|
cpe_ff = &ci;
|
||||||
} else if (ci.type == id_CC_MX2) {
|
} else */
|
||||||
|
if (ci.type == id_CC_MX2) {
|
||||||
ci.renamePort(id_D1, id_D0_00);
|
ci.renamePort(id_D1, id_D0_00);
|
||||||
NetInfo *sel = ci.getPort(id_S0);
|
NetInfo *sel = ci.getPort(id_S0);
|
||||||
ci.renamePort(id_S0, id_D1_00);
|
ci.renamePort(id_S0, id_D1_00);
|
||||||
|
|
@ -883,6 +884,7 @@ std::pair<CellInfo *, CellInfo *> GateMatePacker::move_ram_io(CellInfo *cell, Id
|
||||||
ctx->bindBel(b, cpe_half, PlaceStrength::STRENGTH_FIXED);
|
ctx->bindBel(b, cpe_half, PlaceStrength::STRENGTH_FIXED);
|
||||||
}
|
}
|
||||||
// Constrain CPE FF
|
// Constrain CPE FF
|
||||||
|
/*
|
||||||
if (cpe_ff) {
|
if (cpe_ff) {
|
||||||
if (place) {
|
if (place) {
|
||||||
cpe_ramio->constr_children.push_back(cpe_ff);
|
cpe_ramio->constr_children.push_back(cpe_ff);
|
||||||
|
|
@ -895,6 +897,7 @@ std::pair<CellInfo *, CellInfo *> GateMatePacker::move_ram_io(CellInfo *cell, Id
|
||||||
ctx->bindBel(b, cpe_ff, PlaceStrength::STRENGTH_FIXED);
|
ctx->bindBel(b, cpe_ff, PlaceStrength::STRENGTH_FIXED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
return std::make_pair(cpe_half, cpe_ramio);
|
return std::make_pair(cpe_half, cpe_ramio);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue