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
接口,它定义了ready
, valid
and bits
端口(请注意ready
连接流向相反的方向:批量连接可以正确处理此问题)。
I found 答案 https://github.com/freechipsproject/chisel3/wiki/Interfaces-Bulk-Connections#bulk-connections在更彻底地阅读 Chisel wiki 之后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)