19
XAPP891 (v1.0) 2012 12 19 japan.xilinx.com 1 © Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. 概要 このアプリケーション ノートでは、バルクおよびアイソクロナス ト ランザクシ ョ ンにおいて、AMBA® (Advanced Microcontroller Bus Architecture) AXI (Advanced eXtensible Interface) を用いるザイ リンク USB (Universal Serial Bus) 2.0 高速デバイスが発揮するパフォーマンスを検証します。作成されるテ スト システムは、 Kintex®-7 FPGA に基づいています。 バルク トランザクションとアイソクロナス ランザクションのパフォーマンスは、 2 つの別々のホ ス ト ド ラ イバーで測定されます。 このアプ リ ケー ション ノートでは、バルクおよびアイソクロナス トランザクション用の USB システムと対応する ELF フ ァ イ ルの開発方法を説明 し ます。 こ の資料は、 ザ イ リ ン ク ス Platform Studio (XPS) に関する基本的 な知識を前提と しています [参照 1]はじめに AXI USB 2.0 デバイスは、最小限のリ ソースでデザインの USB 接続を可能にします。このインターフェ イスは、 USB を中心 と し た高性能デザイ ン、 ブ リ ッ ジ、 および従来ポー ト の置き換えに最適です。 USB 2.0 プ ロ ト コルは、 単一の半二重シ リ アル バス上で多数のデバイスをマルチプレクスします。 AXI USB 2.0 デバイスは、 480Mb/s (高速) または 12Mb/s (最速) で動作し、 プラグアンドプレイに対応していま す。 ホス トはバスを制御し、 要求された動作を指定する トークンをデバイスに送信します。 AXI USB 2.0 デバイ スは、 最大 8 つのエンドポイン ト をサポート します。 これには、 データのソースまたはシン クとなるデフォルトの制御エンドポイントが含まれます。 USB 2.0 デバイスのエンドポイント 0 は、 制 御ト ランザクショ ンでデバイスを列挙するのに使用されます。 AXI USB 2.0 デバイスの 7 つのユーザー エンドポイントは、 バルク、 割り込み、 またはアイソクロナ ス と し て構成で き ま す。 ま た、 各エ ン ド ポ イ ン ト は、 ( ホ ス ト への) 入力または ( ホストからの) 出力 と し て構成できます。各エンドポイントは、同じサイズのエンドポイント データ用 ping/pong バッファーを 2 つ備えています。ユーザー エンドポイントのデータ バッファーは単方向であり、各エンドポイントの エンドポイント コンフィギュレーション/ ステータス レジスタで設定されます。バッファーのサイズは、 バルク エンドポイントは 0 512 バイト、割り込みエンドポイントは 64 バイト、アイソクロナス エン ド ポ イ ン ト は最大 1024 バ イ ト に設定で き ます。 このアプリケーション ノートは、バルクおよびアイソクロナス トランザクションで USB が発揮するパ フォーマンスの検証を目的と しています。 このアプ リ ケーシ ョ ンでは、 次の要素を使用します。 AXI USB 2.0 デバイスおよび DDR コン ト ローラーを備えた MicroBlaze™ リファレンス システム デバイスをバルク エンドポイントまたはアイソクロナス エンドポイント として構成する、 ELF (Executable and Linkable Format) ファイル USB デバイスのパフォーマンス測定に使用されるホス ト アプ リ ケーシ ョ ン AXI USB 2.0 デバ イ ス は、エ ン ド ポ イ ン ト バッファーと メモリ間でデータを転送する内蔵 DMA (Direct Memory Access) コン ト ローラーで構成されます。 USB 2.0 デバイス コアは、専用の AXI4 スレーブ ンターフェイスとオプションの AXI4 マスター インターフェイスで構成されます。 オプションのマス ター インターフェイスは、デバイス パラメーター C_INCLUDE_DMA によって設定されます。 このパ ラ メーターが 1 に設定されると、 DMA ロジックがデザインに組み込まれます。 DMA ロ ジ ッ ク が組み 込まれている場合は、 AXI スレーブ インターフェイスからユーザー エンドポイント バッファーにアク セスできません。 DMA が無効の場合は、 AXI スレーブ インターフェイスからエンドポイント バッ ファーにアクセスできます。 アプリケーション ノート : Kintex- 7 ファミリ XAPP891 (v1.0) 2012 12 19 AXI USB 2.0 デバイス : バルク転送およびアイソクロナス転送における パフォーマンスの検証 著者 : Ravi Kiran BodduDinesh Kumar

AXI USB 2.0 デバイス : バルク転送およびアイソクロナス転送 …...AXI USB 2.0 デバイスの使用XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 4AXI USB

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 1

    © Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

    概要 このアプリ ケーシ ョ ン ノートでは、バルクおよびアイソ ク ロナス ト ランザクシ ョ ンにおいて、AMBA®(Advanced Microcontroller Bus Architecture) AXI (Advanced eXtensible Interface) を用いるザイ リ ンクス USB (Universal Serial Bus) 2.0 高速デバイスが発揮するパフォーマンスを検証します。作成されるテス ト システムは、 Kintex®-7 FPGA に基づいています。 バルク ト ランザクシ ョ ンとアイ ソ ク ロナス トランザクシ ョ ンのパフォーマンスは、 2 つの別々のホス ト ド ラ イバーで測定されます。 このアプリ ケーシ ョ ン ノートでは、バルクおよびアイソ ク ロナス ト ランザクシ ョ ン用の USB システムと対応する ELFファ イルの開発方法を説明します。 この資料は、 ザイ リ ンクス Platform Studio (XPS) に関する基本的な知識を前提と しています [参照 1]。

    はじめに AXI USB 2.0 デバイスは、最小限のリ ソースでデザインの USB 接続を可能にします。このインターフェイスは、 USB を中心と した高性能デザイン、ブ リ ッジ、および従来ポートの置き換えに最適です。 USB2.0 プロ ト コルは、単一の半二重シ リ アル バス上で多数のデバイスをマルチプレクスします。 AXI USB2.0 デバイスは、 480Mb/s (高速) または 12Mb/s (最速) で動作し、 プラグアンドプレイに対応しています。 ホス トはバスを制御し、 要求された動作を指定する トークンをデバイスに送信します。 AXI USB2.0 デバイスは、 最大 8 つのエンドポイン ト をサポート します。 これには、 データのソースまたはシンク となるデフォルトの制御エンドポイン トが含まれます。 USB 2.0 デバイスのエンドポイン ト 0 は、 制御ト ランザクシ ョ ンでデバイスを列挙するのに使用されます。

    AXI USB 2.0 デバイスの 7 つのユーザー エンドポイン トは、 バルク、 割り込み、 またはアイソ ク ロナス と して構成できます。 また、各エンドポイン トは、 (ホス トへの) 入力または (ホス トからの) 出力と して構成できます。各エンドポイン トは、同じサイズのエンドポイン ト データ用 ping/pong バッファーを2 つ備えています。ユーザー エンドポイン トのデータ バッファーは単方向であ り、各エンドポイン トのエンドポイン ト コンフ ィギュレーシ ョ ン/ステータス レジスタで設定されます。バッファーのサイズは、バルク エンドポイン トは 0 ~ 512 バイ ト 、割り込みエンドポイン トは 64 バイ ト、アイソ ク ロナス エンドポイン トは最大 1024 バイ トに設定できます。

    このアプリ ケーシ ョ ン ノートは、バルクおよびアイソ ク ロナス ト ランザクシ ョ ンで USB が発揮するパフォーマンスの検証を目的と しています。 このアプリ ケーシ ョ ンでは、 次の要素を使用します。

    • AXI USB 2.0 デバイスおよび DDR コン ト ローラーを備えた MicroBlaze™ リ ファレンス システム

    • デバイスをバルク エンドポイン ト またはアイソ ク ロナス エンドポイン ト と して構成する、 ELF(Executable and Linkable Format) ファ イル

    • USB デバイスのパフォーマンス測定に使用されるホス ト アプリ ケーシ ョ ン

    AXI USB 2.0 デバイスは、エンドポイン ト バッファーと メモ リ間でデータを転送する内蔵 DMA (DirectMemory Access) コン ト ローラーで構成されます。USB 2.0 デバイス コアは、専用の AXI4 スレーブ インターフェイス とオプシ ョ ンの AXI4 マスター インターフェイスで構成されます。 オプシ ョ ンのマスター インターフェイスは、デバイス パラ メーター C_INCLUDE_DMA によって設定されます。 このパラ メーターが 1 に設定される と、 DMA ロジッ クがデザインに組み込まれます。 DMA ロジッ クが組み込まれている場合は、 AXI スレーブ インターフェイスからユーザー エンドポイン ト バッファーにアクセスできません。 DMA が無効の場合は、 AXI スレーブ インターフェ イスからエン ドポイン ト バッファーにアクセスできます。

    アプリケーシ ョ ン ノート : Kintex- 7 ファ ミ リ

    XAPP891 (v1.0) 2012 年 12 月 19 日

    AXI USB 2.0 デバイス : バルク転送およびアイソクロナス転送におけるパフォーマンスの検証著者 : Ravi Kiran Boddu、 Dinesh Kumar

    http://japan.xilinx.com

  • マス スト レージ アプリケーシ ョ ン

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 2

    マス スト レージ アプリケーシ ョ ン

    マス ス ト レージ アプリ ケーシ ョ ンはバルク ト ランザクシ ョ ンを使用します。バルク ト ランザクシ ョ ンを利用するには、 2 つのエンドポイン ト バッファーをバルク In およびバルク Out エンドポイン ト と して構成し、 最大パケッ ト サイズを 512 バイ トに設定する必要があ り ます。 バルク In エンドポイン ト を使用して、 読み出し操作のパフォーマンスを測定します。 バルク Out エンドポイン ト を使用して、 書き込み操作のパフォーマンスを測定します。

    バルク アプリ ケーシ ョ ンは、システムを初期化して USB および UART デバイスを有効にします。デバイス列挙コマンド (SET/GET 記述子) への応答がホス トから送信されます。 列挙が完了する と、 デバイスがホス トから読み出し要求を受信した場合は、 次の手順が実行されます。

    1. DMA を介して、 USB デバイス内に存在する ping/pong バッファーにデータが書き込まれます。

    2. USB デバイスは、 ホス ト デバイスから In トークンを受信する と、 ping/pong バッファー内に存在するデータで応答します。

    3. 対応するエンドポイン トのバッファー解放状態を示す割り込みが、 Microblaze リ ファレンス システムに送信されます。

    4. Microblaze リ ファレンス システムはバッファー解放割り込みを検出し、 次に送信するデータで ping/pong バッファーを充填します。

    5. このプロセスが繰り返されます。

    デバイスが書き込み要求を受信した場合は、 次の手順が実行されます。

    1. ホス ト デバイスは、 Out トークンに続いてデータ パケッ ト を送信します。

    2. データを受信する と、 受信データは ping/pong バッファーに書き込まれます。

    3. 対応するエンドポイン トのバッファー フル状態を示す割り込みが、 Microblaze リ ファレンス システムに送信されます。

    4. Microblaze リ ファレンス システムはデータを読み出し、 DMA を介して DDR にデータを保存します。

    5. ホス トがデータを送信する限り、 この手順が繰り返されます。

    アイソクロナス アプリケーシ ョ ン

    アイ ソ ク ロナス アプ リ ケーシ ョ ンの読み出し と書き込みは、 別々のアプ リ ケーシ ョ ンでテス ト されます。 isoc_in アプリ ケーシ ョ ンは、 アイ ソ ク ロナス ト ランザクシ ョ ンを使用する読み出し操作をテス トします。 isoc_out アプ リ ケーシ ョ ンは、 書き込み操作のパフォーマンスを測定します。 isoc_in アプ リケーシ ョ ンはデバイスをマイ クロフォンと してプログラムし、 1 つのエンドポイン ト をアイ ソ ク ロナスIn エンドポイン ト と して使用します。 isoc_out アプリ ケーシ ョ ンはデバイスをスピーカーと してプログラムし、 1 つのエンドポイン ト をアイ ソ ク ロナス Out エンドポイン ト と して使用します。

    アイソ ク ロナス アプリ ケーシ ョ ンは、システムを初期化して USB および UART デバイスを有効にします。デバイス列挙コマンド (SET/GET 記述子) への応答がホス トから送信されます。列挙が完了する と、デバイスがマイクロフォンと して構成されている場合は、 次の手順が実行されます。

    1. DMA を介して、 USB デバイス内に存在する ping/pong バッファーにデータが書き込まれます。

    2. USB デバイスは、 ホス ト デバイスから In トークンを受信する と、 ping/pong バッファー内に存在するデータで応答します。

    3. 対応するエンドポイン トのバッファー解放状態を示す割り込みが、 Microblaze リ ファレンス システムに送信されます。

    4. Microblaze リ ファレンス システムはバッファー解放割り込みを検出し、 次に送信するデータで ping/pong バッファーを充填します。

    5. このプロセスが繰り返されます。

    デバイスがスピーカーと して構成されている場合は、 次の手順が実行されます。

    1. ホス ト デバイスは、 Out トークンに続いてデータ パケッ ト を送信します。

    http://japan.xilinx.com

  • コア パラメーター

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 3

    2. データを受信する と、 受信データは ping/pong バッファーに書き込まれます。

    3. 対応するエンドポイン トのバッファー フル状態を示す割り込みが、 Microblaze リ ファレンス システムに送信されます。

    4. Microblaze リ ファレンス システムはデータを読み出し、 DMA を介して DDR にデータを保存します。

    5. この手順が繰り返されます。

    コア パラメーター 表 1 に、 コア パラ メーターの説明、 名前、 および使用に関するガイ ド ラインを示します。

    ハードウェア要件 このリ ファレンス システムに必要なハードウェア ボード と追加の機器には、 次のものがあ り ます。

    • ザイ リ ンクス KC705 プロダクシ ョ ン ボード

    • LPC コネク タ付き USB PHY FMC カード

    • JTAG プラ ッ ト フォーム ケーブル USB

    • 2 本の USB mini-B ケーブル

    この リ ファレンス システムを構築し、 ダウンロードするには、 次のソフ ト ウェア ツールをインス トールしておく必要があ り ます。

    • Xilinx Platform Studio 14.3

    • ISE Design Suite 14.3

    • SDK 14.3

    表 1 : コア パラメーター

    機能/説明 パラメーター名 使用AXI4 メモ リ マップ方式 : ベース アドレス C_BASEADDR 必須AXI4 メモ リ マップ方式 : 上位アドレス C_HIGHADDR 必須DMA ロジッ クの使用 C_INCLUDE_DMA 1PHY リセッ ト タイプの選択 C_PHY_RESET_TYPE active_lowエラー ロジッ クの組み込みの選択 C_INCLUDE_USBERR_LOGIC 1使用するバッファー タイプの選択 C_ULPI_CLK_BUFFER_TYPE BUFRアラ イ メ ン ト されていない ト ランザクシ ョ ン

    のサポートの選択

    C_DMA_UA_TRANS_SUPPORT 1

    http://japan.xilinx.com

  • AXI USB 2.0 デバイスの使用

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 4

    AXI USB 2.0 デバイスの使用

    AXI USB 2.0 デバイス IP は、データ幅 32 ビッ トの AXI ベース システム上に接続できます。この IP は、USB PHY 側の ULPI インターフェイスをサポート します。 さ らに、 パラ メーター C_INCLUDE_DMAによって DMA モードまたは非 DMA モードに設定できます。 DMA を有効にする と、 AXI マスター インターフェイスが有効になり、 AXI4 マスター インターフェイスは、 DDR コン ト ローラーがスレーブとして接続される AXI4 フル イ ン ターコネ ク ト に接続する必要があ り ます。 IP の割 り 込みピンは、MicroBlaze システムの割り込みコン ト ローラー ブロッ ク (axi_intc) に接続します。 IP の設定に使用するパラ メーターは次のとおりです。

    • C_INCLUDE_DMA : 1 に設定する と、内蔵 DMA ブロ ッ クが AXI4 マスター インターフェイス と共にデザインに組み込まれます。 DMA ブロ ッ ク を追加する と、 ユーザー エン ドポイン ト バッファーは AXI スレーブ インターフェイスから切断されます。

    • C_DMA_UA_TRNS_SUPPORT : 1 に設定する と、 データ リ アライ メン トのサポートがデザインに追加されます。

    • C_PHY_RESET_TYPE : このパラ メーターは、 PHY の要件に従って設定する必要があ り ます。ACTIVE_LOW に設定する と、AXI USB 2.0 デバイス IP によって生成される ULPI リセッ トはアクティブ Low 信号になり ます。 ACTIVE_HIGH に設定する と、 AXI USB 2.0 デバイス IP によって生成される ULPI リセッ トはアクティブ High 信号になり ます。

    • C_INCLUDE_USBERR_LOGIC : 1 に設定する と、 USB リ ンク エラー ログ カウンターがデザインに追加されます。

    • C_ULPI_CLOCK_BUFFER_TYPE : このパラ メーターは、 デザイン内の ULPI ク ロ ッ クの配線に使用されるバッファーのタイプを指定します。サポート している値は、 IBUF、 IBUFG、 BUFG、および BUFR です。 このパラ メーターを使用して、ULPI ク ロ ッ ク ド メ インでよ り良いタイ ミ ング結果が得られるよ うに ULPI ク ロ ッ クを配線します。

    システム デザイン AXI USB 2.0 デバイス アプリ ケーシ ョ ンの標準的なシステムを 図 1 に示します。

    このシステムは AXI に基づいています。 AXI は、 AMBA 仕様に応じて標準化された IP インターフェイス プロ ト コルです。リ ファレンス デザインに使用される AXI インターフェイスは、AXI4 メモ リ マップ方式インターフェイス と AXI4-Lite インターフェイスで構成されます。ク ロ ッ ク ジェネレーターとプ

    X-Ref Target - Figure 1

    図 1 : AXI USB 2.0 デバイス アプリケーシ ョ ンの標準的なシステム

    MicroBlazeProcessor

    AXI GPIO

    AXIUARTLite

    AXI USB2Device USB PHY

    ULPIInterface

    DDRInterfaceDDR

    ControllerDDR

    Memory

    AX

    I4Li

    te In

    terc

    onne

    ctA

    XI4

    Inte

    rcon

    nect

    X891_01_100912

    http://japan.xilinx.com

  • リファレンス デザインの コンポーネン ト

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 5

    ロセッサ システムの リ セッ ト ブロ ッ クは、 システム全体にク ロ ッ クを供給し、 リ セッ ト を行います。I/O ペリ フェラルおよびプロセッサ サポート IP を含む内蔵 MicroBlaze プロセッサ サブシステムにより、 システムの高度な制御が行われます。 パフォーマンスとエリ アのバランスをと るよ うにシステムを

    最適化するには、複数の AXI インターコネク ト ブロ ッ クを使用し、 AXI インターコネク ト ブロ ッ クを個別に調整および最適化して、 セグメン ト型または階層型の AXI インターコネク ト ネッ ト ワークをインプリ メン ト します。

    リファレンス デザインのコンポーネン ト

    表 2 に、 IP リ ファレンス デザインのコンポーネン ト、 バージ ョ ン、 ベース アドレス、 および上位アドレスを示します。

    XAPP891 に付属のハードウェア システム

    USB デバイスおよび MicroBlaze アプリ ケーシ ョ ンのアプリ ケーシ ョ ン ノートには、すぐに使用可能なシステム BIT ファ イルと ELF ファ イルが付属しています。 このハード ウェア システムは、 MicroBlazeプロセッサと 7 シ リーズ FPGA DDR3 コン ト ローラーを備えた USB 2.0 デバイス システムで構成されます。

    リ ファレンス システムを作成するには、 次の手順に従います。

    1. XPS を起動し、 Base System Builder (BSB) ウ ィザードで新しいシステムを作成します。

    2. AXI システムを選択し、 [OK] をク リ ッ ク します。

    3. Kintex- 7 ボードを選択し、 [Next] をク リ ッ ク します。

    4. MicroBlaze プロセッサ ペリ フェラルと一緒に次のブロッ クを組み込みます。

    a. DDR3_SDRAM (キャ ッシュ )

    b. Push_Buttons_5bits (割り込み有効)

    c. RS232_Uart_1 (割り込み有効)

    5. [Finish] をク リ ッ ク します。

    割り込みコン ト ローラーを含めて、 選択したペリ フェラルを備えたデフォル トの MicroBlaze システムが作成されます。

    6. [IP Catalog] → [Communication High Speed] → [axi_usb2_device] から [axi_usb2_device] IP を選択して右ク リ ッ ク し、 [Add IP] オプシ ョ ンを選択します。

    表 2 : リファレンス デザインのコンポーネン ト

    IP バージョ ン ベース アドレス 上位アドレスMicroBlaze 8.40.a N/A N/Aaxi_7series_ddrx 1.06.a 0xb0000000 0xbfFFFFFFaxi_usb2_device 3.02.a 0x44800000 0x4480ffffaxi_uartlite 1.02.a 0x40600000 0x4060fffflmb_bram_if_cntlr 3.10.a 0x00000000 0x00001fffaxi_intc 1.02.a 0x41200000 0x4120ffffMdm 2.10.a 0x41400000 0x4140ffffaxi_gpio 1.01.b 0x40000000 0x4000ffffproc_sys_reset 3.00.a N/A N/Aclock_generator 4.03.a N/A N/Aaxi_interconnect – lite 1.06.a N/A N/Aaxi_interconnect – full interface 1.06.a N/A N/A

    http://japan.xilinx.com

  • XAPP891 に付属のハードウェア システム

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 6

    7. システムへの axi_usb2_device IP の追加を確認する画面 (図 2) が表示されます。 [Yes] をク リ ッ クします。

    8. 図 3 に示すよ うにパラ メーターを選択します。 [OK] をク リ ッ クする と、 AXI インターフェイス と外部ポートへの接続が自動的に作成されます。

    X-Ref Target - Figure 2

    図 2 : [Add IP Instance to Design] 画面

    X891_02_100912

    X-Ref Target - Figure 3

    図 3 : パラメーターの選択

    X891_03_100912

    http://japan.xilinx.com

  • XAPP891 に付属のハードウェア システム

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 7

    9. XPS 画面の [Ports] タブ (図 4) に進み、 microblaze_0_intc ブロッ クを展開します。 INTR ピンの[Connected Ports] の列をク リ ッ ク し、 [Unconnected Interrupts] 画面から [Connected Interrupts] 画面に axi_usb2_device_0_irpt ピンを移動します。 [OK] をク リ ッ ク します。

    10. system.mhs ファ イル内の AXI USB 2.0 デバイス IP インスタンスの外部ポート リ ス トから、図 5に表示されているデバッグ ポート を削除します。 これらのポートはデバッグ ポートであ り、 実際のシステムには不要です。

    X-Ref Target - Figure 4

    図 4 : [Ports] タブ

    X891_04_100912

    http://japan.xilinx.com

  • XAPP891 に付属のハードウェア システム

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 8

    11. ワークスペースの data フォルダー内の system.ucf ファ イルに、 次の ULPI 信号のシステム ロケーシ ョ ン制約をコピーします。

    ### SMSC2_USB KC705 constraints ###NET axi_usb2_device_0_ULPI_Clock_pin LOC = AD27 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Reset_pin LOC = AB30 | IOSTANDARD=LVCMOS25 | TIG;NET axi_usb2_device_0_ULPI_Next_pin LOC = AE28 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Dir_pin LOC = AF28 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Stop_pin LOC = AB29 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AC26 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AD26 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AK29 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AK30 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AJ28 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AJ29 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AE30 | IOSTANDARD=LVCMOS25;NET axi_usb2_device_0_ULPI_Data_pin LOC = AF30 | IOSTANDARD=LVCMOS25;

    12. [Hardware] → [Generate BitStream] を選択し、 ビッ ト ス ト リーム ファ イルを生成します。

    13. ビッ ト ス ト リーム ファ イルの生成後、 [Project] → [Export Hardware to SDK] を選択し、 ビッ ト スト リーム ファ イルを SDK にエクスポート します。

    X-Ref Target - Figure 5

    図 5 : デバッグ ポートの削除

    X891_05_100912

    http://japan.xilinx.com

  • ELF ファイルの 作成

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 9

    ELF ファイルの作成

    次の手順は、 バルク ト ランザクシ ョ ンの ELF ファ イルの作成方法を示しています。 アイ ソ ク ロナス Inおよび Out ト ラ ンザクシ ョ ンの ELF フ ァ イルも、 同じ手順で作成でき ます。 ソース フ ァ イルは、SW/Device_Files ディ レク ト リの bulk、 isoc_in、 および isoc_out フォルダーに置かれます。

    1. ポップアップ画面から [Export and Launch] オプシ ョ ンを選択します。

    2. SDK が開いたら、 [File] → [New] → [Application Project] をク リ ッ ク し、 バルク エンドポイン トのアプリ ケーシ ョ ンのアプリ ケーシ ョ ン プロジェク ト を作成します。 図 6 を参照してください。

    3. プロジェク ト名に 「bulk_perfmon」 と入力します。

    4. [Use default location] チェッ ク ボッ クスをオンにします。

    X-Ref Target - Figure 6

    図 6 : 新しいプロジェク トの作成

    X891_06_100912

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 10

    5. [OS Platform] を [Standalone]、 [Language] を [C]、 [Board Support Package] を [Create New] に設定します。 [Next] をク リ ッ ク します。

    6. [Available Templates] から [Empty application] を選択し、 [Finish] をク リ ッ ク します。

    7. [Project Explorer] 画面で、 mass_storage_perf プロジェク トの下の [src] フォルダーを選択します。

    8. SRC ディレク ト リ を右ク リ ッ ク し、 [Import] をク リ ッ ク します。

    9. [General] → [File System] をク リ ッ ク し、 [Next] をク リ ッ ク します。

    10. ディ レク ト リ SW/Device_Files/bulk に移動し、 [OK] をク リ ッ ク します。

    11. 次のファイルを選択し、 [Finish] をク リ ッ ク します。• xusb_cp9.c

    • xusb_cp9.h

    • xusb_storage.c

    • xusb_storage.h

    • xusb_types.h

    ホスト側ド ライバーのインストール

    このセクシ ョ ンでは、 ホス ト側ド ライバーのインス トール方法を説明します。

    ソフ トウェア要件

    USB バルク パフォーマンス モニターのソフ ト ウェア要件は次のとおりです。

    • Windows XP (SP3) 以上 (32 ビッ ト または 64 ビッ ト )• NET Framework 4

    ド ライバーのインストール

    バルク ト ランザクシ ョ ンとアイ ソ ク ロナス ト ランザクシ ョ ンのパフォーマンスは、 別々のアプ リ ケーシ ョ ンで測定されます。 ア イ ソ ク ロナス ト ラ ンザ ク シ ョ ンのパフ ォーマン ス を測定するには、SW/Host_Files/USBISOC_Setup ディ レク ト リに進みます。 バルク ト ランザクシ ョ ンのパフォーマンスを測定するには、 SW/Host_Files/USBBulk_Setup/ ディレク ト リに進みます。

    32 ビッ ト マシンでは Xilinx USB Perfmon Setup x86.msi、 64 ビッ ト マシンでは Xilinx USB PerfmonSetup x64.msi をダブルク リ ッ ク します。 手順に従ってインス トールを完了します。

    注記 : 64 ビッ ト版 Windows 7 では、 PC を起動し、 Windows が起動を開始したら、 F8 キーを押し続けてセッ ト アップ画面を開きます。セッ ト アップ画面で、 [Disable Driver Signature Enforcement] を [No]に設定して無効にします。

    注記 : ボードが *.bit ファ イルで構成され、 *.elf ファ イルが読み込まれているこ とを確認してから、 ドラ イバーをインス トールします。

    アプリケーシ ョ ンが動作しない場合は、 も う一度 MicroBlaze アプリケーシ ョ ンを読み込みます。 アプリケーシ ョ ンが問題なく動作するまで、数回 (最大で 2 ~ 3 回) 読み込まなければならないこ とがあ り ます。

    ハードウェア要件

    FPGA 上で USB バルク アプ リ ケーシ ョ ンを検証するには、 次のハード ウェア コンポーネン トが必要です。

    • 電源ケーブル付き KC705 ボード

    • 1 枚の FMC カード (HW-FMC-Number-USB-G)

    • 3 本の mini-USB ケーブル

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 11

    ハードウェアのセッ トアップ

    次の手順は、 Kintex- 7 FPGA ボードのセッ ト アップ方法を示しています。

    1. Kintex- 7 FPGA ボード上で、 LPC スロ ッ トに USB PHY FMC カードを挿入します。

    2. ザイ リ ンクス マイクロプロセッサ デバッガー (XMD) を実行するシステムに、 JTAG ポート と UART ポート を接続します。

    3. ホス ト アプリ ケーシ ョ ンを実行するシステムに、FMC カードの J5 USB ポート を接続します。図 7にボードのセッ ト アップを示します。

    バルク USB と してボードを構成する手順

    1. このリ リースに付属の Ready_2Use フォルダーに進みます。

    2. コマンド プロンプ ト を開き、 xmd を実行します。

    注記 : ユーザーのマシン上に XMD がインス トールされている必要があ り ます。

    3. XMD ターミナル上で fpga -f system.bit コマンドを実行します。

    4. XMD ターミナル上で connect mb mdm コマンドを実行します。

    5. XMD ターミナル上で rst;stop;dow bulk_perfmon.elf;run コマンドを実行します。

    X-Ref Target - Figure 7

    図 7 : Kintex-7 ボードのセッ トアップ

    X891_07_121312

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 12

    6. 図 8 の出力がハイパーターミナル上に表示されているこ とを確認します。

    [USB enumerated] が表示されない場合は、 前の手順のコマンドをも う一度実行します。

    アイソクロナス USB と してボードを構成する手順

    注記 : ボードを構成するには、設計者のシステム上に XMD がインス トールされている必要があ り ます。

    1. このリ リースに付属の Ready_2Use フォルダーへ移動します。 system.bit、 isoc_in.elf、 および isoc_out.elf の各ファイルを使用してボードを構成します。

    注記 : isoc_in の手順を次に示します。 isoc_out にも同じ手順を使用できます。

    2. コマンド プロンプ ト を開き、 xmd を実行します。

    3. XMD ターミナル上で fpga -f system.bit コマンドを実行します。

    4. XMD ターミナル上で connect mb mdm コマンドを実行します。

    5. XMD ターミナル上で rst;stop;dow isoc_in.elf;run コマンドを実行します。

    ハード ウェアは In モードのアイソ ク ロナス デバイス と して常に使用できます。

    6. デバイスの準備が完了したら、UsbPerfmon.exe を使用してアプリ ケーシ ョ ンを実行できます。構成全体が完了する前に、 FMC カードに接続されているポート以外のすべての USB ポート を注意深く削除します。 UsbPerform.exe を実行します。

    注記 : スタート レー トは 1024K 以上にして ください。 USB ハブ上の ト ランザクシ ョ ンによってレート /グラフは変化します。 通常は変化の幅を 10% 以内にします。 ただし、 新しい USB デバイスをシステムに接続した場合、 この値は大き く変化するこ とがあ り ます。

    X-Ref Target - Figure 8

    図 8 : バルク USB と してのボード構成

    X891_08_100912

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 13

    結果とまとめ

    ド ラ イバーがインス トールされ、 システムが検出された状態で UsbPerfmon.exe を開く と、 図 9 の画面がディ スプレイに表示されます。

    パフォーマンス測定ツールは、GUI を使用して転送レート とテス トのタイプを変更できるオプシ ョ ンを備えています。 ユーザーが変更できるオプシ ョ ンは、 ディ スプレイの下部にあ り ます。 出力はディ スプ

    レイの右側に表示されます。 ユーザーが設定できるパラ メーターには次のものがあ り ます。

    • [Test Type] : テス トは [Read] または [Write] モードで実行できます。読み出し ト ランザクシ ョ ンと書き込みト ランザクシ ョ ンのスループッ トは別々に測定できます。

    • [Data Limit Settings] : 1 ト ランザクシ ョ ン当たりの最大伝送データは、 このタブで制限できます。

    • [Data Transfer Settings] : 転送レートの設定は、 このタブで変更できます。 [Start Rate] オプシ ョ ンは、 ホス ト からのデータ転送のス ター ト レー ト を指定し ます。 転送レー ト の変化パターンは、[Transfer Pattern] オプシ ョ ンで設定できます。

    バルク ト ランザクシ ョ ンのパフォーマンス測定読み出し と書き込みのパフォーマンスは別々に測定できます。 書き込み操作については、 次の GUI パラ メーターを指定してパフォーマンス測定を実行します。

    X-Ref Target - Figure 9

    図 9 : USB パフォーマンス モニター

    X891_09_100912

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 14

    • Start Rate = 40024KB/s

    • Transfer Pattern = Steady

    この設定で、AXI USB 2.0 デバイスを使用して 36.114 の最大パフォーマンスが得られました。図 10 に結果を示します。

    図 10 の [Transfer Rate] セクシ ョ ンに示すよ うに、現在の測定値 ([Current]) は、そのインスタンスで (1秒間) 測定したパフォーマンスを示します。 平均測定値 ([Average]) は、 その時点までに計算されたパフォーマンスの平均値を示します。最小測定値 ([Minimum]) は、時間内に測定されたパフォーマンスの最小値を示します。 最大測定値 ([Maximum]) は、 その秒までに測定されたパフォーマンスの最大値を示します。

    X-Ref Target - Figure 10

    図 10 : バルク ト ランザクシ ョ ンのパフォーマンス測定 (スタート レート 40024KB/s)

    X891_10_100912

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 15

    図 11 に、 次の GUI パラ メーター設定での結果を示します。

    • Start Rate = 1240KB/s

    • Transfer Pattern = Fixed Increment

    • Data increments = 1000KB

    • Update frequency = 1sec (データ レート を引き上げる間隔)

    注記 : パフォーマンスの数値は、 システムに接続されるその他の USB デバイスの数と、 ホス トが 1 マイクロ フレームで送信できるパケッ ト数によって異なり ます。

    X-Ref Target - Figure 11

    図 11 : バルク ト ランザクシ ョ ンのパフォーマンス測定 (1240KB/s)

    X891_11_100912

    http://japan.xilinx.com

  • ホスト側 ド ライバーの インストール

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 16

    アイソクロナス ト ランザクシ ョ ンのパフォーマンス測定図 12 に、スタート データ レートが 1024KB/s で、固定増分パターンを使用したアイソ ク ロナス Out トランザクシ ョ ンのパフォーマンス測定を示します。 達成された最大スループッ トは 22.7MB/s で、 理論上の最大スループッ トは 24MB/s です。

    X-Ref Target - Figure 12

    図 12 : アイソクロナス Out ト ランザクシ ョ ンのパフォーマンス測定

    X891_12_100912

    http://japan.xilinx.com

  • リファレンス デザインの パラメーター

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 17

    図 13 に、 スタート データ レートが 1024KB/s で、 固定増分パターンを使用したアイソ ク ロナス In トランザクシ ョ ンのパフォーマンス測定を示します。 達成された最大スループッ トは 22.6MB/s で、 理論上の最大スループッ トは 24MB/s です。

    リファレンス デザインのパラ メーター

    このアプ リ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 次のサイ トからダウンロードできます。

    https://secure.xilinx.com/webreg/clickthrough.do?cid=199301

    表 3 に、 リ ファレンス デザインのパラ メーターを示します。

    X-Ref Target - Figure 13

    図 13 : アイソクロナス In ト ランザクシ ョ ンのパフォーマンス測定

    X891_13_100912

    表 3 : リファレンス デザインのパラメーター

    パラメーター 説明

    全般

    開発者 Ravi Kiran Boddu、 Dinesh Kumarターゲッ ト デバイス Kintex-7ソース コードの提供 あ り

    http://japan.xilinx.comhttps://secure.xilinx.com/webreg/clickthrough.do?cid=199301

  • デバイスと リソース使用率

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 18

    デバイスとリソース使用率

    表 4 に、 XC7K325T デバイスのリ ソース使用率を示します。

    参考資料 この文書では、 次の参考資料を使用しています。

    1. UG683 : 『EDK コンセプ ト、 ツール、 テクニッ ク』2. DS785 : 『LogiCORE IP AXI Universal Serial Bus (USB) 2.0 デバイス (v3.02.a) データシート 』

    (EDK 14.3 リ リース )

    改訂履歴 次の表に、 この文書の改訂履歴を示します。

    ソース コードの形式 VHDL/Verilog (一部のコアは暗号化済み)既存のザイ リ ンク ス アプ リ ケーシ ョ ン ノー ト / リフ ァ レ ン スデザイ ン、 CORE Generator ツール、サードパーティからデザインへのコード /IP の使用

    VHDL/Verilog (一部のコアは暗号化済み)

    シミ ュレーシ ョ ン

    既存のザイ リ ンク ス アプ リ ケーシ ョ ン ノー ト / リフ ァ レ ン スデザイ ン、 CORE Generator ツール、サードパーティからデザインへのコード /IP の使用

    なし

    機能シ ミ ュレーシ ョ ンの実施 なし

    タイ ミ ング シ ミ ュレーシ ョ ンの実施 なし機能シ ミ ュ レーシ ョ ンおよびタ イ ミ ング シ ミ ュレーシ ョ ンへのテス ト ベンチの使用

    なし

    テス ト ベンチの形式 なし使用したシ ミ ュレータ ツール/バージ ョ ン なしSPICE/IBIS シ ミ ュレーシ ョ ンの実施 なしインプリ メンテーシ ョ ン

    使用した合成ツール/バージ ョ ン使用したインプリ メンテーション ツール/バージョン ISE Design Suite 14.3 : System Edition使用したインプリ メンテーション ツール/バージョン ISE Design Suite 14.3 : System Editionスタティ ッ ク タイ ミ ング解析の実施 あ り (PAR/TRCE 内の通過タイ ミ ング)ハードウェア検証

    ハードウェア検証の実施 あ り

    検証に使用したハード ウェア プラ ッ ト フォーム KC705 ボード

    表 3 : リファレンス デザインのパラメーター (続き)

    パラメーター 説明

    表 4 : デバイスと リソース使用率

    デバイススピード グレード

    パッケージスライス レジスタ

    配置済みの

    スライス

    スライス LUT I/O RAMB36E1

    XC7K325T -2 FFG900 8002 (1%) 4364 (8%) 10995 (5%) 61 (12%) 11 (2%)

    日付 バージョ ン 内容

    2012 年 12 月 19 日 1.0 初版リ リース

    http://japan.xilinx.comhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx14_2/edk_ctt.pdfhttp://www.origin.xilinx.com/support/documentation/ip_documentation/axi_usb2_device/v3_02_a/ds785_axi_usb2_device.pdf

  • Notice of Disclaimer

    XAPP891 (v1.0) 2012 年 12 月 19 日 japan.xilinx.com 19

    Notice of Disclaimer

    The information disclosed to you hereunder (the "Materials") is provided solely for the selection and useof Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OFMERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, the Materials (including your use of the Materials), including for any direct, indirect, special,incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials orto product specifications. You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent. Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

    Automotive Applications DisclaimerXILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE INANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONSRELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESSTHERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OFSOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNINGSIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATHOR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USEOF XILINX PRODUCTS IN SUCH APPLICATIONS.

    本資料は英語版 (v1.0) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあ り ます。

    日本語版は参考用と してご使用の上、 最新情報につきましては、 必ず最新英語版をご参照ください。

    この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、

    [email protected] までお知らせください。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

    http://japan.xilinx.comhttp://www.xilinx.com/warranty.htmhttp://www.xilinx.com/warranty.htm#critappsmailto:[email protected]

    AXI USB 2.0 デバイス : バルク転送およびアイソクロナス転送における パフォーマンスの検証概要はじめにマス ストレージ アプリケーションアイソクロナス アプリケーションコア パラメーターハードウェア要件AXI USB 2.0 デバイスの使用システム デザインリファレンス デザインの コンポーネントXAPP891 に付属 のハードウェア システムELF ファイルの 作成ホスト側 ドライバーの インストールソフトウェア要件ドライバーのインストールハードウェア要件ハードウェアのセットアップバルク USB としてボードを構成する手順アイソクロナス USB としてボードを構成する手順

    結果とまとめバルク トランザクションのパフォーマンス測定アイソクロナス トランザクションのパフォーマンス測定

    リファレンス デザインの パラメーターデバイスと リソース使用率参考資料改訂履歴Notice of DisclaimerAutomotive Applications Disclaimer