Flipped()在Chisel3中做了什么?

时间:2018-01-19 14:16:06

标签: chisel

我在发电机-bootcamp中看到了3.2节中的代码:

val io = IO(new Bundle {
  val in = Flipped(Decoupled(UInt(8.W)))
  val out = Decoupled(UInt(8.W))
})

是否有人知道" Flipped"的功能? 我在chisel3 doc中搜索过它,但它没有这个信息。

https://chisel.eecs.berkeley.edu/api/#Chisel.package $$翻转$

提前致谢

1 个答案:

答案 0 :(得分:4)

解耦默认为输出,即它的参数,在这种情况下,UInt(8.W)将数据带入模块。解耦将准备好的有效握手信号添加到inFlipped()改变了它的参数的所有字段的方向。所以out适合于从模块中传递信息。 这里的代码等同于

val io = IO(new Bundle {
  val in = new Bundle {
    val valid = Input(Bool())
    val ready = Output(Bool())
    val bits  = Input(UInt(8.W))
  }
  val out = new Bundle {
    val valid = Output(Bool())
    val ready = Input(Bool())
    val bits  = Output(UInt(8.W))
  }
}

我会看到有些东西被添加到chisel3 wiki中。