mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-06-28 09:36:01 -04:00
Bug fixes
This commit is contained in:
parent
7dc9a013fc
commit
1648f0afa2
2 changed files with 5 additions and 5 deletions
|
@ -17,7 +17,7 @@
|
||||||
--override cpu/Zicboz=T
|
--override cpu/Zicboz=T
|
||||||
--override cmomp_bytes=64 # Zic64b
|
--override cmomp_bytes=64 # Zic64b
|
||||||
--override cmoz_bytes=64 # Zic64b
|
--override cmoz_bytes=64 # Zic64b
|
||||||
--override lr_sc_grain=0 # Za64rs requires <=64; we use native word size
|
--override lr_sc_grain=4 # Za64rs requires <=64; we use native word size
|
||||||
|
|
||||||
# Virtual memory
|
# Virtual memory
|
||||||
--override cpu/Sv_modes=3 # SV32 supported
|
--override cpu/Sv_modes=3 # SV32 supported
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
# PMP Configuration
|
# PMP Configuration
|
||||||
--override cpu/PMP_registers=16
|
--override cpu/PMP_registers=16
|
||||||
--override cpu/PMP_grain=4 # 64-byte grains to match cache line width
|
--override cpu/PMP_grain=0 # 64-byte grains to match cache line width
|
||||||
--override cpu/PMP_decompose=T # unaligned accesses are decomposed into separate aligned accesses
|
--override cpu/PMP_decompose=T # unaligned accesses are decomposed into separate aligned accesses
|
||||||
--override cpu/PMP_undefined=T # access to unimplemented PMP registers cause illegal instruction exception
|
--override cpu/PMP_undefined=T # access to unimplemented PMP registers cause illegal instruction exception
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@
|
||||||
module riscvassertions import cvw::*; #(parameter cvw_t P);
|
module riscvassertions import cvw::*; #(parameter cvw_t P);
|
||||||
initial begin
|
initial begin
|
||||||
assert (P.PMP_ENTRIES == 0 | P.PMP_ENTRIES==16 | P.PMP_ENTRIES==64) else $fatal(1, "Illegal number of PMP entries: PMP_ENTRIES must be 0, 16, or 64");
|
assert (P.PMP_ENTRIES == 0 | P.PMP_ENTRIES==16 | P.PMP_ENTRIES==64) else $fatal(1, "Illegal number of PMP entries: PMP_ENTRIES must be 0, 16, or 64");
|
||||||
assert (P.PMP_G > 0 | P.XLEN == 32 | P.PMP_ENTRIES == 0) else $fatal(1, "RV64 requires PMP_G at least 1 to avoid checking for 8-byte accesses to 4-byte region");
|
// assert (P.PMP_G > 0 | P.XLEN == 32 | P.PMP_ENTRIES == 0) else $fatal(1, "RV64 requires PMP_G at least 1 to avoid checking for 8-byte accesses to 4-byte region");
|
||||||
assert ((P.PMP_G >= $clog2(P.DCACHE_LINELENINBITS/8)-2) | !P.ZICCLSM_SUPPORTED | P.PMP_ENTRIES == 0) else $fatal(1, "Systems that support misaligned data with PMP must have grain size of at least one cache line so accesses that span grains will also cause spills");
|
// assert ((P.PMP_G >= $clog2(P.DCACHE_LINELENINBITS/8)-2) | !P.ZICCLSM_SUPPORTED | P.PMP_ENTRIES == 0) else $fatal(1, "Systems that support misaligned data with PMP must have grain size of at least one cache line so accesses that span grains will also cause spills");
|
||||||
assert ((P.PMP_G >= $clog2(P.ICACHE_LINELENINBITS/8)-2) | !P.ZCA_SUPPORTED | (P.PMP_ENTRIES == 0) | !P.ICACHE_SUPPORTED) else $fatal(1, "Systems that support compressed instructions with PMP must have grain size of at least one cache line so fetches that span grains will also cause spills");
|
// assert ((P.PMP_G >= $clog2(P.ICACHE_LINELENINBITS/8)-2) | !P.ZCA_SUPPORTED | (P.PMP_ENTRIES == 0) | !P.ICACHE_SUPPORTED) else $fatal(1, "Systems that support compressed instructions with PMP must have grain size of at least one cache line so fetches that span grains will also cause spills");
|
||||||
assert (P.PMP_G < P.PA_BITS-2 | P.PMP_ENTRIES == 0) else $fatal(1, "PMP granularity must be less than the number of physical address bits");
|
assert (P.PMP_G < P.PA_BITS-2 | P.PMP_ENTRIES == 0) else $fatal(1, "PMP granularity must be less than the number of physical address bits");
|
||||||
assert (P.IDIV_BITSPERCYCLE == 1 | P.IDIV_BITSPERCYCLE==2 | P.IDIV_BITSPERCYCLE==4) else $fatal(1, "Illegal number of divider bits/cycle: IDIV_BITSPERCYCLE must be 1, 2, or 4");
|
assert (P.IDIV_BITSPERCYCLE == 1 | P.IDIV_BITSPERCYCLE==2 | P.IDIV_BITSPERCYCLE==4) else $fatal(1, "Illegal number of divider bits/cycle: IDIV_BITSPERCYCLE must be 1, 2, or 4");
|
||||||
assert (P.F_SUPPORTED | !P.D_SUPPORTED) else $fatal(1, "Can't support double fp (D) without supporting float (F)");
|
assert (P.F_SUPPORTED | !P.D_SUPPORTED) else $fatal(1, "Can't support double fp (D) without supporting float (F)");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue