【发布时间】:2017-07-05 10:18:01
【问题描述】:
假设有一个B 模块,其中A 是一个实例。
class B extends Module {
…
val u_A = Module(new A)
// the way to hook u_A’s port is the issue
}
A模块的描述:
class A extends Module {
val io = IO(new Bundle{
val a = Output(Bool())
})
io.a := true.B
}
ABlackBox的声明:
class A extends BlackBox {
val io = IO(new Bundle{
val io_a = Output(Bool()) // HAVE to define port name with io_* prefix otherwise ...
})
}
您必须在 BlackBox 中使用 io_ 前缀定义端口名称,否则 B RTL 中生成的端口列表将与 A 模块不匹配。
对于Module实例化,挂接u_A端口的方式是
u_A.io.a
对于BlackBox实例化,挂接u_A端口的方式是
u_A.io.io_a
你能告诉我是否有更方便的方法吗?
【问题讨论】: