Skip to content

Commit 5ac1c85

Browse files
committed
phy: use comb logic for clk div, when provided by core
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]>
1 parent dace9f4 commit 5ac1c85

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

litespi/phy/generic_ddr_with_clk.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,16 @@ def __init__(self, pads, flash, clock_domain, default_divisor=9, extra_latency=0
9191
# CS control.
9292
self.cs_control = cs_control = LiteSPICSControl(pads, self.cs, **kwargs)
9393

94+
spi_clk_divisor_delayed = Signal(len(sink.clk_div))
95+
9496
# Only Clk Divisor when not active or when set by core.
95-
self.sync += [
97+
self.sync += If(~clkgen.en, spi_clk_divisor_delayed.eq(spi_clk_divisor))
98+
99+
self.comb += [
96100
If(sink.valid & (sink.clk_div > 0),
97101
clkgen.div.eq(sink.clk_div),
98-
).Elif(~cs_control.enable,
99-
clkgen.div.eq(spi_clk_divisor),
102+
).Else(
103+
clkgen.div.eq(spi_clk_divisor_delayed),
100104
)
101105
]
102106

litespi/phy/generic_sdr.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,16 @@ def __init__(self, pads, flash, device, clock_domain, default_divisor=9, extra_l
9292
# CS control.
9393
self.cs_control = cs_control = LiteSPICSControl(pads, self.cs, **kwargs)
9494

95+
spi_clk_divisor_delayed = Signal(len(sink.clk_div))
96+
9597
# Only Clk Divisor when not active or when set by core.
96-
self.sync += [
98+
self.sync += If(~clkgen.en, spi_clk_divisor_delayed.eq(spi_clk_divisor))
99+
100+
self.comb += [
97101
If(sink.valid & (sink.clk_div > 0),
98102
clkgen.div.eq(sink.clk_div),
99-
).Elif(~cs_control.enable,
100-
clkgen.div.eq(spi_clk_divisor),
103+
).Else(
104+
clkgen.div.eq(spi_clk_divisor_delayed),
101105
)
102106
]
103107

0 commit comments

Comments
 (0)