AXIバスの拡張方法
この文書では、Cosmo-ZのAXIバスを拡張し、AXIバスのモジュールを接続する手順を示します。ユーザが作成したモジュールや、MATLAB等で作成した拡張モジュールを接続することができます。
AXIポートの増設
ZYNQ7000ではユーザが開発したレジスタや拡張モジュールを操作するには、AXI GPポートを使います。AXI GPポートはCPU側がマスタとなり、FPGA内のロジックがスレーブとなるポートです。
AXI GPポートにはGP0とGP1がありますが、Cosmo-ZではGP1のみ使用しています。GP0を有効にするにはZYNQの設定を変えてSDKでエクスポートしてFSBLを作り直さなければならないので、大変面倒です。
そこで、本文書では既に使用されているGP1を拡張することでユーザレジスタを増設する方法を示します。
Block Designを開く
Cosmo-ZのデザインをVivadoで開き、Block Designを開きます。
CPU階層を開きます。
Core階層を開きます。
AXI Interconnectのカスタマイズ
axi_interconnect_1をダブルクリックしてプロパティを開きます。
Number of Master Interfacesが1なので、2に増やし、OKを押します。
M00_AXIの下にM01_AXIが作られ、ポートが増えたことを確認します。
クロックとリセットの配線
M00_ACLKとM00_ARESETNからM01_ACLKとM01_ARESETNに接続します。
この場合、AXI_M01ポートは100MHzで動作するようになりますが、異なるクロックで接続しても、Interconnect内でうまく速度の変換が行われます。