14
dg_sata_ip_userguide_kt7_jp.doc 2013/03/13 Pꜳ 1 + KC705 対応 SAA-IP R1.1J 2013/03/13 このは 製KC705 評価で動作すSAA-IP 向けのに関して、 ꜳꝏ/EDK上でのおSDK上でのMꝏBꜳの編集方法説明した のです。 (注: 本はꜳꝏ2012.4/EDK14.2/SDK14.2とした説明書であ、のに っては操作方法が変更さことがあす。) 1. 1. 1. 1. DDR3 IP DDR3 IP DDR3 IP DDR3 IP のについて のについて のについて のについて(AR#53420) (AR#53420) (AR#53420) (AR#53420) 本では DDR3 に MIG 1.8 IP 使っていす。 社の の AR#53240 にとでさた IP には問題があって修正用す必要があ す。 従ってにて本編集し再す前に、以下の 入手し 用してください。 の説明 RL: ://..ꝏ/ꝏ/ꜳ/53420. : “18ꜳꜳꝏꜳ.” MIG が更新さた場合、本が不要とな可能性があすので側にて確認してください。 2. 2. 2. 2. ꜳꝏ ꜳꝏ ꜳꝏ ꜳꝏ 2.1 2.1 2.1 2.1 ꜳꝏ ꜳꝏ ꜳꝏ ꜳꝏ 概要 概要 概要 概要 EDKSDKでの での での でのMicroBlaze 制約 制約 制約 制約 図 1-1: ꜳꝏ での SAA-IP 本はEDKとして構築さていす。 EDKでは、・として “.”が生成さので、I/O変更した場合はこの更新す必要があす。 EDK のすか、あいは“./ꝏ1//”にて直 接”.”開くことでの詳細参照できす。 EDKについては次の章で詳細説明 しす。 本はSAA-IP制御すたのMꝏBꜳとその(ꜳꜳꝏ.)が含てお、SDK にて”ꜳꜳꝏ.ff”にさす。 ꜳꝏに”ꜳꜳꝏ.ff”す ことで最終的なとな”.”が生成さ”./1”に格納さす。 FPGAのが完了すと組込たが動作しFPGAが起動しす。 SDK は”.”に格納さすが、詳細は後の章で説明しす。

dg sata ip userguide kt7 jp - ギガビットIPコアの 株式会 … 2013/03/13 Page 2 2.222..222.2 VivadoVivadoでのヅゴアヱ でのヅゴアヱでのヅゴアヱ更新方法

Embed Size (px)

Citation preview

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 1

+

KC705 対応 SATA-IP リファレンス・デザイン・ユーザ・ガイド Rev1.1J 2013/03/13

このドキュメントはXilinx 製KC705 評価ボードで動作するSATA-IP ホスト向けのリファレンス・デザインに関して、

Vivado/EDKツール上でのハードウエアおよびSDKツール上でのMicroBlazeファームウエアの編集方法を説明したも

のです。 (注: 本ドキュメントはVivado2012.4/EDK14.2/SDK14.2をベースとした説明書であり、ツールのアップデートに

よっては操作方法が変更されることがあります。)

1.1.1.1. DDR3 IPDDR3 IPDDR3 IPDDR3 IP のパッチについてのパッチについてのパッチについてのパッチについて(AR#53420)(AR#53420)(AR#53420)(AR#53420) 本リファレンス・デザイン・プロジェクトでは DDR3 メモリ・コントローラに MIG v1.8 IP を使っています。 Xilinx 社の Web

サイトの AR#53240 によるとデフォルトでインストールされた IP コアには問題があってパッチ修正を適用する必要があ

ります。 従ってユーザにて本デザインを編集し再コンパイルする前に、以下の Web サイトよりパッチ・ファイルを入手し

適用してください。

パッチの説明 URL: http://www.xilinx.com/support/answers/53420.htm

パッチ・ファイル: “mig_v1_8_calibration_patch.zip”

MIG ツールが更新された場合、本パッチが不要となる可能性がありますのでユーザ側にて確認してください。

2.2.2.2. VivadoVivadoVivadoVivado ツールツールツールツール 2.12.12.12.1 VivadoVivadoVivadoVivado プロジェクトプロジェクトプロジェクトプロジェクト概要概要概要概要

EDKサブシステムおよびラッパサブシステムおよびラッパサブシステムおよびラッパサブシステムおよびラッパ

SDKでのでのでのでのMicroBlaze

ファームウエアファームウエアファームウエアファームウエア

制約制約制約制約ファイルファイルファイルファイル

図 1-1: Vivado ツールでの SATA-IP リファレンス・デザイン・プロジェクト

本プロジェクトはEDKサブシステムをベースとして構築されています。 EDKサブシステムでは、ラッパ・ファイルとして

“system_stub.vhd”が生成されるので、I/Oポートを変更した場合はこのファイルも更新する必要があります。 EDKサブ

システムのアイコンをダブルクリックするか、あるいは“system_stub.srcs/sources_1/edk/system”ホルダにて直

接”system.xmp”を開くことでプロジェクトの詳細を参照できます。 EDKサブシステムについては次の章で詳細を説明

します。

本プロジェクトはSATA-IPを制御するためのMicroBlazeとそのファームウエア(sata_host.c)が含まれており、SDKツー

ルにて”sata_host.elf”ファイルにコンパイルされます。 Vivadoプロジェクトに”sata_host.elf”ファイルをインクルードする

ことで最終的なビットファイルとなる”system_stub.bit”が生成され”system\stub.runs/impl_1”ホルダに格納されます。

FPGAへのコンフィグレーションが完了すると組み込まれたファームウエアが動作しFPGAが起動します。 SDKプロジェ

クトは”system_stub.sdk”ホルダに格納されますが、詳細は後の章で説明します。

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 2

2.22.22.22.2 VivadoVivadoVivadoVivado でのデザインでのデザインでのデザインでのデザイン更新方法更新方法更新方法更新方法 � EDKサブシステムのデザインを更新した場合、ユーザはEDKアイコンを右クリックし、”Reset Output products…”

メニューを選択することでサブシステムのネットリストを削除する必要があります。 このメニューを図2-1に示しま

す。

図 2-1: EDK サブシステムのリセット

� 続いて、図2-2のように”Generate Bitstream”メニューでプロジェクトを再実装します。

図 2-2: プロジェクトの再実装

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 3

3.3.3.3. EEEEDKDKDKDK ツールツールツールツール 3.13.13.13.1 EDKEDKEDKEDK プロジェクトプロジェクトプロジェクトプロジェクト概要概要概要概要

SATA-IPコアはMaster I/FとしてAXI4バス経由でDDR3RAMへデータを転送する

SATAチャネル数はIPカタログ内のaxi42sataをインスタンスすることで追加できる

MicroBlazeはLMBバスI/Fを介してSATA-IPコアをレジスタ経由でRead/Write制御する

図 3-1: EDK ツールでのプロジェクト画面

EDKツールでのデザインにおいてSATA-IPコアは、コアとAXI標準バスとを接続するブリッジ回路と一緒に”axi42sata”

モジュール内で実装されます。 この”axi42sata”モジュールはEDKシステムにインポート済みのため、図3-1に示すよう

に画面左ウインドウのIPカタログに表示されます。 ”axi42sata”は2種類の標準バスでインターフェイスしますが、一つ

はDDR3とデータを転送するためのAXI4バスであり、もう一つはMicroBlazeがレジスタ経由で制御するためのLMBバス

です。 本システムにおいてAXI4バスの動作周波数は200MHzでありDDR3と同期しますが一方LMBバスの動作周波

数は150MHzでありMicroBlazeと同期します。

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 4

3.23.23.23.2 AXI2SATAAXI2SATAAXI2SATAAXI2SATA ホルダホルダホルダホルダ ”axi42sata”モジュールの HDL ソースコードはリファレンス・デザイン・プロジェクトの”pcores/asi2sata_v1_00_a ホルダ

以下に格納されており、それぞれのファイル詳細を以下に説明します。

図 3-2: axi42sata モジュール内のホルダおよびファイル

””””datadatadatadata””””ホルダホルダホルダホルダ

� axi42sata_v2_1_0.bbd: “axi42sata”モジュール内で使われているネットリスト・ファイルのリスト

図 3-3: axi42sata モジュールの BBD ファイル

� axi42sata_v2_1_0.pao: HDL ファイルのリスト

図 3-4: axi42sata モジュールの PAO ファイル

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 5

� axi42sata_v2_1_0.mpd: 周辺へのインターフェイスを定義したポートリスト、バス I/F、パラメータ等

図 3-5: axi42sata モジュールの MPD ファイル

””””hdl/vhdlhdl/vhdlhdl/vhdlhdl/vhdl””””ホルダホルダホルダホルダ

� AXI42SATA.vhd: axi42sataモジュールのトップ階層であり、SATA-IPコア、物理層およびバスI/F用の周

辺ロジックを含む

� sata2phy_k7.vhd: SATA の物理層ソースコードであり速度自動ネゴシエーション機能や OOB 制御回路を

含む

� speed_neg_control.vhd: 速度自動ネゴシエーション機能の HDL ソースコード

� oob_control.vhd: OOB タイミング制御の HDL ソースコード

””””netlistnetlistnetlistnetlist””””ホルダホルダホルダホルダ

� asyncfifo512x32/512x36.ngc: SATA-IP コア内部で使われる非同期 FIFO ネットリスト

� sata_lt_ll.ngc: SATA-IP コア

� Ff256to32/32to256.ngc: バス・サイズの変換用の FIFO ネットリスト

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 6

3.33.33.33.3 AXI42SATAAXI42SATAAXI42SATAAXI42SATA のののの更新方法更新方法更新方法更新方法 “axi42sata”モジュールをユーザが編集する場合、以下の手順でプロジェクトを更新することができます。 プロジェ

クトが Vivado から開かれている場合、以下ステップ(6)~(8)は不要で 2-2 章で説明した Vivado での再実装の方法をと

ることになります。

1) プロジェクトを開いている場合一旦 EDK ツールを閉じます。

2) AXI42SATA.vhd のソースコードを編集します。

3) ポートを変更した場合は“axi42sata_v2_1_0.mpd”内のポート・リストを追加・削除します。 その後”system.mhs”ファ

イルを開きシステムで”axi42sata”の接続を追加・編集します。

4) “axi42sata”モジュールの下位にて新たなサブ・モジュールを追加する場合、追加サブモジュールが HDL ファイル

の場合は”hdl/vhdl”ホルダに格納し、ネットリスト・ファイルの場合は”netlist”ホルダに格納してください。 その後

“axi42sata_v2_1_0.bbd”と“axi42sata_v2_1_0.pao”を更新してください。

5) EDK から”system.xmp”を開き、全システムの接続をチェックします。

6) 下図 3-6 のように Hardware->Clean Hardware メニューを選択し、以前のバックアップ・ファイルをクリーン・アップ

します。

図 3-6: Clean Hardware メニュー

7) Device Configuration->Update Bitstream メニューにて bit ファイルを更新します。

図 3-7: Update Bitstream メニューで更新

8) コンパイルが終わったら”implementation”ホルダ内に”download.bit”が作成されます。

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 7

4.4.4.4. SDKSDKSDKSDK ツールツールツールツール 4.14.14.14.1 EDKEDKEDKEDK ツールからのエクスポートツールからのエクスポートツールからのエクスポートツールからのエクスポート このセクションではリファレンス・デザインで新たな SDK プロジェクトを EDK ツールから作成する方法を説明します。 リ

ファレンス・デザイン内の”sata_host.c”のみを更新する場合、以下のステップ 3)~10)は省略できます。

1) “Export Design”アイコンを選択し“Export & Launch SDK”ボタンの押下することで、ハードウエアを EDK から SDK

のワークスペースにエクスポートします。

図 4-1: SDK へのハードウエアのエクスポート

2) “workspace”ホルダを選択します。 本リファレンス・デザインでは”workspace”は”SDK”ホルダの下にあるサブ・

ホルダとなります。 するとハードウエアのプラットフォームは図 4-3 に示すように SDK のプロジェクト・エクスプロ

ーラにエクスポートされます。

図 4-2: SDK の workspace を選択

図 4-3: SDK 内のハードウエア・プラットフォーム

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 8

3) File->New->Xilinx Board Support Package メニューを選択し“Board Support Package”を生成します。 そして

“standalone”を選んで “Finish”ボタンをクリックします。

図 4-4: BSP 生成

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 9

4) Library option では設定が終わったら OK をクリックします。 その後 BSP ホルダが生成され図 4-5 のように SDK

のプロジェクト・エクスプローラに表示されます。

図 4-5: BSP 生成の完了

5) 図 4-6 に示すように、File->New->Xilinx C Project メニューで新しい C プロジェクトを生成します。

図 4-6: 新しい C プロジェクトの生成

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 10

6) Select Project Template で“Empty Application”を選択し、プロジェクト名を Project name にて例えば”sata_host”

のように指定します。 “Next”ボタンを押下して次に進みます。

図 4-7: プロジェクト名を指定

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 11

7) “Target an existing Board Support Package”を選択し“standalone_bsp_0”も選択します。 そして”Finish”ボタンを

押下しセットアップを完了します。 新しいプロジェクト(“sata_host”)が図 4-8 に示すようにプロジェクト・エクスプロ

ーラに表示されます。

図 4-8: C プロジェクトで BSP を選択

8) プロジェクト・エクスプローラのプロジェクト・ネーム・ホルダ(“sata_host”)で右クリックし、New->Fileで新しいCソー

スコードを生成します。

図 4-9: 新しい C ファイルの生成

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 12

9) “src”ホルダを選択しファイル名(例えば“sata_host.c”)を入力します。 “Finish”ボタンの押下で完了すると、図

4-10に示すようにプロジェクト・エクスプローラで”src”ホルダの下に新しい C コード(sata_host.c)が表示されます。

図 4-10: C ソース・コードを追加

10) 生成した C ソースコード(“sata_host.c”)を編集します。 ユーザが初めて使うときは、プロジェクト名(“sata_host”)

を右クリックして“Geneate Linker Script”を選択することで、Linker Script を生成する必要があります。 この場合

新しいウインドウにて”Generate”ボタンで生成します。

図 4-11: Linker Script の生成

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 13

11) ソースコード(“sata_host.c”)を編集した後は、Refresh メニューを選択して再コンパイルする必要があります。

図 4-12: プロジェクトのリフレッシュ

12) 実ボードにて動作させる場合は Xilinx Tools->Program FPGA メニューを実行してください。 そして Browse ボタン

に て ”hw_platform” ホ ル ダ か ら ”system.bit” と ”system_bd.bmm” を 選 択 し 、 bootloop か ら 新 し い フ ァ イ ル

“sata_host.elf”に変更します。 “Program”ボタンで FPGA へのプログラミングが開始します。

図 4-13: SDK から FPGA へプログラミング

13) プログラム完了後 FPGA は新しいファームウエアで動作します。

dg_sata_ip_userguide_kt7_jp.doc

2013/03/13 Page 14

4.24.24.24.2 VivadoVivadoVivadoVivado ツールからのエクスポートツールからのエクスポートツールからのエクスポートツールからのエクスポート このセクションではリファレンス・デザインで新たな SDK プロジェクトを Vivado ツールから作成する方法を説明します。

1) ハードウエアをエクスポートする前に“Implemented Design”メニューを選択し Vivado からデザインの詳細を開きま

す。

2) “File->Export->Export Harware for SDK…”メニューを選択し“Launch SDK”をチェックして OK ボタンを押します。

これにより Vivado から SDK のワークスペースへハードウエアをエクスポートします。 この手順で

“system_stub.sdk” ホ ル ダ が プ ロ ジ ェ ク ト の デ ィ レ ク ト リ の 下 に 生 成 さ れ SDK の ワ ー ク ス ペ ー ス が

“../SDK/SDK_Export”のパスに定義されます。

図 4-14: Vivado ツールから SDK へのエクスポート

3) 前の”4.1 EDK ツールからのエクスポート”のステップ(3)以降を実行します。 このステップは EDK と Vivado で似て

いますが SDK ワークスペースのパスは違ったものとなります。

5.5.5.5. 更新履歴更新履歴更新履歴更新履歴

Revision Date Description

1.0J 2013/02/19 日本語初期版作成

1.1J 2013/03/13 リファレンス・デザインの Vivado2012.4 対応による説明の変更

Copyright: 2013 Design Gateway Co,Ltd.