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内でうまく速度の変換が行われます。