ecp5: Fix missing LUT inputs, fixes #301
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
19cb4ca554
commit
d297a96dc1
@ -204,6 +204,8 @@ class Ecp5Packer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const char *inp : {"A", "B", "C", "D"}) {
|
for (const char *inp : {"A", "B", "C", "D"}) {
|
||||||
|
if (!ci->ports.count(ctx->id(inp)))
|
||||||
|
continue;
|
||||||
NetInfo *innet = ci->ports.at(ctx->id(inp)).net;
|
NetInfo *innet = ci->ports.at(ctx->id(inp)).net;
|
||||||
if (innet != nullptr && innet->driver.cell != nullptr) {
|
if (innet != nullptr && innet->driver.cell != nullptr) {
|
||||||
CellInfo *drv = innet->driver.cell;
|
CellInfo *drv = innet->driver.cell;
|
||||||
@ -258,6 +260,8 @@ class Ecp5Packer
|
|||||||
|
|
||||||
// Pack LUTs sharing an input with a simple fanout-based heuristic
|
// Pack LUTs sharing an input with a simple fanout-based heuristic
|
||||||
for (const char *inp : {"A", "B", "C", "D"}) {
|
for (const char *inp : {"A", "B", "C", "D"}) {
|
||||||
|
if (!ci->ports.count(ctx->id(inp)))
|
||||||
|
continue;
|
||||||
NetInfo *innet = ci->ports.at(ctx->id(inp)).net;
|
NetInfo *innet = ci->ports.at(ctx->id(inp)).net;
|
||||||
if (innet != nullptr && innet->users.size() < 5 && innet->users.size() > 1)
|
if (innet != nullptr && innet->users.size() < 5 && innet->users.size() > 1)
|
||||||
inpnets.push_back(innet);
|
inpnets.push_back(innet);
|
||||||
|
Loading…
Reference in New Issue
Block a user