Debugging carry legalisation

Signed-off-by: David Shah <davey1576@gmail.com>
This commit is contained in:
David Shah 2018-06-28 15:48:57 +02:00
parent c0724a7e97
commit 27a9850921

View File

@ -128,15 +128,20 @@ class PlacementLegaliser
bool legalise_carries() bool legalise_carries()
{ {
std::vector<CellChain> carry_chains = find_chains( std::vector<CellChain> carry_chains = find_chains(
ctx, is_lc, ctx,
[](const Context *ctx, const CellInfo *cell) { [](const Context *ctx, const CellInfo *cell) {
return is_lc(ctx, cell);
},
[](const Context *ctx, const
CellInfo *cell) {
CellInfo *carry_prev = CellInfo *carry_prev =
net_driven_by(ctx, cell->ports.at(ctx->id("CIN")).net, is_lc, ctx->id("COUT")); net_driven_by(ctx, cell->ports.at(ctx->id("CIN")).net, is_lc, ctx->id("COUT"));
if (carry_prev != nullptr) if (carry_prev != nullptr)
return carry_prev; return carry_prev;
CellInfo *i3_prev = net_driven_by(ctx, cell->ports.at(ctx->id("I3")).net, is_lc, ctx->id("COUT")); /*CellInfo *i3_prev = net_driven_by(ctx, cell->ports.at(ctx->id("I3")).net, is_lc, ctx->id("COUT"));
if (i3_prev != nullptr) if (i3_prev != nullptr)
return i3_prev; return i3_prev;*/
return (CellInfo *)nullptr; return (CellInfo *)nullptr;
}, },
[](const Context *ctx, const CellInfo *cell) { [](const Context *ctx, const CellInfo *cell) {
@ -144,10 +149,10 @@ class PlacementLegaliser
net_only_drives(ctx, cell->ports.at(ctx->id("COUT")).net, is_lc, ctx->id("CIN"), false); net_only_drives(ctx, cell->ports.at(ctx->id("COUT")).net, is_lc, ctx->id("CIN"), false);
if (carry_next != nullptr) if (carry_next != nullptr)
return carry_next; return carry_next;
CellInfo *i3_next = /*CellInfo *i3_next =
net_only_drives(ctx, cell->ports.at(ctx->id("COUT")).net, is_lc, ctx->id("I3"), false); net_only_drives(ctx, cell->ports.at(ctx->id("COUT")).net, is_lc, ctx->id("I3"), false);
if (i3_next != nullptr) if (i3_next != nullptr)
return i3_next; return i3_next;*/
return (CellInfo *)nullptr; return (CellInfo *)nullptr;
}); });
bool success = true; bool success = true;