FC2カウンター FPGAの部屋 AXIスレーブIPのパラメータ
fc2ブログ

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

FPGAの部屋

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

AXIスレーブIPのパラメータ

キャラクタ・ディスプレイ・コントローラをAXI4スレーブにする9(インプリメント1)”でXPSからAdd IPでキャラクタ・ディスプレイ・コントローラをAXI4スレーブIPとしてシステムに入れたが、その際にパラメータはデフォルトとした。ダイアログにどのようなパラメータがあるかを見ていきたい。

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

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

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

* Address

- Slave AXI Number of Address Ranges (C_S_AXI_NUM_ADDR_RANGES)
 マニュアルには記述が無いが、アドレス範囲を4つまで選べて、その内の幾つを有効にするかを数で選択する。デフォルトはAutoで1。

- Slave AXI RNG00 Base Base Address (C_S_AXI_RNG00_BASEADDR)
 これもマニュアルには記述が無いが、最初のアドレス範囲のスタートアドレス。XPSのAddressタブでアドレスを入力すると反映されている。

- Slave AXI RNG00 High Base Address (C_S_AXI_RNG00_HIGHADDR)
最初のアドレス範囲のエンドアドレス。XPSのAddressタブでアドレスを入力すると反映されている。

- Slave AXI RNG01 Base Base Address ~ Slave AXI RNG03 High Base Address は省略

* S_AXI

- Slave AXI Protcol (C_S_AXI_PROTOCOL)
 AXI4, AXI4Lite, AXI3 を選択できる。ここでのデフォルト値はAXI4

- Slave AXI ID Width (C_S_AXI_ID_WIDTH)
 IDのビット幅。1~16ビットに設定可。ここでのデフォルト値は1。

- Slave AXI Address Width (C_S_AXI_ADDR_WIDTH)
 アドレスビット幅。ここでのデフォルト値は32。ここは設定できない。

- Slave AXI Supports Read (C_S_AXI_SUPPORTS_READ)
 スレーブIPがReadを行うか?を示す。デフォルトではAuto になっているが、チェックされている。Wirte のみのスレーブIPの場合はチェックを外す。

- Slave AXI Supports Write (C_S_AXI_SUPPORTS_WRITE)
 スレーブIPがWriteを行うか?を示す。デフォルトではAuto になっているが、チェックされている。Read のみのスレーブIPの場合はチェックを外す。

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

- Slave AXI AWUSER Width (C_S_AXI_AWUSER_WIDTH)
 AWUSER信号の幅。1 ~ 256。デフォルトは1。

- Slave AXI ARUSER Width (C_S_AXI_ARUSER_WIDTH)
 ARUSER信号の幅。1 ~ 256。デフォルトは1。

- Slave AXI WUSER Width (C_S_AXI_WUSER_WIDTH)
 WUSER信号の幅。1 ~ 256。デフォルトは1。

- Slave AXI RUSER Width (C_S_AXI_RUSER_WIDTH)
 RUSER信号の幅。1 ~ 256。デフォルトは1。

- Slave AXI BUSER Width (C_S_AXI_BUSER_WIDTH)
 BUSER信号の幅。1 ~ 256。デフォルトは1。

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

* S_AXI

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

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

- Require TrustZone Secure on all accesses (C_INTERCONNECT_S_AXI_SECURE)
 マニュアルによると”各MIスロットがセキュアなスレーブ デバイス(TrustZone のセキュアアクセスを許可)に接続されているかどうかを示します。”だそうです。0がセキュアでないスレーブデバイスで、1がセキュアなスレーブデバイス。デフォルトは0でチェックなし。

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

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

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

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

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

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

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

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

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

- Write Transaction Acceptance Limit (C_INTERCONNECT_S_AXI_WRITE_ACCEPTANCE)
 インターコネクトから発行されるアクティブなWrite Transaction の数。デフォルトはAuto で1。

- Read Transaction Acceptance Limit (C_INTERCONNECT_S_AXI_READ_ACCEPTANCE)
 インターコネクトから発行されるアクティブなRead Transaction の数。デフォルトはAuto で1。
  1. 2012年04月06日 05:54 |
  2. AXI4 Slave IPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2101-6ed97d6c
この記事にトラックバックする(FC2ブログユーザー)