Zynq DMA IPを使用する際,Vitisに登場する変数名について

FPGA
  • XPAR_SCUGIC_SINGLE_DEVICE_ID

Xilinx の Zynq-7000 シリーズなどの SoC(System on Chip)におけるシングル GIC(Generic Interrupt Controller)のデバイス ID を指します。この定義は、xparameters.h ヘッダーファイル内で行われ、システム内の GIC を一意に識別するために使用されます。

  • RX_BD_SPACE_BASE

Receive Buffer Descriptor Space Base Address の略。
BDはBuffer Descriptor の略で、データバッファを管理するための構造体やメタデータを表します。
受信データ用のバッファディスクリプタが格納されるメモリ領域の基準アドレスを示す。
参考:https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/examples/xaxidma_example_sg_intr.c

定義元を分けて探す

XPAR_SCUGIC_SINGLE_DEVICE_IDはBSP側の定義を参照しますが、RX_BD_SPACE_BASEはAXI DMAのサンプル内で定義するメモリー配置です。どちらもVitisの画面が自動的に決める変数、というわけではありません。

AMDのScatter Gather割り込みサンプルでは、受信ディスクリプター用の領域と、受信データそのものを置く領域を分けています。RxSetup()でBDリングを作り、各BDへ受信バッファーのアドレスを設定する流れを追うと、この違いが分かります。PS側EthernetのBDと、PL側AXI DMAのBDも別の仕組みです。

サンプルのアドレスをそのまま別の設計へコピーすると、プログラムや別のバッファーと重なるおそれがあります。使用するDDRの範囲、リンカースクリプト、BSPの定義を照合してください。VitisのSDT構成では定義や初期化の方法も変わるため、使用中のドライバーと同じ版のサンプルを参照します。