问题标签 [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.
arrays - Chisel 中的位向量比较
我有一个 4 位的向量,我想检查来自向量的向量中的单个位是否为 1。所以,基本上我想要有 4 次迭代的循环,第一次迭代将检查第一个位是否来自向量为 1,然后在下一次迭代中检查第二位是否为 1,依此类推。
我尝试过使用如下所示的 switch 语句,但它并没有像我想要的那样工作。
先感谢您。
scala - 是否有一个如何从 Chisel3 模块生成 verilog 的简单示例?
我正在寻找一个简单的方法来在 Verilog 中转换一个简单的 Chisel3 模块。
我采用凿子官方网页上给出的 Gcd 源代码。
我找不到如何编写 build.sbt 和类实例化以在 Verilog 中进行转换。
scala - Chisel3 中的运算符 -&, -%, +&, +% 中的 '&' 和 '%' 是什么意思?
我正在尝试使用官方网页中给出的 GCD 示例来学习 Chisel3 。此示例使用名为 -% 的运算符,这是什么意思?Wiki operator page上没有解释。备忘单将“减法”作为正常的减法符号“-”。
那么简单减法 '-' 和百分比减法 '-%' 有什么区别呢?
[编辑]
好的,我在chisel3 代码下找到了这些函数的定义:
使用 & 运算符,减法或加法的结果将是最大操作数的大小加上一位。但是使用 % 运算符,操作的结果将是最大操作数的大小......就像普通的 + 或 - 一样。那么 - 和 -% 和 + an +% 之间有什么区别?
scala - 凿子3。功能模块 Mux4
我正在按照Github 上的文档学习 Chisel
到目前为止,一切都完美无缺。但我被困在第 13 章, “功能模块创建”
我无法让代码工作。我在 chisel-template-project 的副本中创建了所有 .scala 类。这是我为创建具有可变位宽的 Mux4 而编写/复制的内容:
/chisel-template/src/main/scala/ Mux4.scala
我写的Tester scala类:
/chisel-template/src/test/scala/ Mux4Test.scala
输出的重要部分
Mux4 类(Circuit)返回 0 作为输出,而它应该是 5,因为选择过程如下:
00 -> io.out = in3 = 15
01 -> io.out = in2 = 11
10 -> io.out = in1 = 7
11 -> io.out = in0 = 5
在 Mux4Test.scala 类中,我写了val sel = 3。这个的位表示是11,因此我希望in0 = 5。
我哪里错了?
eclipse - Sodor 处理器系列。日食设置
我正在尝试从 Github设置Sodor 处理器集合(RISC-V)。我的主要目标是在我自己的凿子项目中设置 1-Stage 处理器,以便对其进行修改并可能编写一个 scala 测试平台。
目前我正在做以下事情:
将凿子模板项目克隆到我的本地机器
在根文件夹中执行“sbt eclipse”(使用此工具)。为了能够在 Eclipse 中导入它
在 Eclipse Luna 中导入项目模板
从我的 project-templates src/ 文件夹中的 Sodor Projects src/ 文件夹中复制common/和rv32_1stage/文件夹。
然后看起来像这样:
但是,Eclipse 显示 72 个错误:
如果我直接将克隆的 Sodor Processor Collection 项目从 github 导入到 eclipse 中,它不会显示任何错误。但据我了解,我无法在那里编写 scala 测试平台。
我非常想知道是否可以创建一个 src/main/scala/test/ 文件夹并为 Sodor 处理器集合编写一个scala 测试平台,就像在凿子教程中总是这样做的一样(例如这里)
我最好的猜测是,我必须正确配置 build.sbt 文件,但我不知道如何。(如果我对这个设置完全错误或错过了什么,请告诉我。)
简而言之
- Eclipse 中的 Sodor 处理器集合?
- Sodor 处理器集合的 Scala 测试平台?
- 如果以上是肯定的,如何解决错误?
编辑
经过一些研究,我认为主要问题在于凿子版本的兼容性。我找到了 Chisel3 vs. Chisel 2并看到了这个:
通过删除所有不必要的导入 Node._行,我消除了 13 个错误。但是还有59个..
scala - 使用泛型类型关闭数据路径中的逻辑(凿子)
我正在研究一个 Z-Scale RISCV 处理器,我已经在数据路径中实现了新的功能和逻辑。我想知道是否存在一种简单的方法来“关闭”代码的某些部分而不使用一堆 if 循环?我想让 Z 级处理器的常规实现和扩展实现之间的切换变得容易。
我实现的新逻辑并没有取代数据路径的主要组件,而是扩展了功能。
chisel - 关于凿子的语法:Vec & Wire
我正在学习 Chisel3。
我对代码有一些疑问。
我想如果我声明一个向量并且我需要写“Wire”,但是当我看到这些代码时我错了。
它突然打在我脸上,所以我想知道我什么时候使用“Wire”?
提前致谢。
chisel - 如何从凿码生成 FIRRTL?
如何从凿码生成 FIRRTL 文件?我已经根据 github wiki 安装了 sbt、firrtl 和 verilator。并为简单的加法器创建了凿子代码。我想生成 FIRRTL 并将其转换为 Verilog?我的问题是如何从凿子代码中获取 firrtl 文件。谢谢。
源文件:MyQueueTest/src/main/scala/example/MyQueueDriver.scala
makefile - 为 riscv-sodor 生成 verilog
我正在研究 riscv-sodor,我想修改 Makefile 以生成 Verilog。我怎样才能完成这项任务?
问候,
scala - 在 chisel 项目模板中编译 chisel 源文件
我是新来的凿子。目前我正在使用 chisel3 关注 chisel-tutorial wiki。克隆那里链接的凿子项目模板后,我尝试测试并从 GCD.scala 源文件生成 verilog 输出。我收到以下错误。
因此,按照我在邮件列表中找到的解决方案(针对同样的问题),我在 GCD.scala 文件的末尾插入了以下代码块
但我仍然得到同样的错误。(我也添加了 GCDTests 类)