Prevent spurious precharge all commands caused by leaving A10 asserted during precharge
This commit is contained in:
parent
d0fcfb172f
commit
6b0d5ceeae
|
@ -68,19 +68,6 @@ class BankMachine(Module):
|
||||||
req.lock.eq(cmd_buffer.source.valid),
|
req.lock.eq(cmd_buffer.source.valid),
|
||||||
]
|
]
|
||||||
|
|
||||||
#Set row change buffer
|
|
||||||
self.comb += [
|
|
||||||
rowchg_buffer.sink.differentRow.eq(slicer.row(req.adr) != row_last),
|
|
||||||
rowchg_buffer.sink.valid.eq(cmd_buffer.source.valid & cmd_buffer.sink.valid & cmd_buffer.sink.ready),
|
|
||||||
rowchg_buffer.source.ready.eq(cmd_buffer.source.ready),
|
|
||||||
auto_precharge.eq(rowchg_buffer.source.differentRow & rowchg_buffer.source.valid),
|
|
||||||
]
|
|
||||||
self.sync += [
|
|
||||||
If(cmd_buffer.sink.valid & cmd_buffer.sink.ready,
|
|
||||||
row_last.eq(slicer.row(req.adr))
|
|
||||||
)
|
|
||||||
]
|
|
||||||
|
|
||||||
# Row tracking
|
# Row tracking
|
||||||
has_openrow = Signal()
|
has_openrow = Signal()
|
||||||
openrow = Signal(settings.geom.rowbits, reset_less=True)
|
openrow = Signal(settings.geom.rowbits, reset_less=True)
|
||||||
|
@ -96,6 +83,19 @@ class BankMachine(Module):
|
||||||
openrow.eq(slicer.row(cmd_buffer.source.adr))
|
openrow.eq(slicer.row(cmd_buffer.source.adr))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#Set row change buffer
|
||||||
|
self.comb += [
|
||||||
|
rowchg_buffer.sink.differentRow.eq(slicer.row(req.adr) != row_last),
|
||||||
|
rowchg_buffer.sink.valid.eq(cmd_buffer.source.valid & cmd_buffer.sink.valid & cmd_buffer.sink.ready),
|
||||||
|
rowchg_buffer.source.ready.eq(cmd_buffer.source.ready),
|
||||||
|
auto_precharge.eq(rowchg_buffer.source.differentRow & rowchg_buffer.source.valid & (track_close == 0)),
|
||||||
|
]
|
||||||
|
self.sync += [
|
||||||
|
If(cmd_buffer.sink.valid & cmd_buffer.sink.ready,
|
||||||
|
row_last.eq(slicer.row(req.adr))
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
# Address generation
|
# Address generation
|
||||||
sel_row_adr = Signal()
|
sel_row_adr = Signal()
|
||||||
self.comb += [
|
self.comb += [
|
||||||
|
|
Loading…
Reference in New Issue