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

请教NEMU中关于PMA地址寄存器初始值以及内存地址划分问题 #347

Open
prjmoriarty opened this issue May 24, 2024 · 1 comment

Comments

@prjmoriarty
Copy link

  1. 请问现在NEMU中PMA的Base地址寄存器初始值是否与Xiangshan主线代码保持一致
  2. 目前NEMU中的内存地址划分与Xiangshan主线是否保持一致
    对于第一点在测试中发现在访问0x7d6地址的csr寄存器时,NEMU中触发异常,但RTL中可以正常执行,看RTL中PMA的addrbase为0x7C8,怀疑是否地址未对齐
    对于第二点,在测试中会碰到load指令在地址计算正确的情况下,从cache或内存中取得的值RTL与NEMU不一致,想问下目前的内存地址划分是不是有差异
@cebarobot
Copy link
Member

  1. NEMU 中目前没有实现 PMA。因此,访问 NEMU 相关 PMA 寄存器会报异常,但访问香山不会。
  2. 这个得具体问题具体分析:
  • 如果这个地址是内存区块(地址大于 0x8000_0000),那么 RTL 和 NEMU 读出来的值应当是一致的。如果不一致应该是有 bug 存在。
  • 如果这个地址是非内存区块(如 MMIO 等,地址小于 0x8000_0000),那么 RTL 和 NEMU 读出来的值确实有可能不同。通常,RTL 会将此类访存标记为 MMIO,然后在 difftest 时跳过相关的比对,并将 RTL 的状态(读出来的值)同步到 NEMU。

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

2 participants