Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ImperasDV PBMT misaligned Mismatch #976

Open
rosethompson opened this issue Sep 30, 2024 · 3 comments
Open

ImperasDV PBMT misaligned Mismatch #976

rosethompson opened this issue Sep 30, 2024 · 3 comments

Comments

@rosethompson
Copy link
Contributor

rosethompson commented Sep 30, 2024

PBMT configured misaligned addresses do not agree between ImperasDV and Wally.

wsim rv64gc tests/coverage/tlbMisaligned.elf --lockstep

 Info (IDV) Instruction executed prior to mismatch '0x8001503c(main+3c): 929e     add     x5,x5,x7'
# Error (IDV) PC mismatch (HartId:0, PC:0x000000008001503e main+3e):
# Error (IDV) Mismatch 0>
# Error (IDV)   . dut:0x0000000080000050 
# Error (IDV)   . ref:0x000000008001503e main+3e
@rosethompson
Copy link
Contributor Author

rosethompson commented Sep 30, 2024

@eroom1966 I think this might come down to how the spec is interpreted.

Zicclsm Misaligned loads and stores to main memory regions with both the cacheability and coherence PMAs must be supported.

Since PMBT is used to disable cacheablity I believe it should not support misaligned access even though the memory physically does support misaligned.

@rosethompson
Copy link
Contributor Author

rosethompson commented Oct 14, 2024

My attempt to generate the debug database resulted in a segfault.

I added this to the vlog command.
+define+IDV_INCLUDE_TRACE2BIN

and set this variable before calling questa.
IMPERAS_RVVI_DEBUG=1


# Platform = "linux_x86_64"
# Signature = ce21318267b9d07e1c15c754173193d2
# --> START OF USERCODE
# 0    0x00007ffff2825114: 'rvviDebugCaptureClock + 0x0000000000000054' in '/opt/riscv/ImperasDV-OpenHW/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model.so'
# <-- END OF USERCODE
# 1    0x00007feff05a3718: '/opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv:24'
# 2    0x00007feff416c2c5: '/opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv:193'
# 3    0x00000000023e5c82: '<unknown (@0x23e5c82)>'
# 4    0x00000000004df304: '<unknown (@0x4df304)>'
# 5    0x000000000074da13: '<unknown (@0x74da13)>'
# 6    0x0000000000ca62ed: '<unknown (@0xca62ed)>'
# 7    0x0000000000cab610: '<unknown (@0xcab610)>'
# 8    0x0000000000cacf8e: '<unknown (@0xcacf8e)>'
# 9    0x0000000000f9c58d: '<unknown (@0xf9c58d)>'
# 10   0x000000000287b08d: '<unknown (@0x287b08d)>'
# 11   0x000000000287f4e6: '<unknown (@0x287f4e6)>'
# 12   0x0000000002880bd1: '<unknown (@0x2880bd1)>'
# 13   0x0000000002880f36: '<unknown (@0x2880f36)>'
# 14   0x000000000122f669: '<unknown (@0x122f669)>'
# 15   0x0000000002920e3f: '<unknown (@0x2920e3f)>'
# 16   0x00000000029749b7: '<unknown (@0x29749b7)>'
# 17   0x00000000029378a7: '<unknown (@0x29378a7)>'
# 18   0x0000000002937b89: '<unknown (@0x2937b89)>'
# 19   0x0000000002708d7d: '<unknown (@0x2708d7d)>'
# 20   0x0000000000c6e53c: '<unknown (@0xc6e53c)>'
# End of Stack Trace


# ** Fatal: (SIGSEGV) Bad handle or reference.
#    Time: 0 ns  Iteration: 1  Process: /testbench/rvvi/#ALWAYS#114 File: /opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv
# Fatal error at /opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv line 24
# 
# HDL call sequence:
# Stopped at /opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv 24  
# called from  /opt/riscv/ImperasDV-OpenHW/ImpProprietary/source/host/idv/trace2bin.sv 193  
# 
# End time: 08:55:28 on Oct 14,2024, Elapsed time: 0:00:01
# Errors: 1, Warnings: 0

@rosethompson
Copy link
Contributor Author

tlbMisaligned.tar.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant