1

我想使用 Mux 在这里选择捆绑输入代码 class ComIO extends Bunlde { val in = Input(UInt(32.W) val in = Input(UInt(32.W) }

class EntIO extends Bundle {
  val com = new ComIO
}
class Ent extends Module {
  val io = IO(new EntIO)
  ...
}
class DemoIO extends Bundle {
  val com1 = new ComIO
  val com2 = new ComIO
  val en = Input(Bool())
}

class Demo extends Module {
  val io = IO(new DemoIO)
  val ent = Module(new Ent)

  ent.io <> Mux(io.en,io.com1,io.com2)
}

enter code here

错误正在流动

在此处输入图像描述

4

1 回答 1

0

多路复用器是单向的,你不能将它们用于双向的东西。尝试使用when

class Demo extends Module {
  val io = IO(new DemoIO)
  val ent = Module(new Ent)

  when (io.en) {
    ent.io <> io.com1
  } .otherwise {
    ent.io <> io.com2
  }
}
于 2022-03-02T18:49:47.113 回答