假设有一个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
}
黑盒的声明A
:
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
你能告诉我是否有更方便的方法吗?