Upload
trancong
View
215
Download
0
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.