diff options
author | David Shah <dave@ds0.me> | 2020-05-18 09:38:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-18 09:38:41 +0100 |
commit | 2d406f3e275beda8b70b4c7d4d5e43433dd3c43c (patch) | |
tree | a95e996ab39cf3447710ce93161e97419591854b /ecp5/pack.cc | |
parent | ddf546c2cc8a99da320921f9b49a01b865ee04c9 (diff) | |
parent | 163dee1e1ad90091cbb2742190a07aa87fa83d7f (diff) | |
download | nextpnr-2d406f3e275beda8b70b4c7d4d5e43433dd3c43c.tar.gz nextpnr-2d406f3e275beda8b70b4c7d4d5e43433dd3c43c.tar.bz2 nextpnr-2d406f3e275beda8b70b4c7d4d5e43433dd3c43c.zip |
Merge pull request #440 from YosysHQ/lattice-fixes
Fixes for the Lattice SERDES eye demo designs
Diffstat (limited to 'ecp5/pack.cc')
-rw-r--r-- | ecp5/pack.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc index 55b2c791..fb8a95e9 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -1617,6 +1617,18 @@ class Ecp5Packer for (auto pin : ctx->getBelPins(exemplar_bel)) if (ctx->getBelPinType(exemplar_bel, pin) == PORT_IN) autocreate_empty_port(ci, pin); + // Disconnect these ports if connected to constant to prevent routing failure + for (auto ndport : {id_D_TXBIT_CLKP_FROM_ND, id_D_TXBIT_CLKN_FROM_ND, id_D_SYNC_ND, + id_D_TXPLL_LOL_FROM_ND, id_CH0_HDINN, id_CH0_HDINP, id_CH1_HDINN, id_CH1_HDINP}) { + const NetInfo *net = get_net_or_empty(ci, ndport); + if (net == nullptr || net->driver.cell == nullptr) + continue; + IdString ct = net->driver.cell->type; + if (ct == ctx->id("GND") || ct == ctx->id("VCC")) { + disconnect_port(ctx, ci, ndport); + ci->ports.erase(ndport); + } + } } } for (auto cell : sorted(ctx->cells)) { |