Instead of storing div_i directly in the internal register div_q we normalize the value to be strictly larger than 0. This avoids the deadlock issue when preloading with 0. Furthermore this commit removes all combinational checks on the phase of ungated_output_clock to avoid hold issues in synthesis. This checks were required to wait until the clock enable signal has been latched by the ICG. Now, we instead use a dedicated flip-flop that tracks the current status of the output clock gate.
Instead of storing div_i directly in the internal register div_q we normalize the value to be strictly larger than 0. This avoids the deadlock issue when preloading with 0. Furthermore this commit removes all combinational checks on the phase of
ungated_output_clock
to avoid hold issues in synthesis. This checks were required to wait until the clock enable signal has been latched by the ICG. Now, we instead use a dedicated flip-flop that tracks the current status of the output clock gate.This fixes #172.