【问题标题】:32 bit hella cache access for coprocessor acculator example协处理器累加器示例的 32 位海拉缓存访问
【发布时间】:2020-01-14 06:08:17
【问题描述】:

我已经用 rocc 示例实现了 32 位火箭芯片,但是在累加器示例中,使用 do_load 指令通过 hela 缓存接口访问数据。 io_mem_response_valid 信号在两个时钟周期内保持高电平,因此 reg 文件中的数据被下一个内存位置的数据覆盖。 vivado simulation waveform for simple do_load instruction

可能是内存响应接口默认设置为传输 64 字节或其他。请帮助我。如何更改突发大小?

感谢和问候, 卫生巾

【问题讨论】:

  • 似乎您以某种方式将缓存行填充与寄存器写入混淆了。如果程序将字节读取到奇数地址会发生什么?
  • 感谢回复我设法解决了这个问题,有 io.mem.req.bits.size 我们需要发送 io.mem.req.bits.size := log2Ceil(4).U (即 2)用于通过 mem 响应接口接受 32 位。我浏览了旧的 berkely 的 coproccesor 实验室文档,相同接口有 typ 信号;但没有典型信号了。可能会被尺寸信号取代。

标签: riscv rocket-chip


【解决方案1】:

我刚刚从https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/LazyRoCC.scala 更改了 io.mem.req.bits.size = log2Ceil(4).U(即 2)的值。这可能会通知 io.mem.resp 接口的响应大小。

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2019-03-30
    • 2016-04-21
    • 2010-11-06
    • 1970-01-01
    • 2012-01-07
    • 2023-03-29
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多