diff options
author | David Shah <dave@ds0.me> | 2019-11-01 16:27:51 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-11-01 16:27:51 +0000 |
commit | 21c09c8b8f5e0456cc4d7e8017c27d25dd676377 (patch) | |
tree | 68832993520f1200b11075b842fd560f6d8f5956 /ecp5 | |
parent | 58b7cb920ff80f85a0e28df59d84977804f8d67d (diff) | |
download | nextpnr-21c09c8b8f5e0456cc4d7e8017c27d25dd676377.tar.gz nextpnr-21c09c8b8f5e0456cc4d7e8017c27d25dd676377.tar.bz2 nextpnr-21c09c8b8f5e0456cc4d7e8017c27d25dd676377.zip |
ecp5: Copy timing constraints across ECLKBRIDGECS
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r-- | ecp5/pack.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ecp5/pack.cc b/ecp5/pack.cc index 8ba3d651..166ed180 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -2613,7 +2613,7 @@ class Ecp5Packer std::unordered_set<IdString> changed_cells; for (auto net : changed_nets) for (auto &user : ctx->nets.at(net)->users) - if (user.port == id_CLKI || user.port == id_ECLKI) + if (user.port == id_CLKI || user.port == id_ECLKI || user.port == id_CLK0 || user.port == id_CLK1) changed_cells.insert(user.cell->name); changed_nets.clear(); for (auto cell : sorted(changed_cells)) { @@ -2630,6 +2630,9 @@ class Ecp5Packer copy_constraint(ci, id_CLKI, id_CDIVX, ratio); } else if (ci->type == id_ECLKSYNCB || ci->type == id_TRELLIS_ECLKBUF) { copy_constraint(ci, id_ECLKI, id_ECLKO, 1); + } else if (ci->type == id_ECLKBRIDGECS) { + copy_constraint(ci, id_CLK0, id_ECSOUT, 1); + copy_constraint(ci, id_CLK1, id_ECSOUT, 1); } else if (ci->type == id_DCCA) { copy_constraint(ci, id_CLKI, id_CLKO, 1); } else if (ci->type == id_EHXPLLL) { |