可读开漏IO(ReadableOpenDrain)
ReadableOpenDrain线束定义如下:
case class ReadableOpenDrain[T<: Data](dataType : HardType[T]) extends Bundle with IMasterSlave {
val write,read : T = dataType()
override def asMaster(): Unit = {
out(write)
in(read)
}
}
然后,作为主端,您可以使用 read
信号读取外部值,并使用 write
设置您想要在输出上驱动的值。
这是一个用法示例:
val io = new Bundle {
val dataBus = master(ReadableOpenDrain(Bits(32 bits)))
}
io.dataBus.write := 0x12345678
when(io.dataBus.read === 42) {
}