Chisel中的<>运算符是什么?

杏仁

Chisel教程利用的似乎是<>运算符,这对我来说是完全不熟悉的。它有什么作用?

另外,它来自哪里?在其他Scala库甚至其他语言中,此运算符是否有常规含义?

这是Chisel Generator Bootcamp练习第3.2节中的示例用法:

class MyQueue extends Module {
    // Example circuit using a Queue
    val io = IO(new Bundle {
        val in = Flipped(Decoupled(UInt(8.W)))
        val out = Decoupled(UInt(8.W))
    })
    val queue = Queue(io.in, 2)  // 2-element queue
    io.out <> queue
}
杏仁

<>用于批量连接两个模块之间所有相同名称的端口。所以在上面的例子中

io.out <> queue

是一种更简洁的写作方式

io.out.valid := queue.valid
io.out.bits := queue.bits
queue.ready := io.out.ready

因为它们都是由缠Decoupled接口,它定义readyvalidbits端口(注意的是,ready连接在相反的方向流动:散装连接手柄此正确地)。

在更彻底地阅读了Chisel Wiki之后,我找到了答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章