Skip to content

Conversation

@maass-hamburg
Copy link
Contributor

@maass-hamburg maass-hamburg commented Aug 7, 2025

  • add ddr variant with clk divider
  • change sdr variant to use a compatible clk divider with the ddr variant
  • add clk drivider csr per core module
  • extra_latency: adds support for sdr phy, for ddr phy more granular (0,5 steps)
  • cs timer: moves delay to start, when cs is not active, so in a lot of cases when using it, we don't have to wait anymore

@maass-hamburg
Copy link
Contributor Author

@enjoy-digital should it replace the old ddr phy without a clk divider or should it stay as in alternative?

maass-hamburg added a commit to VOGL-electronic/gw__litex that referenced this pull request Aug 22, 2025
use new clk divisor, that is used
for SDR and DDR from
litex-hub/litespi#86

Signed-off-by: Fin Maaß <[email protected]>
@maass-hamburg maass-hamburg force-pushed the ddr_clk_variable branch 3 times, most recently from ccfa073 to 65a1e4e Compare August 22, 2025 12:56
@maass-hamburg maass-hamburg marked this pull request as ready for review August 22, 2025 12:59
maass-hamburg added a commit to VOGL-electronic/gw__litex that referenced this pull request Aug 26, 2025
use new clk divisor, that is used
for SDR and DDR from
litex-hub/litespi#86

Signed-off-by: Fin Maaß <[email protected]>
maass-hamburg added a commit to VOGL-electronic/gw__litex that referenced this pull request Sep 3, 2025
use new clk divisor, that is used
for SDR and DDR from
litex-hub/litespi#86

Signed-off-by: Fin Maaß <[email protected]>
@maass-hamburg
Copy link
Contributor Author

@enjoy-digital please take a look. I already tested this successfully with efinix titanium and Topaz.

maass-hamburg added a commit to VOGL-electronic/gw__litex that referenced this pull request Sep 4, 2025
use new clk divisor, that is used
for SDR and DDR from
litex-hub/litespi#86

Signed-off-by: Fin Maaß <[email protected]>
maass-hamburg added a commit to VOGL-electronic/gw__litex that referenced this pull request Sep 8, 2025
use new clk divisor, that is used
for SDR and DDR from
litex-hub/litespi#86

Signed-off-by: Fin Maaß <[email protected]>
improve existing DDR.

Signed-off-by: Fin Maaß <[email protected]>
This commit adds a DDR PHY implementation with a clock divider to the LiteSPI project.
The clock divider enables the use of a lower frequency clock while still achieving the desired data rate.

Signed-off-by: Fin Maaß <[email protected]>
use a clk divider compatible with the ddr one.
This way the software doen't have to know
which phy is used. for sdr only every 2 values
the effective clk divider changes, it is rounded up
so we don't so we are never faster than the matching
freq.

Signed-off-by: Fin Maaß <[email protected]>
be able to set clk dividers independent per core.
When using the master sometimes we need a
slower speed, in order to not change it for mmap
and make that slower too, they now can be set per
core module. When the clk divider is not set in the
core module (by it being 0), the phy will use the
 clk divider it's own csr.

Signed-off-by: Fin Maaß <[email protected]>
use ddr with clk divider

Signed-off-by: Fin Maaß <[email protected]>
start cs timer already when cs is falling,
instead of when it's going to be used.

Signed-off-by: Fin Maaß <[email protected]>
use comb logic for clk div, when provided by core,
so it can directly be used, when it's avalible.
NEeded due to the change of start of the cs timer.

Signed-off-by: Fin Maaß <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant