FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

LiteXのBIOSソフトウェアを独自に構築する方法調査 (6. バスをAXIに変える)

前回の続き、自作CPUがFPGA上で動作したので一安心。 とりあえず次の試行として、LiteXのSoC周りがWishboneをベースに作ってあるので、AXIに変えてみる。 AXIに変えるためには、とりあえずコマンドラインで以下のようにオプションを変えればいいらしい。

python3 -m litex_boards.targets.digilent_nexys_video --cpu-type=mycpu --build --output-dir mycpu_fpga_axi --sys-clk-freq 30e6 \
     --bus-standard axi --bus-data-width 64

とりあえず、SRAMのビット幅がデフォルトの32から倍の64ビットになっている。

reg           main_basesoc_mmio_a2w_b_valid = 1'd0;
reg   [127:0] main_basesoc_mmio_a2w_r_payload_data = 128'd0;
reg     [1:0] main_basesoc_mmio_a2w_r_payload_resp = 2'd0;
reg           main_basesoc_mmio_a2w_r_ready = 1'd0;
reg           main_basesoc_mmio_a2w_r_valid = 1'd0;
reg   [127:0] main_basesoc_mmio_a2w_w_payload_data = 128'd0;
reg    [15:0] main_basesoc_mmio_a2w_w_payload_strb = 16'd0;
reg           main_basesoc_mmio_a2w_w_ready = 1'd0;
reg           main_basesoc_mmio_a2w_w_valid = 1'd0;
reg           main_basesoc_mmio_axi_ar_first = 1'd0;
wire          main_basesoc_mmio_axi_ar_last;
reg           main_basesoc_mmio_axi_ar_param_dest = 1'd0;

ただし、変換のパスについては、アウトスタンディング数があまり大きくないのか?性能の面では少し疑問が残るね。 もうちょっと内部を詳細に見ていく必要がありそう。