问题标签 [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 回答
230 浏览

rocket-chip - 如何解决问题“Makefrag:68:目标'simv-freechips.rocketchip.system-DefaultConfig'的配方失败”

我正在尝试构建rocketchip和vsim,与此处描述的相同

但是我在执行以下操作时卡在了 vsim 运行:

0 投票
0 回答
81 浏览

riscv - 如何从 TestHarness 访问子模块寄存器?

我想从测试台 TestHarness.scala 更改存储在火箭核心寄存器中的值。如何访问注册表?

TestHarness.scala,我认为dut是用来实例化ExampleRocketSystem模块的:

从生成的 Verilog 中,我看到层次结构是:

所以我尝试使用dut.tile.core.target_register修改寄存器,但出现错误:

value tile 不是 freechips.rocketchip.system.ExampleRocketSystemModuleImp[freechips.rocketchip.system.ExampleRocketSystem] 的成员

0 投票
0 回答
95 浏览

riscv - 如何为 Rocket-chip 上的裸机基准测试启用虚拟内存?

我们正在火箭芯片中测试虚拟内存硬件,并希望在裸机上运行测试应用程序。

在 Rocket Chip 测试工具中,有许多运行裸机的玩具基准,但它们不启用虚拟内存。有一些组装测试可以测试虚拟内存。他们使用 vm.c 来启用。

我们如何在 C 代码测试(基准测试)中类似地启用虚拟内存?

0 投票
2 回答
243 浏览

chisel - 将寄存器中的值与 int 进行比较

我正在尝试获取 reg 的值并将其与内部的数字和 if 语句进行比较

但我得到这个错误

0 投票
1 回答
176 浏览

chisel - chisel 和 When 块中的声明和变量范围

所以我在代码中的一行周围添加了块,但问题是当块更改范围时添加这个,使得在其中声明的变量在程序中的其他部分看不到

问题是在这样的情况下

他们也是一种在 when 块中添加这一行而不改变范围的方法

关键是在 when 块之外声明它,然后分配值需要我知道它的类型以及很多变量,这可能会变得很难

我想要实现的是这样的

不改变范围

0 投票
1 回答
137 浏览

chisel - makeSink 方法为外围设备制作 IO 的目的是什么

我正在关注一些向火箭芯片添加外围设备的示例。我使用了五个块作为参考。

下面是他们的 I2C 示例中的一个示例(我希望可以在这里发布)

我了解 makeIO 步骤,该步骤是打包并在其上应用 IO,但不了解 makeSink 步骤。他们为什么要做这一步,makeIO还不够吗?

0 投票
2 回答
456 浏览

riscv - 如何为没有 FPU 的架构生成 RISC V 工具链?

我正在研究 Rocket Chip,想模拟没有 FPU 的处理器并在其上运行程序。但是,我找不到任何关于我应该添加哪些开关来以这种方式配置 RISC-V 工具的完整信息。有人可以帮我吗?

从不同页面和论坛上的一些部分信息中,我尝试了许多替代方案,包括添加 options ,--with-isa=RV64IMAC但大多数时候该项目产生“未知选项”,所以我想知道我是否使用了正确的开关,或者如果我没有错过什么。--with-arch=RV64IMAC--with-abi=64lp

在我尝试过的开关中,最成功的是只添加--with-arch=RV64IMAC到 riscv-gnu-toolchain:

这是我的 build.sh(在 riscv-tools 目录中):

在我添加 switch 之前--with-arch,它运行得非常好,我可以模拟在尖峰以及模拟器和 VCS 上运行我的程序(使用代理内核)。

现在的问题是:

  1. 在这种情况下,项目 riscv-tests 没有正确构建,通过说它找不到“fma”函数来终止

  2. 仍然使用代理内核,我像以前一样编译我的程序,添加选项-msoft-float-march=RV64IMAC. 可执行文件在尖峰时可以毫无问题地运行,但在模拟器和 VCS 上它们永远不会结束......

我认为这是由于使用 RV64IMAC 构建的,因为这是我唯一改变的东西,但也许我错了。我将不胜感激任何建议。

0 投票
1 回答
485 浏览

chisel - firrtl.Driver 已被弃用 - 但我们应该改用什么?

我今天更新了rocket-chip,注意到FIRRTL现在这样说:

好吧,很公平,我认为我们必须更新我们传递给 FIRRTL 调用的内容:

然而天真地切换firrtl.Driverfirrtl.stage.FirrtlStage没有用:

我们应该怎么做才能避免这种弃用警告?

0 投票
2 回答
494 浏览

riscv - 我怎样才能找到一些关于火箭芯片的手册?

我正在学习火箭芯片的代码。但是由于关系复杂,我发现它的代码很难阅读。所以我需要一些 maunal 来帮助我。不幸的是,似乎很少有关于它的手册。那么谁能给我提供有助于阅读火箭芯片代码的手册?

0 投票
1 回答
117 浏览

riscv - 用于编译 Berkeley bootloader (bbl) 的工具链是什么?

我必须在 FPGA 上的 riscv-linux(引导)上运行 riscv-tests 和 SPEC2006。我想知道用于此流程的编译工具链是什么。

我知道 riscv-linux 必须用 riscv64-linux-gcc 编译。但是,我不清楚 riscv 测试。riscv-elf-gcc 可以用来编译 riscv-tests 并在 riscv-linux 上运行吗?我阅读了 stackoverflow 中提到的一些关于 SPEC2006 和 bbl 的帖子(均使用 riscv-linux-gcc 编译)。我也想运行 riscv-tests。它们也应该用 (riscv-linux-gcc) 编译吗?

谢谢!