问题标签 [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.
scala - 如何在 Chisel 代码中生成随机 Scala Int?
我正在尝试在RocketChip core (in-order)中实现方式预测技术。为此,我需要分别访问每种方式。所以这就是标签的SRAM在修改后的样子(每种方式单独的SRAM)
我想像访问它一样
其中repl_way是 LFSR 生成的凿子随机 UInt。但是Seq元素只能通过 Scala Int 索引访问,这会导致编译错误。然后我尝试像这样访问它
但是断言出现了——
我正在尝试修改ICache.scala文件。关于如何正确执行此操作的任何想法?谢谢!
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) 从常规更改Module
为 RawModule
. 我不确定这条消息在说什么,你能帮助理解它在说什么,这样我就可以找出我做错了什么?
这是我的 RTL 的差异:
chisel - 创建新的 AXI4 从端口时如何限制从端口的可见性?
我想使用CanHaveSlaveAXI4Port
和创建一个 AXI4Slave 端口CanHaveSlaveAXI4PortModuleImp
。我成功地创造了这些。但现在我想限制端口,使其只能访问定义的内存区域。我知道当我使用visibility
参数 in创建一个 TileLink 从端口时我可以做到这一点TLClientParameters
。但我在AXI4MasterPortParameters
. 我还查看了从参数评估参数的位置,并且在AXI4ToTLNode
那里没有定义关系。那么有什么方法可以限制 AXI4 从端口仅访问定义的内存区域?或将其添加到.TLClientPortParameters
AXI4MasterPortParameters
visibility
dFn
AXI4ToTLNode
chisel - 使用继承向模块/外设添加端口
我有一个外围设备,其总体布局如下。我提到的Block不是我设计的,所以我想继承模块并做一些内部信号作为外设的IO端口。
需要转换为端口的 Wire 位于使用实例化的模块中LazyModuleImp
,并替换Some Wire needs to be converted as a port pin
了以下块中的注释。
在不修改实际设计的情况下,有哪些方法可以在设计中添加更多端口引脚?
scala - 来自 Chisel(火箭芯片)的 sbt.TrapExitSecurityException 错误消息
我在火箭芯片 Chisel 阐述中得到了这个迷人的例外(没有额外的回溯,就是这样)。
这是来自 PR https://github.com/chipsalliance/rocket-chip/pull/2310。我已经设法以一种我以前从未见过的方式,用如此少的信息完全地用软管连接发电机。有谁知道这种错误是什么意思?
riscv - 使用 jtagRocketConfig 运行 OpenOCD 失败
这是我尝试连接软件 RTL 模拟和 OpenOCD 时得到的结果:
我在8.2.2.1 应用了说明。创建 DTM+JTAG 配置。
以下是 OpenOCD 配置文件的内容:
这是我用来运行模拟的命令:
chisel - 如何使单个 Rocket 磁贴与系统的其余部分异步
我有一个多核火箭芯片系统。但是,我希望这些火箭瓦片中的一个与其他瓦片异步。
我们正在尝试通过以下方式做到这一点:
所以这就是 harthartId = 2
应该是异步的,其余的应该是同步的。
以上,当添加到我们的配置中时,似乎没有做任何事情。
但是,如果我使用WithAsynchronousRocketTiles
fromsrc/main/scala/subsystem/Config.scala
那么我会将所有图块转换为异步。
那么,我将如何只做一个瓷砖?
根据杰克的建议更新:
直接尝试该代码给出了:
这是令人惊讶的。所以我想我可能需要做这up()
件事并尝试了这个:
但是,这会导致 elab 错误:
所以仍然坚持如何RocketCrossingParams
在每个瓷砖的基础上修改这个原件并返回它。
riscv - 运行 RISC-V Rocket 芯片仿真器失败
我在这里按照自述文件进行设置:https ://github.com/chipsalliance/rocket-chip 。当我make -j6 run
在我的$ROCKETCHIP/emulator
目录中运行时,我收到以下错误消息:
我打开了其中一个 *.out 文件,它输出:
我更新了火箭工具并重建了它,但仍然遇到同样的错误。我可以跳到在vsim
目录中生成可合成的 Verilog。
rocket-chip - RISCV DCache.scala 状态机和工作流程
嗨,任何人都可以向我解释 riscv 处理器 L1 数据缓存(DCache.scala)状态机和工作流程。我对 scala 和 riscV 很陌生。提前致谢
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