1

我一直在网上寻找 ## 在凿子中的含义,但在任何地方都找不到。

例如在这个代码片段中:

val ways = Module(new BRAM(log2Up(conf.lines), conf.ways * line_size))
val din = Vec.fill(conf.ways) { Bits(width=line_size) }
if(conf.ways == 2) {
   ways.io.din := din(1) ## din(0)
}

if 语句中使用## 表达式的行是什么?谢谢!

4

1 回答 1

6

由于您无法真正通过 google 搜索诸如 之类的符号字符#,因此您需要以##另一种方式查找该方法的文档。最简单的方法是将鼠标悬停##在 IDE 中并让它显示 API 文档。如果因为您的 IDE 不这样做或者您没有下载 API 文档而无法做到这一点,您可以找到调用该方法的任何类的文档并在那里查找。

在这种情况下,您正在调用##. din(1)因为din是 的向量Bitsdin(1)Bits对象。因此,我们可以Bits在 Chisel API 文档中查找该类并在以下位置找到以下内容##

def ##(other: Bits): UInt

返回与 连接的此连线other,其中此连线构成最重要的部分并other构成最不重要的部分。

输出的宽度是输入的总和。

于 2016-09-28T13:54:52.257 回答