dtlb_lu_access is done only when misalgined ex valid is 0 (#2989)
Some checks are pending
bender-up-to-date / bender-up-to-date (push) Waiting to run
ci / build-riscv-tests (push) Waiting to run
ci / execute-riscv64-tests (push) Blocked by required conditions
ci / execute-riscv32-tests (push) Blocked by required conditions

This fixes issue #2988 and #2827

---------

Co-authored-by: JeanRochCoulon <jean-roch.coulon@thalesgroup.com>
This commit is contained in:
khandelwaltanuj 2025-06-17 08:00:48 +02:00 committed by GitHub
parent f3d2ec4461
commit b484f5f3ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 2 deletions

View file

@ -1273,7 +1273,11 @@ class CsrParser:
if isinstance(RegElement.get("address", None), str)
else hex(RegElement.get("address", None))
)
reset = hex(RegElement.get("reset-val", ""))
if RegElement.get("reset-val", "") != "":
reset = hex(RegElement.get("reset-val", ""))
else:
print(regName, "reset val not defined")
access = RegElement.get("priv_mode", "")
if Registers.get(register, {}).get("description", "") is not None:

View file

@ -170,7 +170,7 @@ module cva6_mmu
// Assignments
assign itlb_lu_access = icache_areq_i.fetch_req;
assign dtlb_lu_access = lsu_req_i;
assign dtlb_lu_access = lsu_req_i & !misaligned_ex_i.valid;
assign itlb_lu_asid = v_i ? vs_asid_i : asid_i;
assign dtlb_lu_asid = (ld_st_v_i || flush_tlb_vvma_i) ? vs_asid_i : asid_i;