问题标签 [chisel]
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 verilog 后端生成的无用寄存器?
当我合成由 Chisel 生成的 verilog 模块时,我收到了这种类型的警告(很多!):
当我生成verilog代码时,是否可以选择删除这种类型的“无用”信号?
我在 scala 代码中使用此选项生成 verilog:
这里是我的 built.sbt :
chisel - 您如何在 Chisel 中制作透明闩锁?
这是我最好的猜测,但看起来生成的行为 Verilog 在合成时不会导致简单的透明锁存器:
我很欣赏你对此的想法。
scala - 在zed板上运行dummy_rocc_test
dummy_rocc_test 在使用 custom0 指令的尖峰时运行良好,但是当我把它放在 zed 板上并用它运行时,./fesvr-zynq pk dummy_rocc_test
它给了我一个非法指令的错误。
我理解这是因为 rocc io 不在 Rocket 芯片的默认配置中,但我想知道如何启用 RoCC 接口以便在 zed 板上运行 dummy_roc_test。我尝试将下面列出的值赋予“BuildRoCC”,如片段所示
但是在制作火箭时,我收到以下错误:
configs.scala 代码如下。
给出实际累加器示例的 Rocc.scala 如下
riscv - 无法获得使用 zed 板的默认累加器示例构建的 RoCC 加速器
尝试为zed板构建RoCC加速器默认累加器示例,但出现“非法指令”错误
我在 configs.scala 文件中尝试了以下配置:-
比特流已成功生成,但是当我运行 riscv-isa-sim 中给出的示例生成的 dummy_rocc_test 二进制文件时,我在 zed 板上出现以下错误。
在这里的任何帮助将不胜感激。
PS :- dummy_rocc_test 示例与尖峰配合良好,并已使用 riscv64-unknown-elf-gcc 编译
riscv - 火箭处理器的顶级模块在哪里?
我做了一个make(制作火箭和制作项目),我在制作项目时遇到了错误,因为我还没有目标板。因此,viva do 的项目文件并未完全生成。我需要手动添加文件。
火箭处理器的顶级模块(标准配置)在哪里?
scala - 堆栈内存实现在火箭芯片凿子中无法正常工作
我一直在尝试修改火箭核心的 rocc 接口,目前我已经修改了 rocc 接口以用作暂存器,我们可以使用 custom0 指令加载和存储数据。当我尝试将数据推送和弹出到我用凿子创建并在我的暂存器中实例化的堆栈内存中时,我遇到了一个问题。我使用具有不同函数字段值的相同 custom0 指令来推送和弹出堆栈。
chisel 中的代码如下所示,用于暂存器和我的堆栈
我在前端服务器中执行的 C 代码如下。
如您所见,我正在尝试从 1-6 推送一系列数字,但是当我在 zed 板上运行此代码时,这就是我得到的输出。
理想情况下它应该弹出 6,5,4,3,2,1
chisel - 如何做一个模块向量?
我想实例化一个元素的一维数组,元素扩展模块。我该怎么做?如果我说我最好的猜测,那就是:
我收到以下错误消息:
提前感谢您提供的任何帮助。
java - Chisel 的推荐 Java/Scala 设置
最近,我一直在自上而下地学习 Chisel,之前没有接触过 Scala,只是略过接触过 Java。当我尝试越来越大的硬件结构时,我开始从 Java 生成神秘错误,我确定这些错误与 Java 认为它拥有的资源有关。我通过在不同机器上运行相同的 Chisel 代码并提出成功或一系列 Java 错误来确定这一点,从神秘的“空迭代器上的下一个”到显式的“超出 GC 开销限制”或 Java 堆栈空间或堆空间错误. 尽管我不确定,但我希望有一些方法可以配置 Java 和/或 Scala/Chisel,以打开我在某些环境中遇到的限制。我'
如果我们能就这个可能常见的新手困难获得一些智慧,那就太好了。我关心哪些 Java/Scala 设置?我怎样才能知道它们是什么?我该如何改变它们?提前感谢您的洞察力。
此外,对我们来说,开始编译可能与资源相关的神秘 Java/Scala 错误的“命中列表”会很棒。“空迭代器的下一个”确实让我抓住了稻草。
chisel - 有意的组合循环
我正在设计一些可重新配置的逻辑,就其性质而言,可以配置为创建一个亚稳态组合电路。Chisel 可以很好地编译我的电路,但在运行开始时阻止了我,因为检测到了组合循环的潜力。
Chisel 将其标记为错误是非常好的和合适的!由于电路的组合特性是有意的,我现在需要关闭错误,以便继续测试电路在一系列有效配置上的行为。我怎样才能做到这一点?
提前感谢您在此问题上提供的帮助。
chisel - Mem 没有 cloneType?
我将一个 Mem 块包装在一个名为“bank”的相当通用的模块中,并在 Vec 中实例化它,如下所示:
val rams = Vec.fill(100){模块(新银行).io}
到目前为止,一切都很好。连接信号时遇到问题。如果我将模块信号的向量直接连接到信号向量,如下所示:
...等等,我没有错误。
但是,如果我以非平凡的模式将它们连接起来,例如连接到交叉开关,我会开始收到一个奇怪的错误,它似乎是指我称之为“bank”的 Mem 包装器:
“参数化 Bundle 类 ascenium.bank$$anon$1 需要 cloneType 方法。”
此错误具体为 Chisel 错误。谁能告诉我这意味着什么以及如何解决它?
如果需要,我可以提供源代码。