UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 61620

Vivado IP パッケージャー - カスタム IP で複数の AXI スレーブ インターフェイスに対するオプションを作成する方法

説明

カスタム IP で複数の AXI スレーブ インターフェイスに対するオプションを作成する方法を教えてください。

ソリューション

これは、次の手順で実現できます。

  1. 初期の VHDL/Verilog コードでは、参照する複数のインターフェイスがポート マップに含まれている必要があります。下の例に、2 つのインターフェイスの場合を示します。

        -- スレーブ側
        s00_axis_tdata    : in  std_logic_vector(C_AXIS_TDATA_WIDTH-1 downto 0);
        s00_axis_tvalid   : in  std_logic_vector(0 downto 0);

        s00_axis_tready   : out std_logic_vector(0 downto 0);
        s00_axis_tstrb    : in  std_logic_vector(C_AXIS_TDATA_WIDTH/8-1 downto 0);

        s00_axis_tkeep    : in  std_logic_vector(C_AXIS_TDATA_WIDTH/8-1 downto 0);
        s00_axis_tlast    : in  std_logic_vector(0 downto 0);

        s00_axis_tid      : in  std_logic_vector(C_AXIS_TID_WIDTH-1 downto 0);
        s00_axis_tdest    : in  std_logic_vector(C_AXIS_TDEST_WIDTH-1 downto 0);

        s00_axis_tuser    : in  std_logic_vector(C_AXIS_TUSER_WIDTH-1 downto 0);

        -- スレーブ側

        s01_axis_tdata    : in  std_logic_vector(C_AXIS_TDATA_WIDTH-1 downto 0);
        s01_axis_tvalid   : in  std_logic_vector(0 downto 0);
        s01_axis_tready   : out std_logic_vector(0 downto 0);

        s01_axis_tstrb    : in  std_logic_vector(C_AXIS_TDATA_WIDTH/8-1 downto 0);
        s01_axis_tkeep    : in  std_logic_vector(C_AXIS_TDATA_WIDTH/8-1 downto 0);

        s01_axis_tlast    : in  std_logic_vector(0 downto 0);

        s01_axis_tid      : in  std_logic_vector(C_AXIS_TID_WIDTH-1 downto 0);

        s01_axis_tdest    : in  std_logic_vector(C_AXIS_TDEST_WIDTH-1 downto 0);

        s01_axis_tuser    : in  std_logic_vector(C_AXIS_TUSER_WIDTH-1 downto 0);



    IP をパッケージする際には、次に示すように、[IP Ports and Interfaces] ページで 2 つの異なるインターフェイスをポートに対してコンフィギュレーションできます。

    Pic1.jpg

  2. インターフェイスが作成されたらコンフィギュレーションし、特定のパラメーター指定に対して表示されるようにすることができます。
    ポート/インターフェイスをオプションで存在させるかどうかを有効にして、イネーブル式ボックスにアクセスする必要があります。
    インターフェイスにイネーブルを配置すると、子ポートで同じイネーブルが推論されるようになります。
    これを実行するには、次に示すように、インターフェイスを編集して [Is this interface optionally present?] を [Yes] に設定します。

    Pic2.JPG



  3. イネーブル式テキスト ボックスが使用可能になったら、パラメーター設定に基づいてインターフェイスを存在させる方法を設定できます。
    この例では、これは 2 つ目のインターフェイスであるため、パラメーターの選択肢が 2 つ以上の場合にのみ表示されるようにします。
    ボックス内のイネーブル式は、C_NUM_SI_SLOTS>=2 のようになります。
    スレーブ インターフェイスが 3 つ以上必要になる場合に備えて、>=2 にすることが推奨されます。
    さらなるインスタンスの場合は、HDL ポート マッピングに含め、C_NUM_SI_SLOTS>=3、C_NUM_SI_SLOTS>=4 のようにしてイネーブルにする必要があります。
    注 : C_NUM_SI_SLOTS は、スレーブ インターフェイスの数に関連付けられているジェネリックです。

  4. インターフェイスの入力ポートについてと、それらのポートが未使用の場合の接続方法についても考慮する必要があります。 
    ポートがディスエーブルになっている場合は、未使用のポートを駆動するために Vivado によって使用されるドライバー値を選択できます。
    ポートにドライバー値を追加するには、上記で説明したインターフェイスの場合と同じように、[IP Ports and Interfaces] ページでポートを編集する必要があります。
    値を指定しなかった場合、ポートは未接続のままになります。これに関しては、ユーザーが決定します。

     

    Pic3.JPG



  5. イネーブルが設定されたため、IP によってサポートされるインターフェイスの数のみを受け入れるようにパラメーターを設定できます。
    また、IP GUI でパラメーターのより記述的な名前を表示することもできます。
    [IP Customization Parameters] ページで C_NUM_SI_SLOTS パラメーターをダブルクリックし、エディターを開きます。

    Pic4.JPG





    [What is the parameter display name?] が [Select the number of Slave Interfaces] に設定されており、1 および 2 という値が許可されているのがわかります。
    これは、上記の HDL の例では 2 つのスレーブ インターフェイスしか処理されないためです。
    インターフェイスを持つことができる数に応じて、これは変更できます。

  6. [IP GUI Customization] ページは、次のようになります。
    [Select the number of Slave Interfaces] のデフォルト値は 1 になっており、[IP Symbol] では s01_axis インターフェイスがグレーアウトになっています。

    Pic5.JPG



 

 

 

 






 

AR# 61620
日付 08/01/2014
ステータス アクティブ
種類 一般
ツール
  • Vivado Design Suite - 2014.1
  • Vivado Design Suite - 2014.2
このページをブックマークに追加