FC2カウンター FPGAの部屋 2012年04月08日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

AXI4マスタIPのパラメータ

AXI4マスタIPの作製3(インプリメント)”で、CDCTEST AXI Master をAdd IPしてAXI4マスタIPとしてシステムに入れたが、その際にパラメータはデフォルトとした。ダイアログにどのようなパラメータがあるかを見ていきたい。

なお、AXI4バスの信号とパラメータについては、LogiCORE IP AXIインターコネクト(v1.05.a) DS768 2012年1月18日 を参照した。(以下マニュアルと呼ぶ)なお、マスタ、スレーブで共通の信号はスレーブでは S_ が、マスタでは M_ がパラメータ名から抜けているようだ。

ダイアログで設定できるパラメータを列挙して、説明する。

・XPS Core Config ダイアログ(Userタブ)
cdctest_axi_master_7_120402.png

* Common

- C_M_AXI_TARGET
 マニュアルに書いてない。ターゲットのスレーブのベース・アドレス。デフォルト値は 0x00000000。

- C_M_AXI_BURST_LEN
 マニュアルに書いていない。バースト長。デフォルト値は16。バースト長だとしても、16以上バースト出来ているのでなぞ?

- C_OFFSET_WIDTH
 マニュアルに書いていない。ターゲットのスレーブのアドレスビット幅。デフォルト値は9。0x00007fff 近くまでアクセス出来ているので、なぞ?

- C_M_AXI_PROTOCOL
 マスタデバイスのプロトコル。AXI4とAXI4Lite に設定できる。デフォルト値はAXI4。

・XPS Core Config ダイアログ(Systemタブ)
cdctest_axi_master_8_120402.png

* AXI

- C_M_AXI_ADDR_WIDTH
 アドレスのビット幅、マニュアルによると12~64らしいが、ここでは32に固定されれている。

- C_M_AXI_DATA_WIDTH
 データの幅、32, 64, 128, 256 に設定することが出来る。デフォルト値は32。

- C_M_AXI_SUPPORTS_READ
 マスタIPがReadを行うか?を示す。デフォルトではチェックされている。Wirte のみのスレーブIPの場合はチェックを外す。

- C_M_AXI_SUPPORTS_WRITE
 マスタIPがWriteを行うか?を示す。デフォルトではチェックされている。Read のみのスレーブIPの場合はチェックを外す。

- C_M_AXI_SUPPORTS_THREADS
 マニュアルによると”エンドポイント マスター デバイスで使用され、 マスターのスレッドの有効幅が 0 であ ることを示します。”だそうだ。何のことか不明だ? デフォルト値はチェックなし。

- C_M_AXI_THREAD_ID_WIDTH
 マニュアルによると”各 SI スロットの ID の下位にある可変ビットの数 (N-1:0)。 それぞれの値は <= C_AXI_ID_WIDTH の必要があります。”だそうだ。何のことか不明だ? デフォルト値は1。

- C_M_AXI_SUPPORTS_NARROW_BURST
 データ幅寄りも狭い幅のバーストを生成できるかどうかを決めるそうだ。たぶん32ビット幅で16ビット幅のバーストや8ビット幅のバーストをするということだろうと思う。デフォルト値はチェックなし。

- C_M_AXI_SUPPORTS_USER_SIGNALS
 USER信号 (5チャネルすべて) をAXI インターコネクトコアに伝搬するかどうかを示すそうだ。このチェックを外していてもUSER信号はデフォルト値の1になるようだ。
 チェックをすると下のUSER信号のグレーアウトがとれて、設定ができるようになる。

- C_M_AXI_AWUSER_WIDTH
 AWUSER信号の幅。1 ~ 256。デフォルトは1。

- C_M_AXI_ARUSER_WIDTH
 ARUSER信号の幅。1 ~ 256。デフォルトは1。

- C_M_AXI_WUSER_WIDTH
 WUSER信号の幅。1 ~ 256。デフォルトは1。

- C_M_AXI_RUSER_WIDTH
 RUSER信号の幅。1 ~ 256。デフォルトは1。

- C_M_AXI_BUSER_WIDTH
 BUSER信号の幅。1 ~ 256。デフォルトは1。

・XPS Core Config ダイアログ(Interconnect Settings for BUSIFタブ)
cdctest_axi_master_9_120402.png

* M_AXI

- Unique Master ID (C_INTERCONNECT_M_AXI_BASE_ID)
 マスタ・インターフェースのユニークなマスタID。デフォルト値はAutoで、値は 0b0 だった。

- Is ACLK Asynchronous to Interconnect_ACLK (C_INTERCONNECT_M_AXI_IS_ACLK_ASYNC)
 0の時はインターコネクトとクロック同期、1の時はインターコネクトとクロック非同期。デフォルト値は0でチェックなし

- ACLK Frequency Ratio (C_INTERCONNECT_M_AXI_ACLK_RATIO)
 ACLKの動作周波数がセットされる。上の図での表示は1だが、現在の値は100000000Hz、つまり100MHz。たぶんXPSでクロックをACLKに接続するとその値が反映されるようだ。よって、Add IP時には設定せずに後でクロックをXPS上で接続したほうが良い。

- Arbitration Priority (C_INTERCONNECT_M_AXI_ABR_PRIORITY)
 ここの値を大きくすると優先順位が高くなる。すべてのマスタの Arbitration Priority が0の時には、ラウンドロビンで優先順位が決定される。デフォルト値は0。

- Use register slice on AW channel (C_INTERCONNECT_M_AXI_AW_REGISTER)
 AWチャネルにレジスタを挿入する。レジスタを挿入するとレイテンシが増える代わりに高速動作するようになると思われる。BYPASS, AUTOMATIC, FULLY REGISTERED, LIGHT WEIGHTから選択。デフォルトはBYPASS。

- Use register slice on AR channel (C_INTERCONNECT_M_AXI_AR_REGISTER)
 ARチャネルにレジスタを挿入する。レジスタを挿入するとレイテンシが増える代わりに高速動作するようになると思われる。BYPASS, AUTOMATIC, FULLY REGISTERED, LIGHT WEIGHTから選択。デフォルトはBYPASS。

- Use register slice on W channel (C_INTERCONNECT_M_AXI_W_REGISTER)
 Wチャネルにレジスタを挿入する。レジスタを挿入するとレイテンシが増える代わりに高速動作するようになると思われる。BYPASS, AUTOMATIC, FULLY REGISTERED, LIGHT WEIGHTから選択。デフォルトはBYPASS。

- Use register slice on R channel (C_INTERCONNECT_M_AXI_R_REGISTER)
 Rチャネルにレジスタを挿入する。レジスタを挿入するとレイテンシが増える代わりに高速動作するようになると思われる。BYPASS, AUTOMATIC, FULLY REGISTERED, LIGHT WEIGHTから選択。デフォルトはBYPASS。

- Use register slice on B channel (C_INTERCONNECT_M_AXI_B_REGISTER)
 Bチャネルにレジスタを挿入する。レジスタを挿入するとレイテンシが増える代わりに高速動作するようになると思われる。BYPASS, AUTOMATIC, FULLY REGISTERED, LIGHT WEIGHTから選択。デフォルトはBYPASS。

- Write Data FIFO Depth (C_INTERCONNECT_M_AXI_WRITE_FIFO_DEPTH)
 Write Data FIFOの深度。0(None), 32(SRL), 512(BRAM)から選択。デフォルトは0(None)。

- Write Data FIFO Burst Delay (C_INTERCONNECT_M_AXI_WRITE_FIFO_DELAY)
 マニュアルによると”パケットFIFO 書き込み動作。 バースト全体がSI側の各 SIスロットの書き込みデータFIFOに格納されるまでアービタへの AWVALID 発行を遅延させます (対応するスロットのC_M_AXI_WRITE_FIFO_DEPTH = 0x200 とする必要がある)。”そうだ。チェックを入れる場合は、前のWrite Data FIFO Depthを512(BRAM)にする必要がある。デフォルト値はチェックなし。

- Read Data FIFO Depth (C_INTERCONNECT_M_AXI_READ_FIFO_DEPTH)
 Read Data FIFOの深度。0(None), 32(SRL), 512(BRAM)から選択。デフォルトは0(None)。

- Read Data FIFO Burst Delay (C_INTERCONNECT_M_AXI_READ_FIFO_DELAY)
 マニュアルによると”パケットFIFO読み出し動作。SI側の各SIスロットの読み出しデータFIFOに全バースト長を格納する のに十分な空きが生じるまで、アービタへのARVALID 発行を遅延させます (対応するスロットのC_M_AXI_READ_FIFO_DEPTH = 0x200とする必要がある)。”そうだ。チェックを入れる場合は、前のRead Data FIFO Depthを512(BRAM)にする必要がある。デフォルト値はチェックなし。

- Write Transaction Issuing Limit (C_INTERCONNECT_M_AXI_WRITE_ISSUING)
 AXI4バスインターフェースが生成できるアクティブな最大のWrite Transaction。Shared-Access mode の時は無視される。デフォルト値は8。

- Read Transaction Issuing Limit (C_INTERCONNECT_M_AXI_READ_ISSUING)
 AXI4バスインターフェースが生成できるアクティブな最大のRead Transaction。Shared-Access mode の時は無視される。デフォルト値は8。

- Accept only ID thread at a time (C_INTERCONNECT_M_AXI_SINGLE_THREAD)
 あるIDのトランザクションが未解決の時には、そのIDのトランザクションしかスレーブに発行しない。デフォルト値はチェックなし。
  1. 2012年04月08日 20:14 |
  2. AXI4 Master IPの作製
  3. | トラックバック:0
  4. | コメント:0