问题标签 [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.
riscv - 搜索 Riscv 文档
我正在寻找有关与 L1 网络通信的 Risc V Rocket Tile “Nasti”接口协议(Acquire、Grant、...)的文档。
谢谢。
scala - Chisel HDL 中的定点算术
Chisel HDL 中是否有任何定点库可用于执行基本的算术运算,例如加、减、乘和除?
chisel - java.utilNoSuchElementException:Vec 的 None.get
也许我正在做一些错误的事情。作为状态机行为的一部分,我有许多缓冲区需要锁定和解锁。我认为使用 Reg 的 Vec 来存储时钟之间的状态并使用 var Vec 的电线来累积状态是完美的,因为状态机会锁定和解锁事物。这是类似于我编写的以相同方式中断的代码的代码:
请注意,虽然这段代码只有一个简单的循环,但我需要在每个时钟周期的状态机执行期间的不同点获取我的组合锁定状态,这就是为什么这种简化将这些组合状态作为最终输出而不是寄存器的原因.
以下是错误消息的全文:
chisel - Chisel.TestApplicationException:测试应用程序退出 - 退出代码 139
我得到了上面的凿子崩溃,我不知道这意味着什么。有任何想法吗?
情况是我试图将我设计的内存系统的大小从 512KB 增加到 1MB。512KB 版本测试良好。1MB 版本中的银行数量是其两倍,我得到了上述奇怪的错误。2MB 版本测试编译 C++ 模型,然后无限期挂起。
scala - CHISEL 中的 ListLookUp
我是 Scala 的新手,我一直在尝试了解 RISC-V 架构。我遇到了这段代码,我已经盯着它看了好几个小时,无法理解。
- ListLookUp 到底在这里做什么?
- 'csignals' 的值是布尔值还是其他?
riscv - 部分写使能寄存器位
我正在尝试构建一个 64 位寄存器,其中可以为每个触发器分别配置写使能信号。使用RegEnable对象,
var test = RegEnable(UInt(5),Bool(true))
test(UInt(0),Bool(false))
寄存器可以作为一个整体启用/禁用,但是可以控制每个触发器吗?
scala - 不能在类参数化中使用 Bool 来反转复位极性
我刚开始使用 Chisel 并编写了一个简单的计数器来闪烁 LED。FPGA板(Lattice iCEstick)有一个反相的复位信号,而不是改变生成的verilog中的极性,我想在Chisel中设置它。
我发现 Module 有一个_reset
Chisel.Bool 类型的参数,可以将其设置为 false,从而反转复位信号。这是其他人使用它的示例。但是,我遇到了一个似乎无法修复的错误。首先,代码:
我得到的错误是:
如果我不提供Bool( false )
参数,那么我不会出错,但我的复位极性当然仍然是正的。
我已经尝试过rstPol: Bool = Bool( false )
,Module( _reset = Bool( false ) )
但在第 3 行遇到了同样的错误。似乎它试图将 Bool 分配给没有宽度的东西,但我不知道这怎么可能。
我检查了我使用的是哪个版本的 Chisel,它是2.2.33
. 这是我的 build.sbt 文件,以防它很重要:
hdl - 用于 CPLD 的凿子 HDL
是否可以将Chisel HDL与 CPLD 一起使用?如果是的话,你试过了吗,可以分享一下经验吗?
scala - 在 CHISEL 中创建查找表
我正在尝试在 Chisel 中创建一个宽度为 72 位和 1024 个条目的查找表。这 1024 个条目分别存储在一个文件中,我将其读入我的代码中。到目前为止我写的代码是:
上面的代码抛出了许多形式的错误:
但是,当我将width
of更改uInt
为任意数字<= 64
时,不会出现此类问题并且代码可以正常工作。是否有另一种方法可以在 Chisel 中创建我上面指定的大小的 LUT?或者我在上面的代码中做错了什么?请帮忙。
scala - 凿子:val 与赋值后的表达式不同
我正在用 Chisel 编写一个中断控制器。
以下函数确定最高优先级的挂起中断。每个中断源由 a 表示,IRQStatusReg
组合的寄存器文件是 Chisel Vec
。为了确定具有最高优先级的中断,使用递归分治策略。在硬件中,这应该被合成为多路复用器树。返回的元组包含寄存器及其 ID。
但是,当使用某些寄存器配置和 4 个中断源时,此函数无法确定正确的结果。原因在于对 select_left 的赋值:右侧表达式的值与赋值后 select_left 的值不同(见第 3/4 行):
这怎么可能?赋值后 val 如何具有与表达式不同的值?
作为参考,这里是 IRQStatusReg Vec 的定义: