在 Chisel 中表达式 ## 是什么意思?

What does the expression ## mean in Chisel?

我一直在网上寻找表达式 ## 在 chisel 中的含义,但无法在任何地方找到它。

例如在这段代码中:

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 语句中使用 ## 表达式的行是做什么的? 谢谢!

由于您不能真正 google 用于 # 等符号字符,因此您需要以其他方式查找 ## 方法的文档。最简单的方法是将鼠标悬停在 IDE 中的 ## 上,让它显示 API 文档。如果这是不可能的,因为你的 IDE 没有这样做或者你没有下载 API 文档,你可以找到调用该方法的 class 的文档并且在那里看。

在这种情况下,您在 din(1) 上呼叫 ##。由于 dinBits 的向量,因此 din(1)Bits 对象。所以我们可以在 Chisel API 文档中查找 Bits class 并在 ## 上找到以下内容:

def ##(other: Bits): UInt

Returns this wire concatenated with other, where this wire forms the most significant part and other forms the least significant part.

The width of the output is sum of the inputs.