1
0
mirror of https://github.com/YosysHQ/nextpnr.git synced 2026-01-11 23:53:21 +00:00

Fix multipliers on hardware

This commit is contained in:
Miodrag Milanovic 2025-08-04 13:26:26 +02:00
parent 60f3c25cb0
commit 88f52bcaba
2 changed files with 4 additions and 3 deletions

View File

@ -225,7 +225,7 @@ struct BitstreamBackend
auto *net = ctx->cells.at(cell_name)->ports.at(id_OUT).net;
int64_t driver_l10 = ctx->cells.at(cell_name)->params[id_INIT_L10].as_int64();
bool driver_is_inverted = driver_l10 == LUT_ONE || driver_l10 == LUT_INV_D0;
bool driver_is_inverted = driver_l10 == LUT_INV_D0;
bool all_correct = true;
bool all_inverted = true;

View File

@ -360,8 +360,9 @@ MultCell::MultCell(CellInfo *lower, CellInfo *upper, IdString name, bool is_msb)
lower->params[id_C_C_P] = Property(0, 1);
}
// upper->params[id_C_O1] = Property(0b10, 2); // CP_OUT1 -> OUT1
// upper->params[id_C_O2] = Property(0b10, 2); // CP_OUT2 -> OUT2
// Must force this one, even if outputs are not used to preserve logic
lower->params[id_C_O1] = Property(0b10, 2); // CP_OUT1 -> OUT1
lower->params[id_C_O2] = Property(0b10, 2); // CP_OUT2 -> OUT2
}
MsbRoutingCell::MsbRoutingCell(CellInfo *lower, CellInfo *upper, CellInfo *comp, CellInfo *cplines, IdString name)