projects
/
soc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bd99535
)
clarify output, use Cat on list
author
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Sun, 14 Apr 2019 16:50:12 +0000
(17:50 +0100)
committer
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Sun, 14 Apr 2019 16:50:12 +0000
(17:50 +0100)
TLB/src/ariane/tlb.py
patch
|
blob
|
history
diff --git
a/TLB/src/ariane/tlb.py
b/TLB/src/ariane/tlb.py
index 40f84bc0a385a40ee611de4ddeac17379571d7c8..fdeb71ae3ac084756f9569ba19acc877a17bba93 100644
(file)
--- a/
TLB/src/ariane/tlb.py
+++ b/
TLB/src/ariane/tlb.py
@@
-22,7
+22,7
@@
from nmigen.lib.coding import Encoder
from ptw import TLBUpdate, PTE, ASID_WIDTH
from ptw import TLBUpdate, PTE, ASID_WIDTH
-TLB_ENTRIES =
4
+TLB_ENTRIES =
8
class TLBEntry:
class TLBEntry:
@@
-216,7
+216,7
@@
class PLRU:
# the corresponding bit of the entry's index, this is
# the next entry to replace.
for i in range(TLB_ENTRIES):
# the corresponding bit of the entry's index, this is
# the next entry to replace.
for i in range(TLB_ENTRIES):
- en =
Signal(LOG_TLB, reset_less=True)
+ en =
[]
for lvl in range(LOG_TLB):
idx_base = (1<<lvl)-1
# lvl0 <=> MSB, lvl1 <=> MSB-1, ...
for lvl in range(LOG_TLB):
idx_base = (1<<lvl)-1
# lvl0 <=> MSB, lvl1 <=> MSB-1, ...
@@
-226,11
+226,11
@@
class PLRU:
m.d.comb += plru.eq(plru_tree[idx_base + (i>>shift)])
# en &= plru_tree_q[idx_base + (i>>shift)] == new_idx;
if new_idx:
m.d.comb += plru.eq(plru_tree[idx_base + (i>>shift)])
# en &= plru_tree_q[idx_base + (i>>shift)] == new_idx;
if new_idx:
-
m.d.comb += en[lvl].eq
(~plru) # yes inverted (using bool())
+
en.append
(~plru) # yes inverted (using bool())
else:
else:
-
m.d.comb += en[lvl].eq
(plru) # yes inverted (using bool())
+
en.append
(plru) # yes inverted (using bool())
print ("plru", i, en)
print ("plru", i, en)
- # boolean logic manip
lu
ation:
+ # boolean logic manip
ul
ation:
# plur0 & plru1 & plur2 == ~(~plru0 | ~plru1 | ~plru2)
m.d.comb += self.replace_en_o[i].eq(~Cat(*en).bool())
# plur0 & plru1 & plur2 == ~(~plru0 | ~plru1 | ~plru2)
m.d.comb += self.replace_en_o[i].eq(~Cat(*en).bool())