projects
/
soc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8d7a8ea
)
loadstore: add done_delay
author
Tobias Platen
<tplaten@posteo.de>
Tue, 30 Nov 2021 16:56:45 +0000
(17:56 +0100)
committer
Tobias Platen
<tplaten@posteo.de>
Tue, 30 Nov 2021 16:56:45 +0000
(17:56 +0100)
src/soc/fu/ldst/loadstore.py
patch
|
blob
|
history
diff --git
a/src/soc/fu/ldst/loadstore.py
b/src/soc/fu/ldst/loadstore.py
index bb79fae5d9c1c461b910d6ffd0cea026712bfd72..9adb6f6b6b9d982215fee69c84a2feb08f3b1ad4 100644
(file)
--- a/
src/soc/fu/ldst/loadstore.py
+++ b/
src/soc/fu/ldst/loadstore.py
@@
-86,6
+86,7
@@
class LoadStore1(PortInterfaceBase):
# state info for LD/ST
self.done = Signal()
# state info for LD/ST
self.done = Signal()
+ self.done_delay = Signal()
# latch most of the input request
self.load = Signal()
self.tlbie = Signal()
# latch most of the input request
self.load = Signal()
self.tlbie = Signal()
@@
-157,14
+158,16
@@
class LoadStore1(PortInterfaceBase):
return st_ok
def get_rd_data(self, m):
return st_ok
def get_rd_data(self, m):
- ld_ok = self.done
# indicates read data is valid
- data = self.load_data # actual read data
+ ld_ok = self.done
_delay
# indicates read data is valid
+ data = self.load_data
# actual read data
return data, ld_ok
def elaborate(self, platform):
m = super().elaborate(platform)
comb, sync = m.d.comb, m.d.sync
return data, ld_ok
def elaborate(self, platform):
m = super().elaborate(platform)
comb, sync = m.d.comb, m.d.sync
+ sync += self.done_delay.eq(self.done)
+
# create dcache module
m.submodules.dcache = dcache = self.dcache
# create dcache module
m.submodules.dcache = dcache = self.dcache