[libre-riscv-dev] morphing 6600 code to use power decoder

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sat Apr 18 12:06:21 BST 2020


https://libre-soc.org/3d_gpu/multi_bus_arbiter.png

i'm trying to design a multi-bus arbiter which routes:

* multiple banks of src1, src2, src3
* to ANY register-file read-port 1, read-port 2, read-port 3.

at the moment we have:

* multiple banks of src1, src2, src3
* read-port 1 has an INDEPENDENT PriorityPicker to manage access from src1
* read-port 2 has an INDEPENDENT PriorityPicker to manage access from src2
* read-port 3 has an INDEPENDENT PriorityPicker to manage access from src3

the actual arbitration can be done as "select" lines, and, once done,
they can be easily used to enable ORing of data onto buses.

am i overthinking this?

is it as simple as just flattening the multiple banks of src1, src2,
src3 into a linear 1D line of requests?  so if there are 6 banks each
with src1,src2,src3 simply flatten that to 18 requests (for access to
the 3 read-ports)?

l.



More information about the libre-riscv-dev mailing list