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

scala - 如何在 Chisel 代码中生成随机 Scala Int?

我正在尝试在RocketChip core (in-order)中实现方式预测技术。为此,我需要分别访问每种方式。所以这就是标签的SRAM在修改后的样子(每种方式单独的SRAM)

我想像访问它一样

其中repl_way是 LFSR 生成的凿子随机 UInt。但是Seq元素只能通过 Scala Int 索引访问,这会导致编译错误。然后我尝试像这样访问它

但是断言出现了——

我正在尝试修改ICache.scala文件。关于如何正确执行此操作的任何想法?谢谢!

0 投票
1 回答
203 浏览

chisel - 这个 Chisel 异常是什么意思: 引起:chisel3.package$RebindingException: Attempted reassignment of binding to Reset

chisel3.package$RebindingException: Attempted reassignment of binding to Reset(IO in unelaborated TLDebugModule)尝试将模块 (TLDebugModule) 从常规更改ModuleRawModule. 我不确定这条消息在说什么,你能帮助理解它在说什么,这样我就可以找出我做错了什么?

这是我的 RTL 的差异:

0 投票
0 回答
30 浏览

chisel - 创建新的 AXI4 从端口时如何限制从端口的可见性?

我想使用CanHaveSlaveAXI4Port和创建一个 AXI4Slave 端口CanHaveSlaveAXI4PortModuleImp。我成功地创造了这些。但现在我想限制端口,使其只能访问定义的内存区域。我知道当我使用visibility参数 in创建一个 TileLink 从端口时我可以做到这一点TLClientParameters。但我在AXI4MasterPortParameters. 我还查看了从参数评估参数的位置,并且在AXI4ToTLNode那里没有定义关系。那么有什么方法可以限制 AXI4 从端口仅访问定义的内存区域?或将其添加到.TLClientPortParametersAXI4MasterPortParametersvisibilitydFnAXI4ToTLNode

0 投票
0 回答
44 浏览

chisel - 使用继承向模块/外设添加端口

我有一个外围设备,其总体布局如下。我提到的Block不是我设计的,所以我想继承模块并做一些内部信号作为外设的IO端口。

需要转换为端口的 Wire 位于使用实例化的模块中LazyModuleImp,并替换Some Wire needs to be converted as a port pin了以下块中的注释。

在不修改实际设计的情况下,有哪些方法可以在设计中添加更多端口引脚?

0 投票
1 回答
171 浏览

scala - 来自 Chisel(火箭芯片)的 sbt.TrapExitSecurityException 错误消息

我在火箭芯片 Chisel 阐述中得到了这个迷人的例外(没有额外的回溯,就是这样)。

这是来自 PR https://github.com/chipsalliance/rocket-chip/pull/2310。我已经设法以一种我以前从未见过的方式,用如此少的信息完全地用软管连接发电机。有谁知道这种错误是什么意思?

0 投票
1 回答
365 浏览

riscv - 使用 jtagRocketConfig 运行 OpenOCD 失败

这是我尝试连接软件 RTL 模拟和 OpenOCD 时得到的结果:

我在8.2.2.1 应用了说明。创建 DTM+JTAG 配置

以下是 OpenOCD 配置文件的内容:

这是我用来运行模拟的命令:

0 投票
1 回答
98 浏览

chisel - 如何使单个 Rocket 磁贴与系统的其余部分异步

我有一个多核火箭芯片系统。但是,我希望这些火箭瓦片中的一个与其他瓦片异步。

我们正在尝试通过以下方式做到这一点:

所以这就是 harthartId = 2应该是异步的,其余的应该是同步的。

以上,当添加到我们的配置中时,似乎没有做任何事情。

但是,如果我使用WithAsynchronousRocketTilesfromsrc/main/scala/subsystem/Config.scala那么我会将所有图块转换为异步。

那么,我将如何只做一个瓷砖?

根据杰克的建议更新:

直接尝试该代码给出了:

这是令人惊讶的。所以我想我可能需要做这up()件事并尝试了这个:

但是,这会导致 elab 错误:

所以仍然坚持如何RocketCrossingParams在每个瓷砖的基础上修改这个原件并返回它。

0 投票
1 回答
582 浏览

riscv - 运行 RISC-V Rocket 芯片仿真器失败

我在这里按照自述文件进行设置:https ://github.com/chipsalliance/rocket-chip 。当我make -j6 run在我的$ROCKETCHIP/emulator目录中运行时,我收到以下错误消息:

我打开了其中一个 *.out 文件,它输出:

我更新了火箭工具并重建了它,但仍然遇到同样的错误。我可以跳到在vsim目录中生成可合成的 Verilog。

0 投票
0 回答
37 浏览

rocket-chip - RISCV DCache.scala 状态机和工作流程

嗨,任何人都可以向我解释 riscv 处理器 L1 数据缓存(DCache.scala)状态机和工作流程。我对 scala 和 riscV 很陌生。提前致谢

0 投票
0 回答
112 浏览

debugging - 调试 Rocke-chip 凿子代码的最佳方法是什么?

我的问题是关于如何真正理解和修改火箭芯片代码。阅读文档,在我看来,运行带有+verbose启用标志的模拟器prinf是推荐的方式。我不确定它的有效性,因为生成模拟器的时间太长(在我的 PC 中大约 20 分钟)。还有另一种方法吗?

PS:我尝试在 Intellij IDE 中导入并运行项目以使用内部调试器,但我失败了。

PS2:我的电脑设置:Intel® Core™ i5-8250U CPU @ 1.60GHz × 8 8GB RAM Ubuntu 18.04.4 LTS