Скажем, есть модуль 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
BlackBox:
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
. для экземпляра модуля способ перехвата порта u_A таков:
u_A.io.a
для экземпляра BlackBox способ перехвата порта u_A таков:
u_A.io.io_a
Не могли бы вы просветить меня о том, есть ли более удобный способ?