diff --git a/nexus/pack.cc b/nexus/pack.cc index cc86699a..bb62ec85 100644 --- a/nexus/pack.cc +++ b/nexus/pack.cc @@ -2000,7 +2000,7 @@ struct NexusPacker copy_constraint(ci, id_CLKI, id_CLKO, 1); } else if (ci->type == id_DCS) { // For DCC copy the worst case ("fastest") constraint - delay_t period_clk0, period_clk1; + delay_t period_clk0 = 0, period_clk1 = 0; bool have_clk0 = get_period(ci, id_CLK0, period_clk0); bool have_clk1 = get_period(ci, id_CLK1, period_clk1); if (have_clk0 && !have_clk1) { @@ -2014,7 +2014,7 @@ struct NexusPacker int div = int_or_default(ci->params, id_HF_CLK_DIV, 128); const float tol = 1.07f; // OSCA has +/-7% frequency tolerance, assume the worst case. set_period(ci, id_HFCLKOUT, delay_t((1.0e6 / 450) * (div + 1) / tol)); - set_period(ci, id_LFCLKOUT, delay_t((1.0e3 / 10) / tol)); + set_period(ci, id_LFCLKOUT, delay_t((1.0e9 / 32) / tol)); } else if (ci->type == id_PLL_CORE) { static const std::array div{id_DIVA, id_DIVB, id_DIVC, id_DIVD, id_DIVE, id_DIVF}; static const std::array output{id_CLKOP, id_CLKOS, id_CLKOS2,