From d297a96dc1a510c4f81180f3b5a756f46d9c59dc Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 10 Jul 2019 09:34:22 +0100 Subject: [PATCH] ecp5: Fix missing LUT inputs, fixes #301 Signed-off-by: David Shah --- ecp5/pack.cc | 4 ++++ 1 file changed, 4 insertions(+) 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);