Xilinx の IP として、 AXI Crossbar がある。
これをCPUのバスインターコネクトとして利用したいのだが、どうやって使ったらいいのかを調査した。 基本的にマスター数とスレーブ数を指定すればいいのだが、一番引掛ったのはIDの指定方法だった。 CrossbarのIPには以下のように書いてある。
ID values among all the SI slots are made unique before propagating to any MI slot. The AXI Crossbar core prefixes a constant unique “master ID” value to the AWID and ARID signals sampled at each SI slot (if any).
AXIのド素人からすれば、マスターポートが違うんだから内部で識別して一意に認識できるだろ!と思うんだけど、何かそこには事情があるんかな。
とにかく、今マスターを3つ繋げているため、IDを2ビット増やして固有の値になるようにしたら何となく動くようになった気がする。もうちょっと検証しようー。