diff options
author | David Shah <dave@ds0.me> | 2019-07-10 09:34:22 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-07-10 09:34:22 +0100 |
commit | d297a96dc1a510c4f81180f3b5a756f46d9c59dc (patch) | |
tree | 4a3c915deaf7d33484bb693ac28bd4e55e6c44e4 | |
parent | 19cb4ca554102a70edd6b6bb6c836e1474a73d4f (diff) | |
download | nextpnr-d297a96dc1a510c4f81180f3b5a756f46d9c59dc.tar.gz nextpnr-d297a96dc1a510c4f81180f3b5a756f46d9c59dc.tar.bz2 nextpnr-d297a96dc1a510c4f81180f3b5a756f46d9c59dc.zip |
ecp5: Fix missing LUT inputs, fixes #301
Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r-- | ecp5/pack.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc index 9e2bc326..fde787f9 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -204,6 +204,8 @@ class Ecp5Packer } } 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; if (innet != nullptr && innet->driver.cell != nullptr) { CellInfo *drv = innet->driver.cell; @@ -258,6 +260,8 @@ class Ecp5Packer // Pack LUTs sharing an input with a simple fanout-based heuristic 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; if (innet != nullptr && innet->users.size() < 5 && innet->users.size() > 1) inpnets.push_back(innet); |