问题标签 [rocket-chip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
88 浏览

memory - 从同一指令进行两次内存访问时出现 SimpleHellaCacheIF 异常

我正在尝试修改累加器生成器示例以一次加载两个访问,例如从一个数组加载两个索引。我所做的只是当第一个内存响应进来时,我增加一个计数器并发送另一个。但我得到一个缓存异常。我的加速器代码如下。它与累加器只有一些变化。

我也感到困惑的是,第一次访问有效并且我得到了数据,而现在,我使用与第二次访问相同的地址。那么为什么这行不通呢?

0 投票
3 回答
503 浏览

fpga - 是否可以在 Artix-7 以外的 FPGA 上实现当前的 Rocket Chip Github respo

我对 RISC-V 域完全陌生。我的目标是在我的 FPGA 上实现 Rocket Chip 内核,作为一个更大项目的模块。

据我所知,SiFive 是 Rocket Chip 的供应商。据我所知,SiFive 的所有内核都只能在 Xilinx Artix-7 FPGA 上实现。然而,我想知道是否可以在其他 FPGA(例如 Xilinx Virtex 7 或 Zynq)上实现它?

如果是,那是否需要任何形式的进一步修改?或者我对 Github 上展示的常规流程感到满意?

谢谢。

0 投票
1 回答
308 浏览

rocket-chip - 在 VCS、Emulator Vsim 目录中运行“make”时出现错误“Makefrag-verilator:20: recipe for target”

我正在我的 Ubuntu 18.04 上构建 Rocket-Chip。我已经在我的机器上构建了 RISC-V 工具链、RISC-V 工具、Rocket-Tools、Vertilator、Sbt。

我正在遵循https://github.com/chipsalliance/rocket-chip上演示的指南

所以,我按照以下步骤操作:

  1. 将目录更改为rocket-chip/emulator
  2. 运行制作

然后,每次,我都会在下面遇到相同的错误(转到运行日志的最后一行),因为每当我尝试构建 VCS 或make verilog在 Vsim 目录中运行时都会遇到完全相同的错误。

鉴于我按照Github 上的 Chisel3 respo中的说明重新安装了 vertilator,我该如何解决这个问题。

0 投票
2 回答
301 浏览

scala - 怎么看懂这行凿码

我正在学习 chisel 和 scala 语言,并尝试分析一些火箭芯片代码。有人能解释一下吗?https://github.com/chipsalliance/rocket-chip/blob/54237b5602a273378e3b35307bb47eb1e58cb9fb/src/main/scala/rocket/RocketCore.scala#L957

我了解 log2Up 函数在做什么,但不明白为什么 log2Up(n)-1 和 0 像“参数”一样传递给 addr,它是 UInt 类型的 val!?

0 投票
2 回答
628 浏览

scala - 如何在 Chisel 中使用 Seq 和 Cat?

我正在学习凿子和火箭芯片。火箭芯片在RVC.scala中有一个使用 Seq 和 Cat 的代码。

但是当我像上面那样编写代码时,我得到了一个错误。chisel 报告类型不匹配。

0 投票
0 回答
212 浏览

chisel - 加载和存储到 Rocket Chip 的 L1 缓存中

我有一个连接到我的 RISC V 内核的加速器,直到现在我通过 RoCC 接口发送数据。现在我想通过 L1 缓存发送和接收数据。我知道 mem 字段连接到缓存,但我们如何通过 L1 缓存执行加载和存储操作。

0 投票
1 回答
94 浏览

chisel - 存储到 Rocket Chip Core 的 L1 Dcache 时的响应信号

如果我在 L1 Dcache 中执行存储,Rocket Chip 内核会产生相应的有效信号还是仅用于加载信号?因为对于加载信号,您正在请求某些东西,并且您得到了一些响应,而对于存储,您只需要检查内存接口是否准备好并发出信号。(我说的是io.mem.resp领域)

0 投票
1 回答
131 浏览

chisel - 如何将 val 名称保留在 withClock() 或 withClockAndReset() 范围内

withClock()&范围内的Val 名称withClockAndReset()往往会在生成的 Verilog 文件中丢失其编码名称。

到目前为止,为了保持原始名称,我使用suggestName()函数强制原始名称。

但是我想知道是否有更聪明的方法呢?有没有办法强制所有 val 保留他们的名字而不添加suggestName()每个 val 声明?

0 投票
2 回答
127 浏览

scala - 这个语法在凿子中是如何解释的?

我正在学习凿子和火箭芯片。我最近在 Rocket/RocketCore.scala 文件中发现了一个不可读的语法。

使用类EventSet时,没有找到mask和hits的定义。

0 投票
1 回答
205 浏览

riscv - 协处理器累加器示例的 32 位海拉缓存访问

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

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

谢谢和问候, Sanket