Я смотрю на RoCC в чипе Rocket. Я создаю экземпляр RoCC с tlNode следующим образом:
MyExample(opcodes: OpcodeSet, val n: Int = 2, val m: Int = 8, val pix: Int = 16)(implicit p: Parameters) extends LazyRoCC(opcodes) {
override lazy val module = new MyExampleModuleImp(this)
override val tlNode = TLClientNode(Seq(TLClientPortParameters(Seq(TLClientParameters("MyRoCC", IdRange(0,32))))))
}
В MyExample
tlNode
- это TLClient с диапазоном идентификаторов от 0 до 32, поэтому я надеюсь, что для повышения пропускной способности по шине может одновременно выполняться несколько транзакций в полете.
Однако в симуляции я обнаружил, что пропускная способность шины ограничена некоторыми узлами верхнего уровня, так как a_ready всегда низок.
Полагаю, это ограничено некоторыми настройками перемычек или буфера очереди, но я не знаю, где.