From c0901fb972e34d2d16b3ac0074a18542ba1c448d Mon Sep 17 00:00:00 2001 From: David Shah Date: Mon, 29 Jun 2020 22:11:00 +0100 Subject: ecp5: Fix derivation of OSCG timing constraint Signed-off-by: David Shah --- ecp5/pack.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ecp5/pack.cc') diff --git a/ecp5/pack.cc b/ecp5/pack.cc index fb8a95e9..501f55b6 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -2853,10 +2853,14 @@ class Ecp5Packer while (!changed_nets.empty() && iter < itermax) { ++iter; std::unordered_set changed_cells; - for (auto net : changed_nets) + for (auto net : changed_nets) { for (auto &user : ctx->nets.at(net)->users) if (user.port == id_CLKI || user.port == id_ECLKI || user.port == id_CLK0 || user.port == id_CLK1) changed_cells.insert(user.cell->name); + auto &drv = ctx->nets.at(net)->driver; + if (iter == 1 && drv.cell != nullptr && drv.port == id_OSC) + changed_cells.insert(drv.cell->name); + } changed_nets.clear(); for (auto cell : sorted(changed_cells)) { CellInfo *ci = ctx->cells.at(cell).get(); -- cgit v1.2.3