概要
こ のアプ リ ケーシ ョ ン ノ ー ト では、バル ク お よ びア イ ソ ク ロ ナ ス ト ラ ンザ ク シ ョ ンにおいて、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
デバイ ス
:
バル ク 転送およびア イ ソ ク ロナス転送における
パフ ォ ーマ ン スの検証
マスス ト レージ ア プ リ ケーシ ョ ン
マス
ス ト レージ
ア プ リ ケーシ ョ ン
マ ス ス ト レージアプ リ ケーシ ョ ンはバル ク ト ラ ンザ ク シ ョ ン を使用 し ます。 バル ク ト ラ ンザ ク シ ョ ン を利用す る には、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 ト ー ク ンに続いてデー タ パケ ッ ト を送信 し ます。
コ アパラ メ ー タ ー 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 1
PHY リ セ ッ ト タ イ プの選択 C_PHY_RESET_TYPE active_low エ ラ ーロ ジ ッ ク の組み込みの選択 C_INCLUDE_USBERR_LOGIC 1
使用す る バ ッ フ ァ ータ イ プの選択 C_ULPI_CLK_BUFFER_TYPE BUFR ア ラ イ メ ン ト さ れていない ト ラ ン ザ ク シ ョ ン
のサポー ト の選択
AXI USB 2.0 デバイ スの使用
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 デバイ スア プ リ ケーシ ョ ンの標準的な シス テム MicroBlaze Processor AXI GPIO AXI UARTLite AXI USB2
Device USB PHY ULPI Interface DDR Interface DDR Controller DDR Memory AXI4Lite Interconnect AXI4 Interconnect X891_01_100912
リ フ ァ レ ン スデザイ ンの コ ンポーネ ン ト ロ セ ッ サシ ス テ ム の リ セ ッ ト ブ ロ ッ ク は、 シ ス テ ム全体に ク ロ ッ ク を供給 し 、 リ セ ッ ト を行い ま す。 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/A
axi_7series_ddrx 1.06.a 0xb0000000 0xbfFFFFFF axi_usb2_device 3.02.a 0x44800000 0x4480ffff axi_uartlite 1.02.a 0x40600000 0x4060ffff lmb_bram_if_cntlr 3.10.a 0x00000000 0x00001fff axi_intc 1.02.a 0x41200000 0x4120ffff Mdm 2.10.a 0x41400000 0x4140ffff axi_gpio 1.01.b 0x40000000 0x4000ffff
proc_sys_reset 3.00.a N/A N/A clock_generator 4.03.a N/A N/A axi_interconnect – lite 1.06.a N/A N/A axi_interconnect – full interface 1.06.a N/A N/A
XAPP891 に付属のハー ド ウ ェ ア シス テム
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 : パ ラ メ ー タ ーの選択
XAPP891 に付属のハー ド ウ ェ ア シス テム
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] タ ブ
XAPP891 に付属のハー ド ウ ェ ア シス テム
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<7> LOC = AC26 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<6> LOC = AD26 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<5> LOC = AK29 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<4> LOC = AK30 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<3> LOC = AJ28 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<2> LOC = AJ29 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<1> LOC = AE30 | IOSTANDARD=LVCMOS25; NET axi_usb2_device_0_ULPI_Data_pin<0> LOC = AF30 | IOSTANDARD=LVCMOS25;
12. [Hardware] → [Generate BitStream] を選択 し 、 ビ ッ ト ス ト リ ーム フ ァ イ ルを生成 し ます。
13.ビ ッ ト ス ト リ ーム フ ァ イ ルの生成後、[Project] → [Export Hardware to SDK] を選択 し 、 ビ ッ ト ス ト リ ーム フ ァ イ ルを SDK にエ ク ス ポー ト し ます。
X-Ref Target - Figure 5
図 5 : デバ ッ グポー ト の削除
ELF フ ァ イルの作成
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 : 新 し いプ ロ ジ ェ ク ト の作成
ホス ト 側 ド ラ イバーのイ ン ス ト ール
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 Perfmon Setup 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 ケーブルホス ト 側 ド ラ イバーのイ ン ス ト ール
ハー ド ウ ェ アのセ ッ ト ア ッ プ
次の手順は、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 ボー ド のセ ッ ト ア ッ プ
ホス ト 側 ド ラ イバーのイ ン ス ト ール
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 と し てのボー ド 構成
ホス ト 側 ド ラ イバーのイ ン ス ト ール
結果 と ま と め
ド ラ イ バーが イ ン ス ト ール さ れ、 シ ス テ ムが検出 さ れた状態でUsbPerfmon.exeを開 く と 、図9の画 面がデ ィ ス プ レ イ に表示 さ れます。 パフ ォーマ ン ス測定ツールは、GUI を使用 し て転送レー ト と テ ス ト の タ イ プ を変更で き る オプシ ョ ン を 備えてい ます。 ユーザーが変更で き る オプシ ョ ンは、 デ ィ ス プ レ イ の下部にあ り ます。 出力はデ ィ ス プ レ イ の右側に表示 さ れます。 ユーザーが設定で き る パ ラ メ ー タ ーには次の も のがあ り ます。• [Test Type] : テ ス ト は [Read] ま たは [Write] モー ド で実行で き ます。 読み出 し ト ラ ンザ ク シ ョ ン と 書 き 込み ト ラ ンザ ク シ ョ ンの スループ ッ ト は別々に測定で き ます。
• [Data Limit Settings] : 1 ト ラ ンザ ク シ ョ ン当た り の最大伝送デー タ は、 こ の タ ブで制限で き ます。
• [Data Transfer Settings] : 転送レー ト の設定は、 こ の タ ブで変更で き ます。[Start Rate] オプシ ョ ン は、 ホ ス ト か ら のデー タ 転送の ス タ ー ト レ ー ト を 指定 し ま す。 転送 レ ー ト の変化パ タ ー ン は、
[Transfer Pattern] オプシ ョ ンで設定で き ます。
バル ク
ト ラ ンザク シ ョ ンのパフ ォ ーマ ン ス測定
X-Ref Target - Figure 9
図 9 : USB パフ ォ ーマ ン スモニ タ ー
ホス ト 側 ド ラ イバーのイ ン ス ト ール
• 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)
ホス ト 側 ド ラ イバーのイ ン ス ト ール
図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)
ホス ト 側 ド ラ イバーのイ ン ス ト ール
ア イ ソ ク ロナス
ト ラ ンザ ク シ ョ ンのパ フ ォ ーマ ン ス測定
図12に、 ス タ ー ト デー タ レー ト が 1024KB/s で、 固定増分パ タ ーン を使用 し た ア イ ソ ク ロ ナ ス Out ト ラ ンザ ク シ ョ ンのパフ ォーマ ン ス測定を示 し ます。 達成 さ れた最大スループ ッ ト は 22.7MB/s で、 理論 上の最大スループ ッ ト は 24MB/s です。
X-Ref Target - Figure 12
図 12 : ア イ ソ ク ロナス Out ト ラ ンザク シ ョ ンのパフ ォ ーマ ン ス測定
リ フ ァ レ ン スデザイ ンのパラ メ ー タ ー 図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
デバイ ス と リ ソ ース使用率
デバイ ス と
リ ソ ース使用率
表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%)
日付 バージ ョ ン 内容
Notice of Disclaimer
Notice of
Disclaimer
The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of 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 OF MERCHANTABILITY, 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 other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, 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 loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:
http://www.xilinx.com/warranty.htm#critapps.
Automotive Applications Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS IN SUCH APPLICATIONS.
本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected]ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ールア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ め ご了承 く だ さ い。