我正在研究Rocket芯片中的RoCC。我用这样的tlNode实例化RoCC:
echo "console.log(process.stdin.isTTY)" | node
在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
是ID范围为0-32的TLClient,因此,我希望总线上可以同时进行几个正在进行的事务,以提高吞吐量。
但是,我在仿真中发现,由于a_ready始终很低,因此总线带宽受到某些上层节点的限制。
我想这受到一些交叉开关设置或队列缓冲区设置的限制,但是我不知道在哪里。