エンベデッド システム ツール リファレンス マニュアル - Xilinx...R...

292
R 本資料は英語版 (v10.0) を翻訳したものです。 英語の更新バージ ョ ンがリ リースされている場合には、 最新の英語版 を必ずご参照 く ださい。 エンベデッド システム ツール リファレンス マニュアル エンベデッ ド開発キッ ト EDK 10.1 サービス パック 1

Transcript of エンベデッド システム ツール リファレンス マニュアル - Xilinx...R...

Page 1: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

R

本資料は英語版 (v10.0) を翻訳したものです。 英語の更新バージ ョ ンがリ リースされている場合には、 最新の英語版

を必ずご参照ください。

エンベデッ ド システム ツール リファレンス マニュアル

エンベデッ ド開発キッ ト

EDK 10.1 サービス パック 1

Page 2: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com EDK 10.1 サービス パッ ク 1

Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in thedevelopment of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download,display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical,photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liabilityarising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentationwithout notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise youof any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that maybe provided to you in connection with the Information.

THE DOCUMENTATION IS DISCLOSED TO YOU "AS-IS" WITH NO WARRANTY OF ANY KIND. XILINX MAKESNO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THEDOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANYCONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OFDATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.

© Copyright 2002-2008 Xilinx, Inc. All rights reserved.

Xilinx, the Xilinx logo, the Brand Window, Virtex, Spartan, CoolRunner, ISE, and other designated brands included herein aretrademarks of Xilinx, Inc. Certain other third-party trademarks are used under license, for further information, seehttp://japan.xilinx.com/legal.htm. All other trademarks are the property of their respective owners.

この日本語訳 (参考のみ) は、 http://japan.xilinx.com/support/documentation/disclaimer.htm を参照して ください。

R

Page 3: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

EDK 10.1 サービス パッ ク 1 www.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

エンベッ ド システム ツール リフ ァレンス マニュアル EDK 10.1 サービス パック 1

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

バージョ ン 改訂内容

2002 年 6 月 24 日 1.0 EDK (エンベデッ ド プロセッサ開発キッ ト ) 初期リ リース

2002 年 8 月 13 日 1.1 EDK (v3.1) リ リース

2003 年 9 月 2 日 1.3 EDK 6.1 リ リース

2004 年 1 月 30 日 1.4 EDK 6.2i リ リース

2004 年 3 月 19 日 2.0 サービス パッ ク用に更新

2004 年 8 月 20 日 3.0 EDK 6.3i リ リース

2005 年 2 月 15 日 4.0 EDK 7.1i リ リース

2005 年 4 月 28 日 4.1 サービス パッ ク用に更新

2005 年 7 月 5 日 4.2 サービス パッ ク用に更新

2005 年 10 月 24 日 5.0 EDK 8.1i リ リース

2006 年 6 月 23 日 6.0 EDK 8.2i リ リース

2007 年 1 月 8 日 7.0 EDK 9.1i リ リース

付録 C 「EDK Tcl インターフェイス」 を追加

2007 年 9 月 5 日 8.0 EDK 9.2i リ リース

2008 年 1 月 14 日 9.0 EDK 10.1 リ リース

2008 年 2 月 25 日 10.0 EDK 10.1 サービス パッ ク 1.1 リ リース

Page 4: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com EDK 10.1 サービス パッ ク 1

Page 5: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 5EDK 10.1 サービス パッ ク 1

R

このマニュアルについて

エンベデッ ド開発キッ ト (EDK) は、MicroBlaze™ ソフ ト プロセッサおよび PowerPC® ハード プロセッサを使用してエンベデッ ド プロセッサ システムを構築するために必要な、 設計ツールおよ

びペリ フェラルを含む開発キッ トです。

このマニュアルには、 EDK に含まれるエンベデッ ド システム ツールに関する情報が掲載されてい

ます。 これらのツールは、プロセッサ プラ ッ ト フォーム設計ユーティ リ ティ、 ソフ ト ウェア アプリ

ケーシ ョ ン開発ツール、 デバッグ ツール、 デバイス ド ラ イバおよびライブラ リで構成されており、

MicroBlaze および PowerPC プロセッサとそのペリ フェラルの機能を 大限に活用した設計が可能

です。

マニュアルの内容

このマニュアルは、 次の章から構成されています。

• 第 1 章 「エンベデッ ド システムとツールの概要」

• 第 2 章 「Platform Generator (Platgen)」

• 第 3 章 「Simulation Model Generator (Simgen)」

• 第 4 章 「Library Generator (Libgen)」

• 第 5 章 「Virtual Platform Generator (VPgen)」

• 第 6 章 「Platform Specification Utility (PsfUtil)」

• 第 7 章 「バージ ョ ン管理ツール」

• 第 9 章 「Bitstream Initializer (BitInit)」

• 第 8 章 「フラ ッシュ メモ リのプログラム」

• 第 10 章 「GNU コンパイラ ツール」

• 第 11 章 「GNU デバッガ (GDB)」

• 第 12 章 「Xilinx Microprocessor Debugger (XMD)」

• 第 13 章 「System ACE ファ イル ジェネレータ (GenACE)」

• 第 14 章 「コマンド ラ イン モード」

• 第 15 章 「EDK シェル」

• 付録 A 「GNU ユーティ リ ティ」

• 付録 B 「割り込み制御」

• 付録 C 「EDK Tcl インターフェイス」

• 付録 D 「用語集」

Page 6: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

6 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

このマニュアルについてR

その他のリソース

• ザイ リ ンクスの Web サイ ト

http://japan.xilinx.com/

• ザイ リ ンクス アンサー ブラウザおよびテクニカル サポート ウェブケース

http://japan.xilinx.com/support

• XPS (Xilinx Platform Studio) と EDK の Web サイ ト

http://japan.xilinx.com/ise/embedded_design_prod/platform_studio.htm

• XPS と EDK の資料

http://japan.xilinx.com/ise/embedded/edk_docs.htm

• XPS/EDK でサポート される IPhttp://japan.xilinx.com/ise/embedded/edk_ip.htm

• EDK のサンプル デザイン

http://japan.xilinx.com/ise/embedded/edk_examples.htm

• チュート リ アル

http://japan.xilinx.com/support/techsup/tutorials/index.htm

• データシート

http://japan.xilinx.com/xlnx/xweb/xil_publications_index.jsp

• プロブレム ソルバー

http://japan.xilinx.com/support/troubleshoot/psolvers.htm

• ISE マニュアル

http://japan.xilinx.com/support/software_manuals.htm

• その他のマニュアル

http://japan.xilinx.com/support/documentation/

• GNU マニュアル

http://www.gnu.org/manual

Page 7: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 7EDK 10.1 サービス パッ ク 1

表記規則R

表記規則

このマニュアルでは、 次の表記規則を使用しています。 各規則について、 例を挙げて説明します。

書体

次の規則は、 すべてのマニュアルで使用されています。

表記規則 使用箇所 例

Courier フォン トシステムが表示する メ ッセージ、プロンプ ト、プログラム ファ イルを表示します。

speed grade: - 100

Courier フォン ト (太字)

構文内で入力する コマン ド を示します。

ngdbuild design_name

イタ リ ッ ク フォン トユーザーが値を入力する必要のある構文内の変数に使用します。

ngdbuild design_name

二重/一重かぎかっこ『 』、 「」

『 』 はマニュアル名を、 「 」 はセクシ ョ ン名を示します。

詳細は、 『開発システム リ ファレンス ガイ ド』 の 「PAR」 を参照して ください。

角かっこ [ ]

オプシ ョ ン の入力 ま たはパ ラメータを示しますが、 bus[7:0]のよ う なバス仕様では必ず使用します。 また、 GUI 表記にも 使用します。

ngdbuild [option_name] design_name

[File] → [Open] をク リ ッ ク します。

中かっこ { }1 つ以上の項目を選択するためのリ ス ト を示します。

lowpwr ={on|off}

縦棒 |選択する リ ス ト の項目を分離します。

lowpwr ={on|off}

縦の省略記号...

繰り 返し項目が省略されているこ とを示します。

IOB #1: Name = QOUT’ IOB #2: Name = CLKIN’...

横の省略記号 . . . 繰り 返し項目が省略されているこ とを示します。

allow block block_name loc1 loc2 ... locn;

Page 8: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

8 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

このマニュアルについてR

オンライン マニュアル

このマニュアルでは、 次の規則が使用されています。

表記規則 使用箇所 例

青色の文字マニュアル内の相互参照を示します。

詳細は、 「その他のリ ソース」 を参照してください。

詳細は、第 1 章の「タイ トル フォーマッ ト 」 を参照してください。

赤色の文字ほかのマニュアルへの相互参照を示します。

詳細は、 『Virtex-II Platform FPGA ユーザー ガイ ド』 の図 2-5 を参照してください。

青色の下線付き文字Web サイ ト (URL) へのハイパーリ ンクです。

新のスピード ファ イルは、http://japan.xilinx.com から入手できます。

Page 9: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 9EDK 10.1 サービス パッ ク 1

このマニュアルについて

マニュアルの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

書体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

オンライン マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

第 1 章 : エンベデッ ド システムとツールの概要

EDK について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

設計プロセスの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

ハードウェア開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

ソフ ト ウェア開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

シ ミ ュレーシ ョ ンを使用したハード ウェアの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

デバッグによるソフ ト ウェアの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

デバイスのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

EDK ツールおよびユーティ リ ティの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Xilinx Platform Studio (XPS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

EDK コマンド ラ イン モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Base System Builder (BSB) ウ ィザード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Create and Import Peripheral Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

コプロセッサ ウ ィザード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Platform Generator (Platgen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Library Generator (Libgen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

GNU コンパイラ ツール (GCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Debug Configuration Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Xilinx Microprocessor Debugger (XMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

GNU デバッガ (GDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Simulation Model Generator (Simgen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

シ ミ ュレーシ ョ ン ラ イブラ リ コンパイラ (CompEDKLib) . . . . . . . . . . . . . . . . . . . . . . . . . 33

バス ファンクシ ョ ン モデル (BFM) コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Bitstream Initializer (BitInit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

System ACE ファ イル ジェネレータ (GenACE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

フラ ッシュ メモ リ プログラマ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

フォーマッ ト リ ビジ ョ ン ツール (revup) および Version Management Wizard . . . . . . . . . . 34LibXil Memory File System (LibXil MFS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Platform Specification Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

プロジェク トの作成と管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

EDK フローの制御 (アドバンス) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

目次

Page 10: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

10 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

インプ リ メンテーシ ョ ンおよびダウンロード制御ファイル . . . . . . . . . . . . . . . . . . . . . 36

第 2 章 : Platform Generator (Platgen)機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ツール要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Platgen の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Platgen のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ディ レク ト リ構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

hdl ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

implementation ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

synthesis ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

BMM フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

合成ネッ ト リ ス ト キャ ッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

第 3 章 : Simulation Model Generator (Simgen)Simgen の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

シ ミ ュレーシ ョ ン ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

ザイ リ ンクス ISE ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

UNISIM ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

SIMPRIM ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

XilinxCoreLib ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

ザイ リ ンクス EDK ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

EDK ライブラ リの検索順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

CompXLib ユーティ リ ティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

CompEDKLib ユーティ リ ティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

CompEDKLib コマンドの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

使用法 1 : GUI を起動してザイ リ ンクスおよび EDK のシ ミ ュレーシ ョ ン ライブラ リ を起動する場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

使用法 2 : EDK に組み込まれたレポジ ト リに HDL ソースをコンパイルする場合 . . . 47

使用法 3 : 独自のレポジ ト リに HDL ソースをコンパイルする場合 . . . . . . . . . . . . . . . 47

その他 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

シ ミ ュレーシ ョ ン モデルのインプ リ メンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

ビヘイビア モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

構造モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

タイ ミ ング モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

単一言語モデルと混合言語モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

XPS のバッチ モードを使用したシ ミ ュレーシ ョ ン モデルの作成 . . . . . . . . . . . . . . . . . . . . 50

Simgen の構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Simgen のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Page 11: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 11EDK 10.1 サービス パッ ク 1

目次R

メモ リの初期化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

テス トベンチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

VHDL テス トベンチの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Verilog テス トベンチの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

デザインのシ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

第 4 章 : Library Generator (Libgen)概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Libgen の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Libgen のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

ディ レク ト リ構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

UNIX のディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

PC のディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

追加ディ レク ト リの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

ディ レク ト リの検索順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

include ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

lib ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

libsrc ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

code ディ レク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

ラ イブラ リおよびド ライバの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

基本的な概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

MDD、 MLD、 および Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

MSS ファ イルのパラ メータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

ド ラ イバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

OS ブロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

割り込みと割り込みコン ト ローラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

インスタンシエーシ ョ ンの重要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

割り込みコン ト ローラ ド ラ イバのカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68MicroBlaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

PowerPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

XMDStub ペリ フェラル (MicroBlaze 専用) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

STDIN および STDOUT ペリ フェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

第 5 章 : Virtual Platform Generator (VPgen)概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

VPgen の使用法とコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

使用可能なモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Page 12: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

12 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

第 6 章 : Platform Specification Utility (PsfUtil)PsfUtil のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

MPD ファ イル作成プロセスの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

MPD ファ イル自動生成の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

バス インターフェイスを 1 つ使用するペリ フェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

信号の命名規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

PsfUtil の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

複数のバス インターフェイスを使用するペリ フェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

非排他的バス インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

排他的バス インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

透過バス インターフェイスを使用するペリ フェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

BRAM ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

ポイン ト ツーポイン ト接続を含むペリ フェラル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

PsfUtil での DRC チェッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

HDL ソース エラー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

バス インターフェイス チェッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

HDL ペリ フェラルの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

バス インターフェイスの命名規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

VHDL ジェネ リ ッ クの命名規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

予約済みパラ メータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

バス インターフェイス信号の命名規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

グローバル ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

スレーブ DCR ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

DCR スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

DCR スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

スレーブ FSL ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

FSL スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

FSL スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

マスタ FSL ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

FSL マスタ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

FSL マスタ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

スレーブ LMB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

LMB スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

LMB スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

マスタ OPB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

OPB マスタ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

OPB マスタ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

スレーブ OPB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

OPB スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

OPB スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

マスタ /スレーブ OPB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

OPB マスタ /スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

OPB マスタ /スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

マスタ PLB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

PLB マスタ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

PLB マスタ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Page 13: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 13EDK 10.1 サービス パッ ク 1

目次R

スレーブ PLB ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

PLB スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

PLB スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

マスタ PLBV46 ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

PLBV46 マスタ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

PLBV46 マスタ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

スレーブ PLBV46 ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

PLBV46 スレーブ出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

PLBV46 スレーブ入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

第 7 章 : バージョ ン管理ツール

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

フォーマッ ト リ ビジ ョ ン ツールによるバッ クアップおよびアップデート . . . . . . . . . . . . . . . . . . 98

10.1 での変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

9.2i での変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

9.1i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

8.2i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

8.1i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.1i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.3i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.2i での変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

フォーマッ ト リ ビジ ョ ン ツールのコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Version Management Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

第 8 章 : フラ ッシュ メモリのプログラム

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

XPS および SDK を使用したフラ ッシュ デバイスのプログラム . . . . . . . . . . . . . . . . . . . . 102

サポート されるフラ ッシュ ハード ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

フラ ッシュ プログラマのパフォーマンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

フラ ッシュのプログラム設定のカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

ブート ローダ アプリ ケーシ ョ ン用に ELF ファ イルを SREC に手動で

変換する方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

操作上の注意点と回避策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

競合するセクタ レイアウ トでのフラ ッシュ デバイスの処理 . . . . . . . . . . . . . . . . . . . 106

AMD/富士通コマンド セッ トのデータ ポーリ ング アルゴ リズム . . . . . . . . . . . . . . . 107

第 9 章 : Bitstream Initializer (BitInit)概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

BitInit の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

BitInit のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

第 10 章 : GNU コンパイラ ツール

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

コンパイラのフレームワーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Page 14: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

14 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

コンパイラの使用法とオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

入力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

出力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

ファ イル タイプとその拡張子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

言語タイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

よ く使用されるコンパイラ オプシ ョ ンの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

一般オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116-E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

-c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

-g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

-gstabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

-v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

-save-temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

-o filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

-Wp,option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-Wa,option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-Wl,option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-B directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-L directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-I directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

-l library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

ライブラ リ検索オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119-l libraryname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

-L Lib Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

ヘッダ ファ イル検索オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119-I Directory_Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

デフォルトの検索パス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

リ ンカ オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120-defsym _STACK_SIZE=value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

-defsym _HEAP_SIZE=value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

メモ リのレイアウ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

予約済みメモ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

I/O メモ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

ユーザーおよびプログラム メモ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

オブジェク ト ファ イルのセクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.rodata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.sdata2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.sdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.sbss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Page 15: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 15EDK 10.1 サービス パッ ク 1

目次R

.bss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

.stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.fini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.ctors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.dtors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.got2/.got . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.eh_frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.tbss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.tdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.gcc_except_table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

.jcr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

.fixup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

リ ンカ スク リプ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

MicroBlaze コンパイラの使用法とオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

MicroBlaze コンパイラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

MicroBlaze コンパイラ オプシ ョ ンの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

プロセッサ機能選択オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127-mcpu=vX.YY.Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

-mno-xl-soft-mul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mxl-multiply-high . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mno-xl-multiply-high . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mxl-soft-mul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mno-xl-soft-div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mxl-soft-div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

-mxl-barrel-shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-mno-xl-barrel-shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-mxl-pattern-compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-mno-xl-pattern-compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-mhard-float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-msoft-float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

-mxl-float-convert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

-mxl-float-sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

一般プログラム オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130-msmall-divides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

-mxl-gp-opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

-mno-clearbss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

-mxl-stack-check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

アプリ ケーシ ョ ン実行モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131-xl-mode-executable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

-xl-mode-xmdstub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

-xl-mode-bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

-xl-mode-novectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

位置独立コード (PIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

MicroBlaze アプリ ケーシ ョ ン バイナリ インターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . 132

Page 16: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

16 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

MicroBlaze アセンブラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

MicroBlaze リ ンカ オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134-defsym _TEXT_START_ADDR=value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

-relax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

-N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

MicroBlaze リ ンカ スク リプ トで割り当てられるセクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . 135

リ ンカ スク リプ ト を記述またはカスタマイズする際のヒ ン ト . . . . . . . . . . . . . . . . . . . . . . 135

スタート アップ ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

第 1 段階の初期化ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

第 2 段階の初期化ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

その他のファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

スタート アップ ファ イルの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

C プログラムのスタート アップ コード サイズの削減 . . . . . . . . . . . . . . . . . . . . . . . . . 139

コンパイラ ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

スレッ ド セーフ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

コマンド ラ イン引数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

割り込みハンド ラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

interrupt_handler 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

save_volatiles 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

PowerPC コンパイラの使用法とオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

PowerPC コンパイラ オプシ ョ ンの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

PowerPC コンパイラ オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142-mcpu=440 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

-mfpu={sp_lite, sp_full, dp_lite, dp_full, none} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

-mppcperflib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

-mno-clearbss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

PowerPC リ ンカ オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144-defsym _START_ADDR=value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

PPC リ ンカ スク リプ トで割り当てられるセクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

リ ンカ スク リプ ト を記述またはカスタマイズする際のヒ ン ト . . . . . . . . . . . . . . . . . . . . . . 145

スタート アップ ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

初期化ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

スタート アップ ファ イルの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147xil-crt0.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

xil-pgcrt0.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

xil-sim-crt0.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

xil-sim-pgcrt0.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

その他のファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

スタート アップ ファ イルの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

C プログラムのスタート アップ コード サイズの削減 . . . . . . . . . . . . . . . . . . . . . . . . . 148

アプリ ケーシ ョ ンをブート ローダーで読み込む場合のスタート アップ ファ イルの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

コンパイラ ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

スレッ ド セーフ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

コマンド ラ イン引数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

その他のメモ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

Page 17: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 17EDK 10.1 サービス パッ ク 1

目次R

C++ コードのサイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

C++ 標準ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

位置独立コード (PIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

その他のオプシ ョ ンおよび機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

第 11 章 : GNU デバッガ (GDB)概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

GDB の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

GDB のコマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

GDB を使用したデバッグ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

MicroBlaze GDB のターゲッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

シ ミ ュレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

MicroBlaze をデバッグするためのコンパイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

PowerPC 405 のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

PowerPC 440 のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

コンソール モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

GDB コマンドに関する リ ファレンス情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

第 12 章 : Xilinx Microprocessor Debugger (XMD)関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

XMD の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

XMD コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

XMD ユーザー コマンドの一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

XMD ユーザー コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

特殊用途レジスタ名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

MicroBlaze の特殊用途レジスタ名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

PowerPC 405 プロセッサの特殊用途レジスタ名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

PowerPC 440 プロセッサの特殊用途レジスタ名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

推奨される XMD フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

1 つのプログラムのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

複数プロセッサ環境でのプログラムのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

デバッグ セッシ ョ ンでのプログラムの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

connect コマンドのオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171PowerPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

PowerPC ハード ウェアの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

PowerPC のデバッグにおける要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

デバッグ セッシ ョ ンの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

シ ミ ュレータを使用した PowerPC のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

PowerPC ISS の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

ISS を使用した PowerPC のデバッグ セッシ ョ ン例 . . . . . . . . . . . . . . . . . . . . . . . . . . 181

PowerPC のデバッグ ヒ ン ト (アドバンス) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

MicroBlaze プロセッサのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

MDM を使用した MicroBlaze のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

Page 18: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

18 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

MDM を使用した MicroBlaze のデバッグにおける要件 . . . . . . . . . . . . . . . . . . . . . . 184

デバッグ セッシ ョ ンの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

XMDStub を使用した MicroBlaze のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

XMDStub/JTAG を使用した MicroBlaze のデバッグ用のコマンド オプシ ョ ン . . . . 186

XMDStub/シ リ アル インターフェイスを使用した MicroBlaze のデバッグ用の

コマンド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

XMDStub を使用したデバッグにおける要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

シ ミ ュレータを使用した MicroBlaze のデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

シ ミ ュレータを使用したデバッグにおける要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

MDM ペリ フェラルおよび UART を使用したデバッグ . . . . . . . . . . . . . . . . . . . . . . . 190

デバッグ セッシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

マルチプロセッシング システムでのリセッ トの設定 . . . . . . . . . . . . . . . . . . . . . . . . . 192

XMD 内部 Tcl コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

プログラム初期化オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

レジスタ /メモ リのオプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

プログラム制御オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

プログラム ト レース /プロファイル オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

その他のコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

第 13 章 : System ACE ファイル ジェネレータ (GenACE)必要条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

ツール要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

GenACE の機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

GenACE モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

genace.tcl スク リプ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

Genace.tcl スク リプ トでサポート されるターゲッ ト ボード . . . . . . . . . . . . . . . . . . . . . . . . 204

ACE ファ イルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

カスタム ボード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

1 つの FPGA デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

ハード ウェアと ソフ ト ウェアのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . 205

ハード ウェアと ソフ ト ウェアのパーシャル リ コンフ ィギュレーシ ョ ン . . . . . . . . . . 205

ハード ウェアのみのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

ハード ウェアのみのパーシャル リ コンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . 205

ソフ ト ウェアのみのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

複数プロセッサ システムの 1 つのプロセッサの ACE 作成 . . . . . . . . . . . . . . . . . . . . . . . . 206

複数のプロセッサを含むシステムのコンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . 206

複数の FPGA デバイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

関連情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

CF デバイス フォーマッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

第 14 章 : コマンド ライン モード

新規プロジェク トの作成 (空のプロジェク ト ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

新規プロジェク トの作成 (既存の MHS ファ イルを指定) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

既存のプロジェク ト を開く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

Page 19: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 19EDK 10.1 サービス パッ ク 1

目次R

MSS ファ イルの読み込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

プロジェク ト ファ イルの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

プロジェク ト オプシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

フロー コマンドの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

MHS ファ イルの再読み込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

ソフ ト ウェア アプリ ケーシ ョ ンの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

ソフ ト ウェア アプリ ケーシ ョ ンの削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

ソフ ト ウェア アプリ ケーシ ョ ンへのプログラム ファ イルの追加 . . . . . . . . . . . . . . . . . . . . . . . . 216

ソフ ト ウェア アプリ ケーシ ョ ンからのプログラム ファ イルの削除 . . . . . . . . . . . . . . . . . . . . . . . 216

ソフ ト ウェア アプリ ケーシ ョ ンのオプシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

特殊なソフ ト ウェア アプリ ケーシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

MSS ファ イルの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

XMP ファ イルの変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

第 15 章 : EDK シェル

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

EDK でインス トールされる Cygwin 環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

既存の Cygwin 環境を使用するための要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

EDK シェル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

xbash の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

-override オプシ ョ ンと -undo オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Windows Vista での Cygwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

付録 A : GNU ユーティ リテ ィ

MicroBlaze および PowerPC の汎用ユーティ リ ティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

gcov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

MicroBlaze および PowerPC 専用ユーティ リ ティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221mb-addr2line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

mb-ar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

mb-as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

mb-c++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-c++filt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-g++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-gasp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-gcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-gprof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-ld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-nm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-objcopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-objdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

mb-ranlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

mb-readelf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

mb-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Page 20: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

20 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

mb-strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

mb-strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

その他のプログラムおよびファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

付録 B : 割り込み制御

関連リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

EDK での割り込み制御の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

割り込み制御の手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

MicroBlaze および PowerPC での割り込み処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

割り込みポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

割り込みのイネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

割り込みの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

割り込みコン ト ローラ とペリ フェラルの MHS コード例 . . . . . . . . . . . . . . . . . . . . . . 227

割り込みコン ト ローラ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

割り込みサービス ルーチン (ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

その他の情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

割り込みベクタ テーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228MicroBlaze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

PowerPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

Libgen でのカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

Libgen の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

xparameters.h の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

MicroBlaze システムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

割り込みコン ト ローラを使用しない MicroBlaze システム (割り込み信号 1 つ) . . . . . . . . 230

手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

MHS ファ イルの例 (内部割り込み信号) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

MHS ファ イルの例 (外部割り込み信号) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

割り込みコン ト ローラを使用した MicroBlaze システム (複数の割り込み信号) . . . . . . . . . 233

手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

タイマおよび UART の INTC の MHS ファ イル例 . . . . . . . . . . . . . . . . . . . . . . . . . . 234

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

PowerPC システムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

割り込みコン ト ローラを使用しない PowerPC システム (割り込み信号 1 つ) . . . . . . . . . . 237

手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

MHS ファ イルの例 (内部割り込み信号) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

MHS ファ イルの例 (外部割り込み信号) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

割り込みコン ト ローラを使用した PowerPC システム (複数の割り込み信号) . . . . . . . . . . . 241

Page 21: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 21EDK 10.1 サービス パッ ク 1

目次R

手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

MHS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

MSS ファ イルの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

C プログラムの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

付録 C : EDK Tcl インターフェイス

はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

ハンドル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

データ構造の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

Tcl コマンドの使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

一般的な規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Tcl コマンド使用前の確認事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

EDK ハード ウェア Tcl コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

ハードウェア読み出しアクセス API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

ハード ウェア読み出しアクセス API の一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

ハード ウェア読み出しアクセス API の説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

ハード ウェア API を使用する Tcl の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

例 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

例 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

アドバンス書き込みアクセス API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

ハード ウェア アドバンス書き込みアクセス ハード ウェア API の一覧 . . . . . . . . . . . 258

ハード ウェア アドバンス書き込みアクセス API の説明 . . . . . . . . . . . . . . . . . . . . . . . 259

ソフ ト ウェア Tcl コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

ソフ ト ウェア API で使用される用語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

ソフ ト ウェア読み出しアクセス API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

ソフ ト ウェア読み出しアクセス API の一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

ソフ ト ウェア読み出しアクセス API の説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

ハード ウェア プラ ッ ト フォーム生成の Tcl フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

入力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

ハードウェア プラ ッ ト フォーム生成中に呼び出される Tcl プロシージャ . . . . . . . . . . . . . 274

統合ハード ウェア データ構造の追加のキーワード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

ソフ ト ウェア プラ ッ ト フォーム生成の Tcl フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

入力ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

Libgen からの Tcl プロシージャ呼び出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

付録 D : 用語集

Page 22: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

22 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

目次R

Page 23: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 23EDK 10.1 サービス パッ ク 1

R

第 1 章

エンベデッ ド システムとツールの概要

この章では、 ザイ リ ンクスのエンベデッ ド開発キッ ト (EDK) で PowerPC® および MicroBlaze™エンベデッ ド プロセッサを使用したシステムを開発する際に使用するエンベデッ ド システム ツー

ルと開発フローについて説明します。 この章には、 次のセクシ ョ ンが含まれています。

• EDK について

• 関連リ ソース

• 設計プロセスの概要

• EDK ツールおよびユーティ リ ティの概要

• プロジェク トの作成と管理

EDK について

ザイ リ ンク ス エンベデッ ド開発キッ ト (EDK) には、 一般的なフレームワークに基づくデザイン

ツールが含まれており、ザイ リ ンクス FPGA デバイスにインプリ メン トするエンベデッ ド プロセッ

サ システムを設計できます。

EDK には、 次のものが含まれます。

• Xilinx® Platform Studio (XPS)

• エンベデッ ド システム ツール

• プロセッサ (pcore) およびペリ フェラルなどのエンベデッ ド プロセッサ IP コア

• Platform Studio SDK (ソフ ト ウェア開発キッ ト )。 Platform Studio SDK は Eclipse オープン

ソース フレームワークに基づく ツールで、 エンベデッ ド ソフ ト ウェア アプリ ケーシ ョ ンの開

発に使用できます。

EDK をインス トールする場合、 ザイ リ ンクス プログラマブル デバイスにデザインをインプ リ メン

トするため、 ISE™ (Integrated Software Environment) もインス トールする必要があ り ます。 EDKは、 マイ ク ロプロセッサ ハード ウェア デザインを合成し、 FPGA ターゲッ ト デバイスにマップし

て、 ビッ ト ス ト リームを生成およびダウンロードするのに ISE コンポーネン ト を使用します。

ISE の詳細は、 ISE ソフ ト ウェアのマニュアルおよびヘルプを参照して ください。 ISE ソフ ト ウェ

ア マニュアルおよびその他の情報へのリ ンクは、 「このマニュアルについて」 の 「その他のリ ソー

ス」 にあ り ます。

メモ : EDK を使用するにはザイ リ ンクスの ISE がインス トールされている必要があ り ますが、 デ

ザインの作成は EDK 環境のみで行う こ とが可能です。

Page 24: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

24 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

関連リソース

• 『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『OS and Libraries Document Collection』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『PowerPC 405 Processor Block Reference Guide』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『BFM Simulation in Platform Studio』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• Platform Studio 資料の Web ページ

http://japan.xilinx.com/ise/embedded/edk_docs.htm

設計プロセスの概要

EDK に含まれるツールを使用する と、 図 1-1 に示すよ うに、 エンベデッ ド システムの設計フロー

を 初から 後まで実行できます。

図 1-1 : 基本的なエンベデッ ド システム設計プロセスのフロー

UG111_01_01_092905

ソフトウェア開発キット(SDK)

ソフトウェア開発

Xilinx Platform Studio (XPS)

ハードウェア開発

検証

デバイスコンフィギュレーション

Page 25: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 25EDK 10.1 サービス パッ ク 1

設計プロセスの概要R

ハードウェア開発

ザイ リ ンクスの FPGA 技術を使用する と、 プロセッサ サブシステムのハードウェア ロジッ クをカ

スタマイズ可能です。 標準的なマイ クロプロセッサ チップまたはコン ト ローラ チップでは、このよ

う なカスタマイズは不可能です。 ハードウェア プラ ッ ト フォームは、 ザイ リ ンクスの技術を使用し

て作成するエンベデッ ド プロセッサ サブシステムです。

ハード ウェア プラ ッ ト フォームは、 プロセッサ バスに接続された 1 つまたは複数のプロセッサお

よびペリ フェラルで構成されています。 ハードウェア プラ ッ ト フォームは、 MHS (MicroprocessorHardware Specification) ファ イルで定義されます。

ソフ トウェア開発

ソフ ト ウェア プラ ッ ト フォームは、アプ リ ケーシ ョ ンを構築するソフ ト ウェア ド ライバおよび OSをま とめたものです。 作成するソフ ト ウェア イ メージには、ザイ リ ンクス ライブラ リのう ちエンベ

デッ ド デザインで使用する もののみが含まれます。 ソ フ ト ウ ェア プラ ッ ト フォームは、 MSS(Microprocessor Software Specification) ファ イルで定義されます。 1 つのソフ ト ウェア プラ ッ ト

フォーム上で複数のアプリケーシ ョ ンを作成できます。

検証

EDK には、ハードウェアと ソフ ト ウェア両方の検証ツールが含まれています。使用可能な検証ツー

ルは、 次のとおりです。

シミ ュレーシ ョ ンを使用したハードウェアの検証

ハードウェア プラ ッ ト フォームの機能を検証するには、 シ ミ ュレーシ ョ ン モデルを作成して HDLシ ミ ュレータ上で実行します。 システムをシ ミ ュレーシ ョ ンする と、 ソフ ト ウェア プログラムがプ

ロセッサで実行されます。 ビヘイビア、構造、 またはタイ ミ ング シ ミ ュレーシ ョ ン モデルを作成で

きます。

デバッグによるソフ トウェアの検証

ソフ ト ウェアの検証には、 次の方法があ り ます。

• デザインをサポート される開発ボードに読み込み、 デバッグ ツールでターゲッ ト プロセッサ

を制御します。

• 命令セッ ト シ ミ ュレータまたは簡略化したシステム シ ミ ュレーシ ョ ン モデル (仮想プラ ッ ト

フォーム) をホス ト コンピュータで実行し、 コードをデバッグします。

• コード実行のプロファイルを作成して、 システムのパフォーマンスを評価します。

デバイスのコンフ ィギュレーシ ョ ン

ハード ウェア プラ ッ ト フォームおよびソフ ト ウェア プラ ッ ト フォームが完成したら、 FPGA デバ

イス用にコンフ ィギュレーシ ョ ン ビッ ト ス ト リームを作成します。 プロ ト タイプの作成では、 ホス

ト コンピュータに接続した状態で、 ビッ ト ス ト リームをエンベデッ ド プラ ッ ト フォームで実行す

るソフ ト ウェアと共にダウンロード します。 製品システムでは、 コンフ ィギュレーシ ョ ン ビッ ト ス

ト リームと ソフ ト ウェアを FPGA に接続した不揮発性メモリに保存します。

Page 26: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

26 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

EDK ツールおよびユーティ リテ ィの概要

表 1-1 に EDK に含まれるツールおよびユーティ リ ティ、31 ページの図 1-2 にエンベデッ ド システ

ムの作成でこれらのツールがどのよ うに使用されるかを示します。 その後、 各ツールの概要と詳細

情報の入手先を示します。

表 1-1 : EDK ツールおよびユーティ リテ ィ

設計環境

Xilinx Platform Studio (XPS) エンベデッ ド デザインを開発する統合開発環境 (GUI) です。

ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) ソフ ト ウェア アプ リ ケーシ ョ ン プロジェ ク ト の開発に使用する統合開

発環境 (GUI) です。 XPS に補足的に使用します。

EDK コマンド ライン モード エンベデッ ド デザイン フローの実行およびツール オプシ ョ ンの変更を、

コマンド ラインから実行します。

ハードウェア開発

Base System Builder (BSB) ウ ィザード サポート されている開発ボードの機能および一般的なエンベデッ ド シス

テムの基本的な機能を使用して、 エンベデッ ド デザインを短時間に構築

します。 プロジェク トの初期作成には、 BSB ウ ィザードを使用するこ と

をお勧めします。

Create and Import Peripheral Wizard デザインに独自のペリ フェラルを追加する際に使用します。 作成したペ

リ フェラルが EDK ツールで認識されるよ うにするため、関連するディ レ

ク ト リおよびデータ ファ イルも作成されます。

コプロセッサ ウ ィザード CPU にコプロセッサを追加する際に使用できます。 Virtex™-II Pro およ

び PowerPC 405 プロセッサ デザインでは使用できません。

Platform Generator (Platgen) チップ上のプログラマブル システムを HDL およびインプ リ メ ンテー

シ ョ ン ネッ ト リ ス ト ファ イルの形で生成します。

ソフ トウェア開発

Library Generator (Libgen) ソフ ト ウェア ラ イブラ リ、 ド ラ イバ、 および OS を選択してソフ ト ウェ

ア プラ ッ ト フォームを作成します。

GNU コンパイラ ツール (GCC) Library Generator で作成されたプラ ッ ト フォームに基づき、 ソフ ト ウェ

ア アプリ ケーシ ョ ンを作成します。

Page 27: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 27EDK 10.1 サービス パッ ク 1

EDK ツールおよびユーティ リテ ィの概要R

検証

Debug Configuration Wizard 多くのデザインに共通するハード ウェアおよびソフ ト ウェア プラ ッ ト

フォームのデバッグ コンフ ィギュレーシ ョ ン タスクを自動化します。

Xilinx Microprocessor Debugger (XMD) ソフ ト ウェアをダウンロード し、 デバッグするシェルを開きます。 GNUデバッガはこのシェルを介してデバイスにアクセスします。

GNU デバッガ (GDB) シ ミ ュレーシ ョ ン モデルまたはターゲッ ト デバイスでソフ ト ウェアを

デバッグするための GUI を提供します。

Simulation Model Generator (Simgen) システムのハード ウェア シ ミ ュレーシ ョ ン モデルおよびコンパイル スク リプ ト ファ イルを生成します。

シ ミ ュレーシ ョ ン ライブラ リ コンパイラ (CompEDKLib)

デザイ ンのビヘイ ビア シミ ュ レーショ ンを開始する前に、 使用するシ

ミ ュレータ用に EDK シミ ュレーショ ン ライブラ リ をコンパイルします。

バス ファンクシ ョ ン モデル (BFM) コンパイラ 実際のエンベデッ ド システムの代わりに使用するバス環境モデルを作成

するこ とによ り、カスタム ペリ フェラルの検証プロセスを簡略化します。

デバイスのコンフ ィギュレーシ ョ ン

Bitstream Initializer (BitInit) オンチップの命令メモ リ を ソ フ ト ウ ェア実行フ ァ イルで初期化する よ

う、 FPGA コンフ ィギュレーシ ョ ン ビッ ト ス ト リームをアップデート し

ます。

System ACE ファ イル ジェネレータ (GenACE) FPGA コンフ ィギュレーシ ョ ン ビッ ト ス ト リームおよびソフ ト ウェア実

行ファ イルを製品システムの不揮発性デバイスに保存するために使用す

る、 ザイ リ ンクス System ACE™ コンフ ィギュレーシ ョ ン ファ イルを生

成します。

フラ ッシュ メモ リ プログラマ ターゲッ ト プロセッサを使用して、 共通フラ ッシュ インターフェイス

(CFI) に準拠したボード上のパラレル フラ ッシュ デバイスにソフ ト ウェ

アおよびデータをプログラムします。

その他

フォーマッ ト リ ビジ ョ ン ツール (revup) および Version Management Wizard

デザイン ファ イル (MHS ファ イルなど) を現在のフォーマッ トにアップ

デー ト し ます。 Version Management Wizard は、 以前のバージ ョ ンの

EDK で作成した IP およびド ライバを 新のバージ ョ ンに移行します。

LibXil Memory File System (LibXil MFS) ホス ト システム上に、エンベデッ ド システム メモ リにダウンロードする

MFS メモ リ イ メージを作成します。

Platform Specification Utility EDK で認識さ れる カス タ ム ペリ フ ェ ラ ルを作成する ために必要な

MPD (Microprocessor Peripheral Definition) データ ファ イルを自動生

成します。

表 1-1 : EDK ツールおよびユーティ リテ ィ (続き)

Page 28: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

28 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

Xilinx Platform Studio (XPS)XPS は、 MicroBlaze および PowerPC プロセッサを使用したエンベデッ ド プロセッサ システムの

ハード ウェアおよびソフ ト ウェアを開発するための統合環境です。 ソース コードを作成/編集する

ためのエディ タ、プロジェク ト管理インターフェイスも備えています。 XPS では、ツール フローの

設定オプシ ョ ンをカスタマイズした り、グラフ ィカル システム エディ タを使用してプロセッサ、ペ

リ フェ ラル、 バスを接続する こ とが可能です。 XPS は、 Windows®、 Solaris®、 Linux プラ ッ ト

フォームで使用できます。 XPS をバッチ モードで実行するこ と も可能です。

XPS から、 ハード ウェアおよびソフ ト ウェア システム コンポーネン ト を処理するために必要なす

べてのエンベデッ ド システム ツールを実行できます。 また、 システムの検証も XPS 環境内で実行

できます。

XPS には、 次の機能があ り ます。

• コアの追加、 コア パラ メータの変更、 バスおよび信号の接続を行い、 MHS ファ イルを作成

• MSS ファ イルを生成および編集

• 表 1-1 に示すツールをすべてサポート

• システムのブロ ッ ク図およびデザイン レポート を生成および表示

• 複数のユーザー ソフ ト ウェア アプリケーシ ョ ンをサポート

• プロジェク ト管理

• プロセスおよびツール フローの依存関係を管理

XPS の使用法の詳細は、 XPS ヘルプを参照して ください。

ザイリンクス ソフ トウェア開発キッ ト (SDK)Platform Studio SDK は、 ソフ ト ウェア アプリ ケーシ ョ ン プロジェク トの開発環境で、 XPS に補

足的に使用できます。 SDK は、 Eclipse オープン ソース標準に基づいています。 Platform StudioSDK には、 次の機能があ り ます。

• 高度な C/C++ コード エディ タおよびコンパイル環境

• プロジェク ト管理

• アプリケーシ ョ ン構築コンフ ィギュレーシ ョ ンおよび makefile の自動生成

• エラー ナビゲーシ ョ ン

• エンベデッ ド ターゲッ トのデバッグおよびプロファ イル作成をスムーズに行う統合環境

• ソース コードのバージ ョ ン管理

SDK の詳細は、 SDK ヘルプを参照して ください。

EDK コマンド ライン モード

OS のコマンド ラ インから EDK を実行できます。 詳細は、 第 14 章 「コマンド ライン モード」 を

参照してください。

Page 29: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 29EDK 10.1 サービス パッ ク 1

EDK ツールおよびユーティ リテ ィの概要R

Base System Builder (BSB) ウィザード

Base System Builder (BSB) ウ ィザードを使用する と、 システムを短時間で構築できます。

BSB ウ ィザードのみで完成できるエンベデッ ド デザイン プロジェク ト もあ り ます。 よ り複雑なプ

ロジェク トの場合は、 BSB で基本システムを作成し、 これをカスタマイズしてエンベデッ ド デザ

インを完成させるこ とができます。 プロジェク ト を効率的に作成するため、 どの場合でもまず BSBウ ィザードを使用するこ とをお勧めします。

選択するボードに基づき、 プロセッサ タイプ、 デバッグ インターフェイス、 キャ ッシュ設定、 メ

モ リのタイプとサイズ、ペリ フェラルなどの基本システム要素を選択し、設定できます。 各オプシ ョ

ンに対し、 ダイアログ ボッ クスでデフォルト値があらかじめ選択されています。

ターゲッ ト ボードが BSB ウ ィザードでサポート されていない場合は、カスタム ボード オプシ ョ ン

を使用します。 このオプシ ョ ンを使用した場合は、カスタム ボードに含まれるハード ウェア デバイ

スを手動で指定する必要があ り ます。 カスタム ボードで生成したシステムを実行するには、 ユー

ザー制約ファイル (UCF) に FPGA ピンのロケーシ ョ ン制約を入力する必要があ り ます。 サポート

されているターゲッ ト ボードを選択した場合は、BSB ウ ィザードによ り これらの制約が UCF に自

動的に記述されます。

BSB ウ ィザードを終了する と、 MHS ファ イルおよび MSS ファ イルが作成され、 XPS プロジェク

トに読み込まれます。 この後、デザインを XPS (Xilinx Platform Studio) を使用して編集できます。

BSB ウ ィザードでは、 1 つまたは複数のソフ ト ウェア プロジェク ト をオプシ ョ ンで生成できます。

各プロジェク トには、 コンパイルして開発ボード上のハードウェアで実行可能な、サンプル アプリ

ケーシ ョ ンおよびリ ンカ スク リプ トが含まれます。 このアプリ ケーシ ョ ンは、 システムが起動して

いるこ とを検証し、 単純なアプリ ケーシ ョ ンのテス ト を実行できるよ う構成されています。 このテ

ス ト アプリ ケーシ ョ ンの内容は、システムに含まれるコンポーネン トによって異なり ます。 XPS では、1 つのハードウェア システムに複数のソフ ト ウェア プロジェク ト を含むこ とができます。各ソ

フ ト ウェア プロジェク トには、 それぞれソース ファ イルと リ ンカ スク リプ トが含まれます。

BSB ウ ィザードの機能の詳細な使用方法は、 XPS ヘルプを参照してください。

Create and Import Peripheral WizardCreate and Import Peripheral Wizard を使用する と、 独自のペリ フェラルを作成し、 EDK 準拠のレ

ポジ ト リ または XPS プロジェク トにインポートできます。

Create モードでは、 さまざまなファ イルが作成されます。 これらのファイルの一部と して作成され

るテンプレート を使用する と、 バス プロ ト コル、 命名規則、 EDK で必要なインターフェイス ファ

イルのフォーマッ ト などの詳細を理解していなくても、 ペリ フェラルを簡単にインプ リ メン トでき

ます。 テンプレート ファ イルの例を参照し、 ウ ィザードで出力される さまざまな補助デザイン サポート ファ イルを使用するこ とによ り、 カスタム ロジッ クを短時間で設計できます。

Import モードでは、 EDK のさまざまなツールでペリ フェラルを処理するために必要なインター

フェイス ファ イルとディ レク ト リ構造を作成します。 このモードでは、 EDK の命名規則に従って

いるこ とを前提と しています。 インポートが終了する と、 作成したペリ フェラルが EDK ペリ フェ

ラル ラ イブラ リに含まれます。

ペリ フェラルを作成またはインポートする と、 MPD (Microprocessor Peripheral Definition) および

PAO (Peripheral Analyze Order) ファ イルが自動的に生成されます。

• MPD ファ イルは、 ペリ フェラルのインターフェイスを定義します。

• PAO ファ イルは、Platgen や Simgen などのツールに対し、ペリ フェラルのコンパイル (合成ま

たはシ ミ ュレーシ ョ ン用) に必要な HDL ファ イルと、 その解析順を指定します。

Page 30: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

30 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

MPD および PAO ファ イルの詳細は、 『Platform Specification Format Reference Manual』 を参照

してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Create and Import Peripheral Wizard の機能の詳細な使用方法は、XPS ヘルプを参照して ください。

コプロセッサ ウィザード

このウ ィザードは、 CPU にコプロセッサを追加する際に使用できます。 コプロセッサは、 FPGA にユーザー定義のファンクシ ョ ンをインプ リ メン トするハードウェア モジュールで、高速シンプレッ

クス リ ンク (FSL) インターフェイスを使用してプロセッサに接続します。 ただし、 Virtex™-II Proおよび PowerPC (405 または 440) デザインでは使用できません。

FSL チャネルは、FIFO を使用してインプリ メン ト されたポイン ト ツー ポイン ト通信インターフェ

イスです。

参照情報

高速シンプレッ クス リ ンク (FSL) の詳細は、 次の資料を参照して ください。

• 『MicroBlaze プロセッサ リ ファレンス ガイ ド』

• FSL バスのデータシート

• FCB/FSL ブリ ッジのデータシート

APU の詳細は、 『PowerPC 405 Block Reference Guide』 の 「PowerPC 405 APU Controller」 の章

を参照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

コプロセッサ ウ ィザードの使用方法は、 XPS ヘルプを参照して ください。

Platform Generator (Platgen)Platform Generator (Platgen) は、エンベデッ ド プロセッサ システムの抽象度の高い記述を、FPGAデバイスにインプ リ メン トできる HDL ネッ ト リ ス トにコンパイルします。

エンベデッ ド ハードウェア プラ ッ ト フォームは、 プロセッサ バスで接続された 1 つまたは複数の

プロセッサ、 さまざまなペリ フェラル、 およびメモリ ブロ ッ クで構成されています。 また、 デバイ

スの外部に接続するポート もあ り ます。 各プロセッサ コア (pcore またはプロセッサ IP と も呼ばれ

る) には、その動作をカスタマイズするためのパラ メータがあ り ます。 これらのパラ メータで、ペリ

フェラルおよびメモ リのアドレス マップも定義します。 EDK ではさまざまなオプシ ョ ンの機能を

選択できるので、 FPGA には作成するアプリケーシ ョ ンに必要な機能のサブセッ ト をインプ リ メン

トするだけで済みます。

ハードウェア プラ ッ ト フォームは、MHS ファ イルで定義されます。 MHS ファ イルは、エンベデッ

ド システムのハード ウェア コンポーネン ト を表す主要なソース ファ イルで、 ASCII テキス ト形式

で保存されます。

31 ページの図 1-2 に示すよ うに、Platgen は入力と して MHS ファ イルを読み込みます。 また、EDKラ イブラ リおよびユーザー IP レポジ ト リからプロセッサ コア (pcore) のハード ウェア記述ファイ

ル (MPD、 PAO) も読み込みます。 Platgen は、 システムに含まれる pcore のすべてのインスタンス

を統合したエンベデッ ド システムの 上位デザイン ファ イルを出力します。 このファ イルの生成

過程で、 MHS ファ イルに含まれるすべての 上位バス接続を、 プロセッサ、 ペリ フェラル、 およ

びオンチップ メモ リ を接続するために必要な信号に変換します。 また、 インスタンシエート された

各 pcore を合成するため、XST (Xilinx Synthesis Technology) が使用されます。 Platgen で生成され

たシステム レベルの HDL ネッ ト リ ス トは、FPGA のインプ リ メンテーシ ョ ン プロセスで使用され

ます。 Platgen では、オンチップ BRAM のアドレスを含む BMM (BRAM メモ リ マップ) ファ イル

Page 31: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 31EDK 10.1 サービス パッ ク 1

EDK ツールおよびユーティ リテ ィの概要R

も生成されます。 このファ イルは、 BRAM をソフ ト ウェアで初期化する際に使用されます。 詳細

は、 第 2 章 「Platform Generator (Platgen)」 を参照して ください。

MHS ファ イルの詳細は、 『Platform Specification Format Reference Manual』 の 「MicroprocessorHardware Specification (MHS)」 の章を参照して ください。 この章の 「関連リ ソース」 に、 このマ

ニュアルへのリ ンクがあ り ます。

図 1-2 : エンベデッ ド開発キッ ト (EDK) ツールの構成

ISE ツール

X10310

プロセッサ ハードウェアプラットフォーム (MHS)

PlatformGenerator

NGC

プロセッサ ソフトウェアプラットフォーム (MSS)

EDK ソフトウェア ライブラリ

(BSP、MLD...)

システムおよびラッパ HDL

インプリメンテーション制約ファイル

(UCF)

PCoreHDL

ライブラリ、OS、MLD

ドライバ、MDD

MPD、PAO

IP モデル

ビヘイビアHDL モデル

リンカ スクリプト

JTAG ケーブル

合成 (XST)

CompEDKLib

NGD

NGDBuild

NCD

MAP、PAR

アプリケーション ソース.c、.h、.s

.o、.a

コンンパイラ (GCC)

system.BIT

system.BMM

Bitstream Generator

download.BIT

iMPACT

ELF

.a

system_BD.BMM

Bitstream Initializer

シミュレーション

download.CMD

SimulationGenerator

構造HDL モデル

SimulationGenerator

タイミング HDL/SDF モデル

SimulationGenerator

ISE モデル

LibraryGenerator

リンカ(GCC)

デバッガ(XMD、GDB)

IP ライブラリまたはユーザー レポジトリ

FPGAデバイス

Page 32: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

32 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

Library Generator (Libgen)Libgen は、エンベデッ ド プロセッサ システム用にライブラ リ、デバイス ド ラ イバ、 ファ イル シス

テム、 および割り込みハン ド ラを設定し、 ソフ ト ウェア プラ ッ ト フォームを作成します。 ソフ ト

ウェア プラ ッ ト フォームは、各プロセッサに対し、ハードウェア プラ ッ ト フォーム (ボード サポー

ト パッケージ) に含まれるペリ フェラルのド ライバ、 ラ イブラ リ、 標準入力および出力デバイス、

割り込みハンド ラ ルーチン、その他のソフ ト ウェア機能を定義します。 XPS プロジェク トでは、 さ

らに各プロセッサ上で実行される ソフ ト ウェア アプ リ ケーシ ョ ンも定義します。 これらのソフ ト

ウェア アプリ ケーシ ョ ンは、 ソフ ト ウェア プラ ッ ト フォームに基づいています。

ソフ ト ウェア プラ ッ ト フォームは、MSS ファ イルで定義されます。 このテキス ト形式の MSS ファ

イルと ソフ ト ウェア アプリ ケーシ ョ ンが、 エンベデッ ド システムのソフ ト ウェア コンポーネン ト

を表す主要なソース ファ イルです。 EDK と共にインス トールされるライブラ リ と ド ラ イバ、 およ

びカスタム ペリ フェラル用のラ イブラ リ と ド ラ イバを使用して、 EDK によ り MSS で定義される

ソフ ト ウェア コンポーネン ト を含むソフ ト ウェア アプリ ケーシ ョ ンがプロセッサ ハード ウェア プラ ッ ト フォームで実行できる ELF (Executable Linked Format) ファ イルにコンパイルされます。

31 ページの図 1-2 に示すよ うに、Libgen は入力と して MSS ファ イルを読み込みます。 また、EDKラ イブラ リおよびユーザー IP レポジ ト リから選択された EDK ラ イブラ リおよびプロセッサ コア

(pcore) のソフ ト ウ ェア記述フ ァ イル (MDD (Microprocessor Driver Definition) およびド ラ イバ

コード ) も読み込みます。

詳細は、 第 4 章 「Library Generator (Libgen)」 および XPS ヘルプを参照して ください。 ラ イブラ

リ および ド ラ イバの詳細は、 『OS and Libraries Document Collection』 の 「Xilinx Microkernel(XMK)」 を参照してください。この章の「関連リ ソース」に、このマニュアルへのリ ンクがあ り ます。

GNU コンパイラ ツール (GCC)XPS では、 システムに含まれる各プロセッサの実行ファ イルをコンパイルおよびリ ンクするため、

GNU コンパイラ ツールを呼び出します。

• MicroBlaze プロセッサを使用するアプリ ケーシ ョ ンでは、mb-gcc コンパイラが実行されます。

• PowerPC プロセッサを使用するアプリケーシ ョ ンでは、 powerpc-eabi-gcc コンパイラが実行

されます。

31 ページの図 1-2 に示すよ うに、 コンパイラはターゲッ ト プロセッサ用の C ソース ファ イルと

ヘッダ ファ イルまたはアセンブラ ソース ファ イルを読み込みます。 リ ンカは、 コンパイルされた

アプリケーシ ョ ンと選択されたライブラ リ を統合し、ELF フォーマッ トの実行ファイルを生成しま

す。 リ ンカでは、 リ ンカ スク リプ ト も読み込まれます。 ツールで生成されたデフォルトの リ ンカ スク リプ ト 、 またはユーザーが作成した リ ンカ スク リプ トが使用されます。 詳細は、 第 10 章 「GNUコンパイラ ツール」 を参照して ください。 その他のツールについては、 付録 A 「GNU ユーティ リ

ティ」 を参照してください。

Page 33: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 33EDK 10.1 サービス パッ ク 1

EDK ツールおよびユーティ リテ ィの概要R

Debug Configuration Wizard多くのデザインに共通するハード ウェアおよびソフ ト ウェア プラ ッ ト フォームのデバッグ コン

フ ィギュレーシ ョ ン タスクを自動化します。

ChipScope™ コアをインスタンシエートする と、 PLB (プロセッサ ローカル バス) またはその他の

システム レベル信号を監視できます。 また、 既存の ChipScope コアのパラ メータをハード ウェア

デバッグ用にも設定できます。 JTAG ベースの仮想入力および出力を共有するこ と も可能です。

デバッ グ用にソ フ ト ウ ェアを設定するには、 プロセ ッサ デバッ グ パラ メータ を設定し ます。

ChipScope コアの協調デバッグをイネーブルにした場合は、 ソフ ト ウェア デバッガ信号とハード

ウェア信号の協調ト リガを設定できます。 JTAG インターフェイスは、UART 信号を XMD (XilinxMicroprocessor Debugger) に送信するよ う設定できます。

Debug Configuration Wizard の使用方法は、 XPS ヘルプを参照して ください。

Xilinx Microprocessor Debugger (XMD)プログラムのデバッグは、ソフ ト ウェア上で命令セッ ト シ ミ ュレータまたは仮想プラ ッ ト フォーム

を使用するか、 ハード ウェア ビッ ト ス ト リームを読み込んだザイ リ ンクス FPGA を搭載するボー

ド上で行います。 31 ページの図 1-2 に示すよ うに、デバッガ ユーティ リ ティ (XMD) はアプリケー

シ ョ ンの実行ファ イル (ELF) を読み込みます。 FPGA 上でのデバッグでは、 FPGA をビッ ト ス ト

リームでコンフ ィギュレーシ ョ ンする際に使用するのと同じダウンロード ケーブルを使用します。

詳細は、 第 12 章 「Xilinx Microprocessor Debugger (XMD)」 を参照してください。

GNU デバッガ (GDB)GNU Debugger (GDB) は、 さまざまな開発段階で MicroBlaze および PowerPC システムをデバッ

グ/検証するためのインターフェイスを提供する、 高性能で柔軟性の高いツールです。 プロセッサと

の通信には、 XMD が使用されます。

詳細は、 第 11 章 「GNU デバッガ (GDB)」 を参照してください。

Simulation Model Generator (Simgen)Simulation Model Generator (Simgen) は、 ハード ウェア用のさまざまなシ ミ ュレーシ ョ ン モデル

を生成するツールです。 31 ページの図 1-2 に示すよ うに、ビヘイビア モデルを生成する場合は入力

と して MHS ファ イルが読み込みまれ、構造モデルを生成する場合は合成後のデザイン データベー

ス、 タイ ミ ング モデルを生成する場合は配置配線済みのデザイン データベースが読み込まれます。

また、 オンチップ メモ リ を初期化するために各プロセッサのエンベデッ ド アプリ ケーシ ョ ン実行

ファ イル (ELF) も読み込まれ、 シ ミ ュレーシ ョ ン中にモデル化されたプロセッサでソフ ト ウェア

コードが実行されるよ うにします。

詳細は、 第 3 章 「Simulation Model Generator (Simgen)」 を参照してください。

シミ ュレーシ ョ ン ライブラリ コンパイラ (CompEDKLib)CompEDKLib は、 シ ミ ュレータ ベンダーのツールを使用して、 EDK HDL に基づく シ ミ ュレー

シ ョ ン ラ イブラ リ をコンパイルします。 このユーティ リ テ ィは、 GUI およびバッチ モードの両方

で実行できます。 GUI モードでは、ISE インス トール ディ レク ト リにあるザイ リ ンクス ライブラ リ

を CompXLib を使用してコンパイルし、 EDK のライブラ リ もコンパイルできます。

CompEDKLib の詳細は、第 3 章 の 「CompEDKLib ユーティ リ ティ」 を参照してください。 シ ミ ュ

レーシ ョ ン ラ イブラ リのコンパイル方法は、 XPS ヘルプを参照して ください。

Page 34: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

34 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

バス ファンクシ ョ ン モデル (BFM) コンパイラ

バス ファンクシ ョ ン シ ミ ュレーシ ョ ンは、 バスに接続されたハード ウェア コンポーネン トの検証

を簡略化します。 バス ファンクシ ョ ン モデルの詳細は、 『BFM Simulation in Platform Studio』 を

参照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Bitstream Initializer (BitInit)Bitstream Initializer (BitInit) は、 プロセッサに接続されているオンチップ BRAM メモ リ をソフ ト

ウェア情報で初期化します。 このユーティ リ ティは、 ISE ツールで生成されたハード ウェアのみの

ビッ ト ス ト リーム (system.bit) を読み込み、 各プロセッサのエンベデッ ド アプ リ ケーシ ョ ン実

行ファ イル (ELF) を含むビッ ト ス ト リーム (download.bit) を生成します。 Platgen で生成され、

各 BRAM ブロ ッ クの物理的な配置情報を使用して ISE ツールでアップデート された BMM ファ イ

ルが使用されます。 Bitstream Initializer は、 ISE に含まれる Data2MEM ユーティ リ ティ を使用し

てビッ ト ス ト リーム ファ イルをアップデート します。 BitInit が EDK を使用した設計フローのどこ

で使用されるかについては、 31 ページの図 1-2 を参照して ください。 詳細は、 第 9 章 「BitstreamInitializer (BitInit)」 を参照してください。

System ACE ファイル ジェネレータ (GenACE)FPGA のビッ ト ス ト リーム、 ELF ファ イル、 およびデータ ファ イルから、 System ACE コンフ ィ

ギュレーシ ョ ン ファ イルを生成します。 生成された System ACE ファ イルは、 FPGA のコンフ ィ

ギュレーシ ョ ン、 BRAM の初期化、 有効なプログラムまたはデータを使用した外部メモ リの初期

化、 および製品システムでのプロセッサの起動に使用できます。 EDK には、 XMD コマンドを使用

して ACE ファ イルを作成する Tcl スク リプ ト genace.tcl が含まれています。 ACE ファ イルは、

MDM (Microprocessor Debug Module) システムを使用して PowerPC および MicroBlaze 用に生成

できます。

詳細は、 第 13 章 「System ACE ファ イル ジェネレータ (GenACE)」 を参照して ください。

フラッシュ メモリ プログラマ

フラ ッシュ メモ リ プログラマは、 さまざまなフラ ッシュ ソフ ト ウェアおよびレイアウ トに対応す

るよ う設計されています。 第 8 章 「フラ ッシュ メモ リのプログラム」 を参照してください。

フォーマッ ト リビジ ョ ン ツール (revup) および Version Management Wizard

フォーマッ ト リ ビジ ョ ン ツール (revup) は、 既存の EDK プロジェ ク ト を現在のバージ ョ ンの

フォーマッ トにアップデート します。 revup では、フォーマッ トのみが変更され、 デザインはアップ

デート されません。 フォーマッ ト を変更する前に、 プロジェク ト ファ イル (XMP)、 MHS、 MSS など既存のファイルのバッ クアップが作成されます。 詳細は、 第 7 章 「バージ ョ ン管理ツール」 を参

照してください。

以前のバージ ョ ンのプロジェク ト をそれよ り新しいバージ ョ ンの EDK で開く と (EDK 9.2i で作成

したプロジェク ト を EDK 10.1 で開くなど)、 Version Management Wizard が起動します。

Version Management Wizard は、フォーマッ トが変更された後に起動します。 このウ ィザードには、

デザインで使用されているザイ リ ンク ス プロセッサ IP (pcore) の変更に関する情報が表示されま

す。 新しい互換性のある IP が入手可能な場合は、 新しいバージ ョ ンにアップデートするよ う メ ッ

セージが表示されます。

Page 35: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 35EDK 10.1 サービス パッ ク 1

プロジェク トの作成と管理R

Version Management Wizard の使用方法は、 第 7 章 「バージ ョ ン管理ツール」 および XPS ヘルプ

の 「Version Management Wizard」 を参照して ください。

LibXil Memory File System (LibXil MFS)ファ イル ハンドルの形式で、プログラム メモ リ を管理します。 ディレク ト リ を作成し、各ディ レク

ト リにファ イルを挿入できます。 ファ イル システムは、C 言語でファイル システム専用の関数呼び

出しを使用するこ とによ りアクセスできます。

XilMFS の詳細は、 『OS and Libraries Document Collection』 か ら 「LibXil Memory File System(MFS)」 を参照してください。この章の 「関連リ ソース」 に、このマニュアルへのリ ンクがあ り ます。

Platform Specification UtilityEDK で認識される IP コアを作成するために必要な MPD (Microprocessor Peripheral Definition)フ ァ イルを自動生成し ます。 このツールの機能は、 XPS (Xilinx Platform Studio) の Create andImport Peripheral Wizard で使用されます。

詳細は、 第 6 章 「Platform Specification Utility (PsfUtil)」 を参照してください。

プロジェク トの作成と管理

プロジェク トの情報は、XMP (Xilinx Microprocessor Project) ファ イルに保存されます。 XMP ファ

イルには、 MHS ファ イル、 MSS ファ イル、 プロセッサの実行ファイルにコンパイルする必要のあ

る C ソース ファ イルとヘッダ ファ イルの場所が示されています。 プロジェク トには、 ハード ウェ

ア ツール フローを実行する FPGA アーキテクチャ ファ ミ リおよびデバイス タイプも含まれます。

EDK フローの制御 (アドバンス)このセクシ ョ ンでは、EDK によるエンベデッ ド デザインの処理方法の制御について説明します。 ここに示す情報は、 XPS およびコマンド ラ インを使用したバッチ モードでの処理の両方に適用され

ます。

makefile

独自の makefile を指定できます。 makefile は、 次の 2 つのファイルに分割されています。

• <projname>.make : コンパイル フローのターゲッ ト およびコマンド を含むメ インの makefile

• <projname>_incl.make : オプシ ョ ンおよび設定がマクロ形式で定義されているインクルー

ド makefile

<projname>.make で、 次の文を使用して <projname>_incl.make を参照します。

include system_incl.make

これによ り、 <projname>_incl.make で定義されたマクロが <projname>.make で参照される

よ うになり ます。 XPS では、 常にこの 2 つの makefile が作成されます。 この <projname>.makeファ イルの代わりに、独自の makefile を使用するよ う指定するこ と も可能です。 独自の makefile の名前は XPS で生成された 2 つの makefile とは異なるものにし、 <projname>_incl.make を含め

る必要があ り ます。 このよ う にする と、 XPS でオプシ ョ ンや設定を変更した場合に、 独自の

makefile にも変更が反映されます。 まず XPS で <projname>.make ファ イルを生成し、コピーを

作成して変更を加えるのが一般的な方法です。

デザインで大きな変更を加えた場合は、 makefile をアップデートする必要があ り ます。

Page 36: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

36 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 1 章 : エンベデッ ド システムとツールの概要R

次のよ う な変更が、 makefile の構成に影響します。

• プロセッサの追加、 削除、 名前の変更

• ソフ ト ウェア アプリ ケーシ ョ ンの追加、 削除、 名前の変更

• インプ リ メンテーシ ョ ン ツール (ISE™ (Project Navigator)、 Xplorer (XPS)、 または Xflow(XPS)) の変更

デザインのプロセッサ数を変更または MicroBlaze デザインに mdm IP を追加/削除する と、 ACEファ イル生成コマンドが変更される可能性があ り ます。

system_incl.make ファ イルで定義される XILINX_EDK_DIR マクロは、Linux と Windows で異

なり ます。

インプリ メンテーシ ョ ンおよびダウンロード制御ファイル

インプ リ メンテーシ ョ ン ツールを ISE の Xflow を使用して実行する場合、 プロジェク ト ディ レク

ト リ構造を決まったものにする必要があ り ます。 各プロジェ ク ト に対し、 ユーザー制約ファ イル

(UCF) が必要です。 UCF ファ イルはプロジェ ク ト ディ レク ト リ の data ディ レク ト リ に保存し、

<project_name>.ucf とい う名前を付ける必要があ り ます。 また、iMPACT 用のスク リプ ト ファ

イルも必要で、 etc ディ レク ト リに download.cmd とい う名前で保存します。 これらのファ イル

が存在しない場合、XPS でこれらのファイルを追加するよ う メ ッセージが表示され、Xflow は実行

されません。

インプ リ メ ンテーシ ョ ン ツールを実行するためには、 さ らに etc ディ レク ト リに bitgen.ut および fast_runtime.opt も必要ですが、 これら 2 つのファ イルが存在しない場合は、 EDK のイ

ンス トール ディ レク ト リ からデフォル トのファ イルがコピーされます。 インプ リ メ ンテーシ ョ ン

ツールのオプシ ョ ンを変更するには、 これら 2 つのファイルを変更します。 新規プロジェク ト を作

成する際、 data および etc ディ レク ト リがない場合は、 自動的に作成されます。

Page 37: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 37EDK 10.1 サービス パッ ク 1

R

第 2 章

Platform Generator (Platgen)

Platform Generator (Platgen) は、 エンベデッ ド プロセッサ システムをハード ウェア ネッ ト リ ス ト

(HDL) および EDIF (Electronic Data Interchange Format) ファ イルの形でカスタマイズし、 生成す

るツールです。

デフォルトでは、エンベデッ ド ハード ウェア デザインに含まれるプロセッサの IP コア インスタン

スが、 XST を使用して合成されます。 Platgen は、 すべての IP コアを相互接続するシステム レベ

ルの HDL ファ イルを生成し、ISE™ のインプ リ メンテーシ ョ ン フローで合成できるよ うにします。

この章には、 次のセクシ ョ ンが含まれています。

• 機能

• 関連リ ソース

• ツール要件

• Platgen の使用法

• Platgen のコマンド オプシ ョ ン

• ディ レク ト リ構造

• 出力ファイル

• 合成ネッ ト リ ス ト キャ ッシュ

機能

Platgen の機能は、 次のとおりです。

• チップ上のプログラマブル システムをハードウェア ネッ ト リ ス ト (HDL およびインプ リ メン

テーシ ョ ン ネッ ト リ ス ト ファ イル) の形で生成します。

• MHS (Microprocessor Hardware Specification) ファ イルを入力と して使用し、ハード ウェア プラ ッ ト フォームを作成します。

• さまざまなフォーマッ トのネッ ト リ ス ト ファ イル (NGC、 EDIF など) を作成します。

• この後の段階で使用するツールのサポート ファ イル、 ハード ウェア プラ ッ ト フォームにコン

ポーネン ト を追加できるよ うにする 上位 HDL ラ ッパ ファ イルを作成します。

Platgen を実行した後、 XPS からインプ リ メ ンテーシ ョ ン ツールを実行する ISE のユーザー イン

ターフェイスを表示し、FPGA インプ リ メンテーシ ョ ン ツールでハードウェアのインプ リ メンテー

シ ョ ンを実行します。 インプ リ メ ンテーシ ョ ンの 後に、 FPGA をコンフ ィギュレーシ ョ ンする

ビッ ト ス ト リームが生成されます。 このビッ ト ス ト リームには、 FPGA チップ上にある BRAM メモ リの初期化情報が含まれます。スタート アップ時にこれらのメモリにユーザー コードまたはデー

タが必要な場合は、 Data2MEM を使用して、 ソフ ト ウェア アプリ ケーシ ョ ンの生成および検証で

生成される実行ファイルのコードおよびデータで、 ビッ ト ス ト リームをアップデート します。

Page 38: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

38 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 2 章 : Platform Generator (Platgen)R

関連リソース

『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

ツール要件ザイ リ ンクス開発システムを使用するよ うシステムを設定する必要があ り ます。 システムが正し く

設定されているこ と を確認して ください。 詳細は、 『 リ リース ノー トおよびインス トール ガイ ド』

を参照してください。

Platgen の使用法

Platgen を実行するには、 次の構文を使用します。

platgen -p <partname> system.mhs

platgen : ツールの実行ファイル名

-p : デバイス パーツを指定するオプシ ョ ン

<partname> : パーツ名

system.mhs : 出力ファイル名

Platgen のコマンド オプシ ョ ン

表 2-1 に、 Platgen のコマンド オプシ ョ ンを示します。

表 2-1 : Platgen のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン情報の表示 -v Platgen のバージ ョ ン番号を表示します。

オプシ ョ ン ファ イルの

指定

-f <filename> コマン ド ラ イン引数およびオプシ ョ ンの情

報を、 指定したファイルから読み込みます。

統合スタイル -intstyle

{ise|default}

フローまたはプロジェク ト環境内でザイ リ

ンクス アプリ ケーシ ョ ンを起動する際のコ

ンテキス ト情報を指定します。

HDL 言語の指定 -lang

{verilog|vhdl}

出力の HDL 言語を指定します。

デフォルト : vhdl

ログ ファ イルの指定 -log

<logfile[.log]>

ログ ファ イルを指定します。

デフォルト : platgen.log

ユーザー ペリ フェラル

およびド ライバ レポジ

ト リのラ イブラ リ検索

パスの指定

-lp <library_path> IP 検索ディ レク ト リに <library_path> を追

加します。 ライブラ リはレポジ ト リ領域の集

合です。

出力ディ レク ト リの

指定

-od <output_dir> 出力ディ レク ト リ パスを指定します。

デフォルト : 現在のディ レク ト リ

Page 39: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 39EDK 10.1 サービス パッ ク 1

ディレク ト リ構造R

ディレク ト リ構造

ペリ フェラルのディ レク ト リ構造を、 図 2-1 に示します。

追加のディ レク ト リ を指定するには、 次のいずれかの方法を使用します。

• Platgen が起動された現在のディ レク ト リ を使用する。

• EDK ツールの -lp オプシ ョ ンを使用する。

Platgen では、 次の順にペリ フェラルが検索されます。

1. プロジェク ト ディ レク ト リ内の pcores ディ レク ト リ

2. -lp オプシ ョ ンで指定された <library_path>/<Library Name>/pcores ディ レク ト リ

3. XILINX_EDK/hw/<Library Name>/pcores ディ レク ト リ

pcores ディ レク ト リ内では、 各ペリ フェラルはペリ フェラル名 (<peripheral_name>) のルート

ディ レク ト リに含まれます。 ルート ディ レク ト リ内では、 次のよ うな構造になっています。

data/hdl/netlist/

デバイス名の指定 -p <partname> デザインのインプ リ メ ンテーシ ョ ンで使用

するデバイスを指定します。

インスタンス名の指定 -ti <instname> 上位インスタンス名を指定します。

上位モジュール名の

指定

-tm <top_module> 上位モジュール名を指定します。

上位レベル -toplevel {yes|no} 入力デザインでデザイン全体を表すか、階層

のある レベルを表すかを指定し ま す。

デフォルト : yes

表 2-1 : Platgen のコマンド オプシ ョ ン (続き)

オプシ ョ ン コマンド 説明

図 2-1 : ペリフェラルのディ レク ト リ構造

X10066

<Library Name>

-lp <library_path>

boards drivers pcores sw_services

Page 40: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

40 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 2 章 : Platform Generator (Platgen)R

出力ファイル

Platgen では、次のディ レク ト リ とファ イルが生成されます。 プロジェク ト ディ レク ト リからは、次

のよ う な構造になっています。

/hdl/implementation/synthesis

hdl ディ レク ト リ

hdl ディ レク ト リには、 次のファイルが含まれます。

• system.[vhd|v] : MHS で定義されたエンベデッ ド プロセッサ システムの HDL ファ イル。

プロジェク トの 上位ファイルとなり ます。

• system_stub.[vhd|v] : システムのインスタンシエーシ ョ ンの 上位テンプレート HDLファ イル。 このファ イルは、 上位 HDL ファ イルの開始点と して使用できます。

• <inst>_wrapper.[vhd|v] : MHS で定義された IP コンポーネント の HDL ラッ パ ファ イル。

implementation ディ レク ト リ

implementation ディ レク ト リには、 ペリ フェラルのインプ リ メ ンテーシ ョ ン ネッ ト リ ス ト ファ イ

ル peripheral_wrapper.ngc が含まれます。

synthesis ディレク ト リ

synthesis ディ レク ト リには、 次のファイルが含まれます。

system.[prj|scr]

BMM フロー

Data2MEM を使用した EDK インプリ メンテーシ ョ ン ツール フローを次に示します。

ngdbuild -bm <system>.bmm <system>.ngcmapparbitgen -bd <system>.elf

BitGen の出力 <system>_bd.bmm には、 ブロ ッ ク RAM の物理的なロケーシ ョ ンが含まれます。

BMM (ブロ ッ ク RAM メモ リ マップ) ファ イルには、各ブロ ッ ク RAM がどのよ うに連続した論理

データ空間を構成するかが記述されています。

Data2MEM には、<system>_bd.bmm と <system>.bit ファ イルを入力します。 Data2MEM は、

連続するデータ片を Virtex シ リーズのブロ ッ ク RAM の初期化レコードに変換します。

Page 41: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 41EDK 10.1 サービス パッ ク 1

合成ネッ ト リスト キャッシュR

合成ネッ ト リス ト キャッシュ

次のいずれかの変更を加える と、 IP が再構築されます。

• インスタンス名の変更

• パラ メータ値の変更

• コア バージ ョ ンの変更

• コアが MPD の CORE_STATE=DEVELOPMENT オプシ ョ ンで指定されている

• コア ラ イセンスの変更

Page 42: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

42 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 2 章 : Platform Generator (Platgen)R

Page 43: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 43EDK 10.1 サービス パッ ク 1

R

第 3 章

Simulation Model Generator (Simgen)

この章では、 HDL シ ミ ュ レーシ ョ ンの基礎と、 Simulation Model Generator (Simgen) および

CompEDKLib ユーティ リ テ ィの使用法について説明します。 この章には、 次のセクシ ョ ンが含ま

れています。

• Simgen の概要

• 関連リ ソース

• シ ミ ュレーシ ョ ン ラ イブラ リ

• CompXLib ユーティ リ ティ

• CompEDKLib ユーティ リ ティ

• シ ミ ュレーシ ョ ン モデルのインプリ メンテーシ ョ ン

• Simgen の構文

• 出力ファイル

• メモ リの初期化

• テス トベンチ

• デザインのシ ミ ュレーシ ョ ン

• 制限

Simgen の概要

Simgen は、 ハード ウェア用のさまざまな VHDL および Verilog シ ミ ュレーシ ョ ン モデルを生成

し、 コンフ ィギュレーシ ョ ンするツールです。 このツールでは、 ハード ウェアのインスタンシエー

シ ョ ン と接続を記述する MHS (Microprocessor Hardware Specification) ファ イルを入力と して使

用します。

また Simgen では、 特定のベンダーのシ ミ ュレーシ ョ ン ツール用にスク リプ ト を作成できます。 このスク リプ ト を使用して、 生成されたシ ミ ュレーシ ョ ン モデルをコンパイルします。

ハードウェア コンポーネン トは、 MHS ファ イルで定義されます。 詳細は、 『Platform SpecificationFormat Reference Manual』 の 「Microprocessor Hardware Specification (MHS)」 の章を参照してく

ださい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。 シ ミ ュレーシ ョ ン

の基礎およびビヘイビア、 構造、 タイ ミ ング シ ミ ュレーシ ョ ンについては、 XPS ヘルプを参照し

てください。

Page 44: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

44 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

関連リソース

• 『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』

http://japan.xilinx.com/support/software_manuals.htm

シミ ュレーシ ョ ン ライブラリ

EDK シ ミ ュレーシ ョ ン ネッ ト リ ス トでは、ザイ リ ンクス FPGA で使用可能な下位レベルのハード

ウェア プリ ミ ティブが使用されます。 ザイ リ ンクスでは、 これらのプリ ミ ティブのシ ミ ュレーシ ョ

ン モデルをこのセクシ ョ ンに リ ス トするライブラ リで提供しています。

次に示すラ イブラ リは、 ザイ リ ンクスのシ ミ ュレーシ ョ ン フローで使用できます。 HDL コードで

は、正し く コンパイルされたライブラ リ を参照する必要があ り ます。 HDL シ ミ ュレータによ り、論

理ライブラ リからコンパイルされたライブラ リの物理的なロケーシ ョ ンにマップされます。

ザイリンクス ISE ライブラリ

ザイ リ ンクス ISE ラ イブラ リは、CompXLib ユーティ リ ティ を使用してコンパイルできます。 ザイ

リ ンクス ISE シ ミ ュレーシ ョ ン ラ イブラ リのコンパイルおよび使用方法は、『合成/シ ミ ュレーシ ョ

ン デザイン ガイ ド』 の 「デザインのシ ミ ュレーシ ョ ン」 の章を参照して ください。 この章の 「関

連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

ISE には、 シ ミ ュレーシ ョ ン用に次のライブラ リが含まれます。

• UNISIM ラ イブラ リ

• SIMPRIM ラ イブラ リ

• XilinxCoreLib ラ イブラ リ

UNISIM ライブラリ

UNISIM ラ イブラ リは、ビヘイビア シ ミ ュレーシ ョ ンおよび構造シ ミ ュレーシ ョ ンで使用するファ

ンクシ ョ ン モデルのライブラ リです。 このライブラ リには、 主な合成ツールで推論されるザイ リ ン

ク ス ユニファ イ ド ラ イブラ リのコンポーネン トがすべて含まれます。 また、 I/O やメモ リ セルな

ど、 よ く インスタンシエート されるコンポーネン ト も含まれています。

デザイン (VHDL または Verilog) に UNISIM ラ イブラ リ コンポーネン ト をインスタンシエート し、

ビヘイビア シ ミ ュレーシ ョ ンを実行します。 Simgen で生成される構造シ ミ ュレーシ ョ ン モデルに

よ り、 UNISIM ラ イブラ リ コンポーネン トがインスタンシエート されます。

UNISIM ライブラ リの非同期コンポーネン トは、 遅延がゼロです。 同期コンポーネン トには、 レー

ス状態を回避するため、 ユニッ ト遅延が含まれます。 同期コンポーネン ト の clock-to-out 遅延は

100ps です。

SIMPRIM ライブラリ

SIMPRIM ラ イブラ リは、 タイ ミ ング シ ミ ュレーシ ョ ンで使用するライブラ リです。 このライブラ

リには、 ザイ リ ンクス インプ リ メンテーシ ョ ン ツールで使用されるザイ リ ンクス プリ ミ ティブ ライブラ リのコンポーネン トがすべて含まれます。

Simgen で生成されるタイ ミ ング シ ミ ュレーシ ョ ン モデルによ り、SIMPRIM ラ イブラ リ コンポー

ネン トがインスタンシエート されます。

Page 45: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 45EDK 10.1 サービス パッ ク 1

CompXLib ユーティ リティR

XilinxCoreLib ライブラリ

ザイ リ ンクス CORE Generator™ は、FIR フ ィルタ、FIFO、CAM などの高度なモジュール (IP) を作成するためのグラフ ィカル ツールです。 モジュールをカスタマイズおよび 適化する こ とによ

り、ブロ ッ ク乗算器、SRL、高速キャ リー ロジッ ク、オンチップのシングル/デュアル ポート RAMなどのザイ リ ンクス FPGA デバイスのアーキテクチャ機能を 大限に活用できます。

CORE Generator の HDL ライブラ リ モデルは、 ビヘイビア シ ミ ュレーシ ョ ンで使用されます。 適切な HDL モデルを選択して、 HDL デザインに統合します。 これらのモデルでは、 グローバル信号

にライブラ リ コンポーネン トは使用されません。

ザイリンクス EDK ライブラリ

EDK ライブラ リは、 ビヘイビア シ ミ ュレーシ ョ ンで使用されます。 ModelSim SE/PE または NC-Sim 用にあらかじめコンパイルされた EDK IP コンポーネン トがすべて含まれます。 このライブラ

リ を使用する と、 プロジェク ト ご とに EDK コンポーネン ト をコンパイルする必要がなく、 コンパ

イルにかかる時間を節約できます。 EDK IP コンポーネン ト ラ イブラ リは VHDL でのみ提供され

ており、 暗号化されている場合があ り ます。

CompEDKLib を使用する と、EDK IP コンポーネン トのコンパイルされたモデルが共有ロケーシ ョ

ンに配置されます。 暗号化されていない EDK IP は、 CompEDKLib を使用してコンパイルできま

す。 暗号化されているコンポーネン トには、 コンパイル済みのライブラ リが提供されています。

EDK ライブラリの検索順

コンパイル済みのライブラ リは、 次の 2 つの場所から リ ス ト された順序で検索されます。

1. 現在のプロジェク トの simlib ディレク ト リ

1. -E オプシ ョ ンで指定した場所

Simgen で現在のプロジェク ト に含まれるコンパイル済みライブラ リが検索され、 使用されるよ う

にするには、 ディ レク ト リ構造を次の例のよ うにする必要があ り ます。

<project directory>/ simlib/ mti/ mycore_v1_00_a ncsim/ mycore_v1_00_a

CompXLib ユーティ リテ ィ

ザイ リ ンクスでは、 ザイ リ ンクスのサポートするシ ミ ュレータすべてに対して HDL ラ イブラ リ を

コンパイルする CompXLib ユーティ リ ティ を提供しています。 このユーティ リ ティ を使用する と、

シ ミ ュレータ ベンダーの提供するツールを使用して、 全サポー ト デバイスに対して UNISIM、

SIMPRIM、 XilinxCoreLib ラ イブラ リ をコンパイルできます。

CompXLib を使用して HDL ラ イブラ リ をコンパイルするには、インプ リ メンテーシ ョ ン ツールを

インス トールしておく必要があ り ます。

使用可能なオプシ ョ ンとその簡単な説明を表示するには、 CompXLib を -help オプシ ョ ンを使用

して実行します。

compxlib -help

Page 46: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

46 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

CompXLib ツールでは、 次の構文が使用されます。

compxlib -s <simulator> -f <family[:lib],<family[:lib],...|all>[-l <language>][-o <compxlib_output_directory>][-w][-p <simulator_path>]

メモ : シ ミ ュレータによって使用される環境変数が異なるため、CompXLib を起動する前に設定し

ておく必要があ り ます。 環境変数が使用するシ ミ ュレータ用に設定されているかど うか確認するに

は、 それぞれのシ ミ ュレータのマニュアルを参照してください。

メモ : ModelSim の実行ファイルがパスに入っていない場合は、-p <simulator_path> を使用し

てそのディ レク ト リ を指定してください。

次は、 ModelSim SE (mti_se) を使用してザイ リ ンクス ラ イブラ リ をコンパイルする場合のコマン

ド例です。

compxlib -s mti_se -f all -l vhdl -w -o .

このコマンドで、必要なザイ リ ンクス ライブラ リがすべて現在の作業ディ レク ト リにコンパイルさ

れます。

ザイ リ ンクス シ ミ ュレーシ ョ ン ラ イブラ リの使用方法の詳細は、 ISE の 『合成/シ ミ ュレーシ ョ ン

デザイン ガイ ド』 の 「デザインのシ ミ ュレーシ ョ ン」 の章を参照して ください。 この章の 「関連

リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

CompEDKLib ユーティ リテ ィ

デザインのビヘイビア シ ミ ュレーシ ョ ンを実行するには、 使用するシ ミ ュレータ用の EDK シ ミ ュ

レーシ ョ ン ラ イブラ リ を コ ンパイルする必要があ り ます。 ラ イブラ リ のコ ンパイルには、

CompEDKLib とい う ツールを使用します。

CompEDKLib は、 シ ミ ュレータ ベンダーのツールを使用して、 EDK HDL に基づく シ ミ ュレー

シ ョ ン ラ イブラ リ をコンパイルします。 このユーティ リ ティは、グラフ ィカル インターフェイスお

よびバッチ モードの両方で実行できます。 グラフ ィカル インターフェイス モードでは、 ISE イン

ス トール ディ レ ク ト リ にあるザイ リ ンク ス ラ イブラ リ を CompXLib を使用してコンパイルし、

EDK のライブラ リ も コンパイルできます。 シ ミ ュレーシ ョ ン ラ イブラ リのコンパイル方法の詳細

は、 XPS ヘルプを参照して ください。

構文

compedklib [ -h ] [ -o output-dir-name ] [ -lp repository-dir-name ][ -E compedklib-output-dir-name ] [ -lib core-name ][ -compile_sublibs ] [ -exclude deprecated ]-s mti_se|mti_pe|ncsim -X compxlib-output-dir-name

このツールは、 EDK でサポート されるシ ミ ュレータを使用して、 シ ミ ュレーシ ョ ン用の EDK のpcore ラ イブラ リに HDL をコンパイルします。 サポー ト されているシ ミ ュレータは、 ModelSimPE/SE、 NC-Sim、 および ISE Simulator (コマンド ラ イン モードのみ) です。

Page 47: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 47EDK 10.1 サービス パッ ク 1

CompEDKLib ユーティ リテ ィR

CompEDKLib コマンドの例

使用法 1 : GUI を起動してザイリンクスおよび EDK のシミ ュレーシ ョ ン ライブ

ラリを起動する場合

compedklib

オプシ ョ ンは不要です。 XPS からプロジェ ク ト が開いていない状態で [Simulation] → [CompileSimulation Libraries] をク リ ッ ク しても、 同じ GUI を起動できます。

メモ : このモードでは、ザイ リ ンクス ライブラ リ も コンパイルされます。 ほかのモードでは、 EDKライブラ リ しかコンパイルされません。

使用法 2 : EDK に組み込まれたレポジ ト リに HDL ソースをコンパイルする場合

も一般的な使用法は次のとおりです。

compedklib -o <compedklib-output-dir-name>-X <compxlib-output-dir-name> -exclude deprecated

この例では、 EDK インス トール ディ レ ク ト リ にある pcore がコンパイルされ、 <compedklib-

output-dir-name> に保存されます。 -X オプシ ョ ンは、 UNISIM、 SIMPRIM、 XilinxCoreLib ライブラ リ など、 CompXLib で出力されるモデルを含むディ レク ト リ を指定します。

コアは、 開発中 (development)、 アクティブ (active)、 廃止予定 (deprecated)、 廃止 (obsolete) のい

ずれでもかまいません。 -exclude deprecated を使用する と、 廃止予定のコアはコンパイルされませ

ん。 デザインに廃止予定のコアがある場合は、 -exclude deprecated オプシ ョ ンは使用しないでくだ

さい。

使用法 3 : 独自のレポジト リに HDL ソースをコンパイルする場合

EDK 形式のコア用に独自のレポジ ト リがある場合は、 次のコマンドを使用する と <compedklib-output-dir-name> にコンパイルできます。

compedklib -o <compedklib-output-dir-name>-X <compxlib-output-dir-name>-E <compedklib-output-dir-name>-lp <Your-Repository-Dir>

こ こで -E オプシ ョ ンを使用するのは、 レポジ ト リ内の一部の pcore で使用法 1 で生成されたコン

パイル済みモデルにアクセスする必要がある場合を考慮しているからです。 レポジ ト リ内の pcoreでは EDK に組み込まれたレポジ ト リの HDL ソースを参照している可能性が高いので、 これは必

要です。

指定のコアのみをレポジ ト リにコンパイルするこ と もできます。

compedklib -o <compedklib-output-dir-name>-X <compxlib-output-dir-name>-E <compedklib-output-dir-name>-lp <Your-Repository-Dir>-lib core1-lib core2

この場合、 レポジ ト リ全体が読み込まれますが、 コンパイルされるのは -lib オプシ ョ ンで指定した

コアのみです。

こ のコマンド に -compile_sublibs を追加すると 、 指定のコアをコンパイルできます。

Page 48: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

48 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

その他

• シ ミ ュレータが指定されていない場合、 ModelSim に設定されます。

• -X および -E オプシ ョ ンには、 複数の引数を指定できます。 引数の順序によ り優先順位が決ま

り ます。 同じコアが 2 つの場所にある場合、 初のものが使用されます。

• 一部のコアは保護されているため、 ソース コードは公開されていません。 その場合、 レポジ ト

リにコンパイル済みモデルが含まれており、 これらのモデルが <compedklib-output-dir-name> にコピーされます。

• XPS プロジェク トにコアが含まれている場合は、 使用法 2 は必要あ り ません。 Simgen によ り

これらをコンパイルするスク リプ トが生成されます。

• VHDL のみがサポート されます。

• 実行ログは、 compedklib.log ファ イルに記録されます。

• EDK 7.1 から、MODELSIM 環境変数で指定したファイルは CompEDKLib で変更されなくなり

ましたが、 Simgen で生成されるシ ミ ュレーシ ョ ン スク リプ トでは変更されます。

シミ ュレーシ ョ ン モデルのインプリ メンテーシ ョ ン

このセクシ ョ ンでは、FPGA の 3 種類のシ ミ ュレーシ ョ ン モデルをインプ リ メン トする方法を説明

します。 図 3-1 に示すよ うに、 デザイン プロセスの特定の段階で、 その段階でのシ ミ ュレーシ ョ ン

に必要なシ ミ ュレーシ ョ ン モデルが作成されます。 シ ミ ュレーシ ョ ン モデルを XPS バッチ モード

で作成する方法についても、 このセクシ ョ ンで説明します。

図 3-1 : FPGA デザインのシミ ュレーシ ョ ン段階

デザイン入力 デザイン合成 デザインネットリスト

デザインインプリメンテーション

インプリメンテーションデザイン ネットリスト

タイミングシミュレーション

構造シミュレーション

ビヘイビアシミュレーション

論理シミュレーション

Page 49: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 49EDK 10.1 サービス パッ ク 1

シミ ュレーシ ョ ン モデルのインプリ メンテーシ ョ ンR

ビヘイビア モデル

ビヘイビア シ ミ ュレーシ ョ ン モデルを生成するには、 図 3-2 に示すよ うに、 Simgen に MHS ファ

イルを入力します。 Simgen によ り、デザインの機能をシ ミ ュレーシ ョ ンするための HDL ファ イル

が生成されます。 また、 特定のベンダーのシ ミ ュレータ用にコンパイル スク リプ ト を生成するよ う

指定した り、 デザイン内のプロセッサに関連付けられた BRAM を初期化するデータを含む HDLファ イルを生成するよ う指定するこ と も可能です。 初期化データは、 既存の実行ファイル (ELF) から取得されます。

構造モデル

構造シ ミ ュレーシ ョ ン モデルを生成するには、 図 3-3 に示すよ うに、 Simgen に MHS ファ イルと

合成後のネッ ト リ ス ト ファ イルを入力します。 これらのネッ ト リ ス ト ファ イルから、デザインの機

能を構造的にシ ミ ュレーシ ョ ンするための HDL ファ イルが生成されます。

また、 特定のベンダーのシ ミ ュレータ用にコンパイル スク リプ ト を生成するこ と も可能です。

Simgen を、 デザイン内のプロセッサに関連付けられた BRAM を初期化するデータを含む HDLファ イルを生成するよ うにも指定できます。 初期化データは、 既存の実行ファイル (ELF) から取得

されます。

メモ : EDK 設計フローはモジュール フローです。 Simgen では、 Platgen で生成されたネッ ト リ ス

ト ファ イルを使用して、 構造シ ミ ュレーシ ョ ン モデルを生成します。

図 3-2 : ビヘイビア シミ ュレーシ ョ ン モデルの生成

UG111_02_101705

MHS

ELF

Simgen

Script

HDL

図 3-3 : 構造シミ ュレーシ ョ ン モデルの生成

UG111_03_101705

MHS

ELF

Simgen

Script

HDL

NGC

Page 50: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

50 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

タイ ミ ング モデル

タイ ミ ング シ ミ ュレーシ ョ ン モデルを生成するには、 図 3-4 に示すよ うに、 Simgen に MHS ファ

イルと インプ リ メ ン ト後のネッ ト リ ス ト ファ イルを入力します。 Simgen は、 デザインをシ ミ ュ

レーシ ョ ンするための HDL ファ イルと タイ ミ ング情報を含む SDF ファ イルを生成します。 また、

特定のベンダーのシ ミ ュレータ用にコンパイル スク リプ ト を生成するよ う指定したり、 デザイン内

のプロセッサに関連付けられた BRAM を初期化するデータを含む HDL ファ イルを生成するよ う

指定するこ と も可能です。 初期化データは、 既存の実行ファイル (ELF) から取得されます。

単一言語モデルと混合言語モデル

Simgen では、 シ ミ ュレーシ ョ ン用のビヘイビア ファ イルで混合言語のコンポーネン ト を使用でき

ます。 デフォルトでは、 コンポーネン ト を記述した言語が使用されます。 各コンポーネン トで言語

を混合するこ とはできません。 混合言語機能を使用するには、 混合言語をサポートするシ ミ ュレー

タが必要です。

ザイ リ ンクスの IP コンポーネン トは、 VHDL で記述されています。 シ ミ ュレータが混合言語をサ

ポート していない場合は、 Simgen ですべての HDL ファ イルをサポート されている言語に変換し、

単一言語のモデルを生成できます。 変換された HDL ファ イルは、 構造ファイルです。

構造シ ミ ュレーシ ョ ン モデルおよびタイ ミ ング シ ミ ュレーシ ョ ン モデルは、 常に 1 つの言語で記

述されます。

XPS のバッチ モードを使用したシミ ュレーシ ョ ン モデルの作成

1. XMP ファ イルを読み込み、 プロジェク ト を開きます。

load xmp <filename>.xmp

2. XPS のプロンプ トで次のシ ミ ュレーシ ョ ン値を設定します。

a. 次のコマンドを使用してシ ミ ュレータを選択します。

xset simulator [ mti | ncs | none ]

b. 次のコマンドを使用して、 既にコンパイルされているザイ リ ンクスおよび EDK ライブラ

リへのパスを指定します。

xset sim_x_lib <path>xset sim_edk_lib <path>

図 3-4 : タイ ミング シミ ュレーシ ョ ン モデルの生成

UG111_04_101705

MHS

ELF

Simgen

Script

HDL

NCD

Page 51: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 51EDK 10.1 サービス パッ ク 1

Simgen の構文R

c. 次のコマンドを使用してシ ミ ュレーシ ョ ン モデルを選択します。

xset sim_model [ behavioral | structural | timing ]

3. 次のコマンドを入力して、 シ ミ ュレーシ ョ ン モデルを生成します。

run simmodel

プロセスが終了する と、 HDL モデルがシ ミ ュレーシ ョ ン ディ レク ト リに作成されます。

4. 次のコマンドを入力して、 シ ミ ュレータを起動します。

run sim

Simgen の構文

コマンド プロンプ トで、 MHS ファ イルと必要なオプシ ョ ンを指定して、 Simgen を実行します。

simgen <system_name>.mhs [options]

要件

システムが ISE ツールを実行できるよ う正し く設定されているこ とを確認して ください。 詳細は、

ソフ ト ウェア パッケージに含まれる 『リ リース ノートおよびインス トール ガイ ド』 を参照して く

ださい。

Simgen のコマンド オプシ ョ ン

表 3-1 に、 Simgen のコマンド オプシ ョ ンを示します。

表 3-1 : Simgen のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン情報の表示 -v バージ ョ ン番号を表示します。

オプシ ョ ン ファ イルの指定 -f <filename> コマンド ライン引数およびオプシ ョ ンの情報を、指定したファ

イルから読み込みます。

HDL 言語の指定 -lang {vhdl|verilog} HDL 言語を VHDL または Verilog に指定します。

デフォルト : vhdl

ログ ファ イルの指定 -log <logfile.log> ログ ファ イルを指定します。

デフォルト : simgen.log

ラ イブラ リ ディレク ト リ パスの指定

-lp <library_path> ラ イブラ リ ディ レ ク ト リ へのパスを指定し ます。 このオプ

シ ョ ンを複数回使用して、複数のライブラ リ ディ レク ト リ を指

定できます。

シ ミ ュレーシ ョ ン モデルの

タイプの指定

-m {beh|str|tim} 使用するシ ミ ュレーシ ョ ン モデルのタイプを指定します。 サポート されているタイプは、 ビヘイビア (beh)、 構造 (str)、 お

よびタイ ミ ング (tim) です。

デフォルト : beh

Page 52: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

52 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

混合言語の使用 -mixed {yes|no} ビヘイビア ファ イルで混合言語を使用できるよ うにするかど

うかを指定します。

yes : ペリ フェラルが記述された言語を使用し、混合言語を使用

できるよ うにします。

no : 混合言語を使用不可にし、 選択した言語で記述されていな

いペリ フェラルには構造ファイルを使用します。

メモ : -m beh を使用している場合にのみ設定可能です。

デフォルト : yes

出力ディ レク ト リの指定 -od <output_dir> プロジェ ク ト ディ レ ク ト リ のパスを指定します。 デフォル ト

は現在のディ レク ト リです。

ターゲッ ト デバイス/ファ ミ リの指定

-p <partname> ターゲッ ト とするデバイスまたはファ ミ リ を指定します。 この

オプシ ョ ンは必須です。

プロセッサの ELF ファ イル

の指定

-pe <proc_instance>

elf_file <elf_file>

MHS ファ イルで定義されているインスタンス名のプロセッサ

に関連付ける ELF ファ イルのリ ス ト を指定します。

シ ミ ュレータ ベンダーの

指定

-s {mti|ncs} 指定したシミ ュレータ (ModelSim または NC-Sim) 用のコンパ

イル スク リ プト およびヘルパ スク リ プト を生成します。

mti : ModelSim

ncs : NC-Sim

ソース ディレク ト リの指定 -sd <source_dir> ネッ ト リ ス ト ファ イルを検索するソース ディ レク ト リ を指定

します。

テス トベンチ テンプレート

の作成

-tb テス トベンチ テンプレート ファ イルを作成します。

テス ト中のデザインを指定するには -ti、テス トベンチ名を指定

するには -tm を使用します。

上位インスタンス名の

指定

-ti <top_instance> テス トベンチ テンプレート を作成するよ う指定した場合に、テ

ス ト中のデザインのインスタンス名を指定します。

デザインがサブモジュールである場合は、 上位インスタンス

名を指定します。

上位モジュール名の指定 -tm <top_module> テス トベンチ テンプレート を作成するよ う指定した場合に、テ

ス トベンチ名を指定します。

デザインがサブモジュールである場合は、 上位エンティティ /モジュール名を指定します。

上位/サブモジュールの

指定

-toplevel {yes|no} yes : デザインはデザイン全体を表します。

no : デザインは階層の 1 レベル (サブモジュール) を表します。

デフォルト : yes

表 3-1 : Simgen のコマンド オプシ ョ ン (続き)

オプシ ョ ン コマンド 説明

Page 53: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 53EDK 10.1 サービス パッ ク 1

出力ファイルR

出力ファイル

シ ミ ュレーシ ョ ン ファ イルは、出力ディ レク ト リの simulation ディ レク ト リ内にある各シ ミ ュレー

シ ョ ン モデルのサブディ レク ト リに保存されます。

<output_directory>/simulation/<sim_model>

こ こで、 <sim_model> は behavioral、 structural、 timing のいずれかです。

Simgen が正常に実行される と、 simulation ディ レク ト リに次のファイルが作成されます。

• <peripheral>_wrapper.[vhd|v]

各コンポーネン トのモジュール シ ミ ュレーシ ョ ン ファ イル。 タイ ミ ング モデルには適用され

ません。

• <system_name>.[vhd|v]

デザインの 上位 HDL ファ イル。

• <system_name>.sdf

配置配線結果から算出されたブロ ッ クおよびネッ ト遅延を含む標準遅延フォーマッ ト (SDF)ファ イル。 タイ ミ ング シ ミ ュレーシ ョ ンのみに使用されます。

• xilinxsim.ini

ISE Simulator 用の初期化ファイル。

• <system>.prj

ISE Simulator 用にコンパイルする HDL ソース フ ァ イルおよびラ イブラ リ を指定するプロ

ジェク ト ファ イル。

• <system_name>_fuse.sh

シ ミ ュレーシ ョ ン実行ファイルを作成するヘルパ スク リプ ト (ISE Simulator のみ、 Simgen でテス ト ハーネスを作成しない場合)。

• <system_name>_setup.[do|sh|tcl]

HDL ファ イルをコンパイルし、 コンパイルされたシ ミ ュレーシ ョ ン モデルをシ ミ ュレータに

読み込むスク リプ ト ファ イル。

• <test_harness_name>.prj

ISE Simulator 用にコンパイルする HDL ソース フ ァ イルおよびラ イブラ リ を指定するプロ

ジェク ト ファ イル (Simgen でテス ト ハーネスを作成する場合)。

• <test_harness>_fuse.sh

シ ミ ュレーシ ョ ン実行ファイルを作成するヘルパ スク リプ ト (ISE Simulator のみ、 Simgen でテス ト ハーネスを作成する場合)。

EDK ラ イブラ リの

ディ レク ト リの指定

-E <edklib_dir> EDK シ ミ ュレーシ ョ ン ライブラ リのディ レク ト リへのパスを

指定します。 これは、CompEDKLib ツールの出力ディ レク ト リ

です。

ザイ リ ンクス ライブラ リの

ディ レク ト リの指定

-X <xlib_dir> ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブ ラ リ (UNISIM、

SIMPRIM、 XilinxCoreLib) のディ レク ト リへのパスを指定し

ます。 これは、 CompXLib の出力ディ レク ト リです。

表 3-1 : Simgen のコマンド オプシ ョ ン (続き)

オプシ ョ ン コマンド 説明

Page 54: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

54 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

• <test_harness>_setup.[do|sh|tcl]

シ ミ ュレータを設定し、波形ウ ィンド ウまたはリ ス ト ウ ィンド ウ (ModelSim のみ) に表示する

信号を指定するヘルパ スク リプ ト。

• <test_harness>_wave.[do|sv|tcl]

シ ミ ュレーシ ョ ン波形表示を設定するヘルパ スク リプ ト。

• <test_harness>_list.do

シ ミ ュレーシ ョ ンの リ ス ト表示を設定するヘルパ スク リプ ト (ModelSim のみ)。

• <instance>_wave.[do|sv|tcl]

特定のインスタンスのシ ミ ュレーシ ョ ン波形表示を設定するヘルパ スク リプ ト 。

• <instance>_list.do

シ ミ ュレーシ ョ ンの リ ス ト表示を設定するヘルパ スク リプ ト (ModelSim のみ)。

メモリの初期化

デザインにシステムのメモ リ バンクが含まれる場合、 対応する メモリ シ ミ ュレーシ ョ ン モデルを

初期化できます。 -pe オプシ ョ ンを使用する と、 プロセッサのインスタンスに関連付ける ELF ファ

イルのリ ス ト を指定できます。

この実行ファイルは、適切な GNU コンパイラ (gcc) またはアセンブラを使用して、該当する C ソー

ス コードまたはアセンブリ ソース コードから生成できます。

メモ : 構造シ ミ ュレーシ ョ ン モデルのメモ リ初期化は、ネッ ト リ ス ト ファ イルの階層が保持されて

いる場合にのみサポート されます。

VHDLVHDL シ ミ ュレーシ ョ ン モデルの場合は、 Simgen を -pe オプシ ョ ンを使用して実行し、 VHDLファ イルを生成します。 このファ イルには、 システムのコンフ ィギュレーシ ョ ンと初期値が含まれ

ます。 コマンドの例を次に示します。

simgen system.mhs -pe mblaze executable.elf -l vhdl ...

このコマンドを実行する と、 VHDL システム コンフ ィギュレーシ ョ ンが system_init.vhd ファ

イルに生成されます。 このファ イルをシステムと共に使用して、 メモ リ を初期化します。 プロセッ

サ mblaze に接続された BRAM ブロ ッ クに、 executable.elf ファ イルのデータが含まれます。

VerilogVerilog シ ミ ュレーシ ョ ン モデルの場合は、 Simgen を -pe オプシ ョ ンを使用して実行し、 Verilogファ イルを生成します。 このファ イルには、 メモ リ を初期化する defparam 文が含まれます。 コマン

ドの例を次に示します。

simgen system.mhs -pe mblaze executable.elf -l verilog ...

このコマンドを実行する と、 Verilog メモ リ初期化ファイル system_init.v が生成されます。 このファ イルをシステムと共に使用して、 メモ リ を初期化します。 プロセッサ mblaze に接続された

BRAM ブロ ッ クに、 executable.elf ファ イルのデータが含まれます。

Page 55: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 55EDK 10.1 サービス パッ ク 1

テストベンチR

テストベンチ

Simgen では、テス トベンチ テンプレート を作成できます。 Simgen を -tb オプシ ョ ンを使用して実

行する と、 上位デザインがインスタンシエート されたテス トベンチが生成され、 ク ロ ッ ク信号お

よびリセッ ト信号のデフォルト スティ ミ ュラスが作成されます。

ク ロ ッ ク スティ ミ ュラスは、 MHS ファ イルで SIGIS = CLK と指定されているグローバル ポート

から推論されます。 ク ロ ッ クの周波数は CLK_FREQ で指定し、 ク ロ ッ クの位相は CLK_PHASEを使用して 0 ~ 360 の値を指定します。

リセッ ト スティ ミ ュラスは、MHS ファ イルで SIGIS = RST と指定されているすべてのグローバル

ポートに対して推論されます。 リセッ ト信号の極性は RST_ POLARITY で指定し、 リ セッ ト信号

の長さは RST_LENGTH で指定します。

ク ロ ッ クおよびリセッ トのパラ メータの詳細は、 XPS ヘルプを参照して ください。

VHDL テス トベンチの例

library IEEE;use IEEE.STD_LOGIC_1164.ALL;

library UNISIM;use UNISIM.VCOMPONENTS.ALL;

entity system_tb isend system_tb;

architecture STRUCTURE of system_tb is

constant sys_clk_PERIOD : time := 10 ns; constant sys_reset_LENGTH : time := 160 ns; constant sys_clk_PHASE : time 2.5 ns;

component system is port ( sys_clk : in std_logic; sys_reset : in std_logic; rx : in std_logic; tx : out std_logic; leds : inout std_logic_vector(0 to 3) ); end component;

-- Internal signals

signal leds : std_logic_vector(0 to 3); signal rx : std_logic; signal sys_clk : std_logic; signal sys_reset : std_logic; signal tx : std_logic;

begin dut : system port map ( sys_clk => sys_clk, sys_reset => sys_reset, rx => rx,

Page 56: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

56 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

tx => tx, leds => leds );

-- Clock generator for sys_clk

process begin sys_clk <= '0'; wait for (sys_clk_PHASE); loop wait for (sys_clk_PERIOD/2); sys_clk <= not sys_clk; end loop; end process;

-- Reset Generator for sys_reset

process begin sys_reset <= '0'; wait for (sys_reset_LENGTH); sys_reset <= not sys_reset; wait; end process;

-- START USER CODE (Do not remove this line) -- User: Put your stimulus here. Code in this -- section will not be overwritten. -- END USER CODE (Do not remove this line)

end architecture STRUCTURE;

configuration system_tb_conf of system_tb is for STRUCTURE for all : system use configuration work.system_conf; end for; end for;end system_tb_conf;

「BEGIN USER CODE」 および 「END USER CODE」 の行の間に独自の VHDL コードを追加できま

す。 シ ミ ュレーシ ョ ン ファ イルを再作成しても、 これらの行の間に追加したコードは保持されま

す。 これ以外の位置に追加したコードは、 テス トベンチを再作成する と失われます。

Verilog テス トベンチの例

`timescale 1 ns/10 ps

`uselib lib=unisims_ver

module system_tb ( );

real sys_clk_PERIOD = 10; real sys_clk_PHASE = 2.5; real sys_reset_LENGTH = 160;

Page 57: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 57EDK 10.1 サービス パッ ク 1

テストベンチR

// Internal signals

reg [0:3] leds; reg rx; reg sys_clk; reg sys_reset; reg tx;

system dut ( .sys_clk ( sys_clk ), .sys_reset ( sys_reset ), .rx ( rx ), .tx ( tx ), .leds ( leds ) );

// Data initialization

system_conf dut_conf();

// Clock generator for sys_clk

initial begin sys_clk = 1'b0; #(sys_clk_PHASE);forever #(sys_clk_PERIOD/2) sys_clk = ~sys_clk; end

// Reset Generator for sys_reset

initial begin sys_reset = 1'b0; #sys_clk_LENGTH sys_reset = ~sys_reset; end

// START USER CODE (Do not remove this line) // User: Put your stimulus here. Code in this // section will be not be overwritten. // END USER CODE (Do not remove this line)

endmodule

「BEGIN USER CODE」 および 「END USER CODE」 の行の間に独自の Verilog コードを追加できま

す。 シ ミ ュレーシ ョ ン ファ イルを再作成しても、 これらの行の間に追加したコードは保持されま

す。 これ以外の位置に追加したコードは、 テス トベンチを再作成する と失われます。

Page 58: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

58 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 3 章 : Simulation Model Generator (Simgen)R

デザインのシミ ュレーシ ョ ン

デザインをシ ミ ュレーシ ョ ンする際は、 グローバル リセッ トやト ラ イステート ネッ ト など、 考慮

すべき事項がいくつかあ り ます。 ザイ リ ンクスでは、 VHDL/Verilog デザインのシ ミ ュレーシ ョ ン

方法に関する詳細情報を提供しています。 詳細は、 『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』 の

「デザインのシ ミ ュレーシ ョ ン」 の章を参照して ください。 この章の 「関連リ ソース」 に、 このマ

ニュアルへのリ ンクがあ り ます。

テス ト ハーネス (テス トベンチ) レベルで生成されるヘルパ スク リプ トは、 シ ミ ュレータの setupスク リプ トです。 setup スク リプ ト を実行する と、 初期化関数が実行され、 waveform スク リプ トお

よび list スク リプ ト を使用して波形ウ ィ ン ド ウおよびリ ス ト ウ ィ ン ド ウ (ModelSim のみ) を作成

する方法が表示されます。 上位スク リプ トによ り、 インスタンス専用のスク リプ トが呼び出され

ます。 Simgen で作成していないテス ト ハーネスがある場合は、 ヘルパ スク リプ トの階層パス名を

変更する必要があ り ます。

スク リプ ト内のコマンドは、 一部をコ メ ン ト にする こ とによ り、 表示する信号を定義しています。

上位の waveform または list スク リプ ト を編集する と、あるインスタンスの信号を表示/非表示に

でき、 インスタンス レベルのスク リプ ト を編集する と、各ポート信号を表示/非表示にできます。 タイ ミ ング シ ミ ュレーシ ョ ンでは、 上位ポートのみが表示されます。

制限

外部メモ リのシ ミ ュレーシ ョ ン モデルは生成されず、 自動的にはサポート されません。 外部メモ リ

モデルはインスタンシエート してシ ミ ュレーシ ョ ン テス トベンチに接続し、モデルの仕様に応じて

初期化する必要があ り ます。

Page 59: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 59EDK 10.1 サービス パッ ク 1

R

第 4 章

Library Generator (Libgen)

この章では、 エンベデッ ド ソフ ト プロセッサ用のラ イブラ リおよびド ラ イバを生成する LibraryGenerator (Libgen) について説明し、 ペリ フェラルと ド ラ イバをカスタマイズする方法を示します。

この章には、 次のセクシ ョ ンが含まれています。

• 概要

• 関連リ ソース

• Libgen の使用法

• Libgen のコマンド オプシ ョ ン

• ディ レク ト リ構造

• 出力ファイル

• ライブラ リおよびド ライバの生成

• MSS ファ イルのパラ メータ

• ド ライバ

• ライブラ リ

• OS ブロ ッ ク

• 割り込みと割り込みコン ト ローラ

• XMDStub ペリ フェラル (MicroBlaze 専用)

• STDIN および STDOUT ペリ フェラル

概要

Libgen は、 ライブラ リ とデバイス ド ラ イバをコンフ ィギュレーシ ョ ンするために 初に実行する

ツールです。 Libgen には、 MSS (Microprocessor Software Specification) ファ イルを入力します。

MSS ファ イルは、ペリ フェラルのド ライバ、標準入力および出力デバイス、割り込みハンド ラ ルー

チン、 その他のソフ ト ウェア機能を定義します。 Libgen では、 この情報を使用してライブラ リおよ

びド ラ イバをコンフ ィ ギュレーシ ョ ンし ます。 MSS フ ァ イルの詳細は、 『Platform SpecificationFormat Reference Manual』 の 「Microprocessor Software Specification (MSS)」 の章を参照してく

ださい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

メモ : EDK には、以前の MSS ファ イル フォーマッ ト を新しいフォーマッ トに変換するツールが含

まれています。 詳細は、 第 7 章 「バージ ョ ン管理ツール」 を参照して ください。

Page 60: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

60 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 4 章 : Library Generator (Libgen)R

関連リソース

• 『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『OS and Libraries Document Collection』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『Device Driver Programmer Guide』EDK インス トール ディ レク ト リの /doc/japanese フォルダ内、

ファ イル名は xilinx_drivers_guide.pdf

Libgen の使用法

Libgen を実行するには、 次の構文を使用します。

libgen [options] <filename>.mss

Libgen のコマンド オプシ ョ ン

表 4-1 に、 Libgen のコマンド オプシ ョ ンを示します。

表 4-1 : Libgen のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン情報の

表示

-v Libgen のバージ ョ ン番号を表示します。

ログ ファ イルの

指定

-log <logfile.log> ログ ファ イルを指定します。

デフォルト : libgen.log

アーキテクチャ ファ ミ リの指定

-p <partname> ターゲッ ト デバイスをアーキテクチャ ファ ミ リ

名またはデバイス名で指定します。 -h オプシ ョ

ンを使用する と、 <partname> に指定可能な値

が表示されます。

出力ディ レク ト リ

の指定

-od <output_dir> 出力ディ レク ト リ を指定します。 デフォル トは

現在のディ レ ク ト リ です。 出力ファ イルおよび

ディ レク ト リは、 すべてこのオプシ ョ ンで指定

したディ レク ト リ に生成されます。 入力ファ イ

ル filename.mss は、現在の作業ディ レク ト リ

のものが使用されます。 このマニュアルでは、出

力ディ レク ト リ を OUTPUT_DIR、Libgen を起動

するディ レ ク ト リ を YOUR_PROJECT と記述す

る場合があ り ます。

ソース ディレク ト

リの指定

-sd <source_dir> 入力ファ イルを検索するソース ディ レク ト リ を

指定します。 デフォル ト は現在の作業ディ レク

ト リです。

Page 61: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 61EDK 10.1 サービス パッ ク 1

Libgen のコマンド オプシ ョ ンR

ユーザー ペリ フェ

ラルおよびド ライ

バ レポジ ト リのラ

イブラ リ検索パス

の指定

-lp <library_path> ユーザー ペリ フェラル、 ド ラ イバ、 OS、 および

ラ イブラ リ のレポジ ト リ を検索する ラ イブラ リ

パスを指定し ます。 Libgen では、 次が検索さ れ

ます。

• library_path/sub_dir/drivers/

ディ レク ト リのド ラ イバ

• library_path/sub_dir/sw_services/

ディ レク ト リのラ イブラ リ

• library_path/sub_dir/bsp/ ディ レク

ト リの OS

こ こで、sub_dir は library_path にあるサブ

ディ レク ト リ を示します。

MHS ファ イルの

指定

-mhs mhsfile.mhs Libgen の実行で使用する MHS フ ァ イルを指定

します。 Libgen では、次の順で mhsfile.mhs が検索されます。

1. 現在の作業ディ レク ト リ

(YOUR_PROJECT/)。

2. -mhs オプシ ョ ンが使用されていない場合は、

MSS ファ イルのベース名に拡張子 .mhs が付

いたファイルが使用されます。

ラ イブラ リの

コピー

-lib このオプシ ョ ンを使用する と、 ラ イブラ リおよ

びド ラ イバはコピーされますが、 コンパイルは

されません。

Libgen を実行する

プロセッサ インス

タンスの指定

-pe mblaze_0 指定したプロセッサ インスタンスに対して Libgen を実行します。

表 4-1 : Libgen のコマンド オプシ ョ ン (続き)

オプシ ョ ン コマンド 説明

Page 62: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

62 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 4 章 : Library Generator (Libgen)R

ディレク ト リ構造ド ライバ、 ライブラ リ、 OS のディ レク ト リ構造を、 図 4-1 および図 4-2 に示します。

UNIX のディ レク ト リ

UNIX では、 ド ラ イバ、 ラ イブラ リ、 OS は次の場所にあ り ます。

• ド ライバ : $XILINX_EDK/sw/Library_Name/drivers

• ライブラ リ : $XILINX_EDK/sw/Library_Name/sw_services

• OS : $XILINX_EDK/sw/BSP_Name/bsp

PC のディレク ト リ

PC では、 ド ラ イバ、 ラ イブラ リ、 OS は次の場所にあ り ます。

• ド ライバ : %XILINX_EDK%\sw\Library_Name\drivers

• ライブラ リ : %XILINX_EDK%\sw\Library_Name\sw_services

• OS : %XILINX_EDK%\sw\BSP_Name\bsp

追加ディレク ト リの指定

追加のディ レク ト リ を指定するには、 次のいずれかの方法を使用します。

• Libgen を起動した現在の作業ディ レク ト リ を使用する。

• EDK ツールの -lp オプシ ョ ンを使用する。 -lp オプシ ョ ンで指定したパスの各サブディ レク ト

リで、 ド ライバ、 OS、 およびライブラ リが検索されます。

ディ レク ト リの検索順

Libgen では、 次の順でド ライバおよびライブラ リが検索されます。

1. 現在の作業ディ レク ト リ

a. ド ライバ : Libgen を起動した作業ディ レク ト リの drivers または pcores ディ レク ト リ

b. ライブラ リ : Libgen を起動した作業ディ レク ト リの sw_services ディ レク ト リ

c. OS : Libgen を起動した作業ディ レク ト リの bsp ディ レク ト リ

図 4-1 : ペリフェラル、 ド ライバ、 ライブラリ、 OS のディ レク ト リ構造

X10133

-lp<library_path>

boards drivers

<Library Name>

pcores bsp sw_services

Page 63: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 63EDK 10.1 サービス パッ ク 1

ディレク ト リ構造R

2. -lp オプシ ョ ンを使用して指定したライブラ リ パス ディ レク ト リにあるレポジ ト リ

a. ド ライバ : 次のいずれかのディ レク ト リ。

- library_path/Library_Name/drivers および library_path/Library Name/pcores (UNIX)

- library_path\Library_Name\drivers および library_path\Library Name\pcores (PC)

b. ライブラ リ : 次のいずれかのディ レク ト リ。 こ こで、 library_path は -lp オプシ ョ ンで

指定したディ レク ト リ、 Library Name はそのサブディ レク ト リです。

- library_path/Library_Name/sw_services (UNIX)

- library_path\Library_Name\sw_services (PC)

c. OS : 次のいずれかのディ レク ト リ。 こ こで、library_path は -lp オプシ ョ ンで指定した

ディ レク ト リ、 OS_Name はそのサブディレク ト リです。

- library_path/OS_Name/bsp (UNIX)

- library_path\OS_Name\bsp (PC)

3. EDK のインス トール領域

a. ド ライバ : 次のいずれかのディ レク ト リ を検索します。

- $XILINX_EDK/sw/Library_Name/drivers (UNIX)

- %XILINX_EDK%\sw\Library_Name\drivers (PC)

b. ライブラ リ : $XILINX_EDK/sw/Library_Name/sw_services (UNIX) または %XILINX_EDK%\sw\Library_Name\sw_services (PC)

c. OS : $XILINX_EDK/sw/Library_Name/bsp (UNIX) または %XILINX_EDK%\sw\Library_Name\bsp (PC)

図 4-2 : ド ライバ、 OS、 ライブラリのディ レク ト リ構造

X10134

<Library Name>

<my_driver>

pcores

src data

.c files .h files MDD Tcl

drivers

<my_driver>

src data

.c files .h files MDD Tcl

bsp

<my_os>

src data

.c files .h files MLD Tcl

sw_services

<my_library>

src data

.c files .h files MLD Tcl

Page 64: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

64 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 4 章 : Library Generator (Libgen)R

出力ファイル

Libgen では、ディ レク ト リおよびファイルは YOUR_PROJECT ディ レク ト リに生成されます。 MSSファ イルの各プロセッサ インスタンスに対してそのインスタンス名のディ レク ト リが生成され、 そのディ レク ト リ内に次のディ レク ト リおよびファイルが生成されます。

• include ディ レク ト リ

• lib ディ レク ト リ

• libsrc ディ レク ト リ

• code ディ レク ト リ

include ディレク ト リ

include デ ィ レ ク ト リ には、 ド ラ イバで必要な C ヘッ ダ フ ァ イルが保存されます。 また、

xparameters.h という include ファ イルも、 このディ レク ト リに作成されます。 このファ イルは、 シ

ステムのペリ フェラルのベース アドレス、 ド ラ イバ、 OS、 ラ イブラ リ、 およびユーザー プログラ

ムで必要な #defines、 関数のプロ ト タ イプを定義します。 各ド ラ イバの MDD (MicroprocessorDriver Definition) ファ イルは、ド ライバを使用するペリ フェラルに対してカスタマイズする定義を

指定します。詳細は、『Platform Specification Format Reference Manual』 の 「MicroprocessorDriver Definition (MDD)」 の章を参照し て く だ さい。 各 OS およびラ イブラ リ の MLD(Microprocessor Library Definition) ファ イルは、 カスタマイズする必要のある定義を指定します。

詳細は、『Platform Specification Format Reference Manual』 の 「Microprocessor Library Definition(MLD)」 の章を参照してください。

この章の 「関連リ ソース」 に、 『Platform Specification Format Reference Manual』 への リ ンクがあ

り ます。

lib ディ レク ト リ

lib ディ レク ト リには、 libc.a、 libm.a、 および libxil.a ライブラ リが含まれます。 libxilラ イブラ リには、 特定のプロセッサがアクセスする ド ラ イバ関数が含まれます。 ラ イブラ リの詳細

は、 『OS and Libraries Document Collection』 から 『Xilinx Microkernel (XMK)』 を参照して くだ

さい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

libsrc ディ レク ト リ

libsrc ディレク ト リには、 OS、 ライブラ リ、 ド ライバのコンパイルに必要な中間ファイルおよび

makefile が保存されます。 このディ レク ト リ には、 EDK ディ レク ト リおよびユーザー ド ラ イバ、

OS、 ライブラ リのディ レク ト リからコピーされたペリ フェラルに固有のド ライバ ファ イル、OS 用の BSP ファ イル、 ラ イブラ リ ファ イルが含まれます。 詳細は、 この章の 「ド ラ イバ」、 「OS ブロ ッ

ク」、 および 「ラ イブラ リ 」 を参照して ください。

code ディ レク ト リ

code ディ レク ト リは、EDK 実行ファイルのレポジ ト リです。 MicroBlaze™ のボード上デバッグ用

の xmdstub.elf は、 このディ レク ト リに作成されます。

メモ : 上記のディ レク ト リはすべて、Libgen を実行するたびに削除されます。 ソース ファ イル、実

行ファイル、 その他必要なファイルは、 ユーザーが作成した場所に移動してください。

Page 65: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 65EDK 10.1 サービス パッ ク 1

ライブラリおよびドライバの生成R

ライブラリおよびド ライバの生成

基本的な概念

このセクシ ョ ンでは、 ライブラ リおよびド ライバの生成に関する基本的な概念を説明します。

MHS ファ イルおよび MSS ファ イルでシステムを定義します。 システムの各プロセッサに対し、ア

ド レス指定可能ペリ フェラルのリ ス トが検索され、 固有のド ライバおよびライブラ リの リ ス トが生

成されます。 Libgen は、 各プロセッサに対して次の処理を実行します。

• 「出力ファイル」 に示されているディ レク ト リ構造を構築します。

• ド ライバ、 OS、 ラ イブラ リに必要なソース ファ イルを、 プロセッサ インスタンス固有の領域

OUTPUT_DIR/processor_instance_name/libsrc にコピーします。

• プロセッサに関連付けられている各ド ライバ、OS、ラ イブラ リに対し、デザイン ルール チェッ

ク プロシージャ (MDD または MLD ファ イルのオプシ ョ ンで定義) を呼び出します。

• プロセッサの各ド ライバ、 OS、 ライブラ リに対し、 Tcl プロシージャ generate を呼び出しま

す (MDD または MLD ファ イルに関連付けられている Tcl ファ イルで定義されている場合)。これによ り、 プロセッサの include ディ レク ト リにある各ド ライバ、 OS、 ライブラ リに対して

必要なコンフ ィギュレーシ ョ ン ファ イルが生成されます。

• プロセッサの各ド ライバ、 OS、 ライブラ リに対し、 Tcl プロシージャ post_generate を呼び

出します (MDD または MLD ファ イルに関連付けられている Tcl ファ イルで定義されている

場合)。

• プロセッサの OS、 ド ラ イバ、 ライブラ リに対して make (ターゲッ トは include および libs) を実行します。UNIX プラ ッ ト フォーム (Linux および Solaris) では gmake ユーティ リ ティ、NTプラ ッ ト フォームでは make がコンパイルに使用されます。

• プロセッサの各ド ライバ、 OS、 ライブラ リに対し、 Tcl プロシージャ execs_generate を呼

び出します (MDD または MLD ファ イルに関連付けられている Tcl ファ イルで定義されてい

る場合)。

MDD、 MLD、 および Tclド ライバ、 OS、 ラ イブラ リには、 2 つのファイルが関連付けられています。

• データ定義ファイル (MDD または MLD) : ド ラ イバ、 OS、 ライブラ リの設定可能なパラ メー

タを定義します。

• データ生成ファイル (Tcl) : MSS ファ イルで設定されたパラ メータを使用して、ド ラ イバ、OS、ライブラ リのデータを生成するスク リプ ト ファ イル。 Tcl ファ イルによ り、 ヘッダ ファ イルの

生成、 C ファイルの生成、 ド ライバ、 OS、 ラ イブラ リに対する DRC の実行、 実行ファイルの

生成などが実行されます。

Tcl ファ イルには、 Libgen の実行中に呼び出されるプロシージャが含まれます。 次のよ うなプ

ロシージャが含まれます。

♦ DRC

MDD または MLD ファ イルで指定された DRC 名

♦ generate

ファ イルがコピーされた後に呼び出される Libgen で定義されたプロシージャ

♦ post_generate

すべてのド ライバ、 OS、 ラ イブラ リに対して generate が呼び出された後に呼び出される

Libgen で定義されたプロシージャ

Page 66: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

66 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 4 章 : Library Generator (Libgen)R

♦ execs_generate

BSP、 ラ イ ブラ リ 、 ド ラ イ バが生成さ れた後に呼び出さ れる Libgen で定義さ れたプロ

シージャ

メモ : ド ラ イバ、 OS、 ライブラ リには、 データ生成ファイル (Tcl) は必要あ り ません。

Tcl プロ シージャおよび MDD/MLD フ ァ イルのパラ メ ータの詳細は、 『Platform SpecificationFormat Reference Manual』 の 「Microprocessor Driver Definition (MDD)」 および 「MicroprocessorLibrary Definition (MLD)」 の章を参照して ください。 この章の 「関連リ ソース」 に、 このマニュ

アルへのリ ンクがあ り ます。

MSS ファイルのパラメータ

MSS フ ァ イルのフ ォーマ ッ ト およびパラ メ ータの詳細は、 『Platform Specification FormatReference Manual』 の 「Microprocessor Software Specification (MSS)」 の章を参照して ください。

この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

ド ライバ

ほとんどのペリ フェラルには、 ソフ ト ウェア ド ラ イバが必要です。 EDK ペリ フェラルには、 ド ラ

イバ、ラ イブラ リ、BSP が付属しています。 ド ラ イバの機能については、『Device Driver ProgrammerGuide』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

MSS ファ イルには、各ペリ フェラル インスタンスに対するド ライバ ブロッ クが含まれます。 このブ

ロッ クでは、 ド ライバを参照するためのド ライバ名 (DRIVER_NAME パラメ ータ ) およびド ライバ

バージョ ン (DRIVER_VER) が指定されます。 これらのパラメ ータにデフォルト 値はあり ません。

ド ライバには、MDD ファ イルと Tcl ファ イルが関連付けられています。 MDD ファ イルは、 ド ライ

バの設定可能なパラ メータを指定します。 これは、 データ定義ファイルです。 MDD ファ イルには、

Tcl ファ イルが関連付けられています。 この Tcl ファ イルは、 ヘッダ ファ イルの生成、 C ファ イル

の生成、ド ラ イバに対する DRC の実行、実行ファイルの生成などを実行するためのスク リプ ト ファ

イルです。 詳細は、 『Platform Specification Format Reference Manual』 の 「Microprocessor DriverDefinition (MDD)」 の章および 「Microprocessor Software Specification (MSS)」 の章を参照してく

ださい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

独自のド ラ イ バも 作成でき ま す。 その場合、 作成し たド ラ イ バは 62 ページの図 4-1 に示す

YOUR_PROJECT/drivers または library_name/drivers の下の特定のディ レク ト リに保存す

る必要があ り ます。 ド ライバ名 (ド ライバ ディ レク ト リ名) は、DRIVER_NAME 属性で指定できま

す。 ド ラ イバのソース ファ イルおよび makefile は、 driver_name ディ レク ト リ内の src/ サブ

ディ レク ト リに保存する必要があ り ます。 makefile は、 include および libs をターゲッ ト とする必

要があ り ます。 各ド ライバの MDD ファ イルおよび Tcl ファ イルは、 data/ サブディ レク ト リに保

存します。 既存の EDK ド ラ イバを参照して、 ド ラ イバの構造を理解する よ う にして ください。

MDD ファ イルと対応する Tcl ファ イルの記述方法は、 『Platform Specification Format ReferenceManual』 の 「Microprocessor Driver Definition (MDD)」 の章を参照して ください。 この章の 「関

連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Page 67: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 67EDK 10.1 サービス パッ ク 1

ライブラリR

ライブラリ

MSS ファ イルには、 各ライブラ リに対するライブラ リ ブロ ッ クが含まれています。 このラ イブラ

リ ブロッ クでは、ラ イブラ リ を参照するためのライブラ リ名 (LIBRARY_NAME パラ メータ ) およ

びライブラ リ バージ ョ ン (LIBRARY_VER) が指定されます。 これらのパラ メータにデフォルト値

はあ り ません。 各ラ イブラ リは、 PROCESSOR_INSTANCE パラ メータで指定されたプロセッサ

インスタンスに関連付けられます。 ラ イブラ リ ディ レク ト リには、 ラ イブラ リの C ソース ファ イ

ル、 ヘッダ ファ イル、 および makefile が含まれます。

MLD ファ イルは、ライブラ リの設定可能なオプシ ョ ンを指定します。 MLD ファ イルには、Tcl ファ

イルが関連付け られています。 詳細は、 『Platform Specification Format Reference Manual』 の

「Microprocessor Library Definition (MLD)」 の章および 「Microprocessor Software Specification(MSS)」 の章を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ

り ます。

独自のラ イブラ リ も 作成できます。 その場合、 作成し たラ イブラ リ は 62 ページの図 4-1 に示す

YOUR_PROJECT/sw_services または library_name/sw_services の下の特定のディ レク ト

リに保存する必要があ り ます。 ラ イブラ リ名 (ライブラ リ ディ レク ト リ名) は、 LIBRARY_NAME属性で指定できます。 ラ イブラ リのソース ファ イルおよび makefile は、 library_name ディ レク

ト リ内の src サブディ レ ク ト リ に保存する必要があ り ます。 makefile は、 include および libs をターゲッ ト とする必要があ り ます。 各ライブラ リの MLD ファ イルおよび Tcl ファ イルは、data サブディ レク ト リに保存します。 既存の EDK ラ イブラ リ を参照して、 ラ イブラ リの構造を理解する

よ う にし て く だ さい。 MLD フ ァ イル と対応する Tcl フ ァ イルの記述方法は、 『PlatformSpecification Format Reference Manual』 の 「Microprocessor Library Definition (MLD)」 の章を参

照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

OS ブロック

MSS ファ イルには、各プロセッサ インスタンスの OS ブロ ッ クが含まれます。 この OS ブロ ッ クで

は、 OS を参照するための OS 名 (OS_NAME パラ メータ ) および OS バージ ョ ン (OS_VER) が指

定されます。 これらのパラ メータにデフォル ト値はあ り ません。 bsp ディ レク ト リ には、 OS の Cソース ファ イル、 ヘッダ ファ イル、 および makefile が含まれます。

MLD ファ イルは、 OS の設定可能なオプシ ョ ンを指定します。 MLD ファ イルには、 Tcl ファ イル

が関連付け られています。 詳細は、 『Platform Specification Format Reference Manual』 の

「Microprocessor Library Definition (MLD)」および「Microprocessor Software Specification (MSS)」の章を参照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

独自の OS も 作成でき ま す。 その場合、 作成し た OS は 62 ページの図 4 -1 に示す

YOUR_PROJECT/bsp または library_name/bsp の下の特定のディ レク ト リに保存する必要があ

り ます。 OS 名 (OS ディ レク ト リ名) は、 OS_NAME 属性で指定します。 OS のソース ファ イルお

よび makefile は、 os_name ディ レク ト リ内の src サブディ レク ト リに保存する必要があ り ます。

makefile は、 include および libs をターゲッ ト とする必要があ り ます。 各 OS の MLD ファ イルお

よび Tcl ファ イルは、 data サブディ レク ト リに保存します。 既存の EDK OS を参照して、 OS の構造を理解する よ う にして く ださい。 MLD フ ァ イル と対応する Tcl フ ァ イルの記述方法は、

『Platform Specification Format Reference Manual』 の 「Microprocessor Library Definition (MLD)」の章を参照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Page 68: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

68 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 4 章 : Library Generator (Libgen)R

割り込みと割り込みコン トローラ

インスタンシエーシ ョ ンの重要性

MHS ファ イルで複数の割り込みポートが接続されている場合は、 割り込みコン ト ローラをインス

タンシエートする必要があ り ます。 Libgen では、割り込みコン ト ローラの Tcl ファ イルによって割

り込みおよび割り込みハン ド ラが設定されます。 割り込みハンド ラは、 ユーザー コードでダイナ

ミ ッ クに登録するこ と も可能です。 この場合、 ユーザー コードでペリ フェラルの割り込みをイネー

ブルにする必要があ り ます。

割り込みコン ト ローラ ド ライバのカスタマイズ

MSS ファ イルで、 割り込みハンド ラ ルーチンを割り込み信号に関連付けるのに INT_HANDLER パラ メータを使用しないよ うにしてください。 割り込みハンド ラ ルーチンは、アプ リ ケーシ ョ ン コー

ドでド ライバ API ルーチンを使用して登録できます。

メモ : MicroBlaze と PowerPC® の間で使用法を統一するため、MSS ファ イルでの INT_HANDLERパラ メータの使用は EDK のバージ ョ ン 10.1 以降サポート されなくなり ます。

MicroBlaze

MicroBlaze では、 割り込みで駆動されるペリ フェラルが 1 つのみの場合、 割り込みコン ト ローラ

は使用されませんが、 その場合でも、 ペリ フェラルに割り込みハンド ラ ルーチンを指定する必要が

あ り ます。 指定しない場合、 デフォルトのルーチンが使用されます。

割り込みコン ト ローラが MicroBlaze に接続されており、 mb-gcc を使用してド ラ イバをコンパイ

ルする場合は、 MicroBlaze ド ラ イバの MDD ファ イルに関連付けられている Tcl ファ イルで、 割

り込みコン ト ローラ ハンド ラがメ インの割り込みハンド ラ と して指定されます。

PowerPC

PowerPC プロセッサの場合は、 例外テーブルを設定する必要があ り ます。 詳細は、 付録 B 「割り込

み制御」 を参照してください。

XMDStub ペリフェラル (MicroBlaze 専用)XMDStub ペリ フェラルは、 XMDStub プログラムでのデバッグに使用する専用のペリ フェラルで

す。 デバッグ プログラム XMDStub の詳細は、第 12 章 「Xilinx Microprocessor Debugger (XMD)」を参照して ください。 XMDSTUB_PERIPHERAL 属性を使用して、 デバッグ ペリ フェラル インスタ

ンスであるこ とを示します。 Libgen は、 この属性を使用してデバッグ プログラム XMDStub を生

成します。

STDIN および STDOUT ペリフェラル

ド ライバがデータにアクセスするために必要な I/O 処理を実行するペリ フェラルです。 STDIN および

STDOUT ペリ フェラルのド ライバ I/O 関数への呼び出しにより 、inbyte.c および outbyte.c と いう 2 つのファ イ ルが自動的に作成さ れます。 ド ラ イ バ I/O 関数は、 MDD ファ イ ルの INBYTE およ び

OUTBYTE パラメ ータで指定します。 inbyte および outbyte 関数は、scanf および printf などの C ライ

ブラ リ 関数で使用されます。 ペリ フェラル インスタンスは、MSS ファ イルで STDIN または STDOUTと して指定します。 STDIN および STDOUT パラメ ータは、スタンド アロン OS の属性です。 inbyte および outbyte 関数は、 STDIN および STDOUT 属性がスタンド アロン OS の MSS ファ イルで指定さ

れている場合にのみ生成されます。 STDIN および STDOUT の機能は、各 OS によって処理されます。

Page 69: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 69EDK 10.1 サービス パッ ク 1

R

第 5 章

Virtual Platform Generator (VPgen)

この章では、XPS に含まれる廃止予定の Virtual Platform Generator (VPgen) について説明します。

この章には、 次のセクシ ョ ンが含まれています。

• 概要

• VPgen の使用法と コマンド オプシ ョ ン

• 出力ファイル

• 使用可能なモデル

• 制限

概要

メモ : 仮想プラ ッ ト フォーム ソ リ ューシ ョ ンは、 今後のリ リースで使用できな くな り ます。 また、

VPgen では PLB v4.6 インターフェイスを使用する XPS コアはサポート されません。

仮想プラ ッ ト フォームは、ハード ウェア システムのサイクル レベル シ ミ ュレーシ ョ ン モデルです。

仮想プラ ッ ト フォームを使用する と、 ホス ト マシンでソフ ト ウェア アプリ ケーシ ョ ン コードのデ

バッグおよびプロファイル作成を実行でき、プロ ト タイプ ボード上で実際のハードウェアを動作さ

せる必要はあ り ません。 仮想プラ ッ ト フォームは、NT および Linux でのみサポート されます。 これ

らのモデルはクロ ッ ク エッジでのみ正し く動作し、エッジの間では正し く動作しません。 そのため、

ModelSim や NC-Sim のよ う なイベン ト ド リブンのシ ミ ュレータでのシ ミ ュレーシ ョ ンを高速に

実行できます。

VPgen は、 MHS (Microprocessor Hardware Specification) ファ イルを入力と して使用し、 ハード

ウェア システムのバイナ リ実行ファ イルを生成します。 システム内の各コンポーネン ト (pcore)が、コンポーネン トの対応する C モデルに置き換えられます。 VPgen では、合成 HDL コード ソー

スから C モデルを生成するこ と も可能です。 また、 上位カーネルを生成するこ とによ り、 さまざ

まなモデルを統合し、 モデル間の通信を可能にします。 カーネルには、 コンポーネン トのモデルの

クロ ッ ク エッジにおけるスタティ ッ ク スケジュールもあ り ます。

生成されたモデルには、 ソフ ト ウェア アプリ ケーシ ョ ンを実行、デバッグ、 プロファ イル作成する

際に仮想プラ ッ ト フォームを制御するために XMD で使用されるインターフェイスが含まれます。

Page 70: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

70 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 5 章 : Virtual Platform Generator (VPgen)R

VPgen の使用法とコマンド オプシ ョ ン

仮想プラ ッ ト フォーム モデルを生成するには、 XPS で [Simulation] → [Generate Virtual Platform]をク リ ッ ク します。 仮想プラ ッ ト フォーム モデルが生成されたら、 XMD を使用してこのモデルに

接続し、 ソフ ト ウェア アプリ ケーシ ョ ンでの操作を実行できます。

VPgen を実行するには、 コマンド ラ インに次のよ うに入力します。

vpgen [options] system.mhs

サポート されているコマンド オプシ ョ ンは、 次のとおりです。

出力ファイル

VPgen の出力は、MHS ファ イルを含むディ レク ト リの virtualplatform ディ レク ト リに保存さ

れます。 主要な出力ファイルは、 ハード ウェア システムとカーネルのコンパイル済みバイナリ実行

ファイルである virtualplatform/vpexec[.exe] です。

vpexec を生成するため、<system>.[c|h] などの中間ファイルも生成されます。 定義済みのモデ

ルがないペリ フェラルに対しては、<peripheral_instance>_wrapper.[c|h] ファ イルが生成

されます。 すべての C ファ イルをコンパイルし、vpexec を生成する vpgen.make という makefileも生成されます。

表 5-1 : VPgen のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン番号の

表示

-v VPgen のバージ ョ ン番号を表示し

ます。

ログ ファ イルの指定 -log <logfile>.log ログ ファ イルを指定します。

デフォルトは vpgen.log です。

アーキテクチャ ファ ミ リの指定

-p <part_name> ターゲッ ト デバイスをアーキテク

チャ ファ ミ リ名またはデバイス名で

指定します。

-h オプシ ョ ンを使用する と、

<part_name> に指定可能な値が表示

されます。

ペリ フェラルの

ライブラ リ検索パス

の指定

-lp <library_path> ユーザー ペリ フェラルのレポジ ト リ

を検索するライブラ リ パスを指定し

ます。 <library_path>/<sub_dir>/pcores ディ レク ト リの

ペリ フェラルが検索されます。

Page 71: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 71EDK 10.1 サービス パッ ク 1

使用可能なモデルR

使用可能なモデル

FPGA の外部のロジッ ク と通信する必要のある IP (MHS ファ イルに含まれないロジッ クに接続さ

れるポート を持つもの) では、IP モデル内で外部ロジッ クをモデル化する必要があ り ます。 また、手

動で記述した IP の C モデルの方が自動生成されたモデルよ り 適化されています。 そのため、

EDK には MicroBlaze™ 用に VPgen で使用される手動で記述された命令セッ ト シ ミ ュ レータ

(ISS) モデルが含まれています。

EDK 8.1i から、 VPgen で I/O ポートのない (MHS に 上位ポートに接続されたポートがない) ブロ ッ クの生成もサポート されるよ うになり ました。 プロセッサ アクセラレータ ブロ ッ ク、DMA 型ブロッ クなどがその例です。 VPgen は、 これらの IP に関連付けられた HDL ファ イルを読み込み、

サイ クル精度モデルを生成します。 生成されたモデルは、 vpexec 実行ファ イルにコンパイルされ

ます。

次の IP モデルが提供されています。

表 5-2 : EDK で提供される IP モデル

IP サポート されるバージ ョ ン/説明/メモ

bram_block v1.00.a

fsl_v20 v1.00.b、 v2.00.a

lmb_bram_if_cntlr v1.00.a、 v2.00.a

lmb_bram_if_cntlr および接続される bram_block の機

能は MicroBlaze ISS モデルに組み込まれます。 そのため、

MicroBlaze の ILMB と DLMB の両方を使用する場合は、

MHS 内の同じ bram_block に接続する必要があ り ます。

mch_opb_ddr v1.00.a、 v1.00.b、 v1.00.c

mch_opb_ddr2 1.00.a、 1.01.a

mch_opb_emc 1.00.a、 1.01.a

mch_opb_sdram v1.00.a

microblaze v3.00.a ~ v6.00.a

MicroBlaze は、 サイクル精度命令セッ ト シ ミ ュレータ (ISS) を使用してモデル化されます。

opb_bram_if_cntlr v1.00.a

opb_ddr v1_00_b、 v1_10_a

opb_ddr は、 読み出しおよび書き込みのレイテンシがそれ

ぞれ 8 および 4 OPB クロ ッ ク サイクルの単純な揮発性ス ト

レージのみをモデル化します。

opb_emc v1.10.b、 v2.00.a

opb_emc (およびその他のメモリ モデル) は、 メモ リ イン

ターフェイス上の単純な揮発性ス ト レージのみをモデル化

します。 コマンド シーケンスを認識したり、 コン ト ロール レジスタを持つ特定のメモ リ チップはモデル化しません。

opb_gpio v3.01.b

Page 72: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

72 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 5 章 : Virtual Platform Generator (VPgen)R

EDK で提供される util_* IP に対しては、実モデルが生成されます。 ほかの IP に対しては、 カーネ

ルで必要なインターフェイスに準拠したダ ミー モデルが生成されますが、 その IP の機能は実行さ

れません。

制限

現在のリ リースの VPgen では、 BSB (Base System Builder) ウ ィザードで生成されたほとんどのデ

ザインがサポート されます。 これには、 モデル リ ス トに含まれるペリ フェラルがあらゆる組み合わ

せで使用されるデザインが含まれます。 また、 IO ポートのない (MHS ファ イルに 上位ポートに

接続されたポートがない) ユーザー IP コアのサイクル精度モデルも生成できます。

• モデルがなく、サイ クル精度モデルを生成できないコアに対しては、ダ ミー モデルが生成され

ます。 ダ ミー モデルは、ポートに入力されるスティ ミ ュラスには応答しません。 MicroBlaze のC プログラムがコアにアクセスした場合は、 MicroBlaze のモデルが時間切れになり ます。

メモ : モデルのないコアにスティ ミ ュラスを入力しないでください。

• MicroBlaze を 1 つ含むデザインのみがサポート されます。

• PowerPC® および PLB バスはサポート されません。

opb_intc v1.00.c

opb_sdram v1.00.c、 v1.00.d、 v1.00.e

opb_sdram は、 読み出しおよび書き込みのレイテンシが

それぞれ 8 および 4 OPB ク ロ ッ ク サイクルの揮発性ス ト

レージをモデル化します。

opb_uartlite v1.00.b

opb_timer v1.00.b

opb_v20 v1.10.c

ダイナミ ッ ク優先順位アービ ト レーシ ョ ンはサポート され

ません。

util_bus_split v1.00.a

util_flipflop v1.00.a

util_reduced_logic v1.00.a

util_vector_logic v1.00.a

表 5-2 : EDK で提供される IP モデル (続き)

IP サポート されるバージ ョ ン/説明/メモ

Page 73: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 73EDK 10.1 サービス パッ ク 1

R

第 6 章

Platform Specification Utility (PsfUtil)

この章では、EDK に準拠した IP コアの作成に必要な MPD (Microprocessor Peripheral Definition)ファ イルを自動的に生成する Platform Specification Utility (PsfUtil) の機能と使用法について説明

します。 MPD ファ イルは、EDK に対応する IP ペリ フェラルを作成するために必要です。このツー

ルの機能は、Xilinx® Platform Studio™ (XPS) の Create and Import Peripheral Wizard で MPD ファ

イルを作成する際に使用されます。

この章には、 次のセクシ ョ ンが含まれています。

• PsfUtil のコマンド オプシ ョ ン

• MPD ファ イル作成プロセスの概要

• MPD ファ イル自動生成の使用法

• PsfUtil での DRC チェッ ク

• HDL ペリ フェラルの定義

Page 74: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

74 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

PsfUtil のコマンド オプシ ョ ン

表 6-1 : PsfUtil のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン番号

の表示

-v バージ ョ ン番号を表示します。

HDL ファ イル

から MPD を生成

-hdl2mpd <hdlfile> VHDL/Verilog の src/prj ファ イルから、 MPD ファ イルを生成します。

サブオプシ ョ ン :

-lang {ver|vhdl} : 言語を指定します。

-top <design> : 上位エンティティ /モジュール名を指定します。

-bus {opb|plbv46|dcr|lmb|fsl} {m|s|ms|mb1}

[<busif_name>] : ペリ フェラルのバス インターフェイスを指定します。

-tbus <transparent_bus_name> <bram_port> : ペリ フェラルの透

過バス インターフェイスを指定します。

-p2pbus <busif_name> <bus_std> {target|initiator} :

ペリ フェラルのポイン ト ツーポイン ト接続を指定します。

-o <outfile> : 出力ファイル名を指定します。 デフォルトは stdoutです。

PAO ファ イル

から MPD を生成

-pao2mpd <paofile> PAO (Peripheral Analyze Order) ファ イルから MPD ファ イルを生成します。

サブオプシ ョ ン :

-lang {ver|vhdl} : 言語を指定します。

-top <design> : 上位エンティティ /モジュール名を指定します。

-bus {opb|plbv46|dcr|lmb|fsl} {m|s|ms|mb1} : ペリ フェラル

のバス インターフェイスを指定します。

-tbus <transparent_bus_name> [<busif_name>] <bram_port> :

ペリ フェラルの透過バス インターフェイスを指定します。

-p2pbus <busif_name> <bus_std> {target|initiator} :

ペリ フェラルのポイン ト ツーポイン ト接続を指定します。

-o <outfile> : 出力ファイル名を指定します。 デフォルトは stdoutです。

1 つのコアの MHS テンプ

レート

-deploy_core

<corename>

<coreversion>

1 つのペリ フェラルをインスタンシエートする MHS テンプレート を生成し

ます。

サブオプシ ョ ン :

-lp <library path> : IP ラ イブラ リ検索パスを追加します。

-o <outfile> : 出力ファイル名を指定します。 デフォルトは stdoutです。

メモ :

1. バス タイプ mb (バース ト ト ランザクシ ョ ンを生成するマスタ ) は、 バス規格 plbv46 でしか使用できません。

Page 75: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 75EDK 10.1 サービス パッ ク 1

MPD ファイル作成プロセスの概要R

MPD ファイル作成プロセスの概要

PsfUtil を使用する と、ペリ フェラルの VHDL ソースから MPD ファ イルを自動的に作成できます。

ペリ フェラルを作成して EDK で使用するには、 次の手順に従います。

1. IP を VHDL または Verilog で記述します。 この際、 バス信号、 ク ロ ッ ク信号、 リセッ ト信号、

および割り込み信号の命名規則に従う必要があ り ます。 命名規則は、 78 ページの 「HDL ペリ

フェラルの定義」 を参照してください。

メモ : この命名規則に従う こ とによ り、 正しい MPD ファ イルが生成されます。

2. IP のインプ リ メン トに必要な HDL ソース ファ イルを リ ス ト した XST (Xilinx SythesisTechnology) プロジェ ク ト ファ イルまたは PAO ファ イルを作成します。 XST プロジェ ク ト

ファ イルまたは PAO ファ イルを入力と し、 追加オプシ ョ ンを使用して PsfUtil を実行します。

異なるオプシ ョ ンを使用した PsfUtil の実行については、 「MPD ファ イル自動生成の使用法」

を参照してください。

MPD ファイル自動生成の使用法

PsfUtil は、 ペリ フェラルのバス規格やバス インターフェイスのタイプ、 バス インターフェイスの

数によって、 さまざまな実行方法があ り ます。 使用可能なバス規格は、 次のとおりです。

• OPB (オンチップ ペリ フェラル バス) SLAVE

• OPB MASTER

• OPB MASTER_SLAVE

• PLB (プロセッサ ローカル バス) SLAVE

• PLB MASTER

• PLB MASTER_SLAVE

• PLBV46 (プロセッサ ローカル バス バージ ョ ン 4.6) SLAVE

• PLBV46 MASTER

• DCR (デザイン コン ト ロール レジスタ) SLAVE

• LMB (ローカル メモ リ バス) SLAVE

• FSL (高速シンプレッ クス リ ンク ) SLAVE

• FSL MASTER

• TRANSPARENT BUS (特殊なケース)

• POINT TO POINT BUS (特殊なケース)

バス インターフェイスを 1 つ使用するペリフェラル

プロセッサ ペリ フェラルのほとんどは、バス インターフェイスを 1 つ使用します。 これは、PsfUtilの も単純な使用法です。 このよ う なペ リ フェ ラルの場合、 ソース コードに属性を追加せずに

MPD を完成させるこ とができます。

信号の命名規則

信号には、 78 ページの 「HDL ペリ フェラルの定義」 に示されている命名規則に従って名前を付け

る必要があ り ます。 バス インターフェイスが 1 つしかない場合は、バス信号にバス識別子を指定す

る必要はあ り ません。

Page 76: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

76 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

PsfUtil の実行

PsfUtil を実行するには、 次のコマンドを入力します。

psfutil -hdl2mpd <hdlfile> -lang {vhdl|ver} -top <top_entity> -bus <busstd> <bustype> -o <mpdfile>

たとえば、 UART とい う OPB スレーブ ペリ フェラルの MPD ファ イルを作成するには、 次のコマ

ンドを使用します。

psfutil -hdl2mpd uart.prj -lang vhdl -top uart -bus plb s -o uart.mpd

複数のバス インターフェイスを使用するペリフェラル

複数のバス インターフェイスを使用するペリ フェラルもあ り ます。 インターフェイスには、 排他的

バス インターフェイス、 非排他的バス インターフェイス、 またはその組み合わせを使用できます。

1 つのペリ フェラルに同時に接続可能なバス インターフェイスは、排他的です。 たとえば、OPB スレーブ バス インターフェイス と DCR スレーブ バス インターフェイスはペリ フェラルに同時に接

続できるため、 排他的バス インターフェイスです。

メモ : ペリ フェラルに複数の排他的バス インターフェイスが接続されている場合、そのペリ フェラ

ルのポートは 1 つの排他的バス インターフェイスにしか接続できません。

非排他的バス インターフェイスは、 同時には接続できません。

メモ : ペリ フェラルに複数の非排他的バス インターフェイスが接続されている場合、ポート を複数

の非排他的バス インターフェイスに接続できます。 また、 これらのインターフェイスのバス規格は

同じになり ます。 たとえば、OPB スレーブ インターフェイス と OPB マスタ /スレーブ インターフェ

イスがペリ フェラルの同じスレーブ ポートに接続されている場合、これらのインターフェイスは非

排他的です。

非排他的バス インターフェイス

信号の命名規則

信号には、 78 ページの 「HDL ペリ フェラルの定義」 に示されている命名規則に従って名前を付け

る必要があ り ます。 非排他的バス インターフェイスには、バス識別子を指定する必要はあ り ません。

コマンド ラインでバスを指定して PsfUtil を実行する場合

バス信号にバス識別子が付いていない場合は、 バスをコマンド ラインで指定できます。 次のコマン

ドを使用します。

psfutil -hdl2mpd <hdlfile> -lang {vhdl|ver} -top <top_entity> [-bus <busstd> <bustype>] -o <mpdfile>

たとえば、 PLB スレーブ インターフェイス と PLB マスタ /スレーブ インターフェイスを使用した

gemac とい うペリ フェラルの MPD ファ イルを作成するには、 次のコマンドを使用します。

psfutil -hdl2mpd gemac.prj -lang vhdl -top gemac -bus plb s -bus plb ms -o gemac.mpd

Page 77: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 77EDK 10.1 サービス パッ ク 1

MPD ファイル自動生成の使用法R

排他的バス インターフェイス

信号の命名規則

信号には、 78 ページの 「HDL ペリ フェラルの定義」 に示されている命名規則に従って名前を付け

る必要があ り ます。 1 つのペリ フェラルに同じバス規格およびタイプのバス インターフェイスが複

数ある場合は、 バス識別子を指定する必要があ り ます。

コマンド ラインでバスを指定して PsfUtil を実行する場合

バス信号にバス識別子が付いていない場合は、 バスをコマンド ラインで指定できます。 次のコマン

ドを使用します。

psfutil -hdl2mpd <hdlfile> -lang {vhdl|ver} -top <top_entity> [-bus <busstd> <bustype>] -o <mpdfile>

たとえば、PLB スレーブ インターフェイス と DCR スレーブ インターフェイスを使用したペリ フェ

ラルの MPD ファ イルを作成するには、 次のコマンドを使用します。

psfutil -hdl2mpd mem.prj -lang vhdl -top mem -bus plb s -bus dcr s -o mem.prj

透過バス インターフェイスを使用するペリフェラル

BRAM コ ン ト ロ ーラ などのペリ フ ェ ラ ルには、 透過バス イ ンタ ーフェ イ ス (BUS_STD=TRANSPARENT、 BUS_TYPE = UNDEF) を使用するものがあ り ます。

BRAM ポート

透過 BRAM バス インターフェ イスをペリ フェ ラルに追加する場合は、 psfutil を -tbus オプ

シ ョ ンを使用して実行します。

psfutil -hdl2mpd bram_ctlr.prj -lang vhdl -top bram_ctlr -bus opb s -tbus PORTA bram_port

信号には、 78 ページの 「HDL ペリ フェラルの定義」 に示されている命名規則に従って名前を付け

る必要があ り ます。

ポイン ト ツーポイン ト接続を含むペリフェラル

マルチチャネル メモ リ コン ト ローラなどのペリ フェラルには、 ポイン ト ツーポイン ト接続が含ま

れるものがあ り ます (BUS_STD = XIL_MEMORY_CHANNEL、 BUS_TYPE = TARGET)。

信号の命名規則

ポイン ト ツーポイン ト接続に関連するすべての信号には、 同じバス インターフェ イ ス名接頭辞

(MCH0_* など) を付ける必要があ り ます。

コマンド ラインでポイン トツーポイン ト接続を指定して PsfUtil を実行する場合

ポイン ト ツーポイン ト接続は、バス インターフェイス名をバス信号名の接頭辞と して使用するこ と

によ り、 コマンド ラ インで指定できます。 次のコマンドを使用します。

psfutil -hdl2mpd <hdlfile> -lang {vhdl|ver} -top <top_entity> -p2pbus <busif_name> <bus_std> {target|initiator} -o <mpdfile>

Page 78: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

78 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

たとえば、MCH0 接続を含むペリ フェラルの MPD ファ イルを作成するには、次のコマンドを使用

します。

psfutil -hdl2mpd mch_mem.prj -lang vhdl -top mch_mem -p2pbus MCH0 XIL_MEMORY_CHANNEL TARGET -o mch_mem.mpd

PsfUtil での DRC チェ ック

HDL ソースから正しい MPD ファ イルを生成するため、 PsfUtil によ り DRC チェッ クが実行され

ます。 次に、 DRC チェッ クを実行される順に示します。

HDL ソース エラー

HDL ソース ファ イルにエラーがある と、 そのエラーがレポート されます。

バス インターフェイス チェ ック

指定された各バス インターフェイスに対し、接続されているペリ フェラルに応じて、次のチェッ ク

が実行されます。

• バス信号がすべて存在するかど うかを確認し、 レポート します。

• バス信号が重複していないかを確認し、 レポート します。

すべてのバス イ ンターフェイ スに対するチェッ ク が完了すると 、MPD ファ イルが生成さ れます。

HDL ペリフェラルの定義

IP ペリ フェラルの 上位 VHDL ソース ファ イルは、 デザインのインターフェイスを定義します。

VHDL ソース ファ イルには、 次のよ う な特徴があ り ます。

• バス インターフェイスのポートおよびデフォルトの接続を記述します。

• パラ メータ (ジェネ リ ッ ク ) およびデフォルト値を記述します。

• HDL ソースのパラ メータは、 MHS の同等の設定に書き換えられます。

各ペリ フェラルのマニュアルに、 ソース ファ イルのオプシ ョ ンに関する情報が記載されています。

バス インターフェイスの命名規則

バス インターフェイスは、 関連するインターフェイス信号のグループです。 自動生成を正し く機能

させるためには、バス インターフェイスに関連する信号およびパラ メータの命名規則に従う必要が

あ り ます。 命名規則に従う と、 表 6-2 に示すインターフェイス タイプが自動的に認識され、 MPDファ イルにバス インターフェイスのラベルが含まれます。

表 6-2 : 認識されるバス インターフェイス

説明 MPD のバス ラベル

スレーブ DCR インターフェイス SDCR

スレーブ LMB インターフェイス SLMB

マスタ OPB インターフェイス MOPB

マスタ /スレーブ OPB インターフェイス MSOPB

Page 79: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 79EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

同じタイプのバス インターフェイスが複数使用されているコンポーネン トでは、 これらのバス インターフェイスがグループ化されるよ うに、 命名規則に従って名前を付ける必要があ り ます。

VHDL ジェネリ ッ クの命名規則

ペリ フェラルに同じバス インターフェイスが複数含まれる場合は、バス識別子を使用する必要があ

り ます。 バス識別子は、 関連付けられている信号およびジェネ リ ッ クすべてに付けます。

ジェネ リ ッ ク名は、VHDL に準拠する必要があ り ます。 次に、 IP ペリ フェラルの追加の命名規則を

示します。

• ジェネ リ ッ ク名は C_ で開始します。

• 1 つのペリ フェラルに同じバス インターフェイス タイプのインスタンスが複数ある場合、バス

識別子 <BI> を信号名に使用する必要があ り ます。

• ポートに関連付けられている信号にバス識別子が使用されている場合は、 そのポートに関連付

けられたジェネ リ ッ クにも <BI> を使用できます。

• <BI> が使用されていない場合は、 バス パラ メータに関連付けられているジェネ リ ッ クはグ

ローバルである と判断されます。 たとえば、 C_DOPB_DWIDTH には D というバス識別子が付い

ているので、バス識別子が D のバス信号に関連付けられます。 C_OPB_DWIDTH の場合は、ポー

ト信号のバス識別子にかかわらず、 すべての OPB バスに関連付けられます。

メモ : PLBV46 バス インターフェイスの場合は、 <BI> はバス タグ (バス インターフェイス名) として使用されます。たとえば、C_SPLB0_DWIDTH にはバス識別子 (タグ) SPLB0 が含まれている

ので、 接頭辞と してバス識別子 SPLB0 が付いているバス信号に関連付けられます。

• バス インターフェイスが 1 つだけのペリ フェラルでは、信号名およびジェネ リ ッ ク名にバス識

別子を使用する必要はあ り ません。

• ベース アドレスを指定するジェネ リ ッ クには 後に _BASEADDR を付け、ハイ アドレスを指定

するジェネ リ ッ クには _HIGHADDR を付けます。 さ らに、 これらのアドレスをバスに関連付け

るには、 前述のパラ メータの命名規則にも従う必要があ り ます。

• 複数のタイプのバス インターフェイスを使用するペリ フェラルでは、パラメ ータ名でバス規格タ

イプを示す必要があり ます。 たと えば、 PLB バスのアド レスのパラメ ータは C_PLB_BASEADDRおよび C_PLB_HIGHADDR と する必要があり ます。

スレーブ OPB インターフェイス SOPB

マスタ PLB インターフェイス MPLB

マスタ /スレーブ PLB インターフェイス MSPLB

スレーブ PLB インターフェイス SPLB

マスタ PLBV46 インターフェイス MPLB

スレーブ PLBV46 インターフェイス SPLB

マスタ FSL インターフェイス MFSL

スレーブ FSL インターフェイス SFSL

表 6-2 : 認識されるバス インターフェイス (続き)

説明 MPD のバス ラベル

Page 80: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

80 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

Platform Generator (Platgen) は、一部の予約済みジェネ リ ッ クに対して自動的に値を割り当てます。

これを正し く機能させるためには、 これらのパラ メータにバス タグを設定する必要があ り ます。

PsfUtil でこの情報を自動的に推論させるには、予約済みジェネ リ ッ クに対しても命名規則をすべて

適用する必要があ り ます。 この機能によ り、 ペリ フェラルでプラ ッ ト フォームの生成された情報が

必要な場合に、 エラーを回避できます。 表 6-3 に、 予約済みのジェネリ ッ ク 名を示します。

表 6-3 : 自動的に値が割り当てられる予約済みジェネリ ック

パラメータ 説明

C_BUS_CONFIG MicroBlaze™ のバス コンフ ィギュレーシ ョ ン

C_FAMILY FPGA デバイス ファ ミ リ

C_INSTANCE コンポーネン トのインスタンス名

C_KIND_OF_EDGE 割り込み信号を認識させるエッジ (rising/falling)

C_KIND_OF_LVL 割り込み信号を認識させるレベル (high/low)

C_KIND_OF_INTR 割り込み信号を認識させるベクタ (edge/level)

C_NUM_INTR_INPUTS 割り込み信号の数

C_<BI>OPB_NUM_MASTERS OPB マスタの数

C_<BI>OPB_NUM_SLAVES OPB スレーブの数

C_<BI>DCR_AWIDTH DCR アドレス幅

C_<BI>DCR_DWIDTH DCR データ幅

C_<BI>DCR_NUM_SLAVES DCR スレーブの数

C_<BI>FSL_DWIDTH FSL データ幅

C_<BI>LMB_AWIDTH LMB アドレス幅

C_<BI>LMB_DWIDTH LMB データ幅

C_<BI>LMB_NUM_SLAVES LMB スレーブの数

C_<BI>OPB_AWIDTH OPB アドレス幅

C_<BI>OPB_DWIDTH OPB データ幅

C_<BI>PLB_AWIDTH PLB アドレス幅

C_<BI>PLB_DWIDTH PLB データ幅

C_<BI>PLB_MID_WIDTH PLB マスタ ID の幅

C_<BI>PLB_NUM_MASTERS PLB マスタの数

C_<BI>PLB_NUM_SLAVES PLB スレーブの数

Page 81: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 81EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

予約済みパラメータ

表 6-4 のパラ メータの値は、 Platgen によ り自動的に割り当てられます。

バス インターフェイス信号の命名規則

このセクシ ョ ンでは、 バス インターフェイス信号の命名規則を示します。 この命名規則は、 1 つの

コンポーネン トに複数のバス インターフェイスおよび複数のバス インターフェイス ポートが使用

されているエンベデッ ド プロセッサ システムにも適用できます。 デザイン内のペリ フェラルに複

数のバス インターフェイス ポートがある場合は、 バス識別子の使用方法を理解しておく必要があ

り ます。前述のとおり、ペリ フェラルに同じバス インターフェイスが複数含まれる場合は、 バス識

別子を使用する必要があ り ます。 バス識別子は、 関連付けられている信号およびジェネ リ ッ クすべ

てに付けます。

信号名は、 HDL に準拠する必要があ り ます。 次に、 追加の命名規則を示します。

• 信号名の 初の文字は、 大文字のアルファベッ トにします。

• 各信号の識別子の既定部分は、 この後の該当するセクシ ョ ンに示されている とおりにします。

各セクシ ョ ンで、 バス インターフェイスのタイプに必要な信号を示します。

表 6-4 : 予約済みパラメータ

パラ メータ 説明

C_BUS_CONFIG MicroBlaze プロセッサのバス コンフ ィギュレーシ ョ ン

C_FAMILY FPGA デバイス ファ ミ リ

C_INSTANCE コンポーネン トのインスタンス名

C_DCR_AWIDTH DCR のアドレス幅

C_DCR_DWIDTH DCR のデータ幅

C_DCR_NUM_SLAVES バス上の DCR スレーブの数

C_LMB_AWIDTH LMB のアドレス幅

C_LMB_DWIDTH LMB のデータ幅

C_LMB_NUM_SLAVES バス上の LMB スレーブの数

C_OPB_AWIDTH OPB のアドレス幅

C_OPB_DWIDTH OPB のデータ幅

C_OPB_NUM_MASTERS バス上の OPB マスタの数

C_OPB_NUM_SLAVES バス上の OPB スレーブの数

C_PLB_AWIDTH PLB のアドレス幅

C_PLB_DWIDTH PLB のデータ幅

C_PLB_MID_WIDTH PLB マスタ ID の幅。 log2(S) に設定されています。

C_PLB_NUM_MASTERS バス上の PLB マスタの数

C_PLB_NUM_SLAVES バス上の PLB スレーブの数

Page 82: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

82 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

• 1 つのペリ フェラルに同じバス インターフェイス タイプのインスタンスが複数ある場合、信号

名にバス識別子 <BI> を含める必要があ り ます。 バス識別子は、 1 文字でも、 後にアンダー

スコア (_) を付けた説明的な文字列でもかまいません。 次の場合には、ポートの信号名に <BI>を含める必要があ り ます。

♦ ペリ フェラルにスレーブ PLB ポートが複数ある。

♦ ペリ フェラルにマスタ PLB ポートが複数ある。

♦ ペリ フェラルにスレーブ LMB ポートが複数ある。

♦ ペリ フェラルにスレーブ DCR ポートが複数ある。

♦ ペリ フェラルにマスタ DCR ポートが複数ある。

♦ ペリ フェラルにスレーブ FSL ポートが複数ある。

♦ ペリ フェラルにマスタ FSL ポートが複数ある。

♦ ペリ フェラルにスレーブ PLBV46 ポートが複数ある。

♦ ペリ フェラルにマスタ PLBV46 ポートが複数ある。

♦ ペリ フェラルにマスタ、 スレーブ、 またはマスタ /スレーブの OPB ポートが複数ある。

♦ ペリ フェラルにいずれかのタイプのポートが複数あ り、 <Mn> または <Sln> の選択に

よって信号名が不確定になる。 た とえば、 ペ リ フェ ラルにマスタ OPB ポー ト とマス タ

PLB ポートがある場合、 両方のポートに同じ <Mn> を使用する とアドレス バス信号名が

不確定になるので、 ポート を区別するために <BI> が必要です。

バス インターフェイスが 1 つだけのペリ フェラルでは、信号名にバス識別子を使用する必要はあ り

ません。

グローバル ポート

ペリ フェラルのグローバル ポート (ク ロ ッ ク、 リセッ ト など) の名前は、標準化されています。 その

他のグローバル ポート (割り込み信号など) には、 任意の名前を使用できます。

LMB - クロッ クおよびリセッ ト

LMB_ClkLMB_Rst

OPB - クロッ クおよびリセッ ト

OPB_ClkOPB_Rst

PLB - クロックおよびリセッ ト

PLB_ClkPLB_Rst

PLBV46 スレーブ - クロックおよびリセッ ト

SPLB_ClkSPLB_Rst

PLBV46 マスタ - クロッ クおよびリセッ ト

MPLB_ClkMPLB_Rst

Page 83: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 83EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

スレーブ DCR ポート

スレーブ DCR ポートは、 表 6-5 に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Sln> を使用する必要はあ り ません。

DCR スレーブ出力

DCR への接続には、 すべてのスレーブに次の出力が必要です。

<BI><Sln>_dcrDBus : out std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);<BI><Sln>_dcrAck : out std_logic;

例 :

Uart_dcrAck : out std_logic;Intc_dcrAck : out std_logic;Memcon_dcrAck : out std_logic;Bus1_timer_dcrAck : out std_logic;Bus1_timer_dcrDBus : out std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);Bus2_timer_dcrAck : out std_logic;Bus2_timer_dcrDBus : out std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);

DCR スレーブ入力

DCR への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nDCR>_ABus : in std_logic_vector(0 to C_<BI>DCR_AWIDTH-1);<BI><nDCR>_DBus : in std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);<BI><nDCR>_Read : in std_logic;<BI><nDCR>_Write : in std_logic;

例 :

DCR_DBus : in std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);Bus1_DCR_DBus : in std_logic_vector(0 to C_<BI>DCR_DWIDTH-1);

表 6-5 : スレーブ DCR ポートの命名規則

<Sln> スレーブ出力を表す意味のある名前または短縮形を使用します。 スレーブ出力と

バス出力との混乱を避けるため、 DCR (大文字、 小文字、 または大文字/小文字

混合) とい う文字列は含めないでください。

<nDCR> スレーブ入力を表す意味のある名前または短縮形を使用します。 <nDCR> の後の 3 文字は、 DCR (大文字、 小文字、 または大文字/小文字混合) にする必要が

あ り ます。

<BI> バス識別子です。 スレーブ DCR ポートが 1 つのみのペリ フェラルでは必要あ り

ませんが、 複数のスレーブ DCR ポートのあるペリ フェラルでは必須です。 <BI> には、 DCR (大文字、 小文字、 または大文字/小文字混合) とい う文字列を

含めないでください。 複数のスレーブ DCR ポートがあるペリ フェラルでは、 各

バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 84: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

84 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

スレーブ FSL ポート

スレーブ FSL ポートは、 表 6-6 に示す命名規則に従う必要があ り ます。

FSL スレーブ出力

FSL への接続には、 すべてのスレーブに次の出力が必要です。

<BI><nFSL_S>_Data : out std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);<BI><nFSL_S>_Control : out std_logic; <BI><nFSL_S>_Exists : out std_logic;

例 :

FSL_S_Control : out std_logic;Memcon_FSL_S_Control : out std_logic;Bus1_timer_FSL_S_Control: out std_logic;Bus1_timer_FSL_S_Data: out std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);Bus2_timer_FSL_S_Control: out std_logic;Bus2_timer_FSL_S_Data: out std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);

FSL スレーブ入力

FSL への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nFSL>_Clk : in std_logic;<BI><nFSL>_Rst : in std_logic;<BI><nFSL_S>_Clk : in std_logic;<BI><nFSL_S>_Read : in std_logic;

例 :

FSL_S_Read : in std_logic;Bus1_FSL_S_Read : in std_logic;

表 6-6 : スレーブ FSL ポートの命名規則

<nFSL> または <nFSL_S>

スレーブの入力/出力を表す意味のある名前または短縮形を使用します。

<nFSL_S> の 後の 5 文字は、 FSL_S (大文字、 小文字、 または大文字/小文

字混合) にする必要があ り ます。

<BI> バス識別子です。 スレーブ FSL ポートが 1 つのみのペリ フェラルでは必要あ

り ませんが、 複数のスレーブ FSL ポートのあるペリ フェラルでは必須です。 <BI> には、 FSL_S (大文字、 小文字、 または大文字/小文字混合) という文字

列を含めないでください。 複数のスレーブ FSL ポートがあるペリ フェラルで

は、 各バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 85: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 85EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

マスタ FSL ポート

マスタ FSL ポートは、 表 6-7 に示す命名規則に従う必要があ り ます。

FSL マスタ出力

FSL への接続には、 すべてのマスタに次の出力が必要です。

<BI><nFSL_M>_Full : out std_logic;

例 :

FSL_M_Full :out std_logic;Memcon_FSL_M_Full : out std_logic;

FSL マスタ入力

FSL への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nFSL>_Clk : in std_logic;<BI><nFSL>_Rst : in std_logic;<BI><nFSL_M>_Clk : in std_logic;<BI><nFSL_M>_Data : in std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);<BI><nFSL_M>_Control : in std_logic;<BI><nFSL_M>_Write : in std_logic;

例 :

FSL_M_Write : in std_logic;Bus1_FSL_M_Write : in std_logic;Bus1_timer_FSL_M_Control: out std_logic;Bus1_timer_FSL_M_Data: out std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);Bus2_timer_FSL_M_Control: out std_logic;Bus2_timer_FSL_M_Data: out std_logic_vector(0 to C_<BI>FSL_DWIDTH-1);

表 6-7 : マスタ FSL ポートの命名規則

<nFSL> または <nFSL_M>

マスタの入力/出力を表す意味のある名前または短縮形を使用します。

<nFSL_M> の 後の 5 文字は、 FSL_M (大文字、 小文字、 または大文字/小文字混合) にする必要があ り ます。

<BI> バス識別子です。 マスタ FSL ポートが 1 つのみのペリ フェラルでは必要あ り

ませんが、複数のマスタ FSL ポートのあるペリ フェラルでは必須です。 <BI> には、 FSL_M (大文字、 小文字、 または大文字/小文字混合) という文字列を

含めないでください。 複数のマスタ FSL ポートがあるペリ フェラルでは、

各バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 86: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

86 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

スレーブ LMB ポート

スレーブ LMB ポートは、 次の表に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Sln> を使用する必要はあ り ません。

LMB スレーブ出力

LMB への接続には、 すべてのスレーブに次の出力が必要です。

<BI><Sln>_DBus : out std_logic_vector(0 to C_<BI>LMB_DWIDTH-1);<BI><Sln>_Ready : out std_logic;

例 :

D_Ready : out std_logic;I_Ready : out std_logic;

LMB スレーブ入力

LMB への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nLMB>_ABus : in std_logic_vector(0 to C_<BI>LMB_AWIDTH-1);<BI><nLMB>_AddrStrobe: in std_logic;<BI><nLMB>_BE : in std_logic_vector(0 to C_<BI>LMB_DWIDTH/8-1);<BI><nLMB>_Clk : in std_logic;<BI><nLMB>_ReadStrobe: in std_logic;<BI><nLMB>_Rst : in std_logic;<BI><nLMB>_WriteDBus : in std_logic_vector(0 to C_<BI>LMB_DWIDTH-1);<BI><nLMB>_WriteStrobe: in std_logic;

例 :

LMB_ABus : in std_logic_vector(0 to C_LMB_AWIDTH-1);DLMB_ABus : in std_logic_vector(0 to C_DLMB_AWIDTH-1);

表 6-8 : スレーブ LMB ポートの命名規則

<Sln> スレーブ出力を表す意味のある名前または短縮形を使用します。 スレーブ出力と

バス出力との混乱を避けるため、 LMB (大文字、 小文字、 または大文字/小文字

混合) とい う文字列は含めないでください。

<nLMB> スレーブ入力を表す意味のある名前または短縮形を使用します。 <nLMB> の後の 3 文字は、 LMB (大文字、 小文字、 または大文字/小文字混合) にする必要が

あ り ます。

<BI> バス識別子です。 スレーブ LMB ポートが 1 つのみのペリ フェラルでは必要あ り

ませんが、 複数のスレーブ LMB ポートのあるペリ フェラルでは必須です。 <BI> には、 LMB (大文字、 小文字、 または大文字/小文字混合) という文字列を

含めないでください。 複数のスレーブ LMB ポートがあるペリ フェラルでは、

各バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 87: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 87EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

マスタ OPB ポート

次に示す命名規則は、 スレーブ OPB ポートからは独立したマスタ OPB ポートに適用されます。

マスタ OPB ポートは、 表 6-9 に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Mn> を使用する必要はあ り ません。

OPB マスタ出力

OPB への接続には、 すべてのマスタに次の出力が必要です。

<BI><Mn>_ABus : out std_logic_vector(0 to C_<BI>OPB_AWIDTH-1);<BI><Mn>_BE : out std_logic_vector(0 to C_<BI>OPB_DWIDTH/8-1);<BI><Mn>_busLock : out std_logic;<BI><Mn>_DBus : out std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><Mn>_request : out std_logic;<BI><Mn>_RNW : out std_logic;<BI><Mn>_select : out std_logic;<BI><Mn>_seqAddr : out std_logic;

例 :

IM_request : out std_logic;Bridge_request : out std_logic;O2Ob_request : out std_logic;

OPB マスタ入力

OPB への接続には、 すべてのマスタに次の入力が必要です。

<BI><nOPB>_Clk : in std_logic;<BI><nOPB>_DBus : in std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><nOPB>_errAck : in std_logic;<BI><nOPB>_MGrant : in std_logic;<BI><nOPB>_retry : in std_logic;<BI><nOPB>_Rst : in std_logic;<BI><nOPB>_timeout : in std_logic;<BI><nOPB>_xferAck : in std_logic;

表 6-9 : マスタ OPB ポートの命名規則

<Mn> マスタ出力を表す意味のある名前または短縮形を使用します。 マスタ出力とバス

出力との混乱を避けるため、 OPB (大文字、 小文字、 または大文字/小文字混合) とい う文字列は含めないでください。

<nOPB> マスタ入力を表す意味のある名前または短縮形を使用します。 <nOPB> の 後の 3 文字は、 OPB (大文字、 小文字、 または大文字/小文字混合) にする必要があ り

ます。

<BI> バス識別子です。 OPB ポート (タイプは問わない) が 1 つのみのペリ フェラルで

は必要あ り ませんが、 複数の OPB ポート (異なるタイプの場合も含む) のある

ペリ フェラルでは必須です。 <BI> には、 OPB (大文字、 小文字、 または大文字/小文字混合) とい う文字列を含めないでください。 複数の OPB ポートがあるペリ

フェラルでは、 各バス インターフェイスに固有の <BI> を使用する必要があ り

ます。

Page 88: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

88 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

例 :

IOPB_DBus : in std_logic_vector(0 to C_IOPB_DWIDTH-1);OPB_DBus : in std_logic_vector(0 to C_OPB_DWIDTH-1);Bus1_OPB_DBus : in std_logic_vector(0 to C_Bus1_OPB_DWIDTH-1);

スレーブ OPB ポート

次に示す命名規則は、マスタ OPB ポートからは独立したスレーブ OPB ポートに適用されます。 マスタ と スレーブを組み合わせたバス インターフェイスを使用するペリ フェラルの場合は、 89 ペー

ジの 「マスタ /スレーブ OPB ポート 」 を参照して ください。

スレーブ OPB ポートは、 表 6-10 に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Sln> を使用する必要はあ り ません。

OPB スレーブ出力

OPB への接続には、 すべてのスレーブに次の出力が必要です。

<BI><Sln>_DBus : out std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><Sln>_errAck : out std_logic;<BI><Sln>_retry : out std_logic;<BI><Sln>_toutSup : out std_logic;<BI><Sln>_xferAck : out std_logic;

例 :

Tmr_xferAck : out std_logic;Uart_xferAck : out std_logic;Intc_xferAck : out std_logic;

OPB スレーブ入力

OPB への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nOPB>_ABus : in std_logic_vector(0 to C_<BI>OPB_AWIDTH-1);<BI><nOPB>_BE : in std_logic_vector(0 to C_<BI>OPB_DWIDTH/8-1);<BI><nOPB>_Clk : in std_logic;<BI><nOPB>_DBus : in std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><nOPB>_Rst : in std_logic;<BI><nOPB>_RNW : in std_logic;<BI><nOPB>_select : in std_logic;<BI><nOPB>_seqAddr : in std_logic;

表 6-10 : スレーブ OPB ポートの命名規則

<Sln> スレーブ出力を表す意味のある名前または短縮形を使用します。 スレーブ出力と

バス出力との混乱を避けるため、 OPB (大文字、 小文字、 または大文字/小文字

混合) とい う文字列は含めないでください。

<nOPB> スレーブ入力を表す意味のある名前または短縮形を使用します。 <nOPB> の 後

の 3 文字は、 OPB (大文字、 小文字、 または大文字/小文字混合) にする必要があ

り ます。

<BI> バス識別子です。 OPB ポートが 1 つのみのペリ フェラルでは必要あ り ませんが、

複数の OPB ポートのあるペリ フェラルでは必須です。 <BI> には、 OPB (大文

字、 小文字、 または大文字/小文字混合) とい う文字列を含めないでください。 複数の OPB ポート (異なるタイプの場合も含む) があるペリ フェラルでは、

各バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 89: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 89EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

例 :

OPB_DBus : in std_logic_vector(0 to C_OPB_DWIDTH-1);IOPB_DBus : in std_logic_vector(0 to C_IOPB_DWIDTH-1);Bus1_OPB_DBus : in std_logic_vector(0 to C_Bus1_OPB_DWIDTH-1);

マスタ /スレーブ OPB ポート

次に示す命名規則は、同じ OPB バスに接続され、同じ入力/出力データ バスを共有するマスタおよ

びスレーブ OPB ポートに適用されます。 このタイプのバス インターフェイスは、 ペリ フェラルに

マスタおよびスレーブの両方の機能が備わっている場合、および DMA がペリ フェラルに含まれて

いる場合に使用されます。 マスタ と スレーブで入力/出力データ バスを共有するのは有益です。

マスタ /スレーブ OPB ポートは、 表 6-11 に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Sln> および <Mn> を使用する必要はあ り ません。

OPB マスタ /スレーブ出力

OPB への接続には、 すべてのマスタおよびスレーブに次の出力が必要です。

<BI><Sln>_ABus : out std_logic_vector(0 to C_<BI>OPB_AWIDTH-1);<BI><Sln>_BE : out std_logic_vector(0 to C_<BI>OPB_DWIDTH/8-1);<BI><Sln>_busLock : out std_logic;<BI><Sln>_request : out std_logic;<BI><Sln>_RNW : out std_logic;<BI><Sln>_select : out std_logic;<BI><Sln>_seqAddr : out std_logic;<BI><Sln>_DBus : out std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><Sln>_errAck : out std_logic;<BI><Sln>_retry : out std_logic;<BI><Sln>_toutSup : out std_logic;<BI><Sln>_xferAck : out std_logic;

例 :

IM_request : out std_logic;Bridge_request : out std_logic;O2Ob_request : out std_logic;

表 6-11 : マスタ /スレーブ OPB ポートの命名規則

<Mn> マスタ出力を表す意味のある名前または短縮形を使用します。 マスタ出力とバス

出力との混乱を避けるため、 OPB (大文字、 小文字、 または大文字/小文字混合) とい う文字列は含めないでください。

<Sln> スレーブ出力を表す意味のある名前または短縮形を使用します。 スレーブ出力と

バス出力との混乱を避けるため、 OPB (大文字、 小文字、 または大文字/小文字

混合) とい う文字列は含めないでください。

<nOPB> スレーブ入力を表す意味のある名前または短縮形を使用します。 <nOPB> の 後

の 3 文字は、 OPB (大文字、 小文字、 または大文字/小文字混合) にする必要があ

り ます。

<BI> バス識別子です。 OPB ポートが 1 つのみのペリ フェラルでは必要あ り ませんが、

複数の OPB ポートのあるペリ フェラルでは必須です。 <BI> には、 OPB (大文

字、 小文字、 または大文字/小文字混合) とい う文字列を含めないでください。 複数の OPB ポート (異なるタイプの場合も含む) があるペリ フェラルでは、各バス インターフェイスに固有の <BI> を使用する必要があ り ます。

Page 90: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

90 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

OPB マスタ /スレーブ入力

OPB への接続には、 すべてのマスタおよびスレーブに次の入力が必要です。

<BI><nOPB>_ABus : in std_logic_vector(0 to C_<BI>OPB_AWIDTH-1);<BI><nOPB>_BE : in std_logic_vector(0 to C_<BI>OPB_DWIDTH/8-1);<BI><nOPB>_Clk : in std_logic;<BI><nOPB>_DBus : in std_logic_vector(0 to C_<BI>OPB_DWIDTH-1);<BI><nOPB>_errAck : in std_logic;<BI><nOPB>_MGrant : in std_logic;<BI><nOPB>_retry : in std_logic;<BI><nOPB>_RNW : in std_logic;<BI><nOPB>_Rst : in std_logic;<BI><nOPB>_select : in std_logic;<BI><nOPB>_seqAddr : in std_logic;<BI><nOPB>_timeout : in std_logic;<BI><nOPB>_xferAck : in std_logic;

例 :

IOPB_DBus : in std_logic_vector(0 to C_IOPB_DWIDTH-1);OPB_DBus : in std_logic_vector(0 to C_OPB_DWIDTH-1);Bus1_OPB_DBus : in std_logic_vector(0 to C_Bus1_OPB_DWIDTH-1);

マスタ PLB ポート

マスタ PLB ポートは、 表 6-12 の命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Mn> を使用する必要はあ り ません。

PLB マスタ出力

PLB への接続には、 すべてのマスタに次の出力が必要です。

<BI><Mn>_ABus : out std_logic_vector(0 to C_<BI>PLB_AWIDTH-1);<BI><Mn>_BE : out std_logic_vector(0 to C_<BI>PLB_DWIDTH/8-1);<BI><Mn>_RNW : out std_logic;<BI><Mn>_abort : out std_logic;<BI><Mn>_busLock : out std_logic;<BI><Mn>_compress : out std_logic;<BI><Mn>_guarded : out std_logic;<BI><Mn>_lockErr : out std_logic;<BI><Mn>_MSize : out std_logic;

表 6-12 : マスタ PLB ポートの命名規則

<Mn> マスタ出力を表す意味のある名前または短縮形を使用します。 マスタ出力とバス

出力との混乱を避けるため、 PLB (大文字、 小文字、 または大文字/小文字混合) とい う文字列は含めないでください。

<nPLB> マスタ入力を表す意味のある名前または短縮形を使用します。 <nPLB> の 後の 3 文字は、 PLB (大文字、 小文字、 または大文字/小文字混合) にする必要があ り

ます。

<BI> バス識別子です。 マスタ PLB ポートが 1 つのみのペリ フェラルでは必要あり ま

せんが、 複数のマスタ PLB ポート のあるペリ フェラ ルでは必須です。 <BI> には、 PLB (大文字、 小文字、 または大文字/小文字混合) とい う文字列を含めない

でください。 複数のマスタ PLB ポートがあるペリ フェラルでは、 各バス イン

ターフェイスに固有の <BI> を使用する必要があ り ます。

Page 91: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 91EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

<BI><Mn>_ordered : out std_logic;<BI><Mn>_priority : out std_logic_vector(0 to 1);<BI><Mn>_rdBurst : out std_logic;<BI><Mn>_request : out std_logic;<BI><Mn>_size : out std_logic_vector(0 to 3);<BI><Mn>_type : out std_logic_vector(0 to 2);<BI><Mn>_wrBurst : out std_logic;<BI><Mn>_wrDBus : out std_logic_vector(0 to C_<BI>PLB_DWIDTH-1);

例 :

IM_request : out std_logic;Bridge_request : out std_logic;O2Ob_request : out std_logic;

PLB マスタ入力

PLB への接続には、 すべてのマスタに次の入力が必要です。

<BI><nPLB>_Clk : in std_logic;<BI><nPLB>_Rst : in std_logic;<BI><nPLB>_AddrAck : in std_logic;<BI><nPLB>_Busy : in std_logic;<BI><nPLB>_Err : in std_logic;<BI><nPLB>_RdBTerm : in std_logic;<BI><nPLB>_RdDAck : in std_logic;<BI><nPLB>_RdDBus : in std_logic_vector(0 to C_<BI>PLB_DWIDTH-1);<BI><nPLB>_RdWdAddr : in std_logic_vector(0 to 3);<BI><nPLB>_Rearbitrate : in std_logic;<BI><nPLB>_SSize : in std_logic_vector(0 to 1);<BI><nPLB>_WrBTerm : in std_logic;<BI><nPLB>_WrDAck : in std_logic;

例 :

IPLB_MBusy : in std_logic; Bus1_PLB_MBusy : in std_logic;

スレーブ PLB ポート

スレーブ PLB ポートは、 表 6-13 に示す命名規則に従う必要があ り ます。

メモ : <BI> を使用している場合は、 <Sln> を使用する必要はあ り ません。

表 6-13 : スレーブ PLB ポートの命名規則

<Sln> スレーブ出力を表す意味のある名前または短縮形を使用します。 スレーブ出力と

バス出力との混乱を避けるため、 PLB (大文字、 小文字、 または大文字/小文字

混合) とい う文字列は含めないでください。

<nPLB> スレーブ入力を表す意味のある名前または短縮形を使用します。 <nPLB> の後の 3 文字は、 PLB (大文字、 小文字、 または大文字/小文字混合) にする必要が

あ り ます。

<BI> バス識別子です。 スレーブ PLB ポートが 1 つのみのペリ フェラルでは必要あ り

ませんが、複数のスレーブ PLB ポートのあるペリ フェラルでは必須です。 <BI> には、 PLB (大文字、 小文字、 または大文字/小文字混合) とい う文字列を含めな

いでください。 複数の PLB ポートがあるペリ フェラルでは、 各バス インター

フェイスに固有の <BI> を使用する必要があ り ます。

Page 92: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

92 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

PLB スレーブ出力

PLB への接続には、 すべてのスレーブに次の出力が必要です。

<BI><Sln>_addrAck : out std_logic;<BI><Sln>_MErr : out std_logic_vector(0 to C_<BI>PLB_NUM_MASTERS-1);<BI><Sln>_MBusy : out std_logic_vector(0 to C_<BI>PLB_NUM_MASTERS-1);<BI><Sln>_rdBTerm : out std_logic;<BI><Sln>_rdComp : out std_logic;<BI><Sln>_rdDAck : out std_logic;<BI><Sln>_rdDBus : out std_logic_vector(0 to C_<BI>PLB_DWIDTH-1);<BI><Sln>_rdWdAddr : out std_logic_vector(0 to 3);<BI><Sln>_rearbitrate : out std_logic;<BI><Sln>_SSize : out std_logic(0 to 1);<BI><Sln>_wait : out std_logic;<BI><Sln>_wrBTerm : out std_logic;<BI><Sln>_wrComp : out std_logic;<BI><Sln>_wrDAck : out std_logic;

例 :

Tmr_addrAck : out std_logic;Uart_addrAck : out std_logic;Intc_addrAck : out std_logic;

PLB スレーブ入力

PLB への接続には、 すべてのスレーブに次の入力が必要です。

<BI><nPLB>_Clk : in std_logic;<BI><nPLB>_Rst : in std_logic;<BI><nPLB>_ABus : in std_logic_vector(0 to C_<BI>PLB_AWIDTH-1);<BI><nPLB>_BE : in std_logic_vector(0 to C_<BI>PLB_DWIDTH/8-1);<BI><nPLB>_PAValid : in std_logic;<BI><nPLB>_RNW : in std_logic;<BI><nPLB>_abort : in std_logic;<BI><nPLB>_busLock : in std_logic;<BI><nPLB>_compress : in std_logic;<BI><nPLB>_guarded : in std_logic;<BI><nPLB>_lockErr : in std_logic;<BI><nPLB>_masterID : in std_logic_vector(0 to C_<BI>PLB_MID_WIDTH-1);<BI><nPLB>_MSize : in std_logic_vector(0 to 1);<BI><nPLB>_ordered : in std_logic;<BI><nPLB>_pendPri : in std_logic_vector(0 to 1);<BI><nPLB>_pendReq : in std_logic;<BI>_reqpri : in std_logic_vector(0 to 1);<BI><nPLB>_size : in std_logic_vector(0 to 3);<BI><nPLB>_type : in std_logic_vector(0 to 2);<BI><nPLB>_rdPrim : in std_logic;<BI><nPLB>_SAValid : in std_logic;<BI><nPLB>_wrPrim : in std_logic;<BI><nPLB>_wrBurst : in std_logic;<BI><nPLB>_wrDBus : in std_logic_vector(0 to C_<BI>PLB_DWIDTH-1);<BI><nPLB>_rdBurst : in std_logic;

例 :

PLB_size : in std_logic_vector(0 to 3);IPLB_size : in std_logic_vector(0 to 3);DPLB_size : in std_logic_vector(0 to 3);

Page 93: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 93EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

マスタ PLBV46 ポート

マスタ PLBV46 ポートは、 表 6-14 の命名規則に従う必要があ り ます。

PLBV46 マスタ出力

PLBV46 への接続には、 すべてのマスタに次の出力が必要です。

<BI>M_abort : out std_logic;<BI>M_ABus : out std_logic_vector(0 to C_<BI|MPLB>_AWIDTH-1);<BI>M_UABus : out std_logic_vector(0 to C_<BI|MPLB>_AWIDTH-1);<BI>M_BE : out std_logic_vector(0 to C_<BI|MPLB>_DWIDTH/8-1);<BI>M_busLock : out std_logic;<BI>M_lockErr : out std_logic;<BI>M_MSize : out std_logic;<BI>M_priority : out std_logic_vector(0 to 1);<BI>M_rdBurst : out std_logic;<BI>M_request : out std_logic;<BI>M_RNW : out std_logic;<BI>M_size : out std_logic_vector(0 to 3);<BI>M_TAttribute : out std_logic_vector(0 to 15);<BI>M_type : out std_logic_vector(0 to 2);<BI>M_wrBurst : out std_logic;<BI>M_wrDBus : out std_logic_vector(0 to C_<BI|MPLB>_DWIDTH-1);

例 :

IPLBM_request : out std_logic;Bridge_M_request : out std_logic;O2Ob_M_request : out std_logic;

PLBV46 マスタ入力

PLBV46 への接続には、 すべてのマスタに次の入力が必要です。

<BI>MPLB_Clk : in std_logic;<BI>MPLB_Rst : in std_logic;<BI>PLB_MBusy : in std_logic;<BI>PLB_MRdErr : in std_logic;<BI>PLB_MWrErr : in std_logic;<BI>PLB_MIRQ : in std_logic;<BI>PLB_MWrBTerm : in std_logic;<BI>PLB_MWrDAck : in std_logic;<BI>PLB_MAddrAck : in std_logic;<BI>PLB_MRdBTerm : in std_logic;<BI>PLB_MRdDAck : in std_logic;<BI>PLB_MRdDBus : in std_logic_vector(0 to C_<BI|MPLB>_DWIDTH-1);<BI>PLB_MRdWdAddr : in std_logic_vector(0 to 3);

表 6-14 : マスタ PLBV46 ポートの命名規則

<M> マスタ出力の接頭辞です。

<PLB_M> マスタ入力の接頭辞です。

<BI> バス識別子です。 マスタ PLBV46 ポートが 1 つのみのペリ フェラルでは必要あ

り ませんが、 複数のマスタ PLBV46 ポートのあるペリ フェラルでは必須です。

複数のマスタ PLBV46 ポートがあるペリ フェラルでは、 各バス インターフェイ

スに固有の <BI> を使用する必要があ り ます。 <BI> 文字列の 後のアンダース

コア (_) は無視されます。

Page 94: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

94 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

<BI>PLB_MRearbitrate : in std_logic;<BI>PLB_MSSize : in std_logic_vector(0 to 1);<BI>PLB_MTimeout : in std_logic;

例 :

IPLB0_PLB_MBusy : in std_logic;Bus1_PLB_MBusy : in std_logic;

スレーブ PLBV46 ポート

スレーブ PLBV46 ポートは、 表 6-15 に示す命名規則に従う必要があ り ます。

PLBV46 スレーブ出力

PLBV46 への接続には、 すべてのスレーブに次の出力が必要です。

<BI>Sl_addrAck : out std_logic;<BI>Sl_MBusy : out std_logic_vector(0 to C_<BI|SPLB>_NUM_MASTERS-1);<BI>Sl_MRdErr : out std_logic_vector(0 to C_<BI|SPLB>_NUM_MASTERS-1);<BI>Sl_MWrErr : out std_logic_vector(0 to C_<BI|SPLB>_NUM_MASTERS-1);<BI>Sl_MIRQ : out std_logic;<BI>Sl_rdBTerm : out std_logic;<BI>Sl_rdComp : out std_logic;<BI>Sl_rdDAck : out std_logic;<BI>Sl_rdDBus : out std_logic_vector(0 to C_<BI|SPLB>_DWIDTH-1);<BI>Sl_rdWdAddr : out std_logic_vector(0 to 3);<BI>Sl_rearbitrate : out std_logic;<BI>Sl_SSize : out std_logic(0 to 1);<BI>Sl_wait : out std_logic;<BI>Sl_wrBTerm : out std_logic;<BI>Sl_wrComp : out std_logic;<BI>Sl_wrDAck : out std_logic;

例 :

Tmr_Sl_addrAck : out std_logic;Uart_Sl_addrAck : out std_logic;IntcSl_addrAck : out std_logic;

表 6-15 : スレーブ PLBV46 ポートの命名規則

<Sl> スレーブ出力の接頭辞です。

<PLB> スレーブ入力の接頭辞です。

<BI> バス識別子です。スレーブ PLBV46 ポート が 1 つのみのペリ フェラルでは必要あ

り ませんが、 複数のスレーブ PLBV46 ポート のあるペリ フェラルでは必須です。

複数の PLBV46 ポートがあるペリ フェラルでは、 各バス インターフェイスに固

有の <BI> を使用する必要があ り ます。<BI> 文字列の 後のアンダースコア (_)は無視されます。

Page 95: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 95EDK 10.1 サービス パッ ク 1

HDL ペリフェラルの定義R

PLBV46 スレーブ入力

PLBV46 への接続には、 すべてのスレーブに次の入力が必要です。

<BI>SPLB_Clk : in std_logic;<BI>SPLB_Rst : in std_logic;<BI>PLB_ABus : in std_logic_vector(0 to C_<BI|SPLB>_AWIDTH-1);<BI>PLB_UABus : in std_logic_vector(0 to C_<BI|SPLB>_AWIDTH-1<BI>PLB_BE : in std_logic_vector(0 to C_<BI>PLB_DWIDTH/8-1);<BI>PLB_busLock : in std_logic;<BI>PLB_lockErr : in std_logic;<BI>PLB_masterID : in std_logic_vector(0 to C_<BI|SPLB>_MID_WIDTH-1);<BI>PLB_PAValid : in std_logic;<BI>PLB_rdPendPri : in std_logic_vector(0 to 1);<BI>PLB_wrPendPri : in std_logic_vector(0 to 1);<BI>PLB_rdPendReq : in std_logic;<BI>PLB_wrPendReq : in std_logic;<BI>PLB_rdBurst : in std_logic;<BI>PLB_rdPrim : in std_logic;<BI>PLB_reqPri : in std_logic_vector(0 to 1);<BI>PLB_RNW : in std_logic;<BI>PLB_SAValid : in std_logic;<BI>PLB_MSize : in std_logic_vector(0 to 1);<BI>PLB_size : in std_logic_vector(0 to 3);<BI>PLB_TAttribute : in std_logic_vector(0 to 15);<BI>PLB_type : in std_logic_vector(0 to 2);<BI>PLB_wrBurst : in std_logic;<BI>PLB_wrDBus : in std_logic_vector(0 to C_<BI|SPLB>_DWIDTH-1);<BI>PLB_wrPrim : in std_logic;

例 :

PLB_size : in std_logic_vector(0 to 3);IPLB_size : in std_logic_vector(0 to 3);DPORT0_PLB_size : in std_logic_vector(0 to 3);

Page 96: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

96 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 6 章 : Platform Specification Utility (PsfUtil)R

Page 97: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 97EDK 10.1 サービス パッ ク 1

R

第 7 章

バージ ョ ン管理ツール

この章では、 XPS に含まれるバージ ョ ン管理ツールについて説明します。 この章には、 次のセク

シ ョ ンが含まれています。

• 概要

• フォーマッ ト リ ビジ ョ ン ツールによるバッ クアップおよびアップデート

• フォーマッ ト リ ビジ ョ ン ツールのコマンド オプシ ョ ン

• Version Management Wizard

概要

以前のバージ ョ ンの EDK で作成したプロジェク ト を新しいバージ ョ ンの EDK で開く と、 フォー

マッ ト リ ビジ ョ ン ツールによ りプロジェク トが新しいバージ ョ ンのフォーマッ ト に自動的にアッ

プデート されます。 フォーマッ ト を変更する前に、 XMP (Xilinx® Microprocessor Project)、 MHS(Microprocessor Hardware Specification)、 MSS (Microprocessor Software Specification) など既存

のファ イルのバッ クアップが作成されます。 IP やド ラ イバのアップデートは、 フォーマッ ト リ ビ

ジ ョ ン ツールの後に起動する Version Management Wizard によ り実行されます。 フォーマッ ト リビジ ョ ン ツールでは、MHS デザインで使用される IP は変更されません。 新しいバージ ョ ンのツー

ルでプロジェク ト を開く こ とができるよ う、 構文がアップデート されるだけです。

メモ : EDK 3.2 以前のリ リースで作成されたプロジェク トは、自動的にはアップデート されません。

これらのプロジェク ト をアップデートするには、EDK 6.1、 6.2、および 6.3 に含まれるバッチ ユー

ティ リ ティ revup32to61 を使用して ください。

Page 98: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

98 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 7 章 : バージ ョ ン管理ツールR

フォーマッ ト リビジ ョ ン ツールによるバックアップおよびアップデート

フォーマッ ト リ ビジ ョ ン ツールでは、まず EDK のリ リース番号を示す拡張子の付いたバッ クアッ

プ ファ イルが作成されます。 たとえば、 EDK 9.2i のファイルは、 .92 という拡張子で保存されてか

ら、 EDK 10.1 用にアップデート されます。

10.1 での変更

10.1 を反映してツールをアップデート

9.2i での変更

• XMP の変更 : 新しい XMP タグ EnableResetOptimization が追加され、 値が 0 (false) に設定されています。 このタグを 1 (true) に設定する と、 リセッ ト信号でのタイ ミ ングが向上し

ます。

• XMP の変更 : 新しい XMP タグ EnableParTimingError が追加され、値が 0 (false) に設定

されています。 このタグを 1 (true) に設定する と、 配置配線後にタイ ミ ング条件が満たされて

いない場合にエラー メ ッセージが表示されます。

9.1i での変更点

• XMP の変更 : プロジェク トからシ ミ ュレーシ ョ ン ラ イブラ リ パスが削除されています。 シ

ミ ュレーシ ョ ン ラ イブラ リ パスは、 ご使用のマシンのすべての XPS プロジェク トに適用され

ます。

• XMP の変更 : カスタム リ ンカ スク リ プト のスタッ ク サイズと ヒ ープ サイズが、[Set CompilerOptions] ダイアログ ボッ ク スで設定できなく なり ました。 こ れらのサイズは、 カスタム リ ン

カ ス ク リ プト 内で指定する 必要があり ま す。 デフォ ルト のリ ンカ ス ク リ プト では、 [SetCompiler Options] ダイアログ ボッ ク スでスタッ ク サイズと ヒ ープ サイズを表示できます。

8.2i での変更点

• MHS の変更 : サブモジュール デザインの I/O ポートは、 個別の _I、 _O、 および _T ポートに

分割されます。 これは、 Platgen の変更 (生成されたスタブ HDL に含まれるバッファはインス

タンシエー ト されない、 生成された HDL のインターフェ イスが MHS ファ イルのインター

フェイス と同じになる) に対応したものです。

• MHS の変更 : DCMCLK から CLK への 上位ポートの SIGIS 値が変更されます。 DCMCLK値は廃止されています。

• プリプロセッサ、 アセンブラ、 およびリ ンカ特定のオプシ ョ ンはアドバンス コンパイラ オプ

シ ョ ンに移動され、 個別のオプシ ョ ンは削除されます。

• XMP の変更 : 合成ツール設定は削除されます。

Page 99: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 99EDK 10.1 サービス パッ ク 1

フォーマッ ト リビジ ョ ン ツールによるバックアップおよびアップデートR

8.1i での変更点

• MSS の変更 : LIBRARY ブロ ッ クに PROCINST PARAMETER が追加されます。 このパラ

メータを使用する と、システムの異なるプロセッサ インスタンスに対してライブラ リの設定を

変更できます。

• リ ンカ スク リプ トの変更 : CRT の変更をサポートする新しいベクタ セクシ ョ ンを追加できる

よ う、 MicroBlaze™ のアプリ ケーシ ョ ン リ ンカ スク リプ トがアップデート されます。

• リ ンカ スク リプ トの変更 : C++ をサポートする新しいセクシ ョ ンを追加できるよ う、

MicroBlaze のアプリ ケーシ ョ ン リ ンカ スク リプ トがアップデート されます。

• リ ンカ スク リプ トの変更 : C++ をサポートする新しいセクシ ョ ンを追加できるよ う、

PowerPC® のアプリ ケーシ ョ ン リ ンカ スク リプ トがアップデート されます。

• プロジェク トの変更なし : MicroBlaze アプリ ケーシ ョ ンで、xmdstub.elf のサイズ変更に対

応して、 プログラムの開始アドレスが 0x0 から 0x50 に変更されます。

• プロジェク トの変更なし : Spartan™-3 FPGA アーキテクチャを使用するプロジェク ト で、

bitgen.ut が変更されます。

7.1i での変更点

リ ンカ ス ク リ プ ト の変更 : GCC 3.4.1 をサポー ト する新しいセ ク シ ョ ンを追加でき る よ う、

PowerPC のアプリ ケーシ ョ ン リ ンカ スク リプ トがアップデート されます。

6.3i での変更点

MHS の変更 : MHS ファ イルで、 上位割り込みポートのサブプロパティ EDGE および LEVEL がSENSITIVITY というサブプロパティに統合されます。

6.2i での変更点

• プロジェク トの変更なし : ハード乗算器に関連する mb-gcc コンパイラ オプシ ョ ンが削除さ

れました (FPGA のみ)。

• MSS の変更 : MSS ファ イルで、PROCESSOR ブロ ッ クが PROCESSOR および OS の 2 つの

ブロ ッ クに分割されます。 これに伴い、 次の点も変更されます。

♦ Linux および VxWorks の LIBRARY ブロ ッ クのステータスが OS ブロ ッ クになったた

め、 名前が変更されます。

♦ OS ブロッ ク が導入さ れたため、 Linux および VxWorks で使用されるすべてのペリ フェ

ラルが、 CONNECT_TO パラ メ ータの代わり に CONNECTED_PERIPHS パラ メ ータを

使用し て指定さ れま す。 フ ォ ーマッ ト リ ビ ジ ョ ン ツ ールが実行さ れる と 、 以前の

CONNECT_TO ド ラ イバ パラ メ ータがペ リ フ ェ ラルから取得され、 OS ブロ ッ クの

CONNECTED_PERIPHS パラ メータに挿入されます。

♦ MSS ファ イルの PROCESSOR ブロッ ク からパラ メ ータ LEVEL、 EXECUTABLE、

SHIFTER、 および DEFAULT_INIT が削除されます。

♦ PROCESSOR ブロッ クで、 DEBUG_PERIPHERAL の名前が XMDSTUB_PERIPHERALに変更されます。

Page 100: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

100 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 7 章 : バージ ョ ン管理ツールR

フォーマッ ト リビジ ョ ン ツールのコマンド オプシ ョ ン

revup を実行するには、 コマンド ラ インに次のよ うに入力します。

revup system.xmp

サポート されているオプシ ョ ンは次のとおりです。

-h (ヘルプの表示) : コマンドの使用方法を表示します。

Version Management Wizard以前のバージ ョ ンの EDK で作成したプロジェク ト を新しいバージ ョ ンで開く と、 フォーマッ ト リビジ ョ ン ツールが実行された後に Version Management Wizard が起動します。 プロジェク ト を

後に処理し てから レポジ ト リ で廃止またはア ッ プデー ト された IP コ アがあ る と、 VersionManagement Wizard にその変更がリ ス ト され、自動的に 新のバージ ョ ンにアップグレードするオ

プシ ョ ンが示されるか、 または 新のコアにアップデートする方法の詳細が表示されます。 必要に

応じて、 ド ラ イバも同様にアップデート できます。 MHS および MSS ファ イルのバッ クアップ コピーを作成してから、 プロジェク トが変更されます。 ウ ィザードの処理はどの段階でもキャンセル

できますが、 その場合、 現在のバージ ョ ンの XPS でプロジェク ト を実行するこ とはできません。

Page 101: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 101EDK 10.1 サービス パッ ク 1

R

第 8 章

フラ ッシュ メモリのプログラム

この章では、 EDK のフラ ッシュ メモ リ プログラム ツールについて説明します。 この章は、次の各

セクシ ョ ンで構成されています。

• 概要

• サポート されるフラ ッシュ ハード ウェア

• フラ ッシュ プログラマのパフォーマンス

• フラ ッシュのプログラム設定のカスタマイズ

概要

フラ ッシュには、 次のものをプログラムできます。

• アプリケーシ ョ ンの実行可能イ メージ

• FPGA のハード ウェア ビッ ト ス ト リーム

• ファ イル システム イ メージ、サンプル データやアルゴ リズム テーブルなどのデータ ファ イル

アプリ ケーシ ョ ンの実行可能イ メージが も一般的です。 デザインのプロセッサのリセッ トが完了

する と、 ブロ ッ ク RAM のプロセッサの リセッ ト位置に保存されている実行コードが開始します。

通常ブロ ッ ク RAM のサイズは数 KB でソフ ト ウェア アプ リ ケーシ ョ ンのイ メージ全体を保存す

るには小さすぎるので、 フラ ッシュ メモ リ (MB の単位) を使用します。 ブート ローダーをブロ ッ ク

RAM に収まるサイズで作成し、 リ セッ ト時にブート ローダーを実行してフラ ッシュから ソフ ト

ウェア アプリ ケーシ ョ ンのイ メージを外部メモ リにコピーし、 ソフ ト ウェア アプリ ケーシ ョ ンに

制御を移行して続行するよ うにします。

プロジェ ク ト で作成したソ フ ト ウ ェア アプ リ ケーシ ョ ンは、 ELF (Executable Linked Format)フォーマッ トです。 フラ ッシュからソフ ト ウェア アプリ ケーシ ョ ンをブート ロードする場合、 ELFイ メージをブート ロード可能なイ メージ フォーマッ ト (SREC など) に変換する必要があ り ます。

このよ うにする と、 ブート ローダーが単純になり、 サイズも小さ くな り ます。 EDK では、 グラフ ィ

カル インターフェイスおよびコマンド ラ イン オプシ ョ ンを使用して、 SREC フォーマッ トでブー

ト ローダを作成でき ます。 フ ラ ッシュ ブー ト ローダの作成方法および ELF イ メージを SRECフォーマッ トに変更する方法は、 XPS ヘルプを参照して ください。

Page 102: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

102 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 8 章 : フラ ッシュ メモリのプログラムR

XPS および SDK を使用したフラッシュ デバイスのプログラム

XPS (Xilinx Platform Studio) と ソフ ト ウェア開発キッ ト (SDK) には、外部コンパク ト 共通フラ ッ

シュ インターフェイス (CFI) に準拠したパラレル フラ ッシュ デバイスをボードにプログラムし、

外部メモ リ コン ト ローラ (EMC) IP コアを介して接続するためのダイアログ ボッ クスがあ り ます。

フラ ッシュ メモ リ プログラマは、 さまざまなフラ ッシュ ソフ ト ウェアおよびレイアウ トに対応す

るよ う設計されています。

フラ ッシュ メモ リのプログラムは、 デバッガからプロセッサへの接続を使用して行われます。 小型

のインシステム フラ ッシュ プログラム スタブが XPS または SDK によ り ターゲッ ト プロセッサに

ダウンロード され、 実行されます。 インシステム プログラム スタブの動作には、 8KB 以上のメモ

リが必要です。ホス ト Tcl スク リプ トでコマンドおよびデータを使用してインシステム フラ ッシュ

プログラム スタブが制御され、フラ ッシュがプログラムされます。 プログラムされるイ メージ ファ

イルは処理/解釈されるこ とはな く、そのままフラ ッシュ メモ リにプログラムされます。 ファ イルの

内容が正し くプログラムされるよ う、ソフ ト ウェア アプリケーシ ョ ンおよびハードウェアを設定す

る必要があ り ます。

サポート されるフラッシュ ハードウェア

フラ ッシュ プログラマは、 フラ ッシュ デバイスに対してクエリ を送信するのに共通フラ ッシュ インターフェイス (CFI) を使用するので、 フラ ッシュ デバイスが CFI に準拠している こ とが必要で

す。 必要な幅のメモ リ インターフェイスを形成するため、フラ ッシュ デバイスのレイアウ ト も重要

です。 表 8-1 に、 サポート されるフラ ッシュのレイアウ ト /コンフ ィギュレーシ ョ ンを示します。 フラ ッシュのレイアウ トが表のコンフ ィギュレーシ ョ ンと一致しない場合は、 フラ ッシュのプログラ

ム セッシ ョ ンをカスタマイズする必要があ り ます。 「フラ ッシュのプログラム設定のカスタマイズ」

を参照してください。

物理レイアウ トでは、 ジオメ ト リ情報およびコマンド セッ ト などのその他の論理情報は、 CFI を使

用して判断されます。 フラ ッシュ プログラマは、表 8-2 にリ ス ト されている CFI で定義されたコマ

ンド セッ ト を認識するフラ ッシュ デバイスのみで使用可能です。

表 8-1 : サポート されるフラッシュ コンフ ィギュレーシ ョ ン

x8 のみが可能なデバイス (8 ビッ ト データ バスを形成)

x16/x8 が可能なデバイスを x8 モードに設定 (8 ビッ ト データ バスを形成)

x32/x8 が可能なデバイスを x8 モードに設定 (8 ビッ ト データ バスを形成)

x16/x8 が可能なデバイスを x16 モードに設定 (16 ビッ ト データ バスを形成)

x8 のみ可能なデバイスのペア (16 ビッ ト データ バスを形成)

x8 のみ可能なデバイス 4 個 (32 ビッ ト データ バスを形成)

x16 のみ可能なデバイスのペア (32 ビッ ト データ バスを形成)

x32/x8 が可能なデバイスを x32 モードに設定 (32 ビッ ト データ バスを形成)

x32 のみが可能なデバイス (32 ビッ ト データ バスを形成)

Page 103: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 103EDK 10.1 サービス パッ ク 1

フラ ッシュ プログラマのパフォーマンスR

フラ ッシュ プログラマは、 デフォルトでは、 セク タ マップが CFI テーブルに保存されているもの

と一致するフラ ッシュ デバイスのみをサポート します。 フラ ッシュ ベンダーによっては、 ト ップ

ブート とボ ト ム ブートのフラ ッシュ デバイスがあ り ますが、 両方に同じ CFI テーブルが使用され

ます。 現在のデバイスのブート ト ポロジを識別するフ ィールドは CFI 標準には含まれていないの

で、 そのよ う なフ ィールドを含むフラ ッシュ デバイスをフラ ッシュ プログラマで処理する と問題

が発生します。

ブート ト ポロジを識別するフ ィールドに関する問題を回避する方法は、 「フラ ッシュのプログラム

設定のカスタマイズ」 を参照してください。

フラ ッシュ ハード ウェアをプログラムする際は、 次の事項が想定されます。

• フラ ッシュ プログラム スタブによ りプログラムが開始する際、 フラ ッシュ ハードウェアがリ

セッ ト状態になっている。

• フラ ッシュのすべてのセクタが保護されていない状態である。

フラ ッシュ ハード ウェアがロッ ク されていたり、プログラムできる状態でない場合、フラ ッシュ プログラム スタブでフラ ッシュがロ ッ ク解除されたり初期化された りする こ とはな く、 エラー メ ッ

セージが表示されます。

メモ : フラ ッシュ プログラマでは、 各フラ ッシュ コマンドを DBA (Device Base Address) 値でオ

フセッ トする必要のあるデュアル ダイ フラ ッシュ デバイスは、 現在のと ころサポート されていま

せん。 Intel 社の StrataFlash® Embedded Memory (P30) Family フラ ッシュ メモ リの 512Mb デバ

イスなどがその例です。

フラッシュ プログラマのパフォーマンス

イ メージのプログラム速度には、 次の要因が影響します。

• フラ ッシュ プログラマは JTAG を介してインシステム プログラム スタブと通信するので、 ほ

とんどの場合、JTAG ケーブルのバンド幅によ り フラ ッシュのプログラム速度が制限されます。

• システムで使用可能な場合、外部メモリ をスク ラ ッチ メモ リ と して使用するのが 適です。 こ

のよ うにする と、 デバッガでフラ ッシュ イ メージ データを数回に分けるこ とな く一度にダウ

ンロードできます。

• MicroBlaze ソフ ト プロセッサを使用する場合は、 できるだけ高速なコンフ ィギュレーシ ョ ン

をインプ リ メン トするよ うにします。バレル シフタや乗算器などの機能をオンにしたり、高速

ダウンロード機能を使用する と、 プログラム速度を向上できます。

表 8-2 : CFI で定義されたコマンド セッ ト

CFI ベンダー ID OEM スポンサー インターフェイス名

1 Intel/シャープ Intel/シャープ拡張コマンド セッ ト

2 AMD/富士通 AMD/富士通標準コマンド セッ ト

3 Intel Intel 標準コマンド セッ ト

4 AMD/富士通 AMD/富士通拡張コマンド セッ ト

Page 104: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

104 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 8 章 : フラ ッシュ メモリのプログラムR

フラッシュのプログラム設定のカスタマイズ

フラ ッシュのプログラムでは、 ハード ウェアの違い、 フラ ッシュ コマンド セッ ト の違い、 メモ リ

サイズの制限などを考慮する必要があ り ます。 このセクシ ョ ンでは、 フラ ッシュのプログラムのア

ルゴ リ ズムについて簡単に説明します。 アルゴ リ ズムを理解する と、 特定の要件に合わせてプログ

ラム設定をカスタマイズできます。

XPS または SDK で [Program Flash] ボタンをク リ ッ クする と、 次の処理が実行されます。

1. flash_params.tcl ファ イルが作成され、 etc/ フォルダに保存されます。 このファ イルに

は、 フラ ッシュのプログラム セッシ ョ ンのパラ メータが記述されており、 フラ ッシュ プログ

ラマ Tcl で使用されます。

2. XMD が起動され、 フラ ッシュ プログラマ Tcl スク リプ トで xmd -tcl flashwriter.tcl -nx など

のコマンドが実行されます。 このフラ ッシュ プログラマのホス ト Tcl は、インス トール ディ レ

ク ト リから取得されます。 [Program Flash] ボタンをク リ ッ ク したと きに独自の Tcl が実行され

るよ うにするには、 使用する flashwriter.tcl ファ イルをプロジェク トのルート ディ レク

ト リにコピーします。 ファ イルは、 まずプロジェク ト ディ レク ト リで検索され、 その後インス

トール ディ レク ト リで検索されます。

3. フラ ッシュ プログラマ Tcl スク リプ トによ り、 フラ ッシュ プログラマ アプリケーシ ョ ンの

ソース ファ イルがインス トール ディ レク ト リから etc/flashwriter フォルダにコピーされ

ます。 このスク リプ トは、 ダイアログ ボッ クスで指定したスク ラ ッチ メモ リ アドレスからア

プ リ ケーシ ョ ンがローカルで実行される よ う コンパイルします。 独自のフラ ッシュ ラ イ タ

ソースをコンパイルする場合は、独自のソース ファ イルがコンパイルされるよ うにローカルに

ある flashwriter.tcl スク リプ ト を変更します。

4. スク リプ トは、 フラ ッシュ プログラマをプロセッサにダウンロード し、 メモ リのメールボッ ク

スを介してフラ ッシュ プログラマと通信します。 フラ ッシュ プログラマのアド レス空間の変

数に対応する メモ リ位置にパラ メータを書き込み、 フラ ッシュ プログラマを実行させます。

5. フラッ シュ プログラマにより 各操作の 後にあるコールバッ ク関数が起動されると 、アプリ ケー

ショ ンが停止し、コールバッ ク関数の始めにブレークポイント が設定されます。 フラ ッシュ プロ

グラマが停止する と、 ホス ト Tcl によ り結果が処理され、 必要に応じてコマンドが続けて実行

されます。

6. プログラム中、 イ メージを保存するのに必要なだけのフラ ッシュ ブロ ッ クが消去されます。

7. フラ ッ シュ プログラムにより 、使用可能なスク ラッ チ パッ ド メ モリ の量に応じてスト リ ーミ ン

グ バッ ファ が割り 当てられ、 イ メ ージ ファ イルがスト リ ーミ ング手法でプログラムされます。

スト リ ーミ ング バッ ファは、 フラ ッ シュ プログラム内に割り 当てられます。 イメ ージ全体をプ

ログラムするのに十分なスク ラッ チ メ モリ がある場合は、 プログラムは短時間で完了します。

8. プログラムが終了する と、 フラ ッシュ プログラマ Tcl がフラ ッシュ ライタに終了コマンドを

送信し、 XMD セッシ ョ ンを停止します。

次に、 カスタム フローの例を示します。

1. flashwriter.tcl を <edk_install>/data/xmd/flashwriter.tcl から EDK プロ

ジェク ト フォルダにコピーします。

2. EDK プロジェク ト ディ レク ト リ内に sw_services というディ レク ト リ を作成します。

3. <edk_install>/data/xmd/flashwriter ディ レク ト リ全体を sw_services ディ レク ト

リにコピーします。

Page 105: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 105EDK 10.1 サービス パッ ク 1

フラッシュのプログラム設定のカスタマイズR

4. プロジェク ト ディ レク ト リにコピーした flashwriter.tcl の次の行を変更します。

set flashwriter_src [file join $xilinx_edk "data" "xmd" "flashwriter" "src"]

変更後 :

set flashwriter_src [file join "." "sw_services" "flashwriter" "src"]

これで、XPS の [Program Flash Memory] ダイアログ ボッ クスまたは SDK の [Flash Programmer]ダイアログ ボッ クスで [Program Frash] ボタンをク リ ッ ク したと きに、 sw_services ディ レク ト

リにコピーしたスク リプ ト と ソースが使用されるよ うにな り ます。 必要に応じて、 これらのファイ

ルをカスタマイズします。

etc/flash_params.tcl ファ イルが上書きされないよ うにするには、 コマンド ラインで xmd -tcl flashwriter.tcl コマンドを実行し、 etc/flash_params.tcl ファ イルの値が使用さ

れるよ うにします。

etc/flash_params.tcl ファ イルに含まれるパラ メータを表 8-3 に示します。

.

表 8-3 : フラ ッシュのプログラムのパラメータ

変数 機能

FLASH_FILE プログラムするファ イルへの完全パス

FLASH_BASEADDR フラ ッシュ メモ リ バンクのベース メモ リ

FLASH_PROG_OFFSET プログラムを実行するフラ ッシュ メモ リ バンクのオフ

セッ ト

SCRATCH_BASEADDR プログラム中に使用されるスク ラ ッチ メモ リのベース

メモリ

SCRATCH_LEN スク ラ ッチ メモ リの長さ (バイ ト )

XMD_CONNECT XMD でプロセッサに接続するために使用される接続

コマンド

PROC_INSTANCE プログラムに使用するプロセッサのインスタンス名

TARGET_TYPE プログラムに使用するプロセッサ インスタンスのタイ

プ (MicroBlaze™ または PowerPC® 405 プロセッサ)

FLASH_BOOT_CONFIG 「競合するセク タ レイアウ ト でのフラ ッシュ デバイス

の処理」 を参照

EXTRA_COMPILER_FLAGS MicroBlaze を使用する場合に、 ハード ウェア機能のサ

ポート をオンにするコンパイラ オプショ ンを指定しま

す。 たと えば、 ハード ウェア乗算器をイネーブルにした

場合は、-mno-xl-soft-mul をここに追加します。 PowerPCの場合は、 この変数は設定しないでく ださい。

Page 106: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

106 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 8 章 : フラ ッシュ メモリのプログラムR

ブートローダ アプリケーシ ョ ン用に ELF ファイルを SREC に手動で変換する方法

ELF ファ イルを SREC フォーマッ トに手動で変換する場合は、コマンド ラインを使用できます。 たとえば、 myexecutable.elf とい う ソフ ト ウェア アプリ ケーシ ョ ン イ メージを変換する場合は、

OS のコンソール (Windows では Cygwin) で ELF ファ イルを含むフォルダに移動し、 次のコマン

ドを入力します。

<platform>-objcopy -O srec myexecutable.elf myexecutable.srec

こ こで、 <platform> はプロセッサが PPC405 の場合は powerpc-eabi、 MicroBlaze の場合は mbです。

これによ り、 SREC ファ イルが生成されます。 mb-objcopy および powerpc-eabi-objcopy は、

EDK に含まれる GNU バイナリ ユーティ リ ティです。

XPS を使用したブート ローダの作成については、 XPS ヘルプを参照して ください。

操作上の注意点と回避策

競合するセクタ レイアウトでのフラ ッシュ デバイスの処理

前述のとおり、 フラ ッシュ ベンダーによっては、 あるセク タ マップを CFI テーブルに、 別のセク

タ マップをフラ ッシュ デバイスのブート ト ポロジに応じてハードウェアに保存するものもあ り ま

す。 ブート ト ポロジ情報は CFI で規格化されていないので、 フラ ッシュ デバイスで使用されてい

るレイアウ ト をフラ ッシュ プログラマで判断する方法はあ り ません。

フラ ッシュ デバイスのセクタ レイアウ トが、 そのデバイスの CFI テーブルに保存されているもの

と異なる場合は、カスタム フラ ッシュ プログラム フローを作成する必要があ り ます。 この場合、フ

ラ ッシュ デバイスが ト ップ ブートかボ ト ム ブートかを判断する必要があ り ます。 ト ップ ブート フラ ッシュ デバイスではフラ ッシュの 後のセク タが 小のセク タであ り、 ボ ト ム ブート フラ ッ

シュ デバイスでは 初のセクタが 小のセクタです。

フラ ッシュが ト ップ ブートかボ ト ム ブートかが判断できたら、 ファ イルをコピーし、 カスタム プログラム フローを作成します。

• ボト ム ブート フラッシュの場合は、etc/flash_params.tcl ファ イルに次の行を追加します。

set FLASH_BOOT_CONFIG BOTTOM_BOOT_FLASH

• ト ップ ブート フラ ッシュの場合は、 次の行を追加します。

set FLASH_BOOT_CONFIG TOP_BOOT_FLASH

その後、 次のコマンドを使用してフラ ッシュ プログラムを実行します。

xmd -tcl flashwriter.tcl

ブート ト ポロジに応じて、 セク タ マップが並べ替えられます。

Page 107: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 107EDK 10.1 サービス パッ ク 1

フラッシュのプログラム設定のカスタマイズR

AMD/富士通コマンド セッ トのデータ ポーリング アルゴリズム

ADM/富士通コマンド セッ ト をサポートするフラ ッシュ デバイスでは、 プログラムおよび消去に

DQ7 データ ポーリ ング アルゴ リ ズムが使用されます。 フラ ッシュ デバイスによっては、 データ

ポーリ ング DQ7 ビッ トの動作を制御するのにコンフ ィギュレーシ ョ ン レジスタが使用されます。

DQ7 には、消去中は 0 を出力し、消去が終了したら 1 を出力する必要があ り ます。 また、プログラ

ム中は反転したデータを出力し、プログラムが終了したら実際のデータを出力する必要があ り ます。

フラ ッシュ デバイスのコンフ ィギュレーシ ョ ンが [Program Flash Memory] ダイアログ ボッ クスで

指定したものと異なる場合は、プログラムでエラーが発生する可能性があ り ます。 DQ7 が上記のよ

うに動作するよ う コンフ ィギュレーシ ョ ンを リセッ トする方法は、 フラ ッシュ デバイスのデータ

シート を参照して ください。 このコンフ ィギュレーシ ョ ン レジスタを備えているフラ ッシュ デバ

イスには、 AT49BV322A(T)、 AT49BV162A(T)、 AT49BV163A(T) などがあ り ます。

Page 108: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

108 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 8 章 : フラ ッシュ メモリのプログラムR

Page 109: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 109EDK 10.1 サービス パッ ク 1

R

第 9 章

Bitstream Initializer (BitInit)

この章では、 Bitstream Initializer (BitInit) について説明します。 この章には、 次のセクシ ョ ンが含

まれています。

• 概要

• BitInit の使用法

• BitInit のコマンド オプシ ョ ン

概要

BitInit は、 FPGA の ブロ ッ ク RAM に保存されるプロセッサの命令メモ リ を初期化します。 この

ユーティ リ ティは、MHS ファ イルを読み込み、ISE™ に含まれる Data2MEM を起動して FPGA のブロ ッ ク RAM を初期化します。

BitInit の使用法

BitInit を実行するには、 コマンド ラ インに次のよ うに入力します。

bitinit <mhsfile> [options]

メモ : <mhsfile> は、 ほかのオプシ ョ ンの前に指定して ください。

Page 110: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

110 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 9 章 : Bitstream Initializer (BitInit)R

BitInit のコマンド オプシ ョ ン

このバージ ョ ンの BitInit でサポート されているコマンド オプシ ョ ンは、 次のとおりです。

メモ : BitInit を実行する と、 Data2MEM によ り data2mem.dmr とい う ログ ファ イルも生成され

ます。

表 9-1 : BitInit のコマンド オプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h コマンドの使用方法を表示します。

バージ ョ ン番号の表示 -v BitInit のバージ ョ ン番号を表示します。

入力 BMM ファ イルの

指定

-bm アドレス マップおよびプロセッサの命令メモ リの場

所を含む入力 BMM ファ イルを指定します。

デフォルト : implementation/<sysname>_bd.bmm

入力ビッ ト ス ト リーム ファ イルの指定

-bt メモ リ初期化情報を含まない入力ビッ ト ス ト リーム

ファ イルを指定します。

デフォルト : implementation/<sysname>.bit

出力ビッ ト ス ト リーム ファ イルの指定

-o メモ リ初期化情報を含む出力ビッ ト ス ト リーム ファ

イルの名前を指定します。

デフォルト : implementation/download.bit

プロセッサのインスタン

ス名と ELF ファ イルの

指定

-pe MHS ファ イル内のプロセッサのインスタンス名と、

命令メモリ を構成するすべての ELF ファ イルを指定

します。 このオプシ ョ ンは、デザインで使用されてい

るプロセッサの数だけ指定できます。

ラ イブラ リ パスの指定 -lp レポジ ト リ ラ イブラ リのディ レク ト リへのパスを指

定します。 このオプシ ョ ンを複数回使用して、複数の

ライブラ リ を指定できます。

ログ ファ イル名の指定 -log ログ ファ イルの名前を指定します。

デフォルト : bitinit.log

メ ッセージの非表示 -quiet ステータス、 警告、 および情報メ ッセージを表示せ

ずに実行します。 エラー メ ッセージのみが表示され

ます。

Page 111: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 111EDK 10.1 サービス パッ ク 1

R

第 10 章

GNU コンパイラ ツール

概要

EDK には、 PowerPC® プロセッ サおよび MicroBlaze™ プロセッ サ用の GNU コンパイラ ツール

(GCC) が含まれています。 EDK GNU ツールでは、 C および C++ 言語の両方がサポート されてい

ます。 MicroBlaze 用の GNU ツールには、 mb-gcc および mb-g++ コンパイラ 、 mb-as アセンブラ 、

mb-ld リ ンカがあり ます。 PowerPC プロセッサ用の GNU ツールには、 powerpc-eabi-gcc および

powerpc-eabi-g++ コンパイラ、 powerpc-eabi-as アセンブラ、 powerpc-eabi-ld リ ンカがあ り ます。

また、 C、 Math、 GCC、 および C++ 標準ライブラ リ も含まれます。 PowerPC および MicroBlazeプロセッサの GCC ツールは、 オープン ソース GCC 4.1.1 ソースを基に作成されています。

コンパイラでは、 アセンブラ、 リ ンカ、 オブジェク ト ダンプなど、 一般的なバイナリ ユーティ リ

ティ も使用されます。 PowerPC および MicroBlaze コンパイラでは、バージ ョ ン 2.16 の GNU に基

づく GNU バイナリ ユーティ リ ティ を使用します。

言語およびライブラ リ サポートの概念、 オプシ ョ ン、 使用法、 例外については、 後のセクシ ョ ンで

説明します。 この章のこの後のセクシ ョ ンは、 次のとおりです。

• 関連リ ソース

• コンパイラのフレームワーク

• コンパイラの使用法とオプシ ョ ン

• MicroBlaze コンパイラの使用法とオプシ ョ ン

• PowerPC コンパイラの使用法とオプシ ョ ン

• その他のメモ

関連リソース

GNU の情報

• GCC4.1.1 リ リースの機能の詳細

http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/

• 異なる言語のコンパイラの起動方法

http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b

• GCC オンライン マニュアル

http://www.gnu.org/manual/manual.html

• GNU C++ ラ イブラ リ

http://gcc.gnu.org/onlinedocs/libstdc++/manual/spine.html

• GNU リ ンカ スク リプ ト

http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_mono/ld.html#SEC17

Page 112: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

112 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

PowerPC の情報

• IBM の Book-Ehttp://www.ibm.com

• IBM PowerPC パフォーマンス ラ イブラ リ

http://sourceforge.net/projects/ppcperflib

• APU FPU のマニュアル

http://japan.xilinx.com/ise/embedded/edk_ip.htm

MicroBlaze の情報

• 『MicroBlaze プロセッサ リ ファレンス ガイ ド』

http://japan.xilinx.com/ise/embedded/edk_docs.htm

コンパイラのフレームワーク

このセクシ ョ ンでは、MicroBlaze コンパイラおよび PowerPC コンパイラの主な機能を説明します。

図 10-1 に、 GNU ツールのフローを示します。

GNU コンパイラの名前は、MicroBlaze 用は mb-gcc、PowerPC 用は powerpc-eabi-gcc です。 GNUコンパイラはラ ッパ ファ イルであ り、 次の 4 つのツールを呼び出します。

• プリプロセッサ (cpp0)コンパイラによ り 初に呼び出されるツールで、 すべてのマクロをソース ファ イルおよびヘッ

ダ ファ イルでの定義に置き換えます。

図 10-1 : GNU ツール フロー

cpp0

cc1 cc1plus

as

ld

(mb-as powerpc-eabi-as)

(mb-ld powerpc-eabi-ld)

ELF

C/C++

UG111_05_101905

Page 113: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 113EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

• マシンおよび言語固有コンパイラ

cpp0 で出力されたプ リプロセス済みのコードに対して実行します。 次のいずれかのコンパイ

ラが使用されます。

♦ C コンパイラ (cc1)入力 C コードを 適化し、 アセンブ リ コードを生成します。

♦ C++ コンパイ ラ (cc1plus)入力 C++ コード を 適化し 、 アセンブリ コード を生成します。

• アセンブラ (MicroBlaze 用は mb-as、 PowerPC 用は powerpc-eabi-as)アセンブリ コードには、 アセンブリ言語のニーモニッ クが含まれています。 アセンブラは、 こ

れらのニーモニッ クをマシン語に変換します。 また、 コンパイラで生成されたラベルの一部を

解決します。 アセンブラではオブジェク ト ファ イルが生成され、これがリ ンカで処理されます。

• リ ンカ (MicroBlaze 用は mb-ld、 PowerPC 用は powerpc-eabi-ld)アセンブラで生成されたオブジェ ク ト ファ イルを リ ンク します。 コマンド ラ インでラ イブラ

リが指定されている場合は、 アセンブラからの関数を リ ンクするこ とによ り、 コード内の未定

義の参照の一部を解決します。

これらのツールのオプシ ョ ンについて、 この章で説明します。

メモ : この章で GCC と言った場合は、MicroBlaze コンパイラ (mb-gcc) および PowerPC コンパイ

ラ (powerpc-eabi-gcc) の両方を指します。 G++ と言った場合は、MicroBlaze C++ コンパイラ (mb-g++) および PowerPC C++ コンパイラ (powerpc-eabi-g++) の両方を指します。

コンパイラの使用法とオプシ ョ ン

構文

GNU コンパイラを実行するには、 コマンド ラ インに次のよ うに入力します。

Compiler_Name options files...

こ こで、Compiler_Name は powerpc-eabi-gcc または mb-gcc です。 C++ プログラムをコンパイル

するには、 powerpc-eabi-g++ または mb-g++ コマンドを使用します。

入力ファイル

コンパイラには、 次のファイルのうち 1 つまたは複数を入力します。

• C ソース ファ イル

• C++ ソース ファ イル

• アセンブリ ファ イル

• オブジェク ト ファ イル

• リ ンカ スク リプ ト

メ モ : リ ンカ ス ク リ プ ト の指定はオプシ ョ ンです。 指定しない場合は、 リ ンカ (mb-ld または

powerpc-eabi-ld) のデフォルト リ ンカ スク リプ トが使用されます。

各ファ イルのデフォル ト の拡張子については、 表 10-1 を参照して ください。 上記のファ イルに加

え、 コンパイラではライブラ リ ファ イル libc.a、 libgcc.a、 libm.a、 および libxil.a が参

照されます。 これらのライブラ リは、 デフォルトでは EDK のインス トール ディ レク ト リにあ り ま

す。 G++ コンパイ ラを使用した場合は、 libsupc++.a および libstdc++.a も参照されます。

libsupc++.a は C++ 言語サポート、 libstdc++.a は C++ プラ ッ ト フォーム ラ イブラ リです。

Page 114: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

114 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

出力ファイル

コンパイラでは、 次のファイルが出力と して生成されます。

• ELF ファ イル (デフォルトのファ イル名は Solaris では a.out、 Windows では a.exe)

• アセンブリ ファ イル (-save-temps または -S オプシ ョ ンを使用した場合)

• オブジェク ト ファ イル (-save-temps または -c オプシ ョ ンを使用した場合)

• プリ プロセッ サ出力ファ イル (-save-temps オプショ ンを使用した場合、 .i または .iiファ イル)

ファイル タイプとその拡張子

GNU コンパイラでは、 ファ イルの拡張子からファ イルのタイプが判断されます。表 10-1 に有効な

拡張子とそのファイル タイプを示します。 ファ イル タイプに応じて、 GCC ラ ッパ ファ イルによ り

適切なツールが呼び出されます。

ライブラリ

表 10-2 に、 powerpc_eabi_gcc および mb_gcc コンパイラで必要なライブラ リ を示します。

表 10-1 : ファイルの拡張子

拡張子 ファイル タイプ

.c C ファ イル

.C C++ ファ イル

.cxx C++ ファ イル

.cpp C++ ファ イル

.c++ C++ ファ イル

.cc C++ ファ イル

.S アセンブリ ファ イル (プリプロセッサ指示子を含む場合もある)

.s アセンブリ ファ イル (プリプロセッサ指示子は含まない)

表 10-2 : コンパイラで使用されるライブラリ

ライブラリ 説明

libxil.a EDK ツール用のド ライバ、 ソフ ト ウェア サービス (XilNet、 XilMFS など)、 初期化ファイルが含まれます。

libc.a strcmp、 strlen などの関数を含む標準 C ライブラ リ。

libgcc.a 浮動小数点および 64 ビッ ト演算用のエミ ュレーシ ョ ン ルーチンを含む GCC の下位ライブラ リ。

libm.a cos、 sine などの関数を含む数値計算ライブラ リ。

libsupc++.a 例外処理、 RTTI などのルーチンを含む C++ サポート ラ イブラ リ。

libstdc++.a C++ 標準プラ ッ ト フォーム ライブラ リ ス ト リーム I/O、 ファ イル I/O、

文字列処理などの標準言語ク ラス。

Page 115: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 115EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

すべてのライブラ リは、 両方のコンパイラで自動的にリ ンク されます。 標準ライブラ リ とは別のラ

イ ブ ラ リ を使用する場合は、 使用する ラ イ ブ ラ リ の検索パス を指定する必要があ り ます。

libxil.a には、 Library Generator (Libgen) を使用してド ラ イバおよびライブラ リ ルーチンを追

加できます。

言語タイプ

GCC コンパイラでは、C および C++ 言語の両方が認識され、対応するコードが生成されます。 GCCの規則によ り、 ソース ファ イルに GCC または G++ コンパイラを同様に使用するこ とが可能です。

使用するコンパイラ と ソース ファ イルの拡張子によ り、入力ファイルおよび出力ファイルの言語が

決定されます。

GCC コンパイラを使用する場合、 プログラムの言語は表 10-1 に示すよ うにファ イルの拡張子によ

り決定されます。 ファ イル拡張子によ り C++ ソース ファ イルと判断された場合は、言語は C++ に設定されます。 そのため、 たとえば C コードが CC ファ イルに含まれている と、 GCC コンパイラ

を使用した場合でも、 関数名のマングル処理が行われます。

GCC と G++ の主な違いは、 G++ ではデフォルト言語がファイルの拡張子にかかわらず C++ に設

定され、 C++ サポート ラ イブラ リが読み込まれます。 そのため、 C ファ イルに含まれる C コード

を G++ でコンパイルする と、 関数名のマングル処理が行われます。

名前マングル処理は、 C++ などシンボルのオーバーロードをサポートする言語に特有の概念です。

引数によって異なる処理を実行し、 異なる戻り値を返すよ うな関数を、 オーバーロード (多重定義)された関数と言います。 これをサポートするため、 C++ コンパイラではその関数名で呼び出される

関数のタイプをエンコード して、 同じ名前の関数に複数の定義が存在しないよ うにします。

一部のソース ファ イルに C コードが含まれ、その他に C++ コードが含まれる混合コンパイル モー

ドを使用する (一部のファ イルのコンパイルに GCC を使用し、 その他のファ イルのコンパイルに

G++ を使用する ) 場合は、 名前マングル処理に注意する必要があ り ます。 C シンボルに対して名前

マングル処理が行われないよ うにするには、 シンボル宣言に次の文を使用します。

#ifdef __cplusplusextern “C” {£endif

int foo();int morefoo();

#ifdef __cplusplus}£endif

これらの宣言がヘッダ ファ イルで使用されるよ うにし、 ソース ファ イルすべてに適用されるよ う

にします。 これによ り、 これらのシンボルの定義および参照をコンパイルする際、 C 言語が使用さ

れるよ うになり ます。

メモ : EDK のすべてのド ライバおよびライブラ リは、 すべてのヘッダ ファ イルで上記の規則に従

います。 G++ を使用してコンパイルする場合は、 各ド ライバおよびライブラ リに記述されているよ

うに、必要なヘッダ ファ イルを含める必要があ り ます。 これによ り、 コンパイラでライブラ リ シン

ボルが C タイプであるこ とが確実に認識されます。

どちらのコンパイラでコンパイルする場合でも、 ファ イルを特定の言語に指定するには -x langオプシ ョ ンを使用します。 このオプシ ョ ンの詳細は、 GNU の Web サイ トの GCC マニュアルを参

照してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Page 116: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

116 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

GCC コンパイラを使用する場合、 libstdc++.a および libsupc++.a は自動的にはリ ンク されません。

C++ プログラムをコンパイルする場合は、 G++ コンパイラを使用して、 必要なサポート ラ イブラ

リが自動的にリ ンク されるよ うにして ください。 また、 GCC コマンドに -lstdc++ および -lsupc++を追加するこ と も可能です。

異なる言語に対してコンパイルを起動する方法は、 GNU のオンライン マニュアルを参照してくだ

さい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

よ く使用されるコンパイラ オプシ ョ ンの一覧

よ く使用されるコンパイラのオプシ ョ ンを次に示します。 これらのオプシ ョ ンは、MicroBlaze およ

び PowerPC の両方のコンパイラで使用できます。

メモ : これらのオプシ ョ ンでは、 大文字と小文字が区別されます。

オプシ ョ ン名をク リ ッ クする と、 そのオプシ ョ ンの説明にジャンプします。

一般オプシ ョ ン

-E

プリプロセスのみを実行し、 コンパイル、 アセンブ リ、 リ ンクは実行しません。 プリプロセスの結

果は、 標準の出力デバイスに表示されます。

-S

コンパイルのみを実行し、 アセンブ リ、 リ ンクは実行しません。 .s ファ イルを生成します。

-c

コンパイルおよびアセンブリのみを実行し、 リ ンクは実行しません。 .o ファ イルを生成します。

-g

出力ファイルに DWARF2 ベースのデバッグ情報を追加します。 このデバッグ情報は、GNU デバッ

ガ (mb-gdb または powerpc-eabi-gdb) で使用されます。 デバッガでは、ソース レベルまたはアセン

ブリ レベルでデバッグを実行できます。 このオプシ ョ ンは、入力が C または C++ ソース ファ イル

である場合にのみデバッグ情報を追加します。

一般オプシ ョ ン ライブラリ検索オプシ ョ ン

-E-S-c-g-gstabs-On-v-save-temps-o filename

-Wp,option-Wa,option-Wl,option-help-B directory-L directory-I directory-l library

-l libraryname-L Lib Directory

ヘッダ ファイル検索オプシ ョ ン

-I Directory Name

リンカ オプシ ョ ン

-defsym _STACK_SIZE=value-defsym _HEAP_SIZE=value

Page 117: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 117EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

-gstabs

ソース レベルのアセンブ リ ファ イル (.S) およびアセンブリ ファ イル シンボルに STABS ベース

のデバッグ情報を追加します。 これはアセンブラ オプシ ョ ンで、 GNU アセンブラ (mb-as または

powerpc-eabi-as) に直接渡されます。 アセンブ リ ファ イルがコンパイラ (mb-gcc または powerpc-eabi-gcc) を使用してコンパイルされている場合は、 -Wa, を前に付けてください。

-On

GNU コンパイラの 適化レベルを指定します。 適化レベルは、C および C++ ソース ファ イルに

のみ適用されます。

メモ : 適化レベルを 1 以上にする と、 コードの構成が変わり ます。 コードのデバッグ中は、 適

化レベルを 0 にするこ とをお勧めします。 適化したプログラムを GDB でデバッグする と、 結果

が不一致のよ うに見える場合があ り ます。

-v

コンパイラおよびコンパイルに関連するすべてのツールを詳細モードで実行します。 このオプシ ョ

ンを使用する と、 ツールで使用されたオプシ ョ ンの詳細が得られるので、 各ツールのデフォルト オプシ ョ ンがわかり ます。

-save-temps

コンパイル中に生成された中間ファイルを保存します。 次のファイルが保存されます。

♦ プリプロセッサ出力 (C コードでは input_file_name.i、 C++ では

input_file_name.ii)

♦ アセンブリ フォーマッ トのコンパイラ (cc1) 出力 (input_file_name.s)

♦ ELF フォーマッ トのアセンブラ出力 (input_file_name.s)

デフォルトでは、 コンパイル全体が a.out に保存されます。

-o filename

コンパイルの出力は、 デフォルトでは a.out とい う ELF ファ イルです。 このファ イル名は、 -o オプシ ョ ンを使用する と変更できます。 出力ファイルは ELF フォーマッ トで生成されます。

表 10-3 : 最適化レベル

n 最適化

0 適化は実行されません。

1 中レベルの 適化が実行されます。

2 完全な 適化を実行します。

3 完全な 適化を実行します。

サブプログラムをインライン化します。

S サイズを小さ くするよ う 適化します。

Page 118: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

118 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

-Wp,option

-Wa,option

-Wl,option

コンパイラ (mb-gcc または powerpc-eabi-gcc) はラ ッパ ファ イルで、プ リプロセッサ、 コンパイラ

(cc1)、 アセンブラ、 リ ンカなどを呼び出します。 これらのツールは、 コンパイラを介して、 または

個別に実行できます。

これらのツールで必要なオプシ ョ ンには、 上位のコンパイラでは不要なものもあ り ます。 そのよ

う なオプシ ョ ンは、 表 10-4 で示すよ うに指定します。

-help

GNU コンパイラで使用可能なオプシ ョ ンに関する情報を表示します。

これらの情報は、 GCC のマニュアルも参照して ください。 この章の 「関連リ ソース」 に、 このマ

ニュアルへのリ ンクがあ り ます。

-B directory

C のランタイムのライブラ リ検索パスに directory を加えます。

-L directory

ライブラ リ検索パスに directory を加えます。

-I directory

ヘッダ検索パスに directory を加えます。

-l library

未定義のシンボルを library で検索します。

メモ : このコマンド ラ イン オプシ ョ ンで指定したライブラ リ名に、 lib とい う接頭辞が追加され

ます。

表 10-4 : ツール専用オプシ ョ ンの指定方法

オプシ ョ ン ツール 例

-Wp,option プリプロセッサ mb-gcc -Wp,-D -Wp,MYDEFINE ...

プリプロセッサで -D MYDEFINE オプシ ョ ンを使用して、

シンボル MYDEFINE が定義されるよ う指定します。

-Wa,option アセンブラ powerpc-eabi-gcc -Wa,-m405 ...

アセンブラで -m405 オプシ ョ ンを使用して、 PPC405 プロ

セッサがターゲッ ト と して使用されるよ う指定します。

-Wl,option リ ンカ mb-gcc -Wl,-M ...

リ ンカで -M オプシ ョ ンを使用して、 マップ ファ イルが生

成されるよ う指定します。

Page 119: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 119EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

ライブラリ検索オプシ ョ ン

-l libraryname

デフォルトでは、 libc、 libm、 libxil などの標準ライブラ リのみが検索されます。 独自のライブラ リ

も作成でき、 このオプシ ョ ンを使用してそのライブラ リの名前と機能定義の保存場所を指定できま

す。 このオプシ ョ ンで指定したライブラ リ名に lib という接頭辞が追加されます。

コマンド ラ インでオプシ ョ ンを指定する順序は関係しますが、特に -l オプシ ョ ンでは重要です。 このオプシ ョ ンは、 ソース ファ イルの後に使用して ください。

たとえば、libproject.a とい う独自のライブラ リ を作成している場合は、次のコマンドを使用す

る と このライブラ リに含まれる関数を使用できます。

Compiler Source_Files -L${LIBDIR} -l project

注意 -l オプシ ョ ンをソース ファ イルの前に使用する と、 コンパイラでソース ファ イルによ り呼び出さ

れる関数を見つけるこ とができません。 これは、 コンパイラでの検索は一方向にのみ行われ、 ライブラ リ

の リ ス トが保持されないからです。

-L Lib Directory

ラ イブラ リ を検索するディ レク ト リ を指定します。 デフォルトのライブラ リが検索パス と して設定

されており、 標準ライブラ リはこ こから検索されますが、 -L オプシ ョ ンを指定する と、 コンパイラ

の検索パスにライブラ リ を検索するディ レク ト リ を追加できます。

ヘッダ ファイル検索オプシ ョ ン

-I Directory_Name

ヘッダ ファ イルを標準パスで検索する前に、 Directory_Name で指定したディ レク ト リで検索する

よ う指定します。

デフォルトの検索パス

コンパイラ (mb-gcc および powerpc-eabi-gcc) では、特定のパスからライブラ リおよびヘッダ ファ

イルが検索されます。 プラ ッ ト フォームによる検索パスを、 次に示します。

ライブラ リは、 次の順に検索されます。

1. -L オプシ ョ ンで指定されたディ レク ト リ

2. -B オプシ ョ ンで指定されたディ レク ト リ

3. 次のライブラ リ

a. ${XILINX_EDK}/gnu/processor/platform/processor-lib/lib

b. ${XILINX_EDK}/lib/processor

メモ : processor は、 MicroBlaze では microblaze、 PowerPC では powerpc-eabi です。

Page 120: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

120 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

ヘッダ ファ イルは、 次の順に検索されます。

1. -I オプシ ョ ンで指定されたディ レク ト リ

2. 次のヘッダ ファ イル

a. ${XILINX_EDK}/gnu/processor/platform/lib/gcc/processor/4.1.1/include

b. ${XILINX_EDK}/gnu/processor/platform/processor-lib/include

初期化ファイルは、 次の順に検索されます。

1. -B オプシ ョ ンで指定されたディ レク ト リ

2. ${XILINX_EDK}/gnu/processor/platform/processor-lib/lib

3. 次のライブラ リ

a. ${XILINX_EDK}/gnu/processor/platform/processor-lib pro/lib

b. ${XILINX_EDK}/lib/processor

♦ processor は、 PowerPC では powerpc-eabi、 MicroBlaze では microblaze です。

♦ processor-lib は、 PowerPC では powerpc-eabi、 MicroBlaze では microblaze-xilinx-elfです。

メモ : platform は、Solaris では sol、Linux では lin、Linux 64 ビッ トでは lin64、Windows Cygwinでは nt です。

リンカ オプシ ョ ン

リ ンカ オプシ ョ ンは、 次のとおりです。

-defsym _STACK_SIZE=value

スタ ッ ク領域に割り当てられている メモ リ容量を変更します。 変数 _STACK_SIZE は、スタ ッ ク領

域に割り当てられている合計容量を示します。 デフォル ト値は 100 ワード (400 バイ ト ) です。 スタ ッ ク領域と ヒ ープ領域の合計に 400 バイ ト 以上必要な場合は、 このオプシ ョ ンを使用して

_STACK_SIZE の値を大き く します。 値はバイ ト単位で指定します。

プログラムでスタ ッ ク領域を大き くする必要がある場合があ り ます。 プログラムで必要なスタ ッ ク

サイズが割り当てられているサイズよ り も大きい場合は、 プログラムの不正な領域に書き込みが行

われ、 コードが正常に実行されない場合があ り ます。

メモ : ザイ リ ンクスが提供する C ランタイム (CRT) ファ イルにリ ンク されたプログラムでは、 ス

タ ッ ク サイズを 16 バイ ト (0x0010) 以上にする必要があ り ます。

-defsym _HEAP_SIZE=value

ヒープ領域に割り当てられている メモ リ容量を変更します。 変数 _HEAP_SIZE のデフォルト値は

0 です。

ダイナミ ッ ク メモ リ割り当てルーチンは、 ヒープ領域を使用します。 プログラムでこのよ うにヒー

プ領域を使用する場合は、 _HEAP_SIZE に適切な値を設定する必要があ り ます。

リ ンカ スク リプ ト を XPS から直接生成するこ と もできます。

Page 121: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 121EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

メモリのレイアウト

MicroBlaze および PowerPC プロセッサは、 32 ビッ トの論理アドレスを使用し、 システムのメモ

リの 0x0 ~ 0xFFFFFFFF のアドレスを指定できます。 このアドレス範囲は、 次のタイプに分類で

きます。

• 予約済みメモ リ

• I/O メモ リ

予約済みメモリ

予約済みメモ リは、 ハードウェアおよびソフ ト ウェアのプログラム環境で専用に使用するため定義

される領域で、 割り込みベクタおよびシステム レベル ルーチンの場所などが含まれます。 表 10-5に、 プロセッサ ハード ウェアで定義される MicroBlaze および PowerPC の予約メモ リの場所を示

します。 これらのメモ リ ロケーシ ョ ンの詳細は、使用するプロセッサのリ ファレンス マニュアルを

参照してください。

メモ : ハード ウェアだけでなく、 ソフ ト ウェア環境でも メモ リが予約される場合があ り ます。 ソフ

ト ウェアで予約されている メモ リ ロケーシ ョ ンがあるかど うかは、 使用する ソフ ト ウェア プラ ッ

ト フォームのマニュアルを参照してください。

I/O メモリ

I/O メモ リは、プログラムがプロセッサ バス上のメモリ マップされたペリ フェラルと通信するため

に使用されます。 これらのアドレスは、 ハード ウェア プラ ッ ト フォーム仕様の一部と して定義され

ます。

ユーザーおよびプログラム メモリ

ユーザーおよびプログラム メモ リ とは、コンパイルされた実行ファイルの実行に必要なすべてのメ

モ リ を指します。 命令、読み出し専用データ、 読み出し /書き込みデータ、 プログラム スタ ッ ク、 プ

ログラム ヒープの保存に使用されます。 これらのセクシ ョ ンは、 システム内のアドレス指定可能な

メモ リであればどこにでも保存できます。 デフォルトでは、 コンパイラで生成されたコードおよび

データは、 表 10-5 にリ ス ト されているアドレスから開始して、 連続する メモ リ ロケーシ ョ ンに保

存されます。 これが も一般的なプログラムのメモ リ レイアウ ト です。 プログラムの開始ロケー

シ ョ ンを変更するには、 MicroBlaze では _TEXT_START_ADDR シンボル、 PowerPC では

_START_ADDR シンボルを定義します。

表 10-5 : ハードウェアで予約されるメモリ ロケーシ ョ ン

プロセッサ 予約済みメモリ 用途デフォルトのテキスト

開始アドレス

MicroBlaze 0x0 ~ 0x4F リ セッ ト、 割り込み、

例外、 その他の予約済

みベクタの場所

0x50

PowerPC 0xFFFFFFFC ~ 0xFFFFFFFF リセッ ト ベクタの場所 0xFFFF0000

Page 122: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

122 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

ELF ファ イルを異なる メモ リに分割する必要がある場合は、 リ ンカ コマンド言語を使用します。詳

細は、 この章の 「リ ンカ スク リプ ト 」 を参照して ください。 実行ファイルのメモリ マップを変更す

るのは、 次のよ う な場合です。

♦ 長いコードを複数の小型メモ リに分割する場合

♦ 頻繁に実行されるセクシ ョ ンを高速メモ リにマップする場合

♦ 読み出し専用のセグメン ト を不揮発性のフラ ッシュ メモ リにマップする場合

実行ファイルの分割方法に制限はあ り ません。 分割は、 出力セクシ ョ ン レベルまたは関数レベル、

データ レベルで行う こ とができます。 生成される ELF ファ イルが不連続とな り、 メモ リ マップに

ギャ ップが存在するこ とがあ り ます。 予約済みロケーシ ョ ンを使用しないよ う注意してください。

または、 ツールで提供される予約済みメモ リ ロケーシ ョ ンのデフォルト バイナリ データを変更す

るこ と も可能です。 この場合、 リ ンカで提供されるデフォルトのスタート アップ ファ イルおよびメ

モ リ マップを置き換える必要があ り ます。

オブジェク ト ファイルのセクシ ョ ン

実行ファイルは、オブジェク ト ファ イル (.o ファ イル) の入力セクシ ョ ンを リ ンク して作成します。

デフォルトでは、 コンパイラによ り標準的な明確に定義されたセクシ ョ ンからコードが作成されま

す。 各セクシ ョ ンには、 その意味および目的に応じて名前が付けられています。 オブジェク ト ファ

イルのさまざまな標準セクシ ョ ンを図 10-2 に示します。

これらのセクシ ョ ンに加え、 独自のセクシ ョ ンを作成して、 メモ リに割り当てるこ と もできます。

このほかに、 .init、 .fini、 .ctors、 .dtors、 .got、 .got2、 .eh_frame など、 通常は変更しない予約済み

セクシ ョ ンがあ り ます。

図 10-2 : オブジェク ト ファイルまたは実行ファイルのセクシ ョ ン レイアウト

.text

.rodata

.sdata2

.data

.sdata

.sbss

.bss

.heap

.stack

UG111_11_051706

Page 123: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 123EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

.text

オブジェク ト ファ イルのこのセクシ ョ ンには実行可能なプログラム命令が含まれており、 x (実行

コード )、 r (読み出し専用)、 および i (初期化) フラグが付けられています。 プロセッサ命令バスで

アドレス指定可能な初期化済み ROM に割り当てるこ とができます。

.rodata

このセクシ ョ ンには読み出し専用データが含まれており、 r (読み出し専用) および i (初期化) フラグ

が付けられています。 .text セクシ ョ ンと同様、 プロセッサ命令バスでアドレス指定可能な初期化済

み ROM に割り当てるこ とができます。

.sdata2

このセクシ ョ ンは .rodata セクシ ョ ンと同様ですが、 8 バイ ト未満の読み出し専用データが含まれま

す。 このセクシ ョ ンのデータは、すべて読み出し専用のスモール データ アンカーへの参照を使用し

てアクセスします。 これによ り、 このセクシ ョ ンのすべてのデータに 1 つの命令でアクセスできま

す。 このセクシ ョ ンに配置するデータのサイズは、 -G オプシ ョ ンで変更できます。 このセクシ ョ ン

には、 r (読み出し専用) および i (初期化) フラグが付けられています。

.data

このセクシ ョ ンには読み出し /書き込みデータが含まれており、 w (読み出し /書き込み) および i (初期化) フラグが付けられています。 初期化済みの RAM にマップする必要があ り ます。 ROM には

マップできません。

.sdata

このセクシ ョ ンには、 指定サイズよ り も小さい読み出し /書き込み可能なデータが含まれます。 デ

フォルトは、 8 バイ トです。 このセクシ ョ ンに配置するデータのサイズは、 -G オプシ ョ ンで変更で

きます。 このセクシ ョ ンのデータは、 すべて読み出し /書き込みのスモール データ アンカーへの参

照を使用してアクセスします。 これによ り、 このセクシ ョ ンのすべてのデータに 1 つの命令でアク

セスできます。 このセクシ ョ ンには、 w (読み出し /書き込み) および i (初期化) フラグが付けられて

おり、 初期化済み RAM にマップする必要があ り ます。

.sbss

このセクシ ョ ンには、指定サイズよ り も小さい初期化されないデータが含まれます。デフォルトは、

8 バイ トです。 このセクシ ョ ンに配置するデータのサイズは、 -G オプシ ョ ンで変更できます。 この

セクシ ョ ンには、 w (読み出し /書き込み) フラグが付けられており、 RAM にマップする必要があ り

ます。

.bss

このセクシ ョ ンには、初期化されていないデータが含まれます。このセクシ ョ ンには、w (読み出し /書き込み) フラグが付けられており、 RAM にマップする必要があ り ます。

.heap

このセクシ ョ ンには、 グローバル プログラム ヒープと して使用される初期化されていないデータ

が含まれます。 このセクシ ョ ンのメモリは、ダイナミ ッ ク メモ リ割り当てルーチンによ り割り当て

られます。 RAM にマップする必要があ り ます。

Page 124: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

124 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

.stack

このセクシ ョ ンには、プログラム スタ ッ ク と して使用される初期化されていないデータが含まれま

す。 RAM にマップする必要があ り ます。通常は、 .heap セクシ ョ ンのすぐ後に配置されます。 リ ン

カによっては、.stack と .heap セクシ ョ ンが統合され、.bss_stack とい うセクシ ョ ンに配置されます。

.init

このセクシ ョ ンには言語初期化コードが含まれており、 .text セクシ ョ ンと同じフラグが付けられて

います。 初期化済みの ROM にマップする必要があ り ます。

.fini

このセクシ ョ ンには言語ク リーンアップ コードが含まれており、.text セクシ ョ ンと同じフラグが付

けられています。 初期化済みの ROM にマップする必要があ り ます。

.ctors

こ のセク ショ ンにはプログラムの起動時に呼び出す必要のある関数がリ スト さ れ、 .data と 同じフ

ラグが付けられています。 初期化済みの RAM にマッ プする必要があり ます。

.dtors

こ のセク ショ ンにはプログラムの終了時に呼び出す必要のある関数がリ スト さ れており 、 .data と同じフラグが付けられています。 初期化済みの RAM にマッ プする必要があり ます。

.got2/.got

このセクシ ョ ンにはプログラム データへのポインタが含まれており、 .data と同じフラグが付けら

れています。 初期化済みの RAM にマップする必要があ り ます。

.eh_frame

このセクシ ョ ンには例外処理用のフレーム巻き戻し情報が含まれており、.rodata と同じフラグが付

けられています。 初期化済みの ROM にマップできます。

.tbss

このセクシ ョ ンにはプログラムの メモ リ イ メージの一部となるスレ ッ ドが初期化されていない

ローカル データが含まれており、 .bss と同じフラグが付けられています。 RAM にマップする必要

があ り ます。

.tdata

このセクシ ョ ンには、プログラムのメモリ イ メージの一部となるスレッ ドが初期化済みのローカル

データが含まれています。 初期化済みの RAM にマップする必要があ り ます。

.gcc_except_table

このセクシ ョ ンには、 言語特定のデータが含まれています。 初期化済みの RAM にマップする必要

があ り ます。

Page 125: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 125EDK 10.1 サービス パッ ク 1

コンパイラの使用法とオプシ ョ ンR

.jcr

このセクシ ョ ンには、 コンパイル済みの Java ク ラスを登録するために必要な情報が含まれていま

す。 初期化済みの RAM にマップする必要があ り ます。

.fixup

このセクシ ョ ンには、 フ ィ ッ クスアップ ページ テーブルやフィ ッ クスアップ レコード テーブルを

実行するために必要な情報が含まれています。 初期化済みの RAM にマップする必要があ り ます。

リンカ スクリプ ト

リ ンカ ユーティ リ ティでは、 リ ンカ スク リプ トで指定したコマンドを使用してユーザー プログラ

ムを複数のメモ リ ブロ ッ クに分割します。 リ ンカ スク リプ トは、 すべての入力オブジェク ト ファ

イルのすべてのセクシ ョ ンから実行ファイルへのマップを記述します。 出力セクシ ョ ンは、 システ

ムのメモ リにマップされます。

プログラム データを連続する メモ リに割り当てるデフォルト を変更しない場合は、 リ ンカ スク リ

プ トは必要あ り ません。 デフォルトの リ ンカ スク リプ トが用意されています。

プログ ラ ムの開始ロケーシ ョ ンのみを変更するには、 次の例に示すよ う に、 MicroBlaze では

_TEXT_START_ADDR シンボル、 PowerPC では _START_ADDR シンボルを定義します。

mb-gcc <input files and flags> -Wl,-defsym -Wl,_TEXT_START_ADDR=0x100

powerpc-eabi-gcc <input files and flags> -Wl,-defsym -Wl,_TEXT_START_ADDR=0x2000

mb-ld <.o files> -defsym _TEXT_START_ADDR=0x100

$XILINX_EDK/gnu/<processor_name>/<platform>/<processor_name>/lib/

ldscripts に、 次のリ ンカ スク リプ トが含まれています。

• elf32<procname>.x : この後に示すオプシ ョ ンが使用されていない場合のデフォルト

• elf32<procname>.xn : -n オプシ ョ ンを使用した場合

• elf32<procname>.xbn : -N オプシ ョ ンを使用した場合

• elf32<procname>.xr : -r オプシ ョ ンを使用した場合

• elf32<procname>.xu : -Ur オプシ ョ ンを使用した場合

こ こで、 <procname> は ppc または microblaze、 <processor_name> は powerpc-eabi また

は microblaze、 <platform> は lin、 nt、 または sol です。

リ ンカ スク リプ ト を使用するには、 GCC コマンド ラ インで指定します。 次のよ うに、 コンパイラ

に -T <script> オプシ ョ ンを使用します。

compiler -T linker_script <Other Options and Input Files>

リ ンカを個別に実行する場合は、 リ ンカ スク リプ ト を次のよ うに指定します。

linker -T linker_script <Other Options and Input Files>

Page 126: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

126 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

このコマンドを使用する と、 デフォルト の リ ンカ スク リプ トの代わりに指定した リ ンカ スク リプ

トが使用されます。 プログラム用のリ ンカ スク リプ トは、 XPS および SDK から生成できます。

XPS で、 [Software] → [Generate Linker Script] をク リ ッ ク します。

これによ り、 リ ンク スク リプ ト生成ユーティ リ ティが開きます。 セクシ ョ ンから メモ リへのマップ

は、 こ こで行います。 スタ ッ クおよびヒープのサイズと メモ リ マップも こ こで設定できます。 リ ン

カ スク リプ トが生成される と、 XPS で対応するアプ リ ケーシ ョ ンをコンパイルしたと きにそのス

ク リプ トが自動的に GCC に入力されます。

リ ンカ ス ク リ プ ト は、 メモ リ に変数または関数を割り当てるために使用できます。 これには、 Cコードのセクシ ョ ン属性を使用します。 また、 リ ンカ スク リプ トでメモ リのセクシ ョ ンにオブジェ

ク ト ファ イルを割り当てるこ と もできます。 これらの機能およびその他の機能については、オンラ

イン binutils マニュアルの一部である GNU リ ンカのマニュアルを参照してください。この章の「関

連リ ソース」 に、 GNU マニュアルへのリ ンクがあ り ます。

MicroBlaze および PowerPC のリ ンカ スク リプ トで割り当てられる入力セクシ ョ ンについては、こ

の章の 「MicroBlaze リ ンカ スク リプ トで割り当てられるセクシ ョ ン」 および 「PPC リ ンカ スク リ

プ トで割り当てられるセクシ ョ ン」 を参照してください。

MicroBlaze コンパイラの使用法とオプシ ョ ン

MicroBlaze 用の GNU コンパイ ラは、 標準の GNU ソースに基づいています。 MicroBlaze コンパ

イラに特定の機能およびオプシ ョ ンを、次に説明します。 MicroBlaze コンパイラでコンパイルする

場合、 プ リプロセッサで自動的に __MICROBLAZE__ 定義が使用されます。 この定義は、 どのよ

う な条件コードでも使用できます。

MicroBlaze コンパイラ

ザイ リ ンクス MicroBlaze ソフ ト プロセッサ用の mb-gcc コンパイラでは、 専用のオプシ ョ ンが追

加されているだけでなく、 GNU コンパイラでサポート されている一部のオプシ ョ ンが変更されて

います。 こ こでは、 その両方のオプシ ョ ンについて説明します。

Page 127: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 127EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

MicroBlaze コンパイラ オプシ ョ ンの一覧

オプシ ョ ン名をク リ ッ クする と、 そのオプシ ョ ンの説明にジャンプします。

プロセッサ機能選択オプシ ョ ン

-mcpu=vX.YY.Z

MicroBlaze ハード ウェアのバージ ョ ン v.X.YY.Z に適したコードを生成します。プロセッサ用に

適化された正しいコードを生成するには、このオプシ ョ ンでプロセッサのハード ウェア バージ ョ ン

を指定します。

指定するバージ ョ ンによって、 処理が異なり ます。

• Pr-v3.00.a

3 段プロセッサ パイプライン モードを使用します。命令を遅延スロ ッ トに移動する例外は禁止

されません。

• v3.00.a および v4.00.a

3 段プロセッサ パイプライン モデルを使用します。命令を遅延スロ ッ トに移動する例外は禁止

されます。

• v5.00.a 以降

5 段プロセッサ パイプライン モードを使用します。命令を遅延スロ ッ トに移動する例外は禁止

されません。

プロセッサ機能選択オプシ ョ ン

-mcpu=vX.YY.Z-mno-xl-soft-mul-mxl-multiply-high-mno-xl-multiply-high -mxl-soft-mul-mno-xl-soft-div -mxl-soft-div-mxl-barrel-shift-mno-xl-barrel-shift-mxl-pattern-compare-mno-xl-pattern-compare-mhard-float-msoft-float

一般プログラム オプシ ョ ン

-msmall-divides-mxl-gp-opt-mno-clearbss-mxl-stack-check

アプリケーシ ョ ン実行モード

-xl-mode-executable-xl-mode-xmdstub-xl-mode-bootstrap-xl-mode-novectors

MicroBlaze リンカ オプシ ョ ン

-defsym _TEXT_START_ADDR=value-relax-N

Page 128: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

128 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

-mno-xl-soft-mul

32 ビッ ト乗算に対し、 ハードウェア乗算命令を使用できるよ うにします。

MicroBlaze プロセッサには、 ハード ウェア乗算リ ソースの使用をオン/オフにするオプシ ョ ンがあ

り ます。 MicroBlaze でハード ウェア乗算オプシ ョ ンがイネーブルになっている場合は、 このオプ

シ ョ ンを使用する必要があ り ます。 ハード ウェア乗算を使用する と、 アプ リ ケーシ ョ ンのパフォー

マンスが向上します。 このオプシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_HW_MUL が自動

的に定義され、 この機能が使用可能かど うかに基づいて、ハードウェアに適した C またはアセンブ

リ コードが記述されます。 MicroBlaze での乗算器オプシ ョ ンの使用については、『MicroBlaze プロ

セッサ リ フ ァレンス ガイ ド』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュア

ルへのリ ンクがあ り ます。

-mxl-multiply-high

MicroBlaze には、 32X32 ビッ ト の乗算の上位 32 ビッ ト を計算する命令をイネーブルにするオプ

シ ョ ンがあ り ます。 このオプシ ョ ンは、 コンパイラでこれらの上位ビッ ト乗算命令を使用するよ う

指示します。 このオプシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_HW_MUL_HIGH が自動的

に定義され、 この機能が使用可能かど うかに基づいて、 ハードウェアに適した C またはアセンブリ

コードが記述されます。MicroBlaze での上位ビッ ト乗算オプシ ョ ンの使用については、『MicroBlazeプロセッサ リ ファレンス ガイ ド』 を参照してください。 この章の 「関連リ ソース」 に、 このマニュ

アルへのリ ンクがあ り ます。

-mno-xl-multiply-high

上位ビッ ト乗算命令を使用しないよ う指定します。 このオプシ ョ ンは、 デフォルトで設定されてい

ます。

-mxl-soft-mul

MicroBlaze にハード ウェア乗算器が含まれていないこ とを示します。デバイスにハードウェア乗算

器がない場合、 32 ビッ ト乗算操作はソフ ト ウェア エミ ュレーシ ョ ン ルーチン __mulsi3 に置換さ

れます。 このオプシ ョ ンは、 デフォルトで設定されています。

-mno-xl-soft-div

MicroBlaze にハード ウェア除算ユニッ ト をインスタンシエート できます。 除算ユニッ ト がある場

合、 このオプシ ョ ンを指定する と、 コンパイルされるプログラムでハードウェア除算命令が使用で

きるこ とが示されます。

プログラムに除算処理が多数含まれる場合、 このオプシ ョ ンを使用する とパフォーマンスが向上し

ます。 このオプシ ョ ンを使用する と、 C プ リプロセッサ定義 HAVE_HW_DIV が自動的に定義され、

この機能が使用可能かど うかに基づいて、 ハード ウェアに適した C またはアセンブリ コードが記

述されます。 MicroBlaze でのハード ウェア除算オプシ ョ ンの使用については、 『MicroBlaze プロ

セッサ リ フ ァレンス ガイ ド』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュア

ルへのリ ンクがあ り ます。

-mxl-soft-div

ターゲッ トの MicroBlaze にハード ウェア除算ユニッ トがないこ とを示します。

このオプシ ョ ンは、 デフォル ト で設定されています。 このオプシ ョ ンを設定する と、 すべての 32ビッ ト除算が対応するソフ ト ウェア エミ ュレーシ ョ ン ルーチン (__divsi3、 __udivsi3) に置換され

ます。

Page 129: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 129EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

-mxl-barrel-shift

MicroBlaze プロセッサは、 バレル シフタを組み込むよ う コンフ ィギュレーシ ョ ンできます。 プロ

セッサのバレル シフ ト機能を使用するには、 -mxl-barrel-shift オプシ ョ ンを使用します。

デフォルトではバレル シフタはないと判断され、オペランドのシフ トには加算と乗算が使用されま

す。 バレル シフタをイネーブルにする と、 特に浮動小数点ライブラ リ を使用している場合に、 アプ

リ ケーシ ョ ンの速度が大幅に向上します。 このオプシ ョ ンを使用する と、 C プ リ プロセッサ定義

HAVE_HW_BSHIFT が自動的に定義され、 この機能が使用可能かど うかに基づいて、 ハード ウェア

に適した C またはアセンブリ コードが記述されます。 MicroBlaze でのバレル シフタ オプシ ョ ンの

使用については、 『MicroBlaze プロセッサ リ フ ァレンス ガイ ド』 を参照して ください。 この章の

「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

-mno-xl-barrel-shift

ハード ウェア バレル シフ ト命令を使用しないよ う指定します。 このオプシ ョ ンは、 デフォル トで

設定されています。

-mxl-pattern-compare

コンパイラでのパターン比較命令の使用をオンにします。

パターン比較命令を使用する と、 プログラムのブール演算の速度が向上します。 また、 パターン比

較操作では、 strcpy、 strlen、 strcmp などの文字列処理ルーチンにおいて、 バイ ト長ではなく ワード

長での操作が可能になり ます。 文字列処理ルーチンを多用するプログラムでは、 これによ り処理速

度が大幅に向上します。 このオプシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_HW_PCMP が自動的に定義され、 この機能が使用可能かど うかに基づいて、ハードウェアに適した C またはアセ

ンブ リ コード が記述されます。 MicroBlaze でのパターン比較オプシ ョ ンの使用については、

『MicroBlaze プロセッサ リ フ ァ レンス ガイ ド』 を参照して ください。 この章の 「関連リ ソース」

に、 このマニュアルへのリ ンクがあ り ます。

-mno-xl-pattern-compare

パターン比較命令を使用しないよ う指定します。 このオプシ ョ ンは、 デフォルトで設定されてい

ます。

-mhard-float

コンパイラでの単精度浮動小数点命令 (fadd、 frsub、 fmul、 fdiv) の使用をオンにします。

また、 fcmp.p 命令 (p は le、 ge、 lt、 gt、 eq、 ne などの述語条件) も使用します。 これらの命令は、

ハード ウェアで FPU がイネーブルの場合に、 MicroBlaze でデコードおよび実行されます。 このオ

プシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_HW_FPU が自動的に定義され、 この機能が使

用可能かど うかに基づいて、 ハード ウェアに適した C またはアセンブ リ コードが記述されます。

MicroBlaze でのハード ウェア浮動小数点の使用については、 『MicroBlaze プロセッサ リ ファレン

ス ガイ ド』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り

ます。

-msoft-float

浮動小数点コードのソフ ト ウェア エミ ュレーシ ョ ン ラ イブラ リ を使用するよ う指定します。 この

オプシ ョ ンは、 デフォルトで設定されています。

Page 130: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

130 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

-mxl-float-convert

コンパイラでの単精度浮動小数点変換命令 (fint および flt) の使用をオンにします。 これらの命令

は、 ハード ウェアで FPU がイネーブルになっており、 これらのオプシ ョ ンの命令がイネーブルの

場合に、 MicroBlaze によ りネイティブでデコード され、 実行されます。

MicroBlaze でのハード ウェア浮動小数点の使用については、 『MicroBlaze プロセッサ リ ファレン

ス マニュアル』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクが

あ り ます。

-mxl-float-sqrt

コンパイ ラでの単精度浮動小数点平方根命令 (fsqrt) の使用をオンにします。 この命令は、 ハード

ウ ェアで FPU がイネーブルになってお り、 このオプシ ョ ンの命令がイネーブルの場合に、

MicroBlaze によ りネイティブでデコード され、 実行されます。

MicroBlaze でのハード ウェア浮動小数点の使用については、 『MicroBlaze プロセッサ リ ファレン

ス マニュアル』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクが

あ り ます。

一般プログラム オプシ ョ ン

-msmall-divides

ハード ウェア除算器がない場合に、 小さい数値の除算に対して 適化されたコードを生成します。

分母と分子が 0 ~ 15 の間にある よ う な符号付き整数の除算では、 このオプシ ョ ンを使用する と

ルッ クアップ テーブルに基づく高速の除算を生成できます。 ハードウェア除算器がイネーブルの場

合は、 このオプシ ョ ンは無視されます。

-mxl-gp-opt

プログラムに上位 16 ビッ トに 0 以外の値が含まれるアドレスがある場合、 読み込み/格納操作には

2 つの命令が必要です。 MicroBlaze ABI には 2 つのグローバル スモール データ領域があ り、 それ

ぞれ 64KB までのデータを保存できます。 これらのデータ領域にある メモ リ ロケーシ ョ ンには、ス

モール データ領域アンカーおよび 16 ビッ トの即値を使用してアクセスできるので、スモール デー

タ領域への読み込み/格納操作を 1 つの命令のみで実行できます。 この 適化をオンにするには、

-mxl-gp-opt オプシ ョ ンを使用します。 し きい値未満のサイズの変数はこれらの領域に保存さ

れ、 少ない命令数でアドレス指定可能です。 アドレスは、 リ ンク段階で求められます。

注意 このオプシ ョ ンを使用する場合、 プログラムのビルド プロセスのコンパイル コマンド と リ ンク コマンドの両方で指定する必要があ り ます。 どちらか一方のみで使用する と、 コンパイル、 リ ンク、 または

ランタイム エラーが発生する可能性があ り ます。

-mno-clearbss

このオプシ ョ ンは、 シ ミ ュレーシ ョ ンで使用するプログラムをコンパイルする際に有益です。

C 言語の標準に基づき、初期化されていないグローバル変数は .bss セクシ ョ ンに割り当てられ、プ

ログラムの実行が開始したと きの値は 0 になり ます。 通常これは、 プログラムの実行が開始したと

きに、 C スタート アップ ファ イルをループで実行して .bss セクシ ョ ンに 0 が記述されるよ うにす

るこ とで達成します。 さ らにコンパイラを 適化する と、 C コードで 0 に割り当てられたグローバ

ル変数が .bss セクシ ョ ンに割り当てられます。

Page 131: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 131EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

シ ミ ュレーシ ョ ン環境では、 上記の 2 言語機能は余分なオーバーヘッ ド となる場合があ り ます。 シミ ュレータによっては、 メモ リ全体を自動的に 0 にするものもあ り ます。 通常の環境でも、 グロー

バル変数が開始時に 0 になっていなくても良いよ うな C コードを記述するこ と も可能です。 そのよ

う な場合に、 このオプシ ョ ンは有益です。 このオプシ ョ ンを使用する と、 C スタート アップ ファ イ

ルによ り .bss セクシ ョ ンが 0 に初期化されるこ とはな くな り ます。 また、 .bss セクシ ョ ンに 0 に初

期化されたグローバル変数は割り当てられず、これらの変数は .data セクシ ョ ンに移動されます。 このオプシ ョ ンによ り、 アプ リ ケーシ ョ ンの起動時間が短縮される場合があ り ます。 このオプシ ョ ン

は、 グローバル変数を 0 に初期化する こ とが必要なコードを使用していない場合、 またはシ ミ ュ

レーシ ョ ン プラ ッ ト フォームで自動的にメモリが 0 に初期化される場合にのみ使用してください。

-mxl-stack-check

プログラムの実行中にスタ ッ ク オーバーフローが発生しているかど うかをチェ ッ クするよ う指定

します。

このオプシ ョ ンを使用する と、 各関数のプロローグ コード内に、 スタ ッ ク ポインタ値と使用可能

なメモ リ を比較するコードが挿入されます。 スタ ッ ク ポインタが使用可能なメモ リ を超えている場

合は、 プログラムはサブルーチン _stack_overflow_exit にジャンプします。 このサブルーチンは、

変数 _stack_overflow_error の値を 1 に設定します。

ソース コードに関数 _stack_overflow_exit を挿入するこ とによ り、標準のスタ ッ ク オーバーフロー

ハンド ラの代わりにこの関数をスタ ッ ク オーバーフロー ハンド ラ と して使用できます。

アプリケーシ ョ ン実行モード

-xl-mode-executable

mb-gcc でプログラムをコンパイルする際のデフォルト モードです。 mb-gcc を使用する場合は、指

定する必要はあ り ません。 このオプシ ョ ンを使用する と、スタート アップ ファイル crt0.o が使用

されます。

-xl-mode-xmdstub

Xilinx Microprocessor Debugger (XMD) を使用する と、アプリ ケーシ ョ ンをボード上で XMDStubを使用してデバッグできます。 このデバッグ モードは、 XMDStub モード と呼ばれます。 このオプ

シ ョ ンを使用する と、XMDStub モードでデバッグが実行されます。 この場合、アドレス ロケーシ ョ

ン 0x0 ~ 0x800 は XMDStub で使用するために予約されています。 -xl-mode-xmdstub を使用する

と、 次のよ うになり ます。

• プログラムの開始アドレスは 0x800 に設定されます。 この開始アドレスは、リ ンカ スク リプ ト

で _TEXT_START_ADDR の値を指定するか、 リ ンカ オプシ ョ ンを使用する と変更できます。

リ ンカ オプシ ョ ンの詳細は、 120 ページの 「リ ンカ オプシ ョ ン」 を参照してください。 開始ア

ドレスが 0x800 未満に指定される と、 アドレス オーバーラ ップ エラーが発生します。

• crt1.o が初期化ファイルと して使用されます。 プログラムの実行が終了する と、XMDStub に戻り ます。

メモ : ビッ ト ス ト リームに XMDStub が含まれている場合は、-xl-mode-xmdstub オプシ ョ ンを使用

して ください。 このモードは、 システムがデバッグなしでコンパイルされている場合、 およびハー

ド ウェア デバッグがオンの場合には使用しないでください。 XMD を使用したデバッグの詳細は、

第 12 章 「Xilinx Microprocessor Debugger (XMD)」 を参照してください。

Page 132: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

132 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

-xl-mode-bootstrap

ブート ローダーを使用して読み込むアプリ ケーシ ョ ンをコンパイルする際に使用します。 通常ブー

ト ローダーは、不揮発性メモリに保存され、プロセッサ リセッ ト ベクタにマップされます。 通常の

実行ファ イルがこのブート ローダーで読み込まれた場合、 アプ リ ケーシ ョ ン リ セッ ト ベク タによ

りブート ローダーのリセッ ト ベクタが上書きされます。 その場合、 プロセッサのリセッ ト時にブー

ト ローダーが実行されず (通常は 初に実行されるこ とが必要)、 このアプ リケーシ ョ ンの再読み込

みおよびその他必要な初期化が行われません。

この状況を回避するため、 このコンパイラ オプシ ョ ンを使用する必要があ り ます。 このコンパイラ

オプシ ョ ンを使用する と、 プロセッサのリセッ ト時に、 アプ リケーシ ョ ンではなくブート ローダー

に到達します。 上記とは異なる状況で使用されるアプリ ケーシ ョ ンでは、 このオプシ ョ ンは機能し

ません。 このモードでは、 crt2.o がスタート アップ ファ イルと して使用されます。

-xl-mode-novectors

MicroBlaze ベクタを必要と しないアプリ ケーシ ョ ンをコンパイルする際に使用します。 通常は、プ

ロセッサのリセッ ト 、割り込み、 または例外機能を使用しないスタンドアロン アプリケーシ ョ ンで

使用されます。 このオプシ ョ ンを使用する と、 ベクタの命令が含まれないので、 コード サイズが小

さ くなり ます。 このモードでは、 crt3.o がスタート アップ ファ イルと して使用されます。

注意 コマンド ラ インで、 複数の実行モードを指定しないでください。 複数のモードを指定する と、 複数

のシンボル定義が原因で リ ンク エラーが発生します。

位置独立コード (PIC)

MicroBlaze 用の GNU コンパイラでは、 -fPIC および -fpic オプシ ョ ンがサポート されています。 これらのオプシ ョ ンを使用する と、コンパイラで位置独立コード (PIC) を生成できます。この機能は、

共有ラ イブラ リ および再配置可能実行フ ァ イルを イ ンプ リ メ ン ト するために Linux 上で

MicroBlaze に対してのみ使用されます。 生成されたコードのデータ アクセスをすべて再配置する

にはグローバル オフセッ ト テーブル (GOT) が使用され、 共有ライブラ リへの関数呼び出しにはプ

ロシージャ リ ンケージ テーブル (PLT) が使用されます。 これは、GNU ベースのプラ ッ ト フォーム

で再配置可能コードを生成し、 共有ライブラ リ を リ ンクする際の標準的な方法です。

MicroBlaze アプリケーシ ョ ン バイナリ インターフェイス

MicroBlaze 用の GNU コンパイラでは、 『MicroBlaze プロセッサ リ ファレンス ガイ ド』 で定義さ

れるアプ リ ケーシ ョ ン バイナリ インターフェイス (ABI) が使用されます。 レジスタおよびスタ ッ

クの使用法に関する規則、コンパイラで使用される標準メモリ モデルの説明は、ABI の資料を参照

してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

MicroBlaze アセンブラ

ザイ リ ンクス MicroBlaze ソフ ト プロセッサ用の mb-as アセンブラでは、標準 GNU コンパイラで

サポート されているオプシ ョ ンおよび標準 GNU アセンブラでサポート されているアセンブラ指示

子がサポート されています。

mb-as アセンブラでは、imm 命令以外の MicroBlaze マシン命令セッ トの opcode がサポート されて

います。 imm 命令は、 大きい即値が使用される場合に生成されます。 imm 命令を含むコードを記述

するためのアセンブ リ 言語プログラマは必要あ り ません。 MicroBlaze の命令セッ ト の詳細は、

『MicroBlaze プロセッサ リ フ ァ レンス ガイ ド』 を参照して ください。 この章の 「関連リ ソース」

に、 このマニュアルへのリ ンクがあ り ます。

Page 133: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 133EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

mb-as アセンブラでは、 即値オペランドを使用するすべての MicroBlaze 命令を定数またはラベル

と して指定する必要があ り ます。 命令に PC 相対オペランドが必要な場合は、 mb-as アセンブラに

よ りそれが算出され、 必要に応じて imm 命令に含められます。 たとえば、 beqi (Branch Immediateif Equal) 命令には PC 相対オペランドが必要です。

アセンブリ プログラマでは、 この命令を次のよ うに使用します。

beqi r3, mytargetlabel

こ こで、 mytargetlabel は対象となる命令のラベルです。 mb-as アセンブラによ り、 命令の即値

が mytargetlabel - PC と して算出されます。 即値が 16 ビッ ト よ り大きい場合は、 imm 命令が

自動的に挿入されます。 コンパイル時に mytargetlabel の値が不明な場合は、常に imm 命令が挿

入されます。 不要な imm 命令を削除するには、 relax オプシ ョ ンを使用して ください。

同様に、命令で大きな定数のオペランドが必要な場合は、アセンブリ言語プログラマで imm 命令で

はなくオペランドをそのまま使用する必要があ り ます。 たとえば次のコードでは、レジスタ r3 の内

容に定数 200,000 を追加し、 結果をレジスタ r4 に保存します。

addi r4, r3, 200000

mb-as アセンブラは、 このオペランドに imm 命令が必要である と判断し、 自動的に挿入します。

mb-as アセンブラでは、 アセンブ リのプログラムを簡単にするため、 標準の MicroBlaze 命令セッ

ト に加えてい くつかの擬似 opcode がサポー ト されています。 表 10-6 に、 サポー ト される擬似

opcode を示します。

表 10-6 : GNU アセンブラでサポート される擬似 Opcode

擬似 Opcode 説明

nop 処理は実行されません。 次の命令に置換されます。

or R0, R0, R0

la Rd, Ra, Imm 次の命令に置換されます。

addik Rd, Ra, imm; = Rd = Ra + Imm;

not Rd, Ra 次の命令に置換されます。

xori Rd, Ra, -1

neg Rd, Ra 次の命令に置換されます。

rsub Rd, Ra, R0

sub Rd, Ra, Rb 次の命令に置換されます。

rsub Rd, Rb, Ra

Page 134: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

134 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

MicroBlaze リンカ オプシ ョ ン

ザイ リ ンクス MicroBlaze ソフ ト プロセッサ用の mb-ld リ ンカでは、 GNU コンパイラでサポート

されているオプシ ョ ンに加え、 追加のオプシ ョ ンも導入されています。 このセクシ ョ ンでは、 これ

らのオプシ ョ ンについて説明します。

-defsym _TEXT_START_ADDR=value

デフォルトでは、出力コードのテキス ト セクシ ョ ンはベース アドレス 0x28 (XMDStub モードでは

0x800) から開始しますが、 このオプシ ョ ンを使用する と、 このデフォルト を変更できます。 mb-gccコンパイラの実行時にこのオプシ ョ ンを指定する と、出力コードのテキス ト セクシ ョ ンは value で指定したアドレスから開始するよ うになり ます。

デフォルトの開始アドレスを使用する場合は、 -defsym _TEXT_START_ADDR を設定する必要は

あ り ません。

これはリ ンカ オプシ ョ ンであ り、 リ ンカを個別に実行する場合に使用します。 リ ンカを mb-gcc の一部と して実行する場合は、 次のオプシ ョ ンを使用してください。

-Wl,-defsym -Wl,_TEXT_START_ADDR=value

-relax

アセンブラで生成された不要な imm 命令を削除する リ ンカ オプシ ョ ンです。 アセンブラでは、即値

が算出できない命令がある と、 imm 命令が生成されます。 ほとんどの場合、 imm 命令は必要あ り ま

せん。 -relax オプシ ョ ンを使用する と、 リ ンカによ り不要な imm 命令が削除されます。

このオプシ ョ ンは、 リ ンカを個別に実行した場合にのみ必要です。 リ ンカを mb-gcc の一部と して

実行する場合は、 このオプシ ョ ンは自動的に指定されます。

-N

テキス トおよびデータ セクシ ョ ンを読み出し /書き込み可能にします。 データ セグメン トはページ

揃えされません。 このオプシ ョ ンは、 MicroBlaze プログラムにのみ必要です。 リ ンカを GCC コン

パイラの一部と して実行する場合は、 このオプシ ョ ンは自動的に指定されます。 リ ンカを個別に実

行する場合は、 このオプシ ョ ンを指定する必要があ り ます。

このオプシ ョ ンの詳細は、 GNU のマニュアルを参照してください。 この章の 「関連リ ソース」 に、

このマニュアルへのリ ンクがあ り ます。

MicroBlaze リ ンカでは、 リ ンカ スク リプ ト を使用して次に リ ス トするセクシ ョ ンを メモ リに割り

当てます。

Page 135: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 135EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

MicroBlaze リンカ スクリプ トで割り当てられるセクシ ョ ン

表 10-7 に、 MicroBlaze リ ンカ スク リプ トで割り当てられる入力セクシ ョ ンを示します。

リンカ スクリプ ト を記述またはカスタマイズする際のヒン ト

カスタム リ ンカ スク リプ ト を記述する場合は、 次の事項を考慮する必要があ り ます。

• ベクタ セクシ ョ ンが MicroBlaze ハードウェアで定義された適切なメモ リに割り当てられてい

るこ とを確認します。

• スタッ クおよびヒ ープは .bss セクショ ンに配置します。_stack 変数をこの領域の _STACK_SIZEの後に設定し、 _heap_start 変数を _STACK_SIZE の後の次のロケーシ ョ ンに設定します。 ス

タ ッ クおよびヒープは、 ハード ウェアおよびシ ミ ュレーシ ョ ンで初期化する必要がないので、

_bss_end 変数は .bss および COMMON の後に定義します。 ただし、 .bss セクシ ョ ンの境界に

はスタ ッ クおよびヒープは含まれません。

• _SDATA_START__、 _SDATA_END__、 SDATA2_START、 _SDATA2_END__、_SBSS2_START__、 _SBSS2_END__、 _bss_start、 _bss_end、 _sbss_start、 および _sbss_end変数は、 それぞれ .sdata、 .sdata2、 .sbss2、 .bss、 .sbss セクシ ョ ンの 初と 後に定義する必

要があ り ます。

• ANSI C では、初期化されないメモ リはすべてスタート アップに初期化する必要があ り ます (スタ ッ クおよびヒープでは不要)。EDK に含まれる標準の CRT では、1 つの .bss セクシ ョ ンが 0に初期化される と想定されます。 複数の .bss セクシ ョ ンがある場合は、 この CRT は使用でき

ません。その場合は、すべての .bss セクシ ョ ンを初期化する CRT を作成する必要があ り ます。

表 10-7 : MicroBlaze リンカ スクリプ トで割り当てられるセクシ ョ ン

セクシ ョ ン名 説明

.vectors.reset リセッ ト ベクタ コード

.vectors.sw_exception ソフ ト ウェア例外ベクタ コード

.vectors.interrupt ハード ウェア割り込みベクタ コード

.vectors.hw_exception ハード ウェア例外ベクタ コード

.text 関数のコードおよびグローバル アセンブリ文からの

プログラム命令

.rodata 読み出し専用変数

.sdata2 初期値を持つ小さいスタティ ッ クおよびグローバル変数

.data 初期値を持つスタティ ッ クおよびグローバル変数 (ブート コードによ りゼロに初期化)

.sdata 初期値を持つ小さいスタティ ッ クおよびグローバル変数

.sbss 初期値のない小さいスタティ ッ クおよびグローバル変数 (ブート コードによ りゼロに初期化)

.bss 初期値のないスタティ ッ クおよびグローバル変数 (ブート コードによ りゼロに初期化)

.heap ヒープ用に定義されたメモリのセクシ ョ ン

.stack スタ ッ ク用に定義されたメモリのセクシ ョ ン

Page 136: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

136 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

スタートアップ ファイル

コンパイラで実行ファイルを生成する際、 後のリ ンク コマンドにコンパイル済みのスタート アッ

プ ファ イルおよびエンド ファ イルが含まれます。 スタート アップ ファ イルは、 アプ リ ケーシ ョ ン

コードが実行される前に、 言語およびプラ ッ ト フォーム環境を設定します。 スタート アップ ファ イ

ルでは、 通常次の処理が実行されます。

• 必要に応じて、 リセッ ト 、 割り込み、 および例外ベクタを設定します。

• スタ ッ ク ポインタ、 スモール データ アンカー、 およびその他のレジスタを設定します。 詳細

は、 表 10-8 を参照してください。

• BSS メモ リ領域を 0 にク リ アします。

• C++ コンス ト ラ クタなどの言語初期化関数を呼び出します。

• ハードウェア サブシステムを初期化します。 たとえば、 プログラムのプロファ イルが作成され

る場合は、 プロファ イル タイマを初期化します。

• main プロシージャの引数を設定し、 呼び出します。

エンド ファ イルは、プログラムの終わりに実行する必要のあるコードが含まれます。 エンド ファ イ

ルでは、 通常次の処理が実行されます。

• C++ デス ト ラ クタなどの言語ク リーンアップ関数を呼び出します。

• ハードウェア サブシステムの初期化を解除します。 たとえば、 プログラムのプロファ イルが作

成されている場合は、 プロファ イル サブシステムをク リーンアップします。

この後、 さまざまなアプリ ケーシ ョ ン モードで使用される初期化ファイルについて説明します。 この情報は、アプ リ ケーシ ョ ンのスタート アップ コードを理解または変更する必要のある場合に使用

できます。 MicroBlaze では、 C ランタイム初期化に 2 つの段階があ り ます。 初の段階では主にベ

クタが設定され、 後に第 2 段階が呼び出されます。 また、 アプ リ ケーシ ョ ン モードによっては、

exit スタブも提供されます。

第 1 段階の初期化ファイル

crt0.o

ブート ローダーまたは XMDStub などのデバッグ スタブを使用せずに、スタンドアロンで実行され

るプログラムに対して使用します。 このファ イルによ り、 リセッ ト、 割り込み、 例外、 およびハー

ド ウ ェア例外ベク タ を指定し、 第 2 段階のス ター ト ア ップ ルーチン _crtinit を呼び出し ます。

_crtinit から戻る と、 _exit ラベルで無限ループを実行するこ とによ りプログラムを終了します。

表 10-8 : C ランタイム ファイルでのレジスタの初期化

レジスタ 値 説明

r1 _stack-16 スタ ッ ク ポインタ レジスタ。 初期の負のオフセッ トが 16 バイ ト

のスタ ッ ク領域の下部を指定するよ う初期化されます。 この 16 バイ トは、 引数を渡すのに使用できます。

r2 _SDA2_BASE 読み出し専用のスモール データ領域アンカー アドレス。

r13 _SDA_BASE_ 読み出し /書き込み可能なスモール データ領域アンカー アドレス。

その他の

レジスタ

未定義 その他のレジスタは、 定義されていません。

Page 137: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 137EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

crt1.o

アプリケーシ ョ ンを XMDStub を使用してデバッグする際に使用します。 ブレークポイン トおよび

リセッ ト ベクタ以外のすべてのベクタを指定し、第 2 段階のスタート アップ ルーチン _crtinit を呼

び出します。 _crtinit から戻る と、 XMDStub に戻り、 プログラムが終了したこ と を示す信号がデ

バッガに送信されます。

crt2.o

実行ファイルがブート ローダーで読み込まれる場合に使用します。 リセッ ト ベクタ以外のすべての

ベクタを指定し、 第 2 段階のスタート アップ ルーチン _crtinit を呼び出します。 _crtinit から戻る

と、 _exit ラベルで無限ループを実行するこ とによ りプログラムを終了します。 リ セッ ト ベクタは

指定されないので、 プロセッサのリセッ ト時には、 ブート ローダーによ りプログラムが再度読み込

まれ、 開始されます。

crt3.o

実行ファイルでベクタを使用せず、コード サイズを小さ くする場合に使用します。 リセッ ト ベクタ

のみを指定し、 第 2 段階のスタート アップ ルーチン _crtinit を呼び出します。 _crtinit から戻る と、

_exit ラベルで無限ループを実行する こ とによ りプログラムを終了します。 ほかのベク タは指定さ

れないので、 リ ンクの段階で割り込み処理および例外処理に関連するルーチンが含まれるこ とはな

く、 コード サイズが小さ くな り ます。

第 2 段階の初期化ファイル

C 標準仕様に従い、すべてのグローバル変数およびスタティ ッ ク変数を 0 に初期化する必要があ り

ます。 これは、上記すべての CRT で必要です。 このため、別のルーチン _crtinit が呼び出されます。

このルーチンは、プログラムの .bss セクシ ョ ンのメモ リ を初期化します。 _crtinit ルーチンはラ ッパ

ファイルでもあ り、 main プロシージャも呼び出します。 main プロシージャを呼び出す前に、 ほか

の初期化関数が呼び出される場合もあ り ます。 _crtinit ルーチンは、次のスタート アップ ファ イルに

よ り提供されます。

crtinit.o

デフォルトの第 2 段階の C スタート アップ ファ イルです。 次の処理を実行します。

1. .bss セクシ ョ ンを 0 にク リ アします。

2. _program_init を呼び出します。

3. コンス ト ラ ク タ関数 (_init) を呼び出します。

4. main プロシージャの引数を設定し、 呼び出します。

5. デス ト ラ ク タ関数 (_fini) を呼び出します。

6. _program_clean を呼び出し、 戻り ます。

pgcrtinit.o

プロファ イル作成時に使用します。 次の処理を実行します。

1. .bss セクシ ョ ンを 0 にク リ アします。

2. _program_init を呼び出します。

3. _profile_init を呼び出し、 プロファ イル ライブラ リ を初期化します。

4. コンス ト ラ ク タ関数 (_init) を呼び出します。

Page 138: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

138 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

5. main プロシージャの引数を設定し、 呼び出します。

6. デス ト ラ ク タ関数 (_fini) を呼び出します。

7. _profile_clean を呼び出し、 プロファ イル ライブラ リ をク リーンアップします。

8. _program_clean を呼び出し、 戻り ます。

sim-crtinit.o

コンパイ ラ で -mno-clearbss オプショ ンが設定さ れている場合に使用します。 次の処理を実行し

ます。

1. _program_init を呼び出します。

2. コンス ト ラ ク タ関数 (_init) を呼び出します。

3. main プロシージャの引数を設定し、 呼び出します。

4. デス ト ラ ク タ関数 (_fini) を呼び出します。

5. _program_clean を呼び出し、 戻り ます。

sim-pgcrtinit.o

プロファ イルの作成時に、 コンパイラで -mno-clearbss オプシ ョ ンが設定されている場合に使用し

ます。 次の処理を実行します。

1. _program_init を呼び出します。

2. _profile_init を呼び出し、 プロファ イル ライブラ リ を初期化します。

3. コンス ト ラ ク タ関数 (_init) を呼び出します。

4. main プロシージャの引数を設定し、 呼び出します。

5. デス ト ラ ク タ関数 (_fini) を呼び出します。

6. _profile_clean を呼び出し、 プロファ イル ライブラ リ をク リーンアップします。

7. _program_clean を呼び出し、 戻り ます。

その他のファイル

コンパイラは、 C++ 言語をサポートするため、 特定の標準スタート ファ イルおよびエンド ファ イ

ルも使用します。 crti.o、 crtbegin.o、 crtend.o、 および crtn.o がそれに当たり ます。 これらの標準コ

ンパイラ ファ イルは、 .init、 .fini、 .ctors、 および .dtors セクシ ョ ンの内容を指定します。

Page 139: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 139EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

スタートアップ ファイルの変更

初期化ファ イルは、コンパイル済みのファ イルおよびソ ース ファ イルの両方で提供さ れます。 コン

パイ ル済みのオブジェ ク ト ファ イ ルは、 コ ンパイ ラ ラ イ ブラ リ ディ レク ト リ に含まれます。

MicroBlaze GNU コンパイラ用の初期化ファ イルのソ ース ファ イルは、 <XILINX_EDK>/sw/

lib/microblaze/src ディ レク ト リ にあり ます (<XILINX_EDK> は EDK のインスト ール ディ

レク ト リ )。

カスタム スタート アップ ファ イルを使用するには、 ファ イルをソース エリ アから取り出し、 アプ

リ ケーシ ョ ン ソースの一部と して含める必要があ り ます。 また、 ファ イルを .o ファ イルに統合し

て、 共有エリアに配置するこ と も可能です。 標準ファイルではなく作成したオブジェク ト ファ イル

を参照する場合は、 mb-gcc の実行時に -B オプシ ョ ンを使用します。 デフォルトのスタート アップ

フ ァ イルが使用されないよ う にするには、 コンパイルの 後の行に -nostartfiles を追加します。

crti.o、 crtbegin.o などのコンパイ ラ標準 CRT ファ イルは、 ソース コードでは提供されないので、

インス トール ディ レク ト リに含まれているものをそのまま使用して ください。 これらのファ イル

は、 後のリ ンク コマンドに含める必要がある場合があ り ます。

C プログラムのスタートアップ コード サイズの削減

C プログラムのコード サイズの制限が厳しい場合は、オーバーヘッ ドの原因となるあらゆるものを

取り除く必要があ り ます。 このセクシ ョ ンでは、C プログラムで不要な C++ コンス ト ラ ク タまたは

デス ト ラ ク タ コードによるオーバーヘッ ドを削減する方法を示します。 次の変更を加えるこ とによ

り、 コードのサイズを約 220 バイ ト削減できます。

1. 前のセクシ ョ ンで説明したよ うに、インス トール領域からスタート アップ ファ イルのカスタム

コピーを作成します。 アプリ ケーシ ョ ンに適した crtn.s および xcrtinit.s をコピーします。 たと

えば、 アプ リケーシ ョ ンがブート ローダーを使用して読み込まれ、 プロファ イルが作成される

場合は、 インス トール領域から crt2.s および pg-crtinit.s をコピーします。

2. pg-crtinit.s から次の行を削除します。

brlid r15, __init /* Invoke language initialization functions*/nop

および

brlid r15, __fini /* Invoke language cleanup functions */nop

これらの行を削除する こ とによ り、 コンス ト ラ ク タおよびデス ト ラ ク タの処理に使用される

コードが参照されなくなり、 コード サイズが小さ くな り ます。

3. これらのファイルを .o ファ イルにコンパイルして任意のディ レク ト リに配置するか、 アプ リ

ケーシ ョ ン ソースの一部と して含めます。

4. コンパイラに -nostartfiles オプシ ョ ンを追加します。 特定のフォルダにファイルを統合する場

合は、 -B directory オプシ ョ ンも使用します。

5. アプリケーシ ョ ンをコンパイルします。

アプ リケーシ ョ ンを異なるモードで実行する場合は、 136 ページの 「スタート アップ ファ イル」 の説明に従って、 適切な CRT ファ イルを選択する必要があ り ます。

Page 140: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

140 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

コンパイラ ライブラリ

mb-gcc コンパイラには、GNU C 標準ライブラ リ と GNU 数値計算ライブラ リが必要です。 EDK には、 あ らかじめコンパイルされたこれらのラ イブラ リ が含まれています。 Libgen の実行中に、

MicroBlaze のハード ウェア コンフ ィギュレーシ ョ ンに基づき、 MicroBlaze の CPU ド ライバの適

切なバージ ョ ンがコピーされます。 使用するライブラ リのバージ ョ ンを選択するには、 次のフォル

ダを確認します。

$XILINX_EDK/gnu/microblaze/<platform>/microblaze-xilinx-elf/lib

ファ イル名は、 コンパイラのオプシ ョ ンと ライブラ リのコンパイルに使用されたコンフ ィギュレー

シ ョ ンに基づいて付けられています。 たとえば、 libc_m_bs.a は、 ハード ウェア乗算器とバレル

シフタをオンにしてコンパイルされた C ライブラ リです。

次の表に、 使用されているエンコード とそのエンコードで指定される ラ イブラ リ のコンフ ィギュ

レーシ ョ ンを示します。

注意が必要なのは、 数値計算ライブラ リ ファ イル (libm*.a) です。 C 標準では、 一般的な数値計

算ライブラ リ関数 (sin( )、 cos( ) など) で倍精度浮動小数点演算を使用する必要があ り ますが、倍精

度浮動小数点演算では MicroBlaze で使用可能な単精度浮動小数点の機能を 大限に活用できない

可能性があ り ます。

Newlib 数値計算ライブラ リには、 単精度演算を使用してこれらの数値計算関数をインプ リ メ ン ト

するバージ ョ ンがあ り ます。 これらの単精度ライブラ リでは MicroBlaze ハード ウェア浮動小数点

ユニッ ト を直接使用できるので、 パフォーマンスが向上する場合があ り ます。 アプ リケーシ ョ ンで

標準精度が必要ではなく、パフォーマンスを向上させる場合は、リ ンク されたライブラ リのバージ ョ

ンを手動で変更できます。 デフォル ト では、 CPU ド ラ イバによ り倍精度バージ ョ ンのラ イブラ リ

(libm_*_fpd.a) が XPS プロジェク トにコピーされます。単精度バージ ョ ンを使用する場合は、カス

タム CPU ド ラ イバを作成し、libm_*_fps.a ライブラ リ ファ イルを libm.a と してプロセッサのライ

ブラ リ フォルダ (microblaze_0/lib など) にコピーします。

使用するライブラ リ をコピーしたら、アプリケーシ ョ ン ソフ ト ウェア プロジェク ト を再構築します。

スレッ ド セーフ

EDK に含まれる MicroBlaze の C ラ イブラ リおよび数値演算ライブラ リは、 マルチスレッ ド環境

で使用するよ うに構築されていません。 printf()、 scanf()、 malloc()、 free() などの共通 C ライブラ

リ関数はスレッ ド セーフではなく、 システムで回復不可能なランタイム エラーを引き起こすこ と

があ り ます。 マルチスレッ ド環境で EK ラ イブラ リ を使用する場合は、 相互排他的なメカニズムを

使用してください。

表 10-9 : コンパイラ フラグ上のエンコード されたライブラリ ファイル名

エンコード 説明

_bs バレル シフタ用にコンフ ィギュレーシ ョ ン

_m ハードウェア乗算器用にコンフ ィギュレーシ ョ ン

_p パターン コンパレータ用にコンフ ィギュレーシ ョ ン

_mh 拡張ハードウェア乗算器用にコンフ ィギュレーシ ョ ン

Page 141: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 141EDK 10.1 サービス パッ ク 1

MicroBlaze コンパイラの使用法とオプシ ョ ンR

コマンド ライン引数

MicroBlaze プログラムでは、 コマンド ラ イン引数を使用できません。 コマンド ラ イン引数 argcおよび argv は、 C ランタイム ルーチンで 0 に初期化されます。

割り込みハンド ラ

割り込みハンド ラは、 通常のサブルーチン呼び出し とは別の方法でコンパイルされます。 割り込み

ハンド ラでは、 不揮発性レジスタだけでなく、 使用されている揮発性レジスタも保存する必要があ

り ます。 また、 割り込みが発生した際に、 マシン ステータス レジスタ (RMSR) の値も保存する必

要があ り ます。

interrupt_handler 属性

サブルーチンと割り込みハンド ラを識別するため、mb-gcc ではコードの宣言部に interrupt_handler属性があるかど うかがチェッ ク されます。 この属性は、 次のよ うに定義されます。

void function_name () __attribute__ ((interrupt_handler));

メモ : 割り込みハンド ラの属性は、 プロ ト タイプ内でのみ指定し、 定義には含めません。

割り込みハンド ラで、 揮発性レジスタを使用するほかの関数が呼び出される場合があ り ます。 揮発

性レジスタで正しい値を保持するため、 ハンド ラが非リーフ関数である場合は、 すべての揮発性レ

ジスタが保存されます。

メモ : 非リーフ関数とは、 ほかのサブルーチンを呼び出す関数のこ とです。

割 り 込みハン ド ラは、 MHS (Microprocessor Hardware Specification) フ ァ イルおよび MSS(Microprocessor Software Specification) ファ イルで定義されます。 これらの定義によ り、 割り込み

ハンド ラ関数に属性が追加されます。 詳細は、 付録 B の 「割り込み制御」 を参照して ください。

割り込みハンド ラは、 rtid 命令を使用して割り込みで中断された関数に戻り ます。

save_volatiles 属性

save_volatiles 属性は、 interrupt_handler 属性と似ていますが、割り込み処理から戻るのに rtid ではなく rtsd を使用します。

この属性を使用する と、 非リーフ関数の場合はすべての揮発性レジスタが保存され、 リーフ関数の

場合は使用された揮発性レジスタのみが保存されます。

void function_name () __attribute__((save_volatiles));

上記 2 つの属性とその機能を表 10-10 に示します。

表 10-10 : 割り込みハンドラの属性

属性 機能

interrupt_handler マシン ステータス レジスタ、 不揮発性レジスタ、 およびすべての

揮発性レジスタを保存します。 割り込みハンド ラから戻るには、

rtid を使用します。 割り込みハンド ラ関数がリーフ関数の場合

は、 関数で使用された揮発性レジスタのみが保存されます。

save_volatiles interrupt_handler と似ていますが、 割り込みから戻るのに rtid ではなく rtsd が使用されます。

Page 142: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

142 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

PowerPC コンパイラの使用法とオプシ ョ ン

PowerPC コンパイラ オプシ ョ ンの一覧

PowerPC コンパイラ オプシ ョ ン

PowerPC GNU コンパイラ (powerpc-eabi-gcc) は、 GNU よ り PowerPC のポート用に提供されて

いる ソースから構築したもので、 ザイ リ ン ク スのデバイス用に多少の変更が加えられています。

EDK に含まれる PowerPC コ ンパイ ラに特定の機能およびオプシ ョ ンを、 次に説明し ます。

PowerPC コンパイラでコンパイルする場合、プ リプロセッサで自動的に __PPC__ 定義が使用され

ます。 この定義は、 どのよ う な条件コードでも使用できます。

-mcpu=440

440 プロセッサのターゲッ ト コードです。 これには、 命令スケジュール 適化、 命令回避策のイ

ネーブル/ディ スエーブル、 440 プロセッサをターゲッ ト と したライブラ リの使用が含まれます。

-mfpu={sp_lite, sp_full, dp_lite, dp_full, none}

ザイ リ ンク ス PowerPC APU FPU コプロセッ サ ハード ウェアで使用するハード ウェア浮動小数

点命令を生成します。 命令およびコード 出力は、 APU FPU ハード ウェア用に変更さ れた部分を

除き 、 PowerPC Book-E の浮動小数点仕様に準拠しています。 Book-E は、 IBM の Web サイ ト

から 参照できます。 アーキテクチャの詳細は、 FPU ハード ウェアのマニュアルを参照して くださ

い。 この章の 「関連リ ソース」 に、 Book-E および FPU のマニュアルへのリ ンクがあ り ます。

-mfpu= は、 FPU ハード ウェアのタイプを指定します。 次のタイプがあ り ます。

• sp_lite

単精度 Lite FPU コプロセッサ用のコードを生成します。 単精度のハード ウェア浮動小数点の

みがサポート され、 ハードウェア除算命令および平方根命令は使用されません。 このオプシ ョ

ンを使用する と、 C プリプロセッサ定義 HAVE_XFPU_SP_LITE が自動的に定義されます。

• sp_full

単精度 Full FPU コプロセッサ用のコードを生成します。 単精度のハード ウェア浮動小数点の

みがサポート され、 ハードウェア除算命令および平方根命令が使用されます。 このオプシ ョ ン

を使用する と、 C プリプロセッサ定義 HAVE_XFPU_SP_FULL が自動的に定義されます。

• dp_lite

倍精度 Lite FPU コプロセッサ用のコードを生成します。 単精度と倍精度のハード ウェア浮動

小数点の両方がサポート され、 ハードウェア除算命令および平方根命令は使用されません。 こ

のオプシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_XFPU_DP_LITE が自動的に定義

されます。

PowerPC コンパイラ オプシ ョ ン

-mcpu=440-mfpu={sp_lite, sp_full, dp_lite, dp_full, none}-mppcperflib-mno-clearbss

PowerPC リンカ オプシ ョ ン

-defsym _START_ADDR=value

Page 143: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 143EDK 10.1 サービス パッ ク 1

PowerPC コンパイラの使用法とオプシ ョ ンR

• dp_full

倍精度 Full FPU コプロセッサ用のコードを生成します。 単精度と倍精度のハード ウェア浮動

小数点の両方がサポート され、 ハードウェア除算命令および平方根命令が使用されます。 この

オプシ ョ ンを使用する と、 C プリプロセッサ定義 HAVE_XFPU_DP_FULL が自動的に定義さ

れます。

注意 -mfpu オプシ ョ ンのあるタイプで生成したコードを、 -mfpu の別のタイプで (または -mfpu オプ

シ ョ ンを使用せずに) 生成したコード と リ ンク しないでください。 オブジェ ク ト ファ イルを リ ンクするだ

けであっても、 このオプシ ョ ンを使用する必要があ り ます。 このオプシ ョ ンを使用するこ とによ り、 正し

いラ イブラ リが使用され、 互換性の問題を回避できます。

• none

浮動小数点演算に対してソフ ト ウェア エミ ュレーシ ョ ンを使用するよ う指定します。このオプ

シ ョ ンがデフォルトです。

ハードウェア浮動小数点コプロセッサを 適に使用するための詳細は、 APU FPU のユーザー ガイ

ドを参照してください。 この章の 「関連リ ソース」 に、 このガイ ドへのリ ンクがあ り ます。

-mppcperflib

低レベルの整数と浮動小数点のエミ ュレーシ ョ ン用 PowerPC パフォーマンス ライブラ リ、 および

単純な文字列ルーチンを使用します。 これらのライブラ リは、 GCC で提供されるデフォル トのエ

ミ ュレーシ ョ ン ルーチンおよび Newlib で提供される単純な文字列ルーチンの代わりに使用されま

す。パフォーマンス ラ イブラ リ を使用する と、 これらのルーチンを頻繁に使用するアプリケーシ ョ

ンで平均的にスピードが 3 倍になり ます。 詳細は、 次の SourceForge プロジェク ト Web ページを

参照してください。 この章の 「関連リ ソース」 に、 この Web ページへのリ ンクがあ り ます。

注意 -mfpu オプシ ョ ンを使用している場合は、 パフォーマンス ラ イブラ リは使用できません。

-mno-clearbss

このオプシ ョ ンは、 シ ミ ュレーシ ョ ンで使用するプログラムをコンパイルする際に有益です。 C 言語の標準に基づき、初期化されていないグローバル変数は .bss セクシ ョ ンに割り当てられ、 プログ

ラムの実行が開始したと きの値は 0 になり ます。 通常これは、プログラムの実行が開始したと きに、

C スタート アップ ファ イルをループで実行して .bss セクシ ョ ンに 0 が記述されるよ うにするこ と

で達成します。 さ らにコンパイラを 適化する と、 C コードで 0 に割り当てられたグローバル変数

が .bss セクシ ョ ンに割り当てられます。

シ ミ ュレーシ ョ ン環境では、2 言語機能は余分なオーバーヘッ ド となる場合があ り ます。 シ ミ ュレー

タによっては、 メモ リ全体を自動的に 0 にするものもあ り ます。 通常の環境でも、 グローバル変数

が開始時に 0 になっていなくても良いよ うな C コードを記述できます。 そのよ うな場合に、 このオ

プシ ョ ンは有益です。 このオプシ ョ ンを使用する と、 C スタート アップ ファ イルによ り .bss セク

シ ョ ンが 0 に初期化されるこ とはなくな り ます。 また、 .bss セクシ ョ ンに 0 に初期化されたグロー

バル変数は割り当てられず、これらの変数は .data セクシ ョ ンに移動されます。 このオプシ ョ ンによ

り、 アプ リ ケーシ ョ ンの起動時間が短縮される場合があ り ます。 このオプシ ョ ンは、 グローバル変

数が 0 に初期化するこ とが必要なコードを使用していない場合、またはシ ミ ュレーシ ョ ン プラ ッ ト

フォームでメモ リが 0 に初期化される場合にのみ使用して ください。

Page 144: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

144 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

PowerPC リンカ オプシ ョ ン

ザイ リ ンクス PowerPC プロセッサ用の powerpc-eabi-ld リ ンカでは、 GNU コンパイラでサポート

されているオプシ ョ ンに加え、 新しいオプシ ョ ンも導入されています。 これらのオプシ ョ ンを次に

説明します。

-defsym _START_ADDR=value

デフォルト では、 出力コードのテキス ト部分はデフォル トの リ ンカ スク リプ ト で指定されている

ベース アドレス 0xffff0000 から開始しますが、 上記のオプシ ョ ンを使用するか、 リ ンカ スク リプ

トで開始アドレスの値を指定するこ とによ り変更できます。

デフォルトの開始アドレスを使用する場合は、 -defsym _START_ADDR を設定する必要はあ り ま

せん。

これは リ ンカ オプシ ョ ンであ り、 リ ンカを個別に実行する場合に使用します。 リ ンカを powerpc-eabi-gcc の一部と して実行する場合は、 -Wl,-defsym -Wl,_START_ADDR=value オプシ ョ ンを使

用してください。

PowerPC リ ンカでは、 リ ンカ スク リプ ト を使用して次にリ ス トするセクシ ョ ンを メモ リに割り当

てます。

PPC リンカ スクリプ トで割り当てられるセクシ ョ ン

次の表に、 PowerPC リ ンカ スク リプ トで割り当てられる入力セクシ ョ ンを示します。

表 10-11 : PowerPC リンカ スクリプ トで割り当てられるセクシ ョ ン

セクシ ョ ン名 説明

.boot .boot0 に初期分岐するプロセッサ リセッ ト ベクタ コード

.boot0 ブート コード

.heap ヒープ用に定義されたメモリのセクシ ョ ン

.stack スタ ッ ク用に定義されたメモリのセクシ ョ ン

.bss 初期値のないスタティ ッ クおよびグローバル変数

(ブート コードによ りゼロに初期化)

.sbss 初期値のない小さいスタティ ッ クおよびグローバル変数

(ブート コードによ りゼロに初期化)

.sbss2 初期値を持つ小さいスタティ ッ クおよびグローバル変数

(ブート コードによ りゼロに初期化)

.sdata 初期値を持つ小さいスタティ ッ クおよびグローバル変数

.data 初期値を持つスタティ ッ クおよびグローバル変数 (ブート コード

によ りゼロに初期化)

.sdata2 初期値を持つ小さいスタティ ッ クおよびグローバル非定数変数

.rodata 読み出し専用変数

.text 関数のコードおよびグローバル アセンブリ文からのプログラム

命令

.got2 グローバル オフセッ ト テーブル (GOT)。 位置独立コードから

グローバル データにアクセスする場所を定義します。

Page 145: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 145EDK 10.1 サービス パッ ク 1

PowerPC コンパイラの使用法とオプシ ョ ンR

リンカ スクリプ ト を記述またはカスタマイズする際のヒン ト

カスタム リ ンカ スク リプ ト を記述する場合は、 次の事項を考慮する必要があ り ます。

• PowerPC のリ ンカには、 デフォルトの リ ンカ スク リプ トが組み込まれています。 このスク リ

プ トでは、 アドレス 0xFFFF0000 から連続したメモ リ空間に配置されます。 Libgen によ り作

成される libxil.a ライブラ リに含まれる boot.o が、 初にリ ンクするファ イルと して定義され

ています。デフォルトの開始アドレス 0xFFFF0000 を変更するには、コマンド ラ イン オプシ ョ

ンを使用するか、 リ ンカ スク リプ ト を変更します。

• .boot セクシ ョ ンが 0xFFFFFFFC から開始しているこ とを確認します。 PowerPC プロセッサ

は、 電源投入時に 0xFFFFFFFC から実行されます。

• _end 変数は .boot0 セクシ ョ ンの後に定義します。 このセクシ ョ ンは、 .boot0 セクシ ョ ンの開

始にジャンプします。ジャンプは 24 ビッ トに定義されているので、 .boot と .boot0 セクシ ョ ン

には 25 ビッ ト以上の差があってはな り ません。 PowerPC 440 プロセッサでは、 .boot0 セク

シ ョ ンは 0xFFFFFF00 に固定されています。

• スタッ クおよびヒ ープは .bss セクショ ンに配置します。_stack 変数をこの領域の_STACK_SIZEの後に設定し、 _heap_start 変数を _STACK_SIZE の後の次のロケーシ ョ ンに設定します。 ス

タ ッ クおよびヒープは、 ハード ウェアおよびシ ミ ュレーシ ョ ンで初期化する必要がないので、

_bss_end 変数は .bss および COMMON の後に定義します。 ただし、 .bss セクシ ョ ンの境界に

はスタ ッ クおよびヒープは含まれません。

• _SDATA_START__、 _SDATA_END__、 _SDATA2_START、 _SDATA2_END__、__SBSS2_START__、_SBSS2_END__、_bss_start、_bss_end、_sbss_start、および _sbss_end変数は、 それぞれ .sdata、 .sdata2、 .sbss2、 .bss、 .sbss セクシ ョ ンの 初と 後に定義する必

要があ り ます。

• PowerPC 405 では、 .vectors セクシ ョ ンを 64K 境界に揃えます。 PowerPC 440 では、 特定の

位置に揃える必要はあ り ません。 このセクシ ョ ンの定義は、 プログラムで割り込みまたは例外

を使用する場合にのみ含めるよ うにしてください。

• メモ リの各物理領域で、異なるプログラム ヘッダを使用します。 メモ リの不連続な 2 つの領域

に対し、 同じプログラム ヘッダを使用するこ とはできません。

• ANSI C では、初期化されないメモ リはすべてスタート アップに初期化する必要があ り ます (スタ ッ クおよびヒープでは不要)。EDK に含まれる標準の CRT では、1 つの .bss セクシ ョ ンが 0に初期化される と想定されます。 複数の .bss セクシ ョ ンがある場合は、 この CRT は使用でき

ません。その場合は、すべての .bss セクシ ョ ンを初期化する CRT を作成する必要があ り ます。

.got1 グローバル オフセッ ト テーブル (GOT)。 位置独立コードから

グローバル データにアクセスする場所を定義します。

.fixup フ ィ ッ クスアップ情報 (フ ィ ッ クスアップ レコード テーブル

など)

.jcr コンパイラ専用セクシ ョ ン。 コンパイラ初期化関数で使用され

ます。

.gcc_except_table 言語特定データ

.tdata 初期化済みスレッ ド ローカル データ

.tbss 初期化されていないスレッ ド ローカル データ

表 10-11 : PowerPC リンカ スクリプ トで割り当てられるセクシ ョ ン (続き)

セクシ ョ ン名 説明

Page 146: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

146 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

スタートアップ ファイル

コンパイラで実行ファイルを生成する際、 後のリ ンク コマンドにコンパイル済みのスタート アッ

プ ファ イルおよびエンド ファ イルが含まれます。 スタート アップ ファ イルは、 アプ リ ケーシ ョ ン

コードが実行される前に、 言語およびプラ ッ ト フォーム環境を設定します。 スタート アップ ファ イ

ルでは、 通常次の処理が実行されます。

• 必要に応じて、 リセッ ト 、 割り込み、 および例外ベクタを設定します。

• スタ ッ ク ポインタ、 スモール データ アンカー、 およびその他のレジスタを設定します。

• BSS メモ リ領域を 0 にク リ アします。

• C++ コンス ト ラ クタなどの言語初期化関数を呼び出します。

• ハードウェア サブシステムを初期化します。 たとえば、 プログラムのプロファ イルが作成され

る場合は、 プロファ イル タイマを初期化します。

• main プロシージャの引数を設定し、 呼び出します。

エンド ファ イルは、プログラムの終わりに実行する必要のあるコードが含まれます。 エンド ファ イ

ルでは、 通常次の処理が実行されます。

• C++ デス ト ラ クタなどの言語ク リーンアップ関数を呼び出します。

• ハードウェア サブシステムをク リーンアップします。 たとえば、 プログラムのプロファ イルが

作成されている場合は、 プロファ イル サブシステムをク リーンアップします。

この後、初期化ファイルについて説明します。 この情報は、アプ リ ケーシ ョ ンのスタート アップ コー

ドを理解または変更する必要のある場合に使用できます。

初期化ファイル

PowerPC コンパイラでは、xil-crt0.o、xil-pgcrt0.o、xil-sim-crt0.o、および xil-sim-pgcrt0.o の 4 つの CRT ファ イルを使用します。 これらの CRT ファ イルでは、次の処理が実行さ

れます。

1. 関数 _cpu_init を呼び出します。 この関数は、 ボード サポート パッケージ ライブラ リに含ま

れており、 プロセッサ アーキテクチャ特定の初期化を実行します。

2. .bss メモ リ領域を 0 にク リ アします。

3. レジスタを設定します。 詳細は、 表 10-12 を参照して ください。

4. タイマ ベース レジスタを 0 に初期化します。

5. MSR の浮動小数点ユニッ ト ビッ ト を有効にします (オプシ ョ ン)。

表 10-12 : C ランタイム ファイルでのレジスタの初期化

レジスタ 値 説明

r1 _stack-8 スタ ッ ク ポインタ レジスタ。 割り当てられたスタ ッ クの下部を

初期化します。 オフセッ トは 16 バイ トです。 この 16 バイ トは、

引数を渡すのに使用されます。

r2 _SDA2_BASE 読み出し専用のスモール データ領域アンカー アドレス。

r13 _SDA_BASE_ 読み出し /書き込み可能なスモール データ領域アンカー アドレス。

その他の

レジスタ

未定義 その他のレジスタは、 定義されていません。

Page 147: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 147EDK 10.1 サービス パッ ク 1

PowerPC コンパイラの使用法とオプシ ョ ンR

6. C++ 言語およびコンス ト ラ クタ初期化関数 (_init) を呼び出します。

7. main を呼び出します。

8. C++ 言語デス ト ラ クタ (_fini) を呼び出します。

9. exit を実行します。

スタートアップ ファイルの説明

xil-crt0.o

特別な要件なしで、 スタンドアロンで実行されるプログラムに対して使用されるデフォルトの初期

化ファイルです。 前述の共通する処理をすべて実行します。

xil-pgcrt0.o

アプリ ケーシ ョ ンのプロファ イルを作成する際に、 プロファ イル ソフ ト ウェア コードをプログラ

ムに含める場合に使用します。 CRT の共通の処理に加え、 main を呼び出す前に _profile_init ルー

チンも呼び出します。 これによ り、コードが実行される前にソフ ト ウェア プロファイル ライブラ リ

が初期化されます。 同様に、 main が終了したと きに、 プロファ イル ラ イブラ リ をク リーンアップ

する _profile_clean ルーチンを呼び出します。

xil-sim-crt0.o

アプリ ケーシ ョ ンを -mno-clearbss を使用してコンパイルする際に使用します。 .bss セクシ ョ ンを

0 にク リ アする以外の CRT の共通処理が実行されます。

xil-sim-pgcrt0.o

アプリ ケーシ ョ ンを -mno-clearbss を使用してコンパイルする際に使用します。 .bss セクシ ョ ンを

0 にク リ アする以外の CRT の共通処理が実行されます。 また、 main を呼び出す前に _profile_initルーチンを呼び出します。 これによ り、コードが実行される前にソフ ト ウェア プロファイル ライブ

ラ リが初期化されます。 同様に、main が終了したと きに、プロファ イル ライブラ リ をク リーンアッ

プする _profile_clean ルーチンを呼び出します。

その他のファイル

コンパイラは、 C++ 言語をサポートするため、 特定の標準スタート ファ イルおよびエンド ファ イ

ルも使用します。 ecrti.o、 crtbegin.o、 crtend.o、および crtn.o がそれに当たり ます。 これらの標準コ

ンパイ ラ フ ァ イルは、 .init、 .fini、 .ctors、 および .dtors セクシ ョ ンの内容を指定します。 また、

PowerPC のデフォルトの生成された リ ンカ スク リプ トは、 boot.o をスタート アップ ファ イルにし

ます。 このファイルは、 PowerPC (405 および 440) のスタンドアロン ボード サポート パッケージ

に含まれます。

Page 148: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

148 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

スタートアップ ファイルの変更

初期化ファイルは、 コンパイル済みのファイルおよびソース ファ イルの両方で提供されます。 コン

パイル済みのオブジェ ク ト フ ァ イルは、 コンパイ ラ ラ イブラ リ ディ レ ク ト リ に含まれます。

PowerPC コンパイラ用の初期化ファイルのソース ファ イルは、 <XILINX_EDK>/sw/lib/

ppc405/src ディ レク ト リにあ り ます (<XILINX_EDK> は EDK のインス トール ディ レク ト リ )。

カスタム スタート アップ ファ イルを使用するには、 ファ イルをソース エリ アから取り出し、 アプ

リ ケーシ ョ ン ソースの一部と して含める必要があ り ます。 また、 ファ イルを .o ファ イルに統合し

て、 共有エリアに配置するこ と も可能です。 標準ファイルではなく作成したオブジェク ト ファ イル

を参照する場合は、powerpc-eabi-gcc の実行時に -B オプシ ョ ンを使用します。 デフォルトのスター

ト アップ ファ イルが使用されないよ うにするには、 コンパイルの 後の行に -nostartfiles を追加し

ます。 ecrti.o、 crtbegin.o などの C++ サポート用のコンパイラ標準 CRT ファ イルは、 ソース コー

ドでは提供されません。 これらのファイルは、 インス トール ディ レク ト リに含まれているものをそ

のまま使用して ください。 コードでコンス ト ラ ク タおよびデス ト ラ ク タを使用する場合は、 ファ イ

ルを 後のリ ンク コマンドに含める必要があ り ます。

C プログラムのスタートアップ コード サイズの削減

C プログラムのコード サイズの制限が厳しい場合は、オーバーヘッ ドの原因となるあらゆるものを

取り除く必要があ り ます。 このセクシ ョ ンでは、C プログラムで不要な C++ コンス ト ラ ク タまたは

デス ト ラ ク タ コードによるオーバーヘッ ドを削減する方法を示します。 次の変更を加えるこ とによ

り、 コードのサイズを約 500 バイ ト削減できます。

1. 前のセクシ ョ ンで説明するよ うに、インス トール領域からスタート アップ ファ イルのカスタム

コピーを作成します。 アプリケーシ ョ ンに適した xil-crt.s をコピーします。 たとえば、アプ

リ ケーシ ョ ンのプロファ イルが作成される場合は、 インス トール領域から xil-pgcrt0.s をコピーします。

CRT ファ イルから次の行を削除します。

/* Call _init */bl _init

および

/* Invoke the language cleanup functions */bl _fini

これによ り、 コンス ト ラ ク タおよびデス ト ラ ク タの処理に使用されるコードは参照されなくなり、 コード サイズが小さ くなり ます。

2. これらのファイルを .o ファ イルにコンパイルして任意のディ レク ト リに配置するか、 アプ リ

ケーシ ョ ン ソースの一部と して含めます。

3. コンパイラに -nostartfiles オプシ ョ ンを追加します。 特定のフォルダにファイルを統合する場

合は、 -B directory オプシ ョ ンも使用します。

4. アプリケーシ ョ ンをコンパイルします。

Page 149: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 149EDK 10.1 サービス パッ ク 1

PowerPC コンパイラの使用法とオプシ ョ ンR

アプリケーシ ョ ンをブート ローダーで読み込む場合のスタートアップ ファイルの

変更

アプリ ケーシ ョ ンをブート ローダーで読み込む場合、 ブート ローダーのプロセッサ リ セッ ト ベク

タをアプ リ ケーシ ョ ンの リセッ ト ベクタで上書きしないよ うにする方が望ましい場合があ り ます。

このよ うにする と、アプ リ ケーシ ョ ンではなくプロセッサ リ セッ ト上のブート ローダーが再実行さ

れます。 これには、アプリ ケーシ ョ ンで boot.o をスタート アップ ファ イルと して呼び出さないよ

うにする必要があ り ます。 ほかのコンパイラ スタート アップ ファ イルと異なり、boot.o はコンパ

イラによ り明示的にリ ンク されているわけではなく、 デフォルトの リ ンカ スク リプ トおよびリ ンカ

スク リプ ト を生成するツールによ り boot.o がスタート アップ ファ イルと して指定されているの

で、 リ ンカ スク リプ トから STARTUP 指示子を削除する必要があ り ます。 また、 ENTRY 指示子を

_boot から _start に変更します。

コンパイラ ライブラリ

powerpc-eabi-gcc コンパイラには、GNU C 標準ライブラ リ と GNU 数値計算ライブラ リ が必要です。

EDK には、 あらかじめコンパイルされたこれらのライブラ リが含まれています。 これらのライブ

ラ リは、 $XILINX_EDK/gnu/powerpc-eabi/platform/powerpc-eabi/lib にあ り ます。

この 上位ライブラ リ ディ レク ト リの下のさまざまなサブディ レク ト リには、特定のコンフ ィギュ

レーシ ョ ン用のカスタマイズされたライブラ リが含まれます。 たとえば、 /double サブディ レク ト

リ には倍精度 FPU で使用される ラ イブラ リ のバージ ョ ンが含まれ、 /440 サブディ レク ト リ には

PowerPC 440 プロセッサで使用するのに適したライブラ リのバージ ョ ンが含まれます。

スレッ ド セーフ

EDK に含まれる MicroBlaze の C ラ イブラ リおよび数値演算ライブラ リは、 マルチスレッ ド環境

で使用するよ うに構築されていません。 printf()、 scanf()、 malloc()、 free() などの共通 C ライブラ

リ関数はスレッ ド セーフではなく、 システムで回復不可能なランタイム エラーを引き起こすこ と

があ り ます。 マルチスレッ ド環境で EDK ラ イブラ リ を使用する場合は、 相互排他的なメカニズム

を使用してください。

コマンド ライン引数

PowerPC プログラムでは、 コマンド ラ イン引数を取り込むこ とはできません。 コマンド ライン引

数 argc および argv は、 C ランタイム ルーチンによ り 0 に初期化されます。

Page 150: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

150 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 10 章 : GNU コンパイラ ツールR

その他のメモ

C++ コードのサイズ

新のオープン ソース C++ 標準ライブラ リ (libstdc++-v3) を含む GCC ツールでは、同等の Cプログラムに比べて生成されるコードおよびデータ片が大き くなる場合があ り ます。 このオーバー

ヘッ ドの大部分は、 例外処理およびランタイム型情報のコードおよびデータによるものです。 C++アプリケーシ ョ ンによっては、これらの機能は必要あ り ません。 このオーバーヘッ ドをなく し、コー

ド サイズを 適化するには、 -fno-exceptions および -fno-rtti オプシ ョ ンを使用します。 これらのオプシ ョ ンの使用は、 アプ リケーシ ョ ンの要件およびこれらの言語の機能に精通している場

合のみにするこ とをお勧めします。 使用可能なコンパイラ オプシ ョ ンおよびそれらのオプシ ョ ンに

よる影響については、 GCC のマニュアルを参照してください。

C++ プログラムには、 よ り複雑な言語機能およびライブラ リ ルーチンのため、 ダイナミ ッ ク メモ

リの要件 (スタ ッ クおよびヒープ サイズ) が厳しいものがあ り ます。

多くの C++ ライブラ リ ルーチンでは、 ヒープからのメモ リの割り当てが要求されます。 C++ プロ

グラムで必要なヒープ サイズおよびスタッ ク サイズが満たされているこ とを確認してください。

C++ 標準ライブラリ

C++ 標準ライブラ リは、 C++ 標準によ り定義されます。 これらのプラ ッ ト フォーム機能には、 デ

フォルトのザイ リ ンクス EDK ソフ ト ウェア プラ ッ ト フォームでは使用できないものもあ り ます。

たとえば、 ファ イル I/O は明確に定義された STDIN/STDOUT ス ト リームでのみサポート されま

す。 また、 ロケール関数、 スレッ ド セーフなどの機能もサポート されません。

メモ : C++ 標準ライブラ リは、 マルチスレッ ド環境で使用するよ うに構築されていません。 new、

delete などの共通 C++ 関数はスレッ ド セーフではあ り ません。マルチスレッ ド環境で C++ 標準ラ

イブラ リ を使用する場合は、 注意が必要です。

GNU C++ 標準ライブラ リの詳細は、 GNU の Web サイ トのマニュアルを参照して ください。 この

章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

位置独立コード (PIC)

MicroBlaze および PowerPC コンパイラでは、再配置可能な位置独立コードを生成する -fPIC オプ

シ ョ ンがサポート されています。 PowerPC コンパイラでは、位置独立コード とは多少異なるコード

を生成する -mrelocatable オプシ ョ ンもサポート されています。 これらの機能はザイ リ ンクスのコ

ンパイラでサポート されていますが、 EDK ではスタンドアロン プラ ッ ト フォームしか提供されな

いので、 ほかのライブラ リおよびツールではサポート されません。 位置独立コードは、 ローダーま

たはデバッガでは認識されず、ランタイムでの再配置は実行されません。 これらのコードの機能は、

ザイ リ ンクス ラ イブラ リ、 スタート アップ ファ イル、 およびその他のツールでサポート されませ

ん。 サードパーティ OS ベンダーのディ ス ト リ ビューシ ョ ンおよびツールでは、 これらの機能を標

準で使用できるものがあ り ます。

その他のオプシ ョ ンおよび機能

-fprofile-arcs など、その他のオプシ ョ ンおよび機能は、ザイ リ ンクスの EDK コンパイラおよ

びプラ ッ ト フォームでサポート されていない可能性があ り ます。 一部の機能は、 オープン ソース

GCC で定義されているよ うに試験段階であ り、 不適切に使用する と、 不正なコードが生成される

こ とがあ り ます。 特定の機能の詳細は、 GCC のマニュアルを参照して ください。 この章の 「関連リ

ソース」 に、 このマニュアルへのリ ンクがあ り ます。

Page 151: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 151EDK 10.1 サービス パッ ク 1

R

第 11 章

GNU デバッガ (GDB)

この章では、MicroBlaze™ プロセッサおよび PowerPC® プロセッサ用のザイ リ ンクス GNU デバッ

ガ (GDB) の一般的な使用法について説明します。 この章には、 次のセクシ ョ ンが含まれています。

• 概要

• 関連リ ソース

• MicroBlaze GDB のターゲッ ト

• PowerPC 405 のデバッグ

• PowerPC 440 のデバッグ

• コンソール モード

• GDB コマンドに関する リ ファレンス情報

概要

GDB は、 さまざまな開発段階で MicroBlaze および PowerPC (405 および 440) システムをデバッ

グ/検証するためのイ ンタ ーフェ イ スを提供する、 高性能で柔軟性の高いツールです。 Xilinx®

Microprocessor Debugger (XMD) を使用して、 プロセッサと通信します。

GDB の使用法

MicroBlaze GDB のコマンド

mb-gdb <options> executable-file

PowerPC GDB のコマンド

powerpc-eabi-gdb <options> executable-file

GDB のコマンド オプシ ョ ン

GNU デバッガでよ く使用されるオプシ ョ ンは、 次のとおりです。

-command=FILE

指定したファイルから GDB コマンドを実行します。 バッチおよびスク リプ ト モードでデバッ

グを実行する際に使用します。

-batch

オプシ ョ ンを処理した後、 終了します。 バッチおよびスク リプ ト モードでデバッグを実行する

際に使用します。

Page 152: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

152 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 11 章 : GNU デバッガ (GDB)R

-nx

初期化ファイル .gdbinit を読み込みません。 XMD への接続で問題が発生した場合は (GDB はXMD ターゲッ トから接続/接続解除)、このオプシ ョ ンを使用して GDB を起動するか、.gdbinitファ イルを削除してください。

-nw

GUI インターフェイスを使用しません。

-w

GUI インターフェイスを使用します (デフォルト )。

GDB を使用したデバッグ フロー

1. XPS から XMD を起動します。

2. シ ミ ュレータ、 ハードウェア、 または仮想プラ ッ ト フォームのプロセッサに接続します。 この

操作によ り、 ターゲッ トの GDB サーバーが開きます。

3. XPS から GDB を起動します。

4. XMD 上のリモート GDB サーバーに接続します。

5. プログラムおよびデバッグ アプリ ケーシ ョ ンをダウンロード します。

関連リソース

• GNU の Web サイ ト : http://www.gnu.org

• Red Hat Insight の Web サイ ト : http://sources.redhat.com/insight

MicroBlaze GDB のターゲッ ト

MicroBlaze GNU デバッガおよび XMD ツールでは、 リモート ターゲッ ト を使用できます。 リモー

トでのデバッグは、 XMD を介して行います。 XMD サーバー プログラムは、 シ ミ ュレータまたは

ハードウェアを使用して、 ホス ト コンピュータ上で起動できます。

サイ クル精度命令セッ ト シ ミ ュレータ (ISS) およびハードウェア インターフェイスは、MicroBlazeシステムの完全な検証を実行する高性能のデバッグ ツールです。 mb-gdb は、TCP/IP ソケッ ト接続

上の GDB リモート プロ ト コルを使用して、 XMD に接続します。

シミ ュレータ

XMD シ ミ ュ レータは MicroBlaze システムのサイ クル精度 ISS で、 シ ミ ュ レーシ ョ ン された

MicroBlaze システムのステート を GDB に示します。

ハードウェア

ハードウェア上でのデバッグでは、XMD はマイクロプロセッサ デバッグ モジュール (mdm) デバッ

グ コアまたはハードウェア ボード上で実行される xmdstub プログラムとシ リ アル ケーブルまたは

JTAG ケーブルを介して通信し、 実行中の MicroBlaze システムのステート を GDB に示します。

XMD の詳細は、 第 12 章 「Xilinx Microprocessor Debugger (XMD)」 を参照してください。

Page 153: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 153EDK 10.1 サービス パッ ク 1

PowerPC 405 のデバッグR

MicroBlaze をデバッグするためのコンパイル

プログラムをデバッグするには、 プログラムをコンパイルする際にデバッグ情報を生成する必要が

あ り ます。 このデバッグ情報はオブジェク ト ファ イルに保存されます。 デバッグ情報には、 各変数

および関数のデータ型、 ソースの行番号に対する実行コードのアドレスなどが含まれています。 適切な修飾子を指定する と、 ザイ リ ンクス MicroBlaze ソフ ト プロセッサ用の mb-gcc コンパイラに

よ り この情報が含まれます。

mb-gcc で -g オプシ ョ ンを使用する と、実行ファイルにデバッグ情報が追加され、 ソース レベルで

のデバッグを実行できるよ うにな り ます。 ソース、 アセンブ リ、 またはその混合でのデバッグが可

能になり ます。

メモ : C プログラムの機能を初めて検証する場合は、-O2 または -O3 などの mb-gcc の 適化オプ

シ ョ ンを使用しないこ とをお勧めします。 これらのオプシ ョ ンを使用する と、 適化によ り コード

が大幅に変わる場合があるので、 デバッグが困難になり ます。

メモ : XMDStub を使用してハード ウェア モードで XMD を使用してデバッグする場合は、mb-gccの -xl-mode-xmdstub オプシ ョ ンを指定する必要があ り ます。 特定のターゲッ ト用にコンパイルす

る方法は、 第 12 章 「Xilinx Microprocessor Debugger (XMD)」 を参照してください。

PowerPC 405 のデバッグ

PowerPC 405 プロセッサのデバッグは、GDB リモート TCP プロ ト コルを介して powerpc-eabi-gdbおよび XMD を使用して実行し ます。 XMD では、 PowerPC 405 ハード ウ ェア とサイ クル精度

PowerPC 命令セッ ト シ ミ ュレータ (ISS) の 2 つのリモート ターゲッ トがサポート されます。

PowerPC 405 に接続するには、 次の手順に従います。

1. 第 12 章 「Xilinx Microprocessor Debugger (XMD)」 の説明に従って XMD を起動し、 connectppc コマンドを使用してボードに接続します。

2. GDB で [Run] → [Connect to target] をク リ ッ ク します。

3. [Target Selection] ダイアログ ボッ クスで、 次のよ うに設定します。

♦ [Target] : Remote/TCP

♦ [Hostname] : localhost

♦ [Port] : 1234

4. [OK] をク リ ッ ク します。

powerpc-eabi-gdb によ り XMD への接続が開始されます。 正常に接続される と、 XMD を開始した

シェル ウ ィンド ウにメ ッセージが表示されます。

これでデバッガが XMD に接続され、 デバッグを制御できるよ うにな り ます。 このユーザー イン

ターフェイスを使用して、プログラムのデバッグおよびメモ リ とレジスタの読み出し /書き込みを実

行します。

PowerPC 440 のデバッグ

PowerPC 440 プロセッサのデバッグは、GDB リモート TCP プロ ト コルを介して powerpc-eabi-gdbおよび XMD を使用して実行します。

XMD では、 PowerPC 440 ハードウェアとサイ クル精度 PowerPC 命令セッ ト シ ミ ュレータ (ISS)の 2 つのリモート ターゲッ トがサポート されます。

Page 154: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

154 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 11 章 : GNU デバッガ (GDB)R

PowerPC 440 に接続するには、 次の手順に従います。

1. 第 12 章 「Xilinx Microprocessor Debugger (XMD)」 の説明に従って XMD を起動し、 connectppc コマンドを使用してボードに接続します。

2. GDB で [Run] → [Connect to target] をク リ ッ ク します。

3. [Target Selection] ダイアログ ボッ クスで、 次のよ うに設定します。

♦ [Target] : Remote/TCP

♦ [Hostname] : localhost

♦ [Port] : 1234

4. [OK] をク リ ッ ク します。

5. powerpc-eabi-gdb によ り XMD への接続が開始されます。 正常に接続される と、 XMD を開始

したシェル ウ ィンド ウにメ ッセージが表示されます。

6. [View] → [Console] をク リ ッ ク して [Console Window] を開きます。

7. [Console Window] に 「set arch powerpc:440」 と入力して、 アーキテクチャを PowerPC 440プロセッサに設定します。

これでデバッガが PowerPC 440 モードで XMD に接続され、 デバッグを制御できるよ うにな り ま

す。 このユーザー インターフェイスを使用して、 プログラムのデバッグおよびメモ リ とレジスタの

読み出し /書き込みを実行します。

コンソール モード

powerpc-eabi-gdb をコンソール モードで起動するには、 次のよ うに入力します。

powerpc-eabi-gdb -nw executable.elf

コンソール モードで次の 2 つのコマンドを入力し、 XMD を介してボードに接続します。

(gdb) target remote localhost:1234(gdb) load

画面に次のテキス トが表示されます。

Loading section .text, size 0xfcc lma 0xffff8000Loading section .rodata, size 0x118 lma 0xffff8fd0Loading section .data, size 0x2f8 lma 0xffff90e8Loading section .fixup, size 0x14 lma 0xffff93e0Loading section .got2, size 0x20 lma 0xffff93f4Loading section .sdata, size 0xc lma 0xffff9414Loading section .boot0, size 0x10 lma 0xffffa430Loading section .boot, size 0x4 lma 0xfffffffcStart address 0xfffffffc, load size 5168Transfer rate: 41344 bits/sec, 323 bytes/write.(gdb) cContinuing

コンソール モードでは、この 2 つのコマンドを作業ディ レク ト リにある GDB スタート アップ ファ

イル gdb.ini に追加するこ と も可能です。

Page 155: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 155EDK 10.1 サービス パッ ク 1

GDB コマンドに関するリファレンス情報R

GDB コマンドに関するリファレンス情報

mb-gdb の使用方法は、XPS のメ イン ウ ィンド ウで [Help] → [Help Topics] をク リ ッ ク、 コンソー

ル モードの場合は 「help」 と入力して ください。

GDB のコンソール ウ ィンド ウを開くには、 GDB で [View] → [Console] をク リ ッ ク します。

GDB の詳細な使用法に関するオンライン マニュアルは、GNU の Web サイ ト を参照して ください。

mb-gdb Insight GUI については、 Red Hat Insight の Web サイ ト を参照して ください。 この章の

「関連リ ソース」 に、 これらのマニュアルへのリ ンクがあ り ます。

よ く使用される mb-gdb コンソール コマンドを表 11-1 に示します。 同じ機能を持つ GUI のコマン

ドは、 mb-gdb GUI ウ ィンド ウのアイコンで判別できます。 info target、 monitor info など一部のコ

マンドは、 コンソール モードでしか使用できません。

表 11-1 : よ く使用される GDB のコンソール コマンド

コマンド 説明

load <program> ターゲッ トにプログラムを読み込みます。

b main main 関数にブレークポイン ト を設定します。

c ブレークポイン トの後、 プログラムの実行を再開します。

メモ : run コマンドを使用しないでください。

l 現時点でのプログラムのリ ス ト を表示します。

n 1 行進めます。関数呼び出しがあっても、停止せずに次の行まで実行し

ます。

s 1 行進めます。関数呼び出しがある場合は、 その関数の次の行で停止し

ます。

stepi アセンブリ 1 行分進めます。

info reg レジスタ値を表示します。

info target 命令数と実行されたサイ クル数を表示します (ビル ト イン シ ミ ュレー

タのみ)。

p <xyz> <xyz> データの値を表示します。

hbreak main main 関数にハードウェア ブレークポイン ト を設定します。

watch <gvar1> グローバル変数 <gvar1> にウォッチポイン ト を設定します。

rwatch <gvar1> グローバル変数 <gvar1> に読み出しウォッチポイン ト を設定します。

Page 156: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

156 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 11 章 : GNU デバッガ (GDB)R

Page 157: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 157EDK 10.1 サービス パッ ク 1

R

第 12 章

Xilinx Microprocessor Debugger (XMD)

Xilinx® Microprocessor Debugger (XMD) は、 PowerPC® (405 および 440) プロセ ッ サまたは

MicroBlaze™ マイ ク ロプロセッサを含むシステムの検証とプログラムのデバッグを行う ための

ツールです。 ハード ウェア ボード上またはサイクル精度命令セッ ト シ ミ ュレータ (ISS) で実行する

プログラムをデバッグできます。

XMD は、 Tcl (ツール コマンド言語) インターフェイスを提供します。 このインターフェイスは、

ターゲッ トのコマンド ラ インからの制御、 ターゲッ トのデバッグ、および完成したシステム全体を

テス トする複雑な検証スク リプ トの実行に使用します。

XMD では、 ターゲッ トのデバッグを制御するため、 GNU デバッガ (GDB) リモート TCP プロ ト

コルがサポート されます。 PowerPC および MicroBlaze GDB (powerpc-eabi-gdb および mb-gdb)、Eclipse ベースのソフ ト ウェア IDE である Platform Studio ソフ ト ウェア開発キッ ト (SDK) などの

グラフ ィカル デバッガには、 このインターフェイスをデバッグに使用するものがあ り ます。 どちら

の場合でも、デバッガは同じコンピュータ上またはネッ ト ワークを介した リモート コンピュータ上

で実行されている XMD に接続されます。

XMD では、 プログラムをデバッグするハード ウェア システムに関する情報を得るため、 XMP(Xilinx Microprocessor Project) システム ファ イルを読み込みます。 この情報は、メモ リ範囲テス ト

を実行したり、 高速ダウンロードでの MicroBlaze と MDM (Microprocessor Debug Module) の接

続を決定するためなどに使用されます。

この章には、 次のセクシ ョ ンが含まれています。

• 関連リ ソース

• XMD の使用法

• XMD コマンド

• connect コマンドのオプシ ョ ン

• XMD 内部 Tcl コマンド

Page 158: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

158 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

関連リソース

• 『PowerPC 405 Processor Block Reference Guide』『Embedded Processor Block in Virtex-5 FPGAs Reference Guide』『MicroBlaze プロセッサ リ ファレンス ガイ ド』

『IBM Instruction Set Simulator User’s Guide』http://japan.xilinx.com/ise/embedded/edk_docs.htm

図 12-1 : XMD を使用したデバッグ

UG111_13_01_091905

GDB

GDB Platform Studio SDK

GDB XMD

XMD Tcl XMD

XMD (Xilinx Microprocessor Debug)

/TCL

PowerPC/MicroBlaze

JTAG

MicroBlaze ISS

TCP

MicroBlaze XMDSTUB( ) PowerPC ISS/MicroBlaze UP

Page 159: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 159EDK 10.1 サービス パッ ク 1

XMD の使用法R

XMD の使用法xmd [-v] [-h] [-help] [-nx] [-ipcport [<portnum>]] [-xmp xmpfile]

[-opt <optfile>] [-tcl {tcl_file_args}]

XMD を起動する と、 次の処理が実行されます。

• XMD Tcl スク リプ トが指定されている場合は、 そのスク リプ ト を実行して終了します。

• XMD Tcl スク リプ トが指定されていない場合は、 XMD がインタラ クティブ モードで実行さ

れます。 このモードでは、 次の処理が行われます。

♦ ${HOME}/.xmdrc ファ イルを作成します。 このコンフ ィギュレーシ ョ ン ファ イルを使用

して、 XMD コマンドで使用するカスタム Tcl コマンドを作成できます。

♦ -ipcport が指定されている場合、 XMD ソケッ ト サーバーを開きます。

♦ -xmp が指定されている場合、 システムの XMP ファ イルを読み込みます。

♦ -opt が指定されている場合、接続オプシ ョ ン ファ イルを使用してプロセッサ ターゲッ ト

に接続します。

♦ -nx が指定されていない場合、 xmd.ini ファ イル (現在のディ レク ト リに存在する場合)を使用します。

♦ XMD% プロンプ ト を表示します。 XMD Tcl プロンプ トから、「XMD コマンド」 で説明す

るよ うに、 XMD コマンドを使用してデバッグを実行できます。

表 12-1 : XMD のオプシ ョ ン

オプシ ョ ン コマンド 説明

ヘルプの表示 -h、 -help コマンドの使用方法を表示します。

バージ ョ ン情報の表示 -v バージ ョ ン番号を表示します。

初期化ファイルを使用

しない

-nx 起動時に xmd.ini ファ イルを使用しません。

ポート番号 -ipcport [<portnum>] XMD サーバーをポー ト 番号 <portnum> で開始します。

XMD の内部コマンドは、 この TCP ポート を使用して発行

されます。 <portnum> を指定しない場合は、 2345 が使用

されます。

XMP ファ イルの

読み込み

-xmp <xmpfile> 読み込む XMP ファ イルを指定します。

オプシ ョ ンファ イルの

指定

-opt <connect_option_file> ターゲッ トに接続するのに使用するオプシ ョ ン ファ イルを

指定します。 オプシ ョ ン ファ イルには、 XMD をターゲッ

トに接続するコマンドが含まれます。

Tcl ファ イルの指定 -tcl <tclfile> <tclarg> 実行する XMD Tcl スク リプ ト を指定します。

<tclarg> は、Tcl スク リプ トへの引数を指定します。 この

Tcl ファ イルは、 XMD で使用されます。 スク リプ トの実行

が終了する と、 XMD が終了します。

-tcl の後にほかのオプショ ンを指定すること はできません。

Page 160: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

160 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

XMD コマンド

XMD ユーザー コマンドの一覧

次に、 XMD コマンドの一覧を示します。 オプシ ョ ン名をク リ ッ クする と、 そのオプシ ョ ンの説明

にジャンプします。

XMD ユーザー コマンド

表 12-2 に、 XMD ユーザー コマン ドおよびそのオプシ ョ ンを示し ます。 MicroBlaze および

PowerPC の特殊なレジス タの名前の リ ス ト は、 「特殊用途レジス タ名」 を参照して く ださい。

connect コマンドのオプシ ョ ンは、 「connect コマンドのオプシ ョ ン」 を参照して ください。

xload con bpr

connect stp bpl

vpconnect cstp tracestart

vpio rst tracestop

targets stop stats

disconnect rrd profile

debugconfig srrd state

dow rwr dis

run mrd terminal

elf_verify mwr read_uart

data_verify bps verbose

stackcheck watch help

表 12-2 : XMD ユーザー コマンド

コマンド [オプシ ョ ン] 使用例 説明

xload xmp <xmp_filename> xload xmp system.mhs XMP システム フ ァ イルを読み込みます。

XMD は、 プロセッサの命令およびデータ メモ リ アドレスを取得するため XMP ファ イル

を読み込みます。 この情報は、 プロセッサの

メモ リにダウンロード されたプログラムおよ

びデータを確認するために使用されます。

connect <target_type(s)> connect mb mdm

connect ppc

ターゲッ トに接続します。

<target_type(s)> に有効な値は、 mb、ppc、 および mdm です。 詳細は、 171 ページ

の 「connect コマンドのオプシ ョ ン」 を参照し

てください。

vpconnect mb

メモ : VPgen は廃止されています。

vpconnect mb MicroBlaze の仮想プラ ッ ト フォームに接続

します。

Page 161: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 161EDK 10.1 サービス パッ ク 1

XMD コマンドR

vpio

メモ : VPgen は廃止されています。

vpio 仮想プラ ッ ト フォーム システムの I/O イン

ターフェイス (UART および GPIO) を起動し

ます。

targets

targets <target_id>

targets -system <system_id>

targets

targets 0

targets -system 1

現在のターゲッ トに関する情報を リ ス ト した

り、 ターゲッ ト を変更します。

disconnect <target id> disconnect 0 現在ターゲッ ト となっているプロセッサへの

接続を解除し、GDB サーバーを閉じて、以前

のターゲッ トであるプロセッサに戻り ます。

debugconfig

debugconfig -step_mode

{disable_interrupt |

enable_interrupt}

debugconfig

-memory_datawidth_matching

{disable | enable}

debugconfig -vpoptions

<virtual platform options>

debugconfig -reset_on_run

<options>

debugconfig -step_mode

enable_interrupt

debugconfig -memory_

datawidth_matching enable

ターゲッ トのデバッグ セッシ ョ ンを設定しま

す。 詳細は、 「デバッグ セッシ ョ ンの設定」

を参照してください。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 162: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

162 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

dow <filename.elf>

dow <PIC filename.elf>

<Load Address>

dow -data <Binary File Name>

<Load Address>

dow executable.elf

dow executable.elf 0x400

dow -data system.dat 0x400

指定の ELF ファ イルまたはデータ ファ イル

(-data オプシ ョ ンを使用) を現在のターゲッ

ト メモ リにダウンロード します。

• アドレスを指定しない場合は、ELF ファ イ

ルのヘッダからダウンロードするア ド レ

スが判断されます。

• アドレスを指定した場合は (MicroBlazeターゲッ トのみ)、 ELF ファ イルは位置独

立コード (PIC コード ) と して処理されて

指定のアドレスにダウンロード されます。

また、 PIC コードのセマンティ クスに

従って、 レジスタ R20 が開始アドレスに

設定されます。

ELF ファ イルがダウンロード される と リ

セッ トが実行され、 ブレークポイン ト を

使用して リセッ ト ロケーシ ョ ンでプロ

セッサが停止し、 ELF プログラムがメモ

リに読み込まれます。 リセッ トは、 シス

テムを既知の状態にするために実行され

ます。debugconfig -reset_on_run <system | processor> <enable | disable> コマンドを

使用する と、 リセッ トの動作を設定でき

ます。

「デバッグ セッシ ョ ンの設定」 を参照して

ください。

elf_verify [<filename.elf>] elf_verify executable.elf ELF フ ァ イルがターゲッ ト に正し く ダウン

ロード されたかど う かを確認し ます。 ELFファ イルを指定しない場合は、 ターゲッ ト に

後にダウンロード された ELF ファ イルが

確認されます。

data_verify <Binary

filename> <Load Address>

data_verify system.dat

0x400<Binary filename> がターゲッ トの

<Load Address> に正し くダウンロード さ

れたかど うかを確認します。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 163: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 163EDK 10.1 サービス パッ ク 1

XMD コマンドR

run run プログラムの開始アドレスからプログラムを

実行します。 このコマンドはリセッ ト を実行

し、 ブレークポイン ト を使用してプロセッサ

を リセッ ト ロケーシ ョ ンで停止し、 ELF プログラム データ セクシ ョ ンをメモ リに読み

込みます。 ELF プログラム データ セクシ ョ

ンを読み込むこ とによ り、 スタティ ッ ク変数

が適切に初期化され、 リセッ ト を実行するこ

とによ りシステムが既知の状態になり ます。

debugconfig -reset_on_run <system |

processor> <enable | disable> コマンドを使用

する と、 リセッ トの動作を設定できます。

「デバッグ セッシ ョ ンの設定」 を参照してく

ださい。

stackcheck stackcheck 現在のターゲッ トで実行中のプログラムのス

タ ッ ク使用情報を表示します。 ターゲッ トに

後にダウンロード された ELF ファ イルの

スタ ッ クがチェッ ク されます。

con

con [<Execute Start Address>]

[-block [-timeout <In Secs>]]

con

con 0x400

現在の PC または <Execute StartAddress> から続行します。

• -block オプシ ョ ンを使用する と、 プロ

セスがブレークポイン ト またはウォッチ

ポイン トで停止した場合にコマンドが戻

されます。

• -timeout で値を指定する と、 コマンド

によ り無限にブロ ッ ク されるのを回避で

きます。

• -block オプシ ョ ンは、 スク リプ トで有

益です。

stp <number of instructions> stp

stp 10

<number of instructions> で指定した

ステップ数だけ命令を進めます。

cstp <number of cycles> cstp

cstp 10

<number of cycles> で指定したサイ クル

数だけ進めます。

メモ : このコマンドは、ISS/VP ターゲッ トで

のみ使用可能です。

rst [-processor] rst

rst -processor

システムを リセッ ト します。

-processor オプショ ンを指定する と 、 現

在のプロ セッ サ タ ーゲッ ト がリ セッ ト さ れ

ます。

プロセッサが実行中でない場合 (state コマン

ドで確認)、 プロセッサは リ セッ ト 時にプロ

セッサ リセッ ト ロケーシ ョ ンで停止します。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 164: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

164 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

stop stop ターゲッ ト を停止します。

rrd [<reg_num>] rrd

rrd r1 または rrd R1

rrd 1

すべてのレジスタまたは <reg_num> レジス

タを読み出します。

srrd [<reg_name>] srrd

srrd pc

特殊なレジス タまたは <reg_name> レジス

タを読み出します。

rwr <reg_num | reg_name> |

<Hex_value>

rwr pc 0x400 <reg_num>、 <reg_name>、 または

<Hex_value> からレジスタに書き込みます。

mrd <address> [<num of words

| half words | bytes> {w|h|b}]

mrd <Global Variable Name>

mrd 0x400

mrd 0x400 10

mrd 0x400 10 h

<address> から指定したワード /バイ ト数の

メモ リ ロケーシ ョ ンを読み出します。 デフォ

ルトでは、 1 ワード読み出します (w)。

変数名 (<Global Variable Name>) を指定

した場合、 以前にダウンロード された ELF ファ イルのグローバル変数に対応する メモ リ

を読み出します。

mrd_var <Global Variable

Name> <filename.elf>

mrd global_var1

executable.elf指定した ELF ファ イル (<filename.elf>) または以前にダウンロード された ELF ファ

イルのグローバル変数に対応する メモ リ を読

み出します。

mwr <address> <values> [<num

of words/half words/bytes>

{w|h|b}]

mwr <Global Variable Name>

<values> [<num of words/half

words/bytes> {w|h|b}]

mwr 0x400 0x12345678

mwr 0x400 0x1234 1 h

mwr 0x400 {0x12345678

0x87654321} 2

<address> または <Global Variable

Name> から指定したワード /バイ ト数のメモ

リ ロケーシ ョ ンに書き込みます。 デフォルト

では、 1 ワード書き込みます (w)。

bps {<address> |

<function name>} {sw|hw}

bps 0x400

bps main hw

<address> または <function name> の開

始部分にソフ ト ウェア ブレークポイン ト また

はハードウェア ブレークポイン ト を設定しま

す。 <function name> を指定する と、 後

にダウンロード された ELF ファ イルから検

索されます。 デフォル ト では、 ソフ ト ウェア

ブレークポイン トが設定されます (sw)。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 165: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 165EDK 10.1 サービス パッ ク 1

XMD コマンドR

watch {r|w} <address>

[<data>]

watch r 0x400 0x1234

watch r 0x40X 0x12X4

watch r 0b01000000XXXX

0b00010010XXXX0100

watch r 0x40X

<address> に読み出し または書き込みの

ウォッチポイン ト を設定します。 値が

<data> と一致する と、 プロセッサを停止し

ます。

• アドレスおよびデータは、 16 進数フォー

マ ッ ト (0x) または 2 進数フ ォーマ ッ ト

(0b) で指定できます。

• ドン ト ケアの値は、 X で指定します。

• アドレスには、連続した範囲しか指定でき

ません。

• <data> のデフォルト 値は 0xXXXXXXXXです。 この値は、 任意の値に一致します。

メモ : PowerPC では、絶対値のみがサポート

されます。

bpr

{all|<bp id>|<address>|

<function>}

bpr 0x400

bpr main

bpr all

ブレークポイン ト /ウォ ッチポイン ト を削除

します。

bpl bpl ブレークポイン ト /ウォ ッチポイン ト を リ ス

ト します。

tracestart

[<pc_trace_filename>]

[-function_name

<func_trace_filename>]

tracestart pctrace.txt

tracestart pctrace.txt

-function_name fntrace.txt

tracestart

ト レース情報の収集を開始し、 指定したファ

イルに記述します。

• ト レース情報の収集は、 プログラム実行の

どの時点でも停止、 開始できます。

• ファ イル名は、 初に tracestart を使用す

る場合にのみ指定します。

• <pc_trace_filename> のデフォルトの

ファイル名は isstrace.out です。

• <func_trace_filename> のデフォルト

のファ イル名は fntrace.out です。

メモ : このコマンドは、ISS/VP ターゲッ トで

のみ使用可能です。

tracestop [done] tracestop

tracestop done

ト レース情報の収集を停止し ます。 done を指定した場合は、 ト レース情報収集を終了し

ます。

メモ : このコマンドは、ISS/VP ターゲッ トで

のみ使用可能です。

stats [<filename>] stats trace.txt

stats

ISS および VP ターゲッ ト に対する実行統計

を表示します。 <filename> は、 ト レース情

報収集からの出力です。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 166: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

166 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

profile [-o <GMON Output

filename>]

profile -o gproff.out プロファ イル出力ファ イルを生成します。 こ

のフ ァ イルは、 mb-gprof または powerpc-eabi-gprof でプロファ イル情報を作成するた

めに読み込まれます。

プロファ イル コンフ ィギュレーシ ョ ンのサン

プリ ング周波数 (Hz)、ヒ ス ト グラムのビン サイズ、 収集したプロファ イル データのメモ リ

アドレスを指定します。

EDK を使用したプロファイル作成の詳細は、

XPS ヘルプを参照して ください。

state [<target_id>]

state -system <system_id>

state

state <target id>

state -system <system id>

ターゲッ ト を指定しない場合、 すべてのター

ゲッ トの現在のステート を表示します。

• <target_id> を指定した場合、 そのター

ゲッ ト の現在のステート を表示します。

• -system <system_id> を指定した場合、

そのシステムに含まれるすべてのター

ゲッ ト の現在のステート を表示します。

dis [<address in hex>]

[<num words>]

dis 0x400 10 逆アセンブルを実行します。

メモ : MicroBlaze でサポート されます。

terminal [-jtag_uart_server]

[<port_no>]

terminal

terminal

-jtag_uart_server 4321

JTAG ベースのハイパーター ミナルを mdmUART イ ン ターフ ェ イ ス と 通信させます。

mdm で UART インターフェイスをイネーブ

ルにする必要があ り ます。

-jtag_uart_server オプシ ョ ンを指定し

た場合、 TCP サーバーが <port_no> で開き

ます。 任意のハイパーターミナル ユーティ リ

ティを使用して、 TCP ソケッ トで opb_mdm UART インターフェイス と通信します。

<port_no> のデフォルト値は 4321 です。

read_uart [start|stop]

[TCL Channel ID]

read_uart start

read_uart stop

read_uart start

$channel_id

read_uart start コマンドは、 MDMUART イ ン ターフ ェ イ スからの出力を Tclチャネル (TCL Channel ID) に出力します。

read_uart stop コマンドは、指定した Tclチャネルへの出力を停止します。

Tcl チャネルは、開いているファイルまたはソ

ケッ ト接続を示します。 このコマンドを使用

する前に、 適切な コマン ド を使用し て Tclチャネルを開いておく必要があ り ます。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

Page 167: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 167EDK 10.1 サービス パッ ク 1

XMD コマンドR

特殊用途レジスタ名

MicroBlaze の特殊用途レジスタ名

MicroBlaze プロセッサで有効な特殊用途レジスタ名は、 次のとおりです。

MicroBlaze の特殊用途レジスタ名の詳細、 説明、 使用法は、 『MicroBlaze プロセッサ リ ファレン

ス ガイ ド』 の 「MicroBlaze アーキテクチャ」 の章で 「特殊用途レジスタ」 を参照してください。 こ

の章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

メモ : MicroBlaze を XMDStub モードでデバッグする場合、アクセスできるレジスタは PC および

MSR のみです。

verbose [level] verbose 詳細モードのオン/オフを切り替えます。 詳細

モードを使用する と、 XMD にデバッグ情報

が表示されます。

help [options] help

help init

help connect

help connect mb

すべてのコマンドを表示します。

表 12-2 : XMD ユーザー コマンド (続き)

コマンド [オプシ ョ ン] 使用例 説明

pc msr ear esr

fsr btr pvr0 pvr1

pvr2 pvr3 pvr4 pvr5

pvr6 pvr7 pvr8 pvr9

pvr10 pvr11 edr pid

zpr tlbx tlbsx

Page 168: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

168 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

PowerPC 405 プロセッサの特殊用途レジスタ名

PowerPC 405 プロセッサで有効な特殊用途レジスタ名は、 次のとおりです。

PowerPC 405 プロセ ッ サの特殊用途レジス タ名の詳細は、 『PowerPC 405 Processor BlockReference Guide』 の 「Register Set Summary」 を参照して ください。 この章の 「関連リ ソース」 に、

このマニュアルへのリ ンクがあ り ます。

PowerPC 440 プロセッサの特殊用途レジスタ名

PowerPC 440 プロセッサで有効な特殊用途レジスタ名は、 次のとおりです。

表 12-3 : PowerPC 405 プロセッサの特殊用途レジスタ名

ccr0 f2 f18 iac4

cr f3 f19 iccr sprg5

ctr f4 f20 icdbdr sprg6

dac1 f5 f21 lr sprg7

dac2 f6 f22 msr srr0

dbcr0 f7 f23 pc srr1

dbcr1 f8 f24 pid srr2

dbsr f9 f25 pit srr3

dccr f10 f26 pvr su0r

dcwr f11 f27 sgr tbl

dear f12 f28 sler tbu

dvc1 f13 f29 sprg0 tcr

dvc2 f14 f30 sprg1 tsr

esr f15 iac1 sprg2 usprg0

evpr f16 iac2 sprg3 xer

f0 f17 iac3 sprg4 zpr

f1

表 12-4 : PowerPC 440 プロセッサの特殊用途レジスタ名

pc msr cr lr ctr xer

fpscr pvr sprg0 sprg1 sprg2 s prg3

srr0 srr1 tbl tbu icdbdr esr

dear ivpr tsr tcr dec csrr0

csrr1 dbsr dbcr0 iac1 iac2 dac1

dac2 pir rstcfg mmucr pid ccr1

dbdr ccr0 dbcr1 dvc1 dvc2 iac3

iac4 dbcr2 sprg4 sprg5 sprg6 sprg7

decar usprg0 ivor0 ivor1 ivor2 ivor3

Page 169: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 169EDK 10.1 サービス パッ ク 1

XMD コマンドR

PowerPC 440 プロセッサの特殊用途レジスタ名の詳細は、 『Embedded Processor Block in Virtex-5FPGAs Reference Guide』 を参照して ください。 この章の 「関連リ ソース」 に、 このマニュアルへ

のリ ンクがあ り ます。

推奨される XMD フロー

次に、1 つのプログラムのデバッグ、複数プロセッサ環境でのプログラムのデバッグ、デバッグ セッ

シ ョ ンでのプログラムの実行に推奨される XMD の手順を説明します。

1 つのプログラムのデバッグ

1 つのプログラムをデバッグするには、 次の手順に従います。

1. プロセッサを接続します。

2. ELF ファ イルをダウンロード します。

3. 必要なブレークポイン トおよびウォッチポイン ト を設定します。

4. con コマンドを使用してプロセッサの実行を開始するか、stp コマンドを使用してプログラムの

命令を順に実行します。

5. state コマンドを使用してプロセッサのステータスを確認します。

6. 必要に応じて stop コマンドを使用し、 プロセッサを停止します。

7. プロセッサが停止したら、 レジスタおよびメモ リに対して読み出しおよび書き込みを実行し

ます。

8. プログラムを再実行するには、 run コマンドを使用します。

ivor4 ivor5 ivor6 ivor7 ivor8 ivor9

ivor10 ivor11 ivor12 ivor13 ivor14 ivor15

inv0 inv1 inv2 inv3 itv0 itv1

itv2 itv3 dnv0 dnv1 dnv2 dnv3

dtv0 dtv1 dtv2 dtv3 dvlim ivlim

dcdbtrl dcdbtrh icdbtrl icdbtrh mcsr mcsrr0

mcsrr1 f0 f1 f2 f3 f4

f5 f6 f7 f8 f9 f10

f11 f12 f13 f14 f15 f16

f17 f18 f19 f20 f21 f22

f23 f24 f25 f26 f27 f28

f29 f30 f31

表 12-4 : PowerPC 440 プロセッサの特殊用途レジスタ名 (続き)

Page 170: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

170 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

複数プロセッサ環境でのプログラムのデバッグ

複数プロセッサ環境でプログラムをデバッグするには、 次の手順に従います。

1. プロセッサ 1 に接続します。

2. debugconfig コマンドを使用して リセッ ト時の動作を設定します。 リセッ ト時の動作は、 シス

テム アーキテクチャによ り異な り ます。 「デバッグ セッシ ョ ンの設定」 を参照して ください。

3. ELF ファ イルをダウンロード します。

4. 必要なブレークポイン トおよびウォッチポイン ト を設定します。

5. con コマンドを使用してプロセッサの実行を開始するか、stp コマンドを使用してプログラムの

命令を順に実行します。

6. プロセッサ 2 に接続します。

7. debugconfig コマンドを使用して リセッ ト時の動作を設定します。 リセッ ト時の動作は、 シス

テム アーキテクチャによ り異な り ます。 「デバッグ セッシ ョ ンの設定」 を参照して ください。

8. ELF ファ イルをダウンロード します。

9. 必要なブレークポイン トおよびウォッチポイン ト を設定します。

10. con コマンドを使用してプロセッサの実行を開始するか、stp コマンドを使用してプログラムの

命令を順に実行します。

11. targets コマンドを使用してシステムのターゲッ ト を リ ス ト します。各ターゲッ トにはターゲッ

ト ID が付けられています。 アクティブなターゲッ トは、 アスタ リ スク (*) で示されます。

12. targets <target id> コマンドを使用してターゲッ ト を切り替えます。

13. state コマンドを使用してプロセッサのステータスを確認します。

14. stop コマンドを使用して、 プロセッサを停止します。

15. プロセッサが停止したら、 レジスタおよびメモ リに対して読み出しおよび書き込みを実行し

ます。

16. プログラムを再実行するには、 run コマンドを使用します。

デバッグ セッシ ョ ンでのプログラムの実行

1. プロセッサに接続します。

2. ELF ファ イルをダウンロード します。

3. <exit> 関数でブレークポイン ト を設定します。

4. con コマンドを使用してプロセッサの実行を開始します。

5. state コマンドを使用してプロセッサのステータスを確認します。

6. stop コマンドを使用して、 プロセッサを停止します。

7. プロセッサが停止したら、 レジスタおよびメモ リに対して読み出しおよび書き込みを実行し

ます。

8. プログラムを再実行するには、 run コマンドを使用します。

Page 171: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 171EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

connect コマンドのオプシ ョ ン

XMD では、 異なるターゲッ ト (プロセッサ、 仮想プラ ッ ト フォーム、 またはペリ フェラル) でプロ

グラムをデバッグできます。 XMD と ターゲッ トの通信を確立するには、XMD をターゲッ トに接続

する必要があ り ます。 接続が確立される と、各ターゲッ トに固有のターゲッ ト ID が割り当てられま

す。 プロセッサまたは仮想プラ ッ ト フォームに接続する と、 GDB サーバーが起動し、 GDB または

Platform Studio SDK との通信が可能になり ます。

構文

connect {mb | ppc | mdm} <Connection_Type> [Options]

次のセクシ ョ ンで、 異なるターゲッ トの接続オプシ ョ ンについて説明します。

PowerPCザイ リ ンク ス Virtex デバイスには、 PowerPC (405 および 440) プロセッ サ コアが 1 つまたは 2つ含まれています。 XMD は、 ボード 上の JTAG 接続を介してこ れらの PowerPC に接続します。

また、TCP ソ ケッ ト インターフェイスを介して IBM PowerPC 命令セッ ト シミ ュレータにも接続

さ れます。

PowerPC に接続するには、 connect ppc コマンドを使用して、 リモートの GDB サーバーを起動し

ます。 XMD が PowerPC に接続されたら、XMD を介して powerpc-eabi-gdb または Platform StudioSDK を PowerPC に接続し、 デバッグを実行します。

メモ : XMD では、 仮想アドレス指定はサポート されません。 デバッグは、 リ アル モードで実行さ

れているプログラムでのみ可能です。

PowerPC ハードウェアの接続

XMD は PowerPC ハード ウェアに接続する際、JTAG チェーンと PowerPC プロセッサ タイプおよ

びシステム内のプロセッサを自動的に検出し、 初のプロセッサに接続します。 このデフォルト処

理は、 次のオプシ ョ ンを使用して変更できます。

構文

connect ppc hw [-cable <JTAG Cable options>] {[-configdevice <JTAG chain

options>]} [-debugdevice <PowerPC options>]

表 12-5 : connect コマンドのオプシ ョ ン

オプシ ョ ン 説明

ppc PowerPC プロセッサに接続します。

mb MicroBlaze プロセッサに接続します。

mdm opb_mdm ペリ フェラルに接続します。

<Connection_Type> 接続方法を指定します。 ターゲッ トによって異なり ます。

[Options] 接続オプシ ョ ン。

Page 172: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

172 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

-cable のオプシ ョ ン (JTAG ケーブル オプシ ョ ン)

次のオプシ ョ ンを使用して、 ターゲッ ト との接続に使用する JTAG ケーブルを指定します。

-configdevice のオプシ ョ ン (JTAG チェーン オプシ ョ ン)

次のオプシ ョ ンを使用して、 JTAG チェーンに含まれるザイ リ ンクス以外のデバイスに関する情報

を指定します。 179 ページの 「特殊な JTAG チェーン設定でのザイ リ ンク ス以外のデバイスのデ

バッグ セッシ ョ ン例」 を参照して ください。

表 12-6 : -cable のオプシ ョ ン (JTAG ケーブル オプシ ョ ン)

オプシ ョ ン 説明

type <cable_type> ケーブルのタイプを指定します。 次のいずれかを指定できます。

• xilinx_parallel3

• xilinx_parallel4

• xilinx_platformusb

• xilinx_svffile

xilinx_svffile に指定する と、 fname オプシ ョ ンで指定したファイ

ルに JTAG コマンドが記述されます。

port <port name> 有効なポート名は lpt1、 lpt2、 ...usb21、 usb22... です。

fname <filename.svf> SVF (Serial Vector Format ) ファ イルの名前を指定します。

frequency <cable

speed in Hz>ケーブルのクロ ッ ク スピードを Hz で指定します。

有効なケーブル スピードは、 次のとおりです。

• パラレル ケーブル IV : 5000000 (デフォルト )、 2500000、200000

• プラ ッ ト フォーム USB : 24000000、 12000000、 6000000 (デフォルト )、 3000000、 1500000、 750000

表 12-7 : -configdevice のオプシ ョ ン (JTAG チェーン オプシ ョ ン)

オプシ ョ ン 説明

devicenr <device position> JTAG チェーン内のデバイスの位置を指定します。 デバ

イス位置の番号は、 1 から開始します。

partname <device name> デバイス名を指定します。

irlength <length of the JTAG

Instruction Register>デバイスの IR レジスタの幅を指定します。 この情報

は、 デバイスの BSDL ファ イルに記述されています。

idcode <device idcode> デバイスの JTAG ID コードを指定します。

jtagport <cpu> PowerPC JTAG ピンが FPGA ユーザー IO ピンに直接

接続されているかを指定します。

Page 173: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 173EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

-debugdevice のオプシ ョ ン (PowerPC オプシ ョ ン)

次のオプシ ョ ンを使用して、 デバッ グする FPGA デバイ ス とプロセッサの番号を指定し ます。

ISOCM、 キャ ッシュ、 TLB、 DCR レジスタなどの PowerPC の特殊な機能を未使用のメモリ アド

レスに割り当て、 デバッガから メモ リ アドレス と してアクセスできるよ うにするこ と も可能です。

この機能は、 GDB または XMD から これらのレジスタやメモ リの書き込みおよび読み出しを行う

場合に便利です。

メモ : これらのオプシ ョ ンでは、 ハードウェアに実際のメモリ マップは作成されません。

表 12-8 : -debugdevice のオプシ ョ ン (PowerPC オプシ ョ ン)

オプシ ョ ン 説明

devicenr <PowerPC device position> PowerPC を含む Virtex デバイスの JTAG チェーンでの位置を指定し

ます。 デバイス位置の番号は、 1 から開始します。

cpunr <CPU Number> 複数の PowerPC プロセッ サを含む Virtex デバイスで、 デバッ グす

る PowerPC の番号を指定します。 プロセッ サの番号は、 1 から開始

します。

fputype [sp|dp] XMD では、 PowerPC システムで浮動小数点ユニッ ト (FPU) は自動

的には検出されません。 FPU が検出されるよ うにするには、 このオ

プシ ョ ンでシステムに含まれる FPU のタイプを指定します。 指定可

能なタイプは、 次のとおりです。

sp : 単精度

dp : 倍精度

romemstartadr <ROM start address> 読み出し専用メモ リ (ROM) の開始アドレスを指定します。 このオプ

シ ョ ンは、 フラ ッシュ メモ リ の範囲を指定するのに使用できます。

XMD で、 ソフ ト ウェア ブレークポイン トではなくハードウェア ブレークポイン トが設定されます。

romemsize <ROM Size in Bytes> 読み出し専用メモ リ (ROM) のサイズを指定します。

isocmstartadr <ISOCM start address> 命令側オンチップ メモ リ (ISOCM) の開始アド レスを指定します。

PowerPC 405 プロセッサでのみ使用可能です。

isocmsize <ISOCM size in Bytes> ISOCM インターフェイスに接続された ISBRAM メモ リのサイズを

指定します。 PowerPC 405 プロセッサでのみ使用可能です。

isocmdcrstartadr <ISOCM (in Bytes) DCR

address>PowerPC 上で C_ISOCM_DCR_BASEADDR を使用して指定した

ISOCM インターフェイスに対応する DCR アドレスを指定します。

PowerPC 405 プロセッサでのみ使用可能です。

icachestartadr <I-Cache start address> 命令キャ ッシュの内容の読み出しまたは書き込みを行う開始アド レ

スを指定します。

dcachestartadr <D-Cache start address> データ キャ ッシュの内容の読み出しまたは書き込みを行う開始アド

レスを指定します。

itagstartadr <I-Cache start address> 命令キャ ッシュ タグの読み出しまたは書き込みを行う開始アドレス

を指定します。

dtagstartadr <D-Cache start address> データ キャ ッシュ タグの読み出しまたは書き込みを行う開始アドレ

スを指定します。

Page 174: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

174 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

PowerPC のデバッグにおける要件

XMD から JTAG を介して PowerPC プロセッサに接続するには、 次の 2 つの方法があ り ます。 これら 2 つの方法の要件を次に示します。

Virtex FPGA の JTAG ポート を使用して接続する方法

図 12-2 に示すよ うに、 PowerPC の JTAG ポート を JTAGPPC プリ ミ ティブを使用して FPGA のJTAG ポートに接続している場合は、 XMD から FPGA 内のどの PowerPC プロセッサにも接続で

きます。 詳細は、 『PowerPC 405 Processor Block Reference Guide』 および 『Embedded ProcessorBlock in Virtex-5 FPGAs Reference Guide』 を参照して ください。 この章の 「関連リ ソース」 に、

このマニュアルへのリ ンクがあ り ます。

ユーザー I/O ピンを使用して PowerPC の JTAG ポートに接続する方法

PowerPC の JTAG ポート を FPGA の I/O ピンに接続している場合は、XMD から PowerPC に直接

接続でき ます。 こ のデバッ グ設定に関する詳細は、 『PowerPC 405 Processor Block ReferenceGuide』 および 『Embedded Processor Block in Virtex-5 FPGAs Reference Guide』 を参照してくだ

さい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

tlbstartadr <TLB start address> 変換ルッ クアサイ ド バッファ (TLB) の読み出しまたは書き込みを行

う開始アドレスを指定します。

dcrstartadr <DCR start address> デバイス コン ト ロール レジスタ (DCR) の読み出しまたは書き込み

を行う開始アドレスを指定します。

こ のオプショ ンを使用すると 、XMD および GDB からのデバッ グに

おいて、 DCR のアド レス空間全体 (210 個のアド レス ) を指定し た

アド レスから 始まる アド レスにマッ プできます。

表 12-8 : -debugdevice のオプシ ョ ン (PowerPC オプシ ョ ン) (続き)

オプシ ョ ン 説明

図 12-2 : PowerPC のデバッグ

UG111_13_02_072407

XMD

JTAG

FPGA

PowerPC JTAG signals

JTAG PPC

PowerPC PowerPC

Page 175: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 175EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

デバッグ セッシ ョ ンの例

PowerPC 405 のデバッグ例

こ こでは、 PowerPC 405 をデバッグするセッシ ョ ンの例を示します。 connect ppc hw コマンドを

使用して PowerPC に接続した後、 基本的な XMD コマンドを使用します。

セッシ ョ ンの 後に、 powerpc-eabi-gdb が GDB リモート ターゲッ ト を使用して XMD に接続し

ます。 GDB の XMD への接続については、第 11 章 「GNU デバッガ (GDB)」 を参照して ください。

XMD% connect ppc hwJTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 f5059093 16 XCF32P 3 01e58093 10 XC4VFX12 4 49608093 8 xc95144xl

PowerPC405 Processor Configuration-------------------------------------Version.............................0x20011430User ID.............................0x00000000No of PC Breakpoints................4No of Read Addr/Data Watchpoints....1No of Write Addr/Data Watchpoints...1User Defined Address Map to access Special PowerPC Features using XMD: I-Cache (Data)........0x70000000 - 0x70003fff I-Cache (TAG).........0x70004000 - 0x70007fff D-Cache (Data)........0x78000000 - 0x78003fff D-Cache (TAG).........0x78004000 - 0x78007fff DCR...................0x78004000 - 0x78004fff TLB...................0x70004000 - 0x70007fffConnected to “ppc” target. id = 0Starting GDB server for “ppc” target (id = 0) at TCP port no 1234XMD% rrd r0: ef0009f8 r8: 51c6832a r16: 00000804 r24: 32a08800 r1: 00000003 r9: a2c94315 r17: 00000408 r25: 31504400 r2: fe008380 r10: 00000003 r18: f7c7dfcd r26: 82020922 r3: fd004340 r11: 00000003 r19: fbcbefce r27: 41010611 r4: 0007a120 r12: 51c6832a r20: 0040080d r28: fe0006f0 r5: 000b5210 r13: a2c94315 r21: 0080040e r29: fd0009f0 r6: 51c6832a r14: 45401007 r22: c1200004 r30: 00000003 r7: a2c94315 r15: 8a80200b r23: c2100008 r31: 00000003 pc: ffff0700 msr: 00000000XMD% srrd pc: ffff0700 msr: 00000000 cr: 00000000 lr: ef0009f8 ctr: ffffffff xer: c000007f pvr: 20010820 sprg0: ffffe204 sprg1: ffffe204 sprg2: ffffe204 sprg3: ffffe204 srr0: ffff0700 srr1: 00000000 tbl: a06ea671 tbu: 00000010 icdbdr: 55000000 esr: 88000000 dear: 00000000 evpr: ffff0000 tsr: fc000000 tcr: 00000000 pit: 00000000 srr2: 00000000 srr3: 00000000 dbsr: 00000300 dbcr0: 81000000 iac1: ffffe204 iac2: ffffe204 dac1: ffffe204 dac2: ffffe204 dccr: 00000000 iccr: 00000000 zpr: 00000000 pid: 00000000 sgr: ffffffff dcwr: 00000000 ccr0: 00700000 dbcr1: 00000000 dvc1: ffffe204 dvc2: ffffe204 iac3: ffffe204 iac4: ffffe204 sler: 00000000 sprg4: ffffe204 sprg5: ffffe204 sprg6: ffffe204 sprg7: ffffe204 su0r: 00000000usprg0: ffffe204

Page 176: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

176 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

XMD% rstSending System ResetTarget reset successfullyXMD% rwr 0 0xAAAAAAAAXMD% rwr 1 0x0XMD% rwr 2 0x0XMD% rrd r0: aaaaaaaa r8: 51c6832a r16: 00000804 r24: 32a08800 r1: 00000000 r9: a2c94315 r17: 00000408 r25: 31504400 r2: 00000000 r10: 00000003 r18: f7c7dfcd r26: 82020922 r3: fd004340 r11: 00000003 r19: fbcbefce r27: 41010611 r4: 0007a120 r12: 51c6832a r20: 0040080d r28: fe0006f0 r5: 000b5210 r13: a2c94315 r21: 0080040e r29: fd0009f0 r6: 51c6832a r14: 45401007 r22: c1200004 r30: 00000003 r7: a2c94315 r15: 8a80200b r23: c2100008 r31: 00000003 pc: fffffffc msr: 00000000XMD% mrd 0xFFFFFFFCFFFFFFFC: 4BFFFC74XMD% stpfffffc70:XMD% stpfffffc74:XMD% mrd 0xFFFFC000 5FFFFC000: 00000000FFFFC004: 00000000FFFFC008: 00000000FFFFC00C: 00000000FFFFC010: 00000000XMD% mwr 0xFFFFC004 0xabcd1234 2XMD% mwr 0xFFFFC010 0xa5a50000XMD% mrd 0xFFFFC000 5FFFFC000: 00000000FFFFC004: ABCD1234FFFFC008: ABCD1234FFFFC00C: 00000000FFFFC010: A5A50000XMD%XMD%

PowerPC 440 のデバッグ例

PowerPC 440 に接続するには、 connect ppc hw コマンドを使用します。

XMD によ りプロセッサのタイプが自動的に検出され、 PowerPC 440 プロセッサに接続されます。

ソフ ト ウェアを リモートでデバッグするには、 powerpc-eabi-gdb を使用します。 GDB の XMD への接続については、 第 11 章 「GNU デバッガ (GDB)」 を参照してください。

XMD% connect ppc hwJTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 f5059093 16 XCF32P 3 01e58093 10 XC4VFX12 4 49608093 8 xc95144xl

PowerPC405 Processor Configuration-------------------------------------

Page 177: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 177EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

Version.............................0x20011430User ID.............................0x00000000No of PC Breakpoints................4No of Read Addr/Data Watchpoints....1No of Write Addr/Data Watchpoints...1User Defined Address Map to access Special PowerPC Features using XMD: I-Cache (Data)........0x70000000 - 0x70003fff I-Cache (TAG).........0x70004000 - 0x70007fff D-Cache (Data)........0x78000000 - 0x78003fff D-Cache (TAG).........0x78004000 - 0x78007fff DCR...................0x78004000 - 0x78004fff TLB...................0x70004000 - 0x70007fffConnected to “ppc” target. id = 0Starting GDB server for “ppc” target (id = 0) at TCP port no 1234XMD% rrd r0: ef0009f8 r8: 51c6832a r16: 00000804 r24: 32a08800 r1: 00000003 r9: a2c94315 r17: 00000408 r25: 31504400 r2: fe008380 r10: 00000003 r18: f7c7dfcd r26: 82020922 r3: fd004340 r11: 00000003 r19: fbcbefce r27: 41010611 r4: 0007a120 r12: 51c6832a r20: 0040080d r28: fe0006f0 r5: 000b5210 r13: a2c94315 r21: 0080040e r29: fd0009f0 r6: 51c6832a r14: 45401007 r22: c1200004 r30: 00000003 r7: a2c94315 r15: 8a80200b r23: c2100008 r31: 00000003 pc: ffff0700 msr: 00000000XMD% srrd pc: ffff0700 msr: 00000000 cr: 00000000 lr: ef0009f8 ctr: ffffffff xer: c000007f pvr: 20010820 sprg0: ffffe204 sprg1: ffffe204 sprg2: ffffe204 sprg3: ffffe204 srr0: ffff0700 srr1: 00000000 tbl: a06ea671 tbu: 00000010 icdbdr: 55000000 esr: 88000000 dear: 00000000 evpr: ffff0000 tsr: fc000000 tcr: 00000000 pit: 00000000 srr2: 00000000 srr3: 00000000 dbsr: 00000300 dbcr0: 81000000 iac1: ffffe204 iac2: ffffe204 dac1: ffffe204 dac2: ffffe204 dccr: 00000000 iccr: 00000000 zpr: 00000000 pid: 00000000 sgr: ffffffff dcwr: 00000000 ccr0: 00700000 dbcr1: 00000000 dvc1: ffffe204 dvc2: ffffe204 iac3: ffffe204 iac4: ffffe204 sler: 00000000 sprg4: ffffe204 sprg5: ffffe204 sprg6: ffffe204 sprg7: ffffe204 su0r: 00000000usprg0: ffffe204XMD% rstSending System ResetTarget reset successfullyXMD% rwr 0 0xAAAAAAAAXMD% rwr 1 0x0XMD% rwr 2 0x0XMD% rrd r0: aaaaaaaa r8: 51c6832a r16: 00000804 r24: 32a08800 r1: 00000000 r9: a2c94315 r17: 00000408 r25: 31504400 r2: 00000000 r10: 00000003 r18: f7c7dfcd r26: 82020922 r3: fd004340 r11: 00000003 r19: fbcbefce r27: 41010611 r4: 0007a120 r12: 51c6832a r20: 0040080d r28: fe0006f0 r5: 000b5210 r13: a2c94315 r21: 0080040e r29: fd0009f0 r6: 51c6832a r14: 45401007 r22: c1200004 r30: 00000003 r7: a2c94315 r15: 8a80200b r23: c2100008 r31: 00000003 pc: fffffffc msr: 00000000XMD% mrd 0xFFFFFFFCFFFFFFFC: 4BFFFC74XMD% stpfffffc70:XMD% stp

Page 178: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

178 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

fffffc74:XMD% mrd 0xFFFFC000 5FFFFC000: 00000000FFFFC004: 00000000FFFFC008: 00000000FFFFC00C: 00000000FFFFC010: 00000000XMD% mwr 0xFFFFC004 0xabcd1234 2XMD% mwr 0xFFFFC010 0xa5a50000XMD% mrd 0xFFFFC000 5FFFFC000: 00000000FFFFC004: ABCD1234FFFFC008: ABCD1234FFFFC00C: 00000000FFFFC010: A5A50000XMD%XMD%

ISOCM メモリで実行され、 DCR レジスタにアクセスしているプログラムのデバッグ セッシ ョ ン例

こ こでは、PowerPC 405 の ISOCM メモ リで実行しているプログラムをデバッグするセッシ ョ ンの

例を示します。 ISOCM アドレス パラ メータは、 connect コマンドで指定できます。 XMP ファ イル

を読み込むと、 MHS ファ イルからシステムの ISOCM アドレス パラ メータが取得されます。

メモ : Virtex-4 デバイスでは、 ISOCM メモ リは読み出し可能です。 このオプシ ョ ンを使用する と、

ISOCM メモ リから実行されるプログラムのデバッグが向上します。 Virtex-II Pro デバイスでは、

ISOCM メモ リは読み出しできません。

XMD% connect ppc hw -debugdevice \isocmstartadr 0xFFFFE000 isocmsize 8192 isocmdcrstartadr 0x15 \dcrstartadr 0xab000000JTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 f5059093 16 XCF32P 3 01e58093 10 XC4VFX12 4 49608093 8 xc95144xl

PowerPC405 Processor Configuration-------------------------------------Version.............................0x20011430User ID.............................0x00000000No of PC Breakpoints................4No of Read Addr/Data Watchpoints....1No of Write Addr/Data Watchpoints...1ISOCM...............................0xffffe000 - 0xffffffffUser Defined Address Map to access Special PowerPC Features using XMD: I-Cache (Data)........0x70000000 - 0x70003fff I-Cache (TAG).........0x70004000 - 0x70007fff D-Cache (Data)........0x78000000 - 0x78003fff D-Cache (TAG).........0x78004000 - 0x78007fff DCR...................0xab000000 - 0xab000fff TLB...................0x70004000 - 0x70007fffXMD% stpffffe21c:XMD% stp

Page 179: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 179EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

ffffe220:XMD% bps 0xFFFFE218Setting breakpoint at 0xffffe218XMD% conProcessor started. Type "stop" to stop processorRUNNING>8Processor stopped at PC: 0xffffe218XMD%XMD% mrd 0xab000060 8AB000060: 00000000AB000064: 00000000

AB000068: FF000000 <--- DCR レジスタ : ISARCAB00006c: 81000000 <--- DCR レジスタ : ISCNTLAB000070: 00000000AB000074: 00000000

AB000078: FE000000 <--- DCR レジスタ : DSARCAB00007c: 81000000 <--- DCR レジスタ : DSCNTLXMD%

特殊な JTAG チェーン設定でのザイリンクス以外のデバイスのデバッグ セッシ ョ ン例

この例では、XMD で JTAG チェーンを自動検出できない場合を想定して、 -configdevice オプシ ョ

ンを使用して JTAG チェーンを指定しています。 ザイ リ ンクス以外のデバイスでは、JTAG の IR 幅が不明なため、 XMD で自動検出がう ま く機能しない可能性があ り ます。 JTAG (バウンダ リ スキャ

ン) の IR 幅は、 通常バウンダ リ スキャン記述言語 (BSDL) ファ イルに示されています。 IR 幅のみ

が重要な情報で、 デバイス名や ID コードなどのフ ィールドはオプシ ョ ンです。

こ こで示す例は、 次のよ うに実行されています。

• ザイ リ ンクス パラレル ケーブル (III または IV) の接続には、 LPT1 パラレル ポート を使用し

ます。

• JTAG チェーン内の 2 つのデバイスを明示的に示します。

• PROM の IR 幅、 デバイス名、 および ID コードを指定します。

• -debugdevice オプショ ンは、 JTAG チェーンの 2 番目のデバイスをデバッ グするこ と を指定

します。 Virtex デバイスで PowerPC が複数ある場合は、 初の PowerPC であるこ と も 指定

します。

XMD% connect ppc hw -cable type xilinx_parallel port LPT1 -configdevice devicenr 1 partname PROM_XC18V04 irlength 8 idcode 0x05026093 -configdevice devicenr 2 partname XC2VP4 irlength 10 idcode 0x0123e093 -debugdevice devicenr 2 cpunr 1

ザイリンクス以外のデバイスの追加

XMD は、 ${XILINX_EDK}/data/xmd/devicetable.lst からデバイス情報を読み出します。

XMD にデバイスのサポート を追加するには、 次の手順に従います。

1. devicetable.lst に、 デバイスの ID コード、 命令レジスタの幅、 および名前の情報を追加

します。

2. XMD が開いている場合は、閉じてからも う一度開きます。 JTAG チェーン内のデバイスが自動

的に認識されます。

Page 180: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

180 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

シミ ュレータを使用した PowerPC のデバッグ

XMD では、 ソケッ ト接続を使用して複数の PowerPC ISS に接続できます。 connect ppc sim コマ

ンドを使用してローカル ホス ト上の PowerPC ISS を起動し、 これに接続して、 リモー トの GDBサーバーを起動します。 connect ppc sim コマンドでは、ローカル ホス ト またはほかのマシン上で実

行中の PowerPC ISS にも接続でき ます。 XMD が PowerPC に接続された ら、 XMD を介し て

powerpc-eabi-gdb を PowerPC に接続し、 デバッグを実行します。

PowerPC ISS の実行

XMD は、 ISS をデフォルト の設定で起動し ます。

• ISS の実行ファ イ ルは ${XILINX_EDK}/third_party/bin/<platform>/ ディ レク

ト リ にあり ます。

• PowerPC 405 コンフィ ギュ レーショ ン ファ イ ルは ${XILINX_EDK}/third_party/data/iss405.icf です。

• PowerPC 440 コンフィ ギュ レーショ ン ファ イ ルは ${XILINX_EDK}/third_party/data/iss440.icf です。

ISS は異なる設定でも実行できます。 詳細は、『IBM Instruction Set Simulator User's Guide』 を参照

してください。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

ISS のデフォルト設定は、 次のとおりです。

• ローカル メモ リ バンク 2 個

• XMD デバッガに接続

• デバッガ ポート : 6470...6490

• データ キャ ッシュ サイズ : 8K

• 命令キャッシュ サイズ : 16K

• 非決定性乗算サイクル

• プロセッサのクロ ッ ク周期およびタイマのクロ ッ ク周期 : 5ns (200MHz)

表 12-9 : ローカル メモリ バンク

名前 開始アドレス 幅 スピード

Mem0 0x0 0x80000 0

Mem1 0xfff80000 0x80000 0

Page 181: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 181EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

図 12-3 に、 ISS を使用した PowerPC のデバッグを示します。

構文

connect ppc sim [-proctype <ppc440|ppc405>][-icf <Configuration File>] [-ipcport IP:<port>]

ISS を使用した PowerPC のデバッグ セッシ ョ ン例

XMD% connect ppc simInstruction Set Simulator (ISS)PPC405,Version 1.9 (1.76)(c) 1998, 2005 IBM CorporationWaiting to connect to controlling interface (port=6470, protocol=tcp)....[XMD] Connected to PowerPC SimControling interface connected....Connected to PowerPC target. id = 0Starting GDB server for target (id = 0) at TCP port no 1234XMD% dow dhry2.elfXMD% bps 0xffff09d0XMD% tracestart trace.outXMD% conProcessor started. Type "stop" to stop processor

図 12-3 : ISS を使用した PowerPC のデバッグ

表 12-10 : PowerPC ISS のオプシ ョ ン

オプシ ョ ン 説明

-proctype

<ppc405|ppc440>PowerPC プロセッサ タイプ (ppc405 = PowerPC 405 プロセッサ、

ppc440 = PowerPC 440 プロセッサ) を指定します。 このオプシ ョ ンを

指定しない場合、 デフォルトで ppc405 に設定されます。

-icf デフォルトのコンフ ィギュレーシ ョ ン ファ イルではなく、指定した ISSコンフ ィギュレーシ ョ ン ファ イルを使用します。 キャ ッシュ サイズ、メ

モ リ アドレス マップ、 メモ リのレイテンシなどの PowerPC ISS 機能を

カスタマイズできます。

-ipcport 起動した PowerPC ISS の IP アドレス とデバッグ ポート を指定します。

XMD は ISS を起動しませんが、 起動している ISS に接続します。

X10928

XMD

PowerPCCycle_Accurate

ISSISS4405/440.icf

TCP/IP SocketConnection

Page 182: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

182 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

RUNNING>XMD% tracestopXMD% tracestartXMD% conProcessor started. Type "stop" to stop processor

RUNNING>XMD% tracestop doneXMD% stats trace.outProgram Stats ::

Instructions : 197491 Loads : 20296 Stores : 19273 Multiplications : 3124 Branches : 27262 Branches taken : 20985 Returns : 2070

PowerPC のデバッグ ヒン ト (アドバンス)

ISOCM および ICACHE からのプログラムの実行

PowerPC 405 の ISOCM メモ リ (Virtex-II Pro デバイス) および 命令キャッシュ (ICACHE) からプ

ログラムをデバッグする際には、ソフ ト ウェア ブレークポイン トが使用できないなどの制限があ り

ます。 このよ う な場合、 cconnect コマンドのオプシ ョ ンと して ISOCM または ICACHE のアドレ

ス範囲が指定される と、 XMD によ りハード ウェア ブレークポイン ト が自動的に設定されます。

ICACHE では、 これは ICACHE の内容を固定してプログラムをすべて ICACHE から実行する場

合にのみ必要です。

詳細は、 XPS ヘルプを参照して ください。

前述の PowerPC の特殊機能には、 XMD コンソール ウ ィンド ウで connect コマンド と該当するオ

プシ ョ ンを指定する とアクセスできます。

サードパーティ デバッグ ツールの設定

WindRiver SingleStep や Green Hills Multi などのサードパーティのデバッグ ツールを使用するに

は、 FPGA から PowerPC の JTAG 信号をユーザー I/O と して取り出し、ハード ウェア ボードの該

当するデバッグ コネクタに接続して ください。 また、 JTAG 信号である TCK、 TMS、 TDI、 TDOとは別に、DBGC405DEBUGHALT と C405JTGTDOEN 信号も FPGA から取り出して、ユーザー

I/Oと して接続する必要があ り ます。PowerPC プロセッサが複数ある場合は、PowerPC の JTAG 信号を FPGA 内でチェーン接続するこ とをお勧めします。 PowerPC JTAG ポート と FPGA ユーザー

I/O の接続の詳細は、『PowerPC 405 Processor Block Reference Guide』および『Embedded ProcessorBlock in Virtex-5 FPGAs Reference Guide』 の JTAG ポートのセクシ ョ ンを参照してください。 こ

の章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

メモ : PowerPC の JTAG 信号をユーザー I/O と して取り出す場合は、 JTAGPowerPC モジュール

は使用しないでください。

Page 183: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 183EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

MicroBlaze プロセッサのデバッグ

XMD では、mdm/opb_mdm ペリ フェラルを使用して、JTAG を介して複数の MicroBlaze プロセッ

サに接続できます。 XMD は、 JTAG またはシ リ アル インターフェイスを介して、 XMDStub など

の ROM モニタ と通信します。 プログラムのデバッグには、ビルト インのサイクル精度 MicroBlazeISS も使用できます。 次のセクシ ョ ンで、 これらのターゲッ ト をデバッグする際のオプシ ョ ンにつ

いて説明します。

MDM を使用した MicroBlaze のデバッグ

MDM に接続するには、 connect mb mdm コマンドを使用し、 リモート GDB サーバーを起動しま

す。 MDM では、ハードウェア ブレークポイン トおよびシングル ステップのデバッグがサポート さ

れており、 ROM モニタは必要あ り ません。

connect mb mdm コマンドでオプシ ョ ンを指定しない場合は、XMD によ り JTAG ケーブル、チェー

ン、 MicroBlaze と MDM を含む FPGA デバイスが自動的に検出されます。 XMD で JTAG チェー

ンまたは FPGA デバイスが自動的に検出されない場合は、次のオプシ ョ ンを使用して指定する必要

があ り ます。

構文

connect mb hw [-cable <JTAG Cable options>] {[-configdevice

<JTAG chain options>]} [-debugdevice <MicroBlaze options>]

図 12-4 : MDM を使用した MicroBlaze のデバッグ

X10843

JTAG

XMD

MicroBlaze Debug SignalsOPB/PLBv46 Bus

Multiple MicroBlazeProcessors

MicroBlaze

MDMUART

MicroBlaze

Page 184: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

184 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

-cable および -configdevice のオプシ ョ ン

-cable のオプショ ン (JTAG ケーブル オプショ ン ) については 172 ページの表 12-6、-configdevice のオプシ ョ ン (JTAG チェーン オプシ ョ ン) については 172 ページの表 12-7 を参照してください。

-debugdevice のオプシ ョ ン (MicroBlaze オプシ ョ ン)

表 12-11 に、 -debugdevice のオプシ ョ ン (MicroBlaze オプシ ョ ン) を示します。

MDM を使用した MicroBlaze のデバッグにおける要件

1. ハードウェア ブレークポイン ト、ステップや停止などの MicroBlaze のハード ウェア デバッグ

機能を使用するには、 MicroBlaze のデバッグ ポート を MDM に接続する必要があ り ます。

2. MDM で UART 機能を使用するには、 システムに MDM コアをインスタンシエート して、

C_USE_UART パラ メータを設定する必要があ り ます。

メモ : MDM を使用する場合は、 XMDStub モードではなく executable モードでプログラムをコン

パイルする必要があ り ます。 XMDStub をコンパイルするための XMDSTUB_PERIPHERAL を指

定する必要はあ り ません。

デバッグ セッシ ョ ンの例

MDM を使用した MicroBlaze のデバッグの例

こ こでは、 MDM を使用した MicroBlaze のデバッグのセッシ ョ ン例を示します。 基本的な XMDコマンドは、 connect mb mdm コマンドを使用して MDM に接続した後に使用します。 セッシ ョ ン

の 後に、GDB リモート ターゲッ ト を使用して mb-gdb に接続します。 GDB の XMD への接続に

ついては、 第 11 章 「GNU デバッガ (GDB)」 を参照してください。

表 12-11 : -debugdevice のオプシ ョ ン (MicroBlaze オプシ ョ ン)

オプシ ョ ン 説明

devicenr <MicroBlaze

device position>MicroBlaze プロセ ッ サを含む FPGA デバイ スの JTAGチェーン内での位置を指定します。 デバイス位置の番号は、

1 から開始します。

cpunr <CPU Number> FPGA に opb_mdm に接続された MicroBlaze プロセッサが

複数含まれている場合に、 デバッグする MicroBlaze プロ

セッサの番号を指定します。 プロセッサの番号は、 1 から開

始します。

romemstartadr <ROM start

address>読み出し専用メモリ (ROM) の開始アドレスを指定します。

フラ ッシュ メモ リの範囲を指定するには、 このオプシ ョ ン

を使用します。 XMD で、 ソフ ト ウェア ブレークポイン トで

はなくハード ウェア ブレークポイン トが設定されます。

romemsize <ROM Size in

Bytes>読み出し専用メモリ (ROM) のサイズを指定します。

tlbstartadr

<TLB start address>

変換ルッ クアサイ ド バッファ (TLB) の読み出しおよび書き

込みの開始アドレスを指定します。

Page 185: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 185EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

XMD% connect mb mdmJTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 f5059093 16 XCF32P 3 01e58093 10 XC4VFX12 4 49608093 8 xc95144xl

MicroBlaze Processor Configuration:-------------------------------------Version............................7.00.aOptimisation.......................PerformanceInterconnect.......................PLBv46No of PC Breakpoints...............3No of Read Addr/Data Watchpoints...1No of Write Addr/Data Watchpoints..1Exceptions Support................offFPU Support.......................offHard Divider Support...............offHard Multiplier Support............on - (Mul32)Barrel Shifter Support.............offMSR clr/set Instruction Support....onCompare Instruction Support........onPVR Supported......................onPVR Configuration Type.............Base

Connected to MDM UART TargetConnected to “mb” target. id = 0Starting GDB server for “mb” target (id = 0) at TCP port no 1234XMD% rrd r0: 00000000 r8: 00000000 r16: 00000000 r24: 00000000 r1: 00000510 r9: 00000000 r17: 00000000 r25: 00000000 r2: 00000140 r10: 00000000 r18: 00000000 r26: 00000000 r3: a5a5a5a5 r11: 00000000 r19: 00000000 r27: 00000000 r4: 00000000 r12: 00000000 r20: 00000000 r28: 00000000 r5: 00000000 r13: 00000140 r21: 00000000 r29: 00000000 r6: 00000000 r14: 00000000 r22: 00000000 r30: 00000000 r7: 00000000 r15: 00000064 r23: 00000000 r31: 00000000 pc: 00000070 msr: 00000004

<--- XMD% コンソールから GDB を起動 --->XMD% start mb-gdb microblaze_0/code/executable.elfXMD%

<--- GDB から XMD への接続が確立され、 GDB GUI からデバッグを実行 --->XMD: Accepted a new GDB connection from 127.0.0.1 on port 3791XMD%XMD: GDB Closed connectionXMD% stpBREAKPOINT at 114: F1440003 sbi r10, r4, 3XMD% dis 0x114 10 114: F1440003 sbi r10, r4, 3 118: E0E30004 lbui r7, r3, 4 11C: E1030005 lbui r8, r3, 5 120: F0E40004 sbi r7, r4, 4 124: F1040005 sbi r8, r4, 5 128: B800FFCC bri -52 12C: B6110000 rtsd r17, 0 130: 80000000 Or r0, r0, r0

Page 186: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

186 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

134: B62E0000 rtid r14, 0 138: 80000000 Or r0, r0, r0XMD% dow microblaze_0/code/executable.elfXMD% conInfo:Processor started. Type “stop” to stop processorRUNNING> stop XMD% Info:User Interrupt, Processor Stopped at 0x0000010cXMD% conInfo:Processor started. Type “stop” to stop processorRUNNING> rrd pc

pc : 0x000000f4 <--- MDM では、プログラムの実行中に MicroBlaze の現在の PC を 読み出し可能

RUNNING> rrd pc

pc : 0x00000110 <--- プログラムの実行中は PC が常に変化RUNNING> stopInfo:Processor started. Type “stop” to stop processorXMD% rrd r0: 00000000 r8: 00000065 r16: 00000000 r24: 00000000 r1: 00000548 r9: 0000006c r17: 00000000 r25: 00000000 r2: 00000190 r10: 0000006c r18: 00000000 r26: 00000000 r3: 0000014c r11: 00000000 r19: 00000000 r27: 00000000 r4: 00000500 r12: 00000000 r20: 00000000 r28: 00000000 r5: 24242424 r13: 00000190 r21: 00000000 r29: 00000000 r6: 0000c204 r14: 00000000 r22: 00000000 r30: 00000000 r7: 00000068 r15: 0000005c r23: 00000000 r31: 00000000 pc: 0000010c msr: 00000000XMD% bps 0x100Setting breakpoint at 0x00000100XMD% bps 0x11c hwSetting breakpoint at 0x0000011cXMD% bpl

SW BP: addr = 0x00000100, instr = 0xe1230002 <-- ソフ ト ウェア ブレークポイン ト

HW BP: BP_ID 0 : addr = 0x0000011c <-- ハード ウェア ブレークポイン トXMD% conInfo:Processor started. Type “stop” to stop processorRUNNING>Processor stopped at PC: 0x00000100Info:Processor stopped. Type “start” to start processorXMD% conInfo:Processor started. Type “stop” to stop processorRUNNING>Info:Processor started. Type “stop” to stop processor

XMDStub を使用した MicroBlaze のデバッグ

XMDStub (プロセッサ上で実行される ROM モニタ) を使用して MicroBlaze に接続し、GDB サー

バーを起動します。 XMD は、 JTAG またはシ リアル インターフェイスを使用して XMDStub に接

続します。 デフォルト オプシ ョ ンでは、 JTAG インターフェイスを使用して接続されます。

XMDStub/JTAG を使用した MicroBlaze のデバッグ用のコマンド オプシ ョ ン

構文

connect mb stub -comm jtag [-cable <JTAG Cable options>]

[-configdevice <JTAG chain options>] [-debugdevice

<MicroBlaze options>]

Page 187: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 187EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

-cable および -configdevice のオプシ ョ ン

-cable のオプショ ン (JTAG ケーブル オプショ ン ) については 172 ページの表 12-6、-configdevice のオプシ ョ ン (JTAG チェーン オプシ ョ ン) については、172 ページの表 12-7 を参照してください。

-debugdevice のオプシ ョ ン (MicroBlaze オプシ ョ ン)

XMDStub/シリアル インターフェイスを使用した MicroBlaze のデバッグ用の

コマンド オプシ ョ ン

構文

connect mb stub -comm serial <Serial Communication options>

-comm serial のオプシ ョ ン (シリアル通信オプシ ョ ン)

XMDStub/シ リ アル インターフェ イスを使用した MicroBlaze のデバッグで使用するオプシ ョ ン

を、 次に示します。

メモ : プログラムに UART または MDM UART に出力を書き出す print() または putnum() などの

I/O 関数がある場合は、 XMD を起動したコンソール/ターミナルに表示されます。 ラ イブラ リおよ

び I/O 関数については、 第 4 章 「Library Generator (Libgen)」 を参照して ください。

表 12-12 : -debugdevice のオプシ ョ ン (MicroBlaze オプシ ョ ン)

オプシ ョ ン 説明

devicenr

<MicroBlaze device position>MicroBlaze を含む FPGA デバイスの JTAG チェーン内

での位置を指定します。

表 12-13 : XMDStub/シリアル インターフェイスを使用した MicroBlaze のデバッグ用の

コマンド オプシ ョ ン

オプシ ョ ン 説明

-port <serial port> XMD 接続がシ リ アル ケーブルを介している場合に、

リモート ハード ウェアが接続されているシ リ アル ポート を指定します。

デフォルトのシ リ アル ポートは、 次のとおりです。

• Linux : /dev/ttyS0

• Windows : Com1

-baud <serial port baud rate> シ リ アル ポー ト のボー レー ト を bps で指定します。

デフォルト値は 19200bps です。

-timeout <timeout in secs> XMD コマンドが XMDStub からの応答を待つ時間を

秒で指定します。

Page 188: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

188 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

XMDStub を使用したデバッグにおける要件

XMD を使用したハードウェア ボード上のプログラムのデバッグは、 次のよ うに行われます。

• XMD は、 JTAG またはシ リアル接続を使用してボード上の XMDStub と通信します。 そのた

め、 タ ーゲッ ト の MicroBlaze シス テム の MSS フ ァ イ ルで MDM ま たは UART をXMDSTUB_PERIPHERAL と して指定する必要があ り ます。

Platform Generator では、 MHS ファ イルで指定する と、 MDM または UART を含むシステム

を作成できます。 XMDStub モードでサポート される JTAG ケーブルは、 ザイ リ ンク ス パラ

レル ケーブルと プラ ッ ト フォーム USB ケーブルです。

図 12-5 : XMDStub を使用し、 JTAG UART および UARTlite を介した MicroBlaze のデバッグ

X10844

JTAG

XMD

OPB/PLBv46 Bus

MicroBlaze

UART

xmdstub

Local Memory

RS-232 (Serial Cable)

XMD

OPB/PLBv46 Bus

MicroBlaze

Uartlite

xmdstub

Local Memory

MDM

Page 189: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 189EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

• ボード上の XMDStub は、MDM または UART を使用してホス ト コンピュータ と通信します。

そのため、MicroBlaze システムで MDM または UART を使用できるよ う設定する必要があ り

ます。

Library Generator (Libgen) では、 XMDStub をシステムの XMDSTUB_PERIPHERAL を使用す

るよ う設定できます。 Libgen によ り XMDStub が XMDSTUB_PERIPHERAL を使用するよ う設

定され、MSS ファ イルの XMDStub 属性で指定されるよ うに code/xmdstub.elf に組み込ま

れます。 詳細は、 第 4 章 「Library Generator (Libgen)」 を参照して ください。

• XMDStub の実行ファイルは、 システムの起動時に MicroBlaze のローカル メモ リに含まれて

いる必要があ り ます。

XMDStub の MicroBlaze メモ リへの書き込みは、Data2MEM によ り行われます。 Libgen によ

り、 MicroBlaze システムのビッ ト ス ト リームの内容を BRAM に書き込むための Data2MEMスク リプ ト が生成されます。 これには、 DEFAULT_INIT で指定されている実行ファ イルが使

用されます。

• デバッグするためにボードにダウンロードする必要のあるプログラムは、 開始ア ド レスを

0x800 よ り大き く し、 crt1.o のスタート アップ コード と リ ンクする必要があ り ます。

mb-gcc を -xl-mode-xmdstub オプシ ョ ンを使用して実行する と、これらの条件を満たしてプロ

グラムをコンパイルできます。

メモ : ソース レベルのデバッグでは、 プログラムのコンパイルに -g オプシ ョ ンも使用する必要が

あ り ます。 C プログラムの機能を初めて検証する場合は、 -O2 または -O3 などの mb-gcc の 適化

オプシ ョ ンを使用しないこ とをお勧めします。これらのオプシ ョ ンを使用する と、 適化によ り コー

ドが大幅に変わる場合があるので、 デバッグが困難になり ます。

シミ ュレータを使用した MicroBlaze のデバッグ

mb-gdb および XMD を使用して、 XMD に組み込まれたサイ クル精度シ ミ ュレータ上でプログラ

ムをデバッグできます。

構文

connect mb sim [-memsize <size>]

シミ ュレータを使用した MicroBlaze のデバッグのオプシ ョ ン

シミ ュレータを使用したデバッグにおける要件

XMD を使用してサイクル精度 ISS (命令セッ ト シ ミ ュレータ ) でプログラムをデバッグするには、

プログラムをデバッグ用にコンパイルし、 crt0.o のスタート アップ コードに リ ンクする必要があ

り ます。

mb-gcc を -g オプシ ョ ンを使用して実行する と、 プログラムがデバッグ用にコンパイルされ、 デ

フォルト ですべてのプロ グラ ムが crt0.o にリ ンク さ れます。 実際のオプショ ンは -xl-mode-executable です。

表 12-14 : シミ ュレータを使用した MicroBlaze のデバッグのオプシ ョ ン

オプシ ョ ン 説明

-memsize <size> シ ミ ュレータに割り当てる メモリ アドレス バスの幅を

指定します。 プログラムは、 0 ~ (2size) - 1 のメモ リ範

囲にアクセスできます。 デフォル トのメモ リ サイズは

64KB です。

Page 190: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

190 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

プログラムのメモ リ サイズは 64KB 以下にし、 アドレス 0 で開始します。 プログラムは、 メモ リ

の 初の 64KB に保存する必要があ り ます。

メモ : シ ミ ュレータを使用したデバッグでは、OPB ペリ フェラルのシ ミ ュレーシ ョ ンはサポート さ

れていません。

MDM ペリフ ェラルおよび UART を使用したデバッグ

MDM ペリ フェラルに接続し、 UART インターフェイスを使用して、デバッグおよびシステムから

情報を収集できます。

構文

connect mdm -uart

MDM を使用したデバッグにおける要件

MDM で UART 機能を 使用する には、 シス テム に MDM を イ ン ス タ ン シエート し て、

C_USE_UART パラ メータを設定する必要があ り ます。

xuart w <byte> コマンドを使用しても、 ホス トから MicroBlaze 上のプログラムに UART 入力

を供給できます。 terminal コマンドを使用する と、 ハイパーターミナルのよ う なインターフェイス

が開き、UART インターフェイスからの読み出しおよび書き込みを実行できます。 read_uart コマン

ドを使用する と、 STDIO またはファイルに書き込むインターフェイスが提供されます。

デバッグ セッシ ョ ンの設定

デバッグ セッシ ョ ンを設定するには、 debugconfig コマンドを使用します。 デバッガの命令の進行

方法、 メモ リのアクセス方法などを設定できます。

構文

debugconfig [-step_mode {disable_interrupt|enable_interrupt}]

[-memory_datawidth_matching {disable|enable}] [-vpoptions

<virtual platform options>] [-reset_on_run {<system>|<processor>}

{enable|disable}]

表 12-15 : debugconfig のオプシ ョ ン

オプシ ョ ン 説明

オプシ ョ ンなし 現在のセッ ショ ンの現在のデバッ グ設定を表示し

ます。

-step_mode {disable_interrupt|

enable_interrupt}

命令ステップ モードを指定します。

• disable_interrupt : 命令の進行中の割り

込みを無効にします。これがデフォルト モード

です。

• enable_interrupt : 命令の進行中の割り込

みを有効にします。 命令中に割り込みが発生す

る と、 その割り込みはプログラムの割り込みハ

ンド ラによ り処理されます。

Page 191: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 191EDK 10.1 サービス パッ ク 1

connect コマンドのオプシ ョ ンR

命令ステップ モードの設定

XMD では 2 つの命令ステップ モードがサポート されており、 debugconfig コマンドで指定でき

ます。 サポート されている 2 つのモードは、 次のとおりです。

• 割り込み無効

命令の進行中の割り込みは無効です。 これがデフォルト モードです。

• 割り込み有効

命令進行中の割り込みは有効です。 次の命令にブレークポイン トが設定され、 プロセッサが実

行されます。

命令中に割り込みが発生する と、 その割り込みは割り込みハンド ラによ り処理されます。 プロ

グラムは次の命令で停止します。

メモ : プログラムの命令メモリは、プロセッサの D 側インターフェイスに接続する必要があり ます。

-memory_datawidth_matching

{disable|enable}メモ リ の読み出し /書き込みの処理方法を指定しま

す。 デフォルトでは、 enable に設定されています。

すべてのデータ幅 (バイ ト、ハーフ ワード、 ワード )が、 適な方法で処理されます。 このオプシ ョ ンは、

データ幅アクセスに厳密に従 う必要のある メモ リ

コン ト ローラやフラ ッシュ メモ リ などで特に便利

です。

このオプシ ョ ンを disable に設定にする と、XMDによ り ワード アクセスなどの 適なデータ幅アク

セス方法が選択されます。

-reset_on_run

{<system> | <processor>}

{enable | disable}

プログラム実行時のリセッ トの処理方法を指定しま

す。 リセッ ト を実行する と、 システムが既知の一定

したステートにな り、 プログラムが以前の実行の影

響を受けずに正し く実行されます。 デフォルトで

は、 プログラムのダウンロードおよびプログラムの

実行時にシステム リセッ トが実行されます。

• 異なる リセッ ト タイプを設定するには、 次のよ

うに入力します。

debugconfig -reset_on_run processor

enable

debugconfig -reset_on_run system

enable

• リセッ ト をディ スエーブルにするには、 次のよ

うに入力します。

debugconfig -reset_on_run disable

表 12-15 : debugconfig のオプシ ョ ン (続き)

オプシ ョ ン 説明

Page 192: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

192 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

XMD% debugconfigDebug Configuration for Target 0---------------------------------Step Mode.................... Interrupt DisabledMemory Data Width Matching... Disabled

XMD% debugconfig -step_mode enable_interruptXMD% debugconfigDebug Configuration for Target 0---------------------------------Step Mode.................... Interrupt EnabledMemory Data Width Matching... Disabled

メモリ アクセスの設定

XMD では、 異なる メ モリ データ幅へのアク セスがサポート さ れています。 サポート さ れるデー

タ幅は、 ワード (32 ビッ ト )、 ハーフ ワード (16 ビッ ト )、 およびバイ ト (8 ビッ ト ) です。 デフォ

ルト では、 メ モリ の読み出し /書き 込み処理に適切なデータ 幅が XMD によ り 選択さ れま す。

debugconfig コマンドを使用する と、 データ幅がメモリ処理のデータ幅と一致するよ う設定でき

ます。 この設定は、 異なるデータ幅のフラ ッシュ デバイスにアクセスする場合に必要です。

XMD% debugconfigDebug Configuration for Target 0---------------------------------Step Mode.................... Interrupt DisabledMemory Data Width Matching... Enabled

XMD% debugconfig -memory_datawidth_matching disableXMD% debugconfigDebug Configuration for Target 0---------------------------------Step Mode.................... Interrupt DisabledMemory Data Width Matching... Disabled

マルチプロセッシング システムでのリセッ トの設定

デフォルトでは、プロセッサにプログラムがダウンロード される とシステム リセッ トが実行されま

す。 これは、 プログラムを実行する前にプロセッサのステート を既知のものにするためです。 マル

チプロセッシング システムでは、プログラムのダウンロードおよび実行が複数のプロセッサで順次

発生します。

システム アーキテクチャによっては、 ダウンロード時に実行されるシステム リセッ トによ り、 別の

プロセッサにダウンロード されたプログラムがリセッ ト されてしま う こ とがあ り ます。 この動作が

好ましい場合とそ うでない場合があるので、 debugconfig コマンドを使用してシステム リ セッ ト を

ディ スエーブルにしたり、 特定のプロセッサのみでリセッ トがイネーブルになるよ うに設定します。

次に例を示します。

例 1 : 1 つのマスタ プロセッサと複数のスレーブ プロセッサ

この例では、マスタ プロセッサ上のプログラムが 初にダウンロード されて実行され、その後ほか

のプロセッサへのダウンロードが実行されます。 この場合、マスタ プロセッサへのダウンロード時

のシステム リ セッ ト をイネーブルにし、 ほかのプロセッサへのダウンロード時にはプロセッサ リセッ トのみをイネーブルにするか、 またはリセッ ト なしにします。

Page 193: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 193EDK 10.1 サービス パッ ク 1

XMD 内部 Tcl コマンドR

例 2 : 2 つの同等のプロセッサ

この例では、 ダウンロード シーケンスは任意にでき、 両方のプロセッサでプロセッサ リ セッ トの

みをイネーブルにするか、 またはリセッ ト なしにします。 このよ うにする と、 一方のプロセッサへ

のプログラムのダウンロードがも う一方のプロセッサのシステム ステート に影響を及ぼすこ とは

あ り ません。

このモデルにおける リセッ トの接続とシーケンスについては、 proc_sys_reset IP モジュールの資料

を参照してください。

XMD 内部 Tcl コマンド

Tcl インターフェイス モードでは、XMD コマンドが追加された Tcl シェルが起動します。 XMD Tclコマンドはすべて x とい う文字で開始し、 XMD で 「x?」 と入力する と表示されます。

これらの内部コマンドには、 158 ページの図 12-1 に示す Tcl ラ ッパを使用する こ と をお勧めしま

す。 Tcl ラ ッパ ファ イルによ り これらのコマンドほとんどの出力が表示され、 よ り多くのオプシ ョ

ンが提供されます。 Tcl ラ ッパは以前のバージ ョ ンでも機能しますが、 x<name> コマンドは将来の

EDK リ リースでは使用できな くな り ます。

プログラム初期化オプシ ョ ン

表 12-16 : プログラム初期化オプシ ョ ン

オプシ ョ ン 説明

xload_sysfile <XMP System file> XMP ファ イルを読み込みます。

xrut [Session ID] XMD ソケッ ト インターフェイスを介して通信する場合に、XMD セッ

シ ョ ンを認証します。 まずセッシ ョ ン ID が割り当てられ、続く呼び出

しによ りセッシ ョ ン ID が返されます。

xconnect <target> {mb|ppc|mdm}

<connect type> [options]

プロセッサまたはペリ フェラルに接続します。 有効なターゲッ ト タイ

プは、 mb、 ppc、 および mdm です。

オプシ ョ ンの詳細は、 「connect コマンドのオプシ ョ ン」 を参照してく

ださい。

xvpconnect mb MicroBlaze 仮想プラ ッ ト フォームに接続します。

xdisconnect <target id> ターゲッ ト との接続を解除します。

Page 194: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

194 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

レジスタ /メモリのオプシ ョ ン

xtargets -listSysID

xtargets -system <system_ID> [-print]

[-listTgtID]

xtargets -target <target_ID>

{-print | -prop}

現在の XMD セッ ショ ンのシステムおよびタ ーゲッ ト 情報を表示し

ます。

• -listSysID : 既存のシステムを リ ス ト表示します。

• -system <system_ID> : 指定したシステムの情報を表示します。

♦ -print : システムの異なるターゲッ ト を印刷します。

♦ -listTgtID : システムの既存のターゲッ ト をリ スト 表示します。

• -target <target_ID> : 指定したターゲッ ト の情報を表示します。

♦ -print : ターゲッ トの情報を印刷します。

♦ -prop : ターゲッ トのプロパティを表示します。

xdebugconfig <target id>

[-step_mode <Step Type>]

[-memory_datawidth_matching

{disable|enable}]

[-vpoptions <virtual platform

options>] [-reset_on_run

{<system>|<processor>}

{enable|disable}]

ターゲッ ト のデバッグ セッシ ョ ンを設定します。 詳細は、 「デバッグ

セッシ ョ ンの設定」 を参照してください。

表 12-17 : レジスタ /メモリのオプシ ョ ン

オプシ ョ ン 説明

xrmem <target id> <address> {<num

of bytes|half|word>} {b|h|w}

xrmem <target id> -var <Global

Variable Name>

メモ リ ア ド レス <address> から指定のワード /バイ ト数のメモ リ ロケー

シ ョ ンを読み出します。 デフォルトでは、 1 バイ ト読み出します (b)。 データ

値の リ ス ト が返されます。 データ タイプは、 メモ リ アクセスのデータ幅に

よって異なり ます。

xwmem <target id> <address> {<num

of bytes|half|word>} {b|h|w}

<value list>

xwmem <target id> -var <Global

Variable Name> <value list>

メ モリ アド レス <address> から指定のワード /バイト 数のメ モリ ロケーショ

ンにデータ値を書き込みます。 デフォルト では、 1 バイト 書き込みます (b)。

xrreg <target id> [reg] すべてのレジスタまたはレジスタ reg のみを読み出します。

xwreg <target id> [reg] [value] レジスタ reg に value で指定した 32 ビッ トの値を書き込みます。

表 12-16 : プログラム初期化オプシ ョ ン (続き)

オプシ ョ ン 説明

Page 195: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 195EDK 10.1 サービス パッ ク 1

XMD 内部 Tcl コマンドR

プログラム制御オプシ ョ ン

xdownload <target id> <filename>

[load address]

xdownload <target id> -data

<filename> <load address>

指定の ELF ファ イルまたはデータ ファ イル (-data オプシ ョ ンを使用) を、

現在のターゲッ トのメモ リにダウンロード します。

アドレスを指定しない場合は、ELF ファ イルのヘッダからダウンロードする

アドレスが判断されます。

アドレスを指定した場合は、ELF ファ イルは位置独立コード (PIC コード ) として処理されて指定のアド レスにダウンロード され、 PIC コードのセマン

ティ クスに従って、 レジスタ R20 が開始アドレスに設定されます。

XMD では、 XMDStub 領域 (アドレス 0x0 ~ 0x800) への書き込みを禁止す

る目的以外では、 バウンド チェッ クは行われません。

xelf_verify <target id>

[<filename>.elf]<filename>.elf がメモリに正し くダウンロード されたかど うかを確認し

ます。

<filename>.elf を指定しない場合は、 後にダウンロード された ELF ファ イルが確認されます。

xdata_verify <target id> <Binary

filename> <load address><Binary filename> が <load address> のメモリに正し くダウンロー

ド されたかど うかを確認します。

xstack_check <target id> 現在のターゲッ ト で実行中のプログラムのスタッ ク使用情報を表示します。

ターゲッ ト に 後にダウンロード された ELF ファイルのスタッ クがチェッ ク

されます。

xdisassemble <inst> 逆アセンブルを実行し 、 32 ビッ ト 命令を 1 つ表示します。

表 12-18 : プログラム制御オプシ ョ ン

オプシ ョ ン 説明

xcontinue <target id> [<Execute Start

Address>] [-block]

現在の PC または指定のアドレス <Execute Start Address> から実

行を続けます。

• -block オプシ ョ ンを指定した場合は、 プロセッサがブレークポイ

ン ト またはウォッチポイン トで停止する と、 コマンドが戻されます。

このオプシ ョ ンは、 スク リプ トで使用する と有益です。

xrun <target id> プログラムを開始アドレスから実行します。

xstop <target id> プログラムの実行を停止します。

xcycle_step <target id> [cycles] PowerPC ISS の 1 クロ ッ ク サイ クル分進めます。 cycles を指定した場

合は、 そのクロ ッ ク サイクル数だけ進めます。a

xstep <target id> MicroBlaze で 1 命令分進めます。 imm 命令では、 次の命令も実行され

ます。 この操作では、 BIP フラグが設定され、 割り込みはディ スエーブ

ルになり ます。 デバッグで割り込みをイネーブルにするには、

xcontinue をブレークポイン ト と共に使用してください。

xreset <target id> [reset type] ターゲッ ト を リセッ ト します。 196 ページの表 12-19 に示されている信

号など、 特定のリセッ ト タイプを設定するこ と も可能です。

表 12-17 : レジスタ /メモリのオプシ ョ ン (続き)

オプシ ョ ン 説明

Page 196: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

196 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

xbreakpoint <target id>

{addr|function name} {sw|hw}指定のアド レスまたは関数の開始部分にブレークポイント を設定します。

メモ : XMDStub ターゲッ トでは、 imm 命令の直後の命令にブレークポ

イン トがある と、 不定な結果となる場合があ り ます。

xwatch <target id> {r|w} <address>

[<data value>]指定のアド レス <address> に読み出し /書き込みウォ ッチポイン ト を

設定し、 <data value> をチェッ クします。 <data value> を指定し

ない場合は、 ウォ ッチポイン トは任意の値に一致します。 アドレスおよ

びデータは、16 進数フォーマッ ト または 2 進数フォーマッ トで指定でき

ます。

xremove <target id>

{<addr>|<function name>|<bp id>|all]

1 つまたは複数のブレークポイン ト /ウォ ッチポイン ト を削除します。

xlist <target id> すべてのブレークポイン トのアドレスを表示します。

a. このコマンドは、 シ ミ ュレータを使用する場合のみ使用可能です。

表 12-18 : プログラム制御オプシ ョ ン (続き)

オプシ ョ ン 説明

表 12-19 : ハードウェアを使用した MicroBlaze のデバッグで使用される信号

信号名 (値) 説明

プロセッサ ブレーク (0x20) JTAG UART Ext_Brk 信号を使用して、 MicroBlaze の Brk 信号を High にします。

MicroBlaze の BIP (Break-in-Progress) フラグを設定し、アドレス 0x18 にジャンプ

します。

マスク不可ブレーク (0x10) ブレーク信号と同様に機能しますが、 BIP フラグが設定されている場合でも機能し

ます。

BIP フラグの詳細は、 『MicroBlaze プロセッサ リ ファレンス ガイ ド』 を参照して く

ださい。 この章の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

システム リセッ ト (0x40) OPB Rst を JTAG UART Debug_SYS_Rst 信号を使用して送信し、 システム全体を

リセッ ト します。

プロセッサ リセッ ト (0x80) JTAG UART Debug_Rst 信号を使用して MicroBlaze を リセッ ト します。

Page 197: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 197EDK 10.1 サービス パッ ク 1

XMD 内部 Tcl コマンドR

プログラム ト レース/プロファイル オプシ ョ ン

その他のコマンド

表 12-20 : プログラム ト レース/プロファイル オプシ ョ ン

オプシ ョ ン 説明

xstats <target id> [options] 現在のセッシ ョ ンのシ ミ ュレーシ ョ ン統計を表示します。resetオプシ ョ ンを使用する と、シ ミ ュレーシ ョ ン統計を リセッ トで

きます。a

a. このコマンドは、 ISS/仮想プラ ッ ト フォームを使用する場合のみ使用可能です。 VPgen は廃止されています。

xtracestart <target id> ト レース情報の収集を開始します。

xtracestop <target id> ト レース情報の収集を停止します。 a

xprofile <target id> [-o <GMON Output File>]

xprofile <target id>

-config [sampling_freq_hw <value>]

[binsize <value>] [profile_mem <start addr>]

プロファイル出力ファイルを生成します。 このファイルは、

mb-gprof または powerpc-eabi-gprof で使用されます。

プロファ イル コンフ ィギュレーシ ョ ンのサンプ リ ング周波数

(Hz)、ヒ ス ト グラムのビン サイズ、収集したプロファ イル デー

タのメモリ アドレスを指定します。

表 12-21 : その他のコマンド

コマンド 説明

xuart [r|w|s] [<data>] MDM の UART がイネーブルの場合に、 3 つの UART 操作のいずれかを実行しま

す。 このコマンドは、 MDM を使用する場合にのみ使用可能です。

xuart r : MDM UART から 1 バイ ト読み出します。

xuart w <data> : MDM UART に 1 バイ ト 書き込みます。

xuart s : MDM UART のステータスを読み出します。

xverbose 詳細モードのオン/オフを切り替えます。 XMD からのデバッグ情報を表示します。

xhelp XMD コマンドを リ ス ト表示します。

Page 198: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

198 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 12 章 : Xilinx Microprocessor Debugger (XMD)R

Page 199: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 199EDK 10.1 サービス パッ ク 1

R

第 13 章

System ACE ファイル ジェネレータ (GenACE)

この章では、 FPGA のビッ ト ス ト リームと ELF (Executable Linked Format) データ ファ イルから

Xilinx® System ACE™ コンフ ィギュレーシ ョ ン ファ イルを生成する方法について説明します。 生成された System ACE ファ イルは、 FPGA のコンフ ィギュレーシ ョ ン、 BRAM の初期化、 有効な

プログラムまたはデータを使用した外部メモ リの初期化、 および製品システムでのプロセッサの起

動に使用できます。 EDK には、 XMD (Xilinx Microprocessor Debug) コマン ド を使用して ACEファ イルを作成する Tcl スク リプ ト genace.tcl が含まれています。 ACE ファ イルは、 MDM (マイ ク ロプロセ ッ サ デバッ グ モジュール) システムを使用して PowerPC® プロセ ッ サおよび

MicroBlaze™ 用に生成できます。

この章には、 次のセクシ ョ ンが含まれています。

• 必要条件

• ツール要件

• GenACE の機能

• GenACE モデル

• genace.tcl スク リプ ト

• ACE ファ イルの作成

• 関連情報

必要条件

この章のフローを実行するには、 次の条件を満たしている必要があ り ます。

• XMD を使用したプログラムのデバッグと XMD コマンドに精通している。

• EDK の標準的なハードウェアおよびソフ ト ウェア システム モデルに精通している。

• Tcl スク リプ トに対する基礎知識がある。

ツール要件

ACE ファ イルを作成するには、 次のツールが必要です。

• genace.tcl

• XMD

• iMPACT (ISE の一部)

Page 200: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

200 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

GenACE の機能

GenACE には、 次の機能があ り ます。

• MDM ターゲッ ト を含む PowerPC (405 および 440) プロセッサと MicroBlaze をサポート

• ハードウェア (ビッ ト ス ト リーム) およびソフ ト ウェア (ELF およびデータ) ファ イルから

ACE ファ イルを作成

• PowerPC (405 および 440) プロセッサと MicroBlaze システムの外部メモ リ を初期化

• 複数のプロセッサを含むシステムをサポート

• 単一および複数の FPGA デバイス システムのサポート

GenACE モデル

作成された System ACE ファ イルでは、 System ACE CF フ ァ ミ リ がサポー ト されます。 SystemACE CF は、 バウンダ リ スキャン (JTAG) 命令とバウンダ リ スキャン チェーンを使用してデバイ

スをコンフ ィギュレーシ ョ ンします。 System ACE CF は、 System ACE CF コン ト ローラおよび記

憶媒体 (コンパク ト フラ ッシュ カードまたは 1 インチのマイク ロ ド ラ イブ ディ スクのいずれか) を必要とする 2 チップ ソ リ ューシ ョ ンです。 System ACE ファ イルは、 SVF (Serial Vector Format)ファ イルから生成されます。 SVF ファ イルは、 JTAG 操作を実行するためのプログラム命令と コン

フ ィギュレーシ ョ ン データの両方を含むテキス ト ファ イルです。

ソフ ト ウェアおよびハードウェアのシステム ファ イルの SVF ファ イルを作成するには、 それぞれ

XMD および iMPACT を使用します。 SVF ファ イルには、 ボードの JTAG チェーンと通信するた

めの JTAG 命令およびデータが含まれています。 iMPACT を使用した FPGA のコンフ ィギュレー

シ ョ ン、 ターゲッ ト プロセッサへの接続、 プログラムのダウンロード、 XMD からプログラムの実

行などの操作を実行するための命令およびデータが含まれます。 この SVF ファ イルが ACE ファ イ

ルに変換され、 記憶媒体に書き込まれます。 書き込まれた操作は、 System ACE コン ト ローラで実

行されます。

次は、 シンプルなハードウェアと ソフ ト ウェア コンフ ィギュレーシ ョ ンを iMPACT と XMD を使

用して ACE ファ イルに変換する手順です。

1. iMPACT を使用してビッ ト スト リ ームをダウンロード します。 このビッ ト スト リ ーム

(download.bit) には、システム コンフィ ギュレーショ ンと ブート ループ コード が含まれます。

2. デバイスを リセッ ト状態から解除して DONE ピンを High にします。 これでプロセッサ シス

テムが起動します。

3. XMD を使用してプロセッサに接続します。

4. 複数のデータ ファ イルを BRAM または外部メモリにダウンロード します。

5. 複数の実行ファイルを BRAM または外部メモリにダウンロード します。 後にダウンロード

した ELF ファ イルの開始ロケーシ ョ ンが PC によ り指定されます。

6. PC の命令アドレスから実行を続けます。

System ACE ファ イルを作成するフローは、 bit → svf、 elf → svf、 バイナリ データ → svf、 svf →ace ファ イルです。

次のセクシ ョ ンで、 genace.tcl スク リプ トで使用可能なオプシ ョ ンを説明します。

Page 201: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 201EDK 10.1 サービス パッ ク 1

genace.tcl スクリプ トR

genace.tcl スクリプ ト

構文

xmd -tcl genace.tcl [-opt <genace_options_file>] [-jprog {true|false}][-target <target_type> {ppc_hw|mdm}] [-hw <bitstream_file>] [-elf <elf_files>] [-data <data_files> <load_address>] [-board <board_type>] [-ace <ACE_file>]

表 13-1 : genace.tcl スクリプ ト コマンド オプシ ョ ン

オプシ ョ ン デフォルト 説明

-opt <genace_options_file> なし GenACE オプシ ョ ンが <genace_options_file> から読み込まれ

ます。

-jprog {true|false} false 既存の FPGA コンフ ィギュレーシ ョ ンをク リ アします。

ランタイム コンフ ィギュレーシ ョ ンを実行する場合は、 このオプシ ョ

ンを指定しないでください。

-target <target_type>

{ppc_hw|mdm}

ppc_hw ELF またはデータ ファ イルをダウンロードするターゲッ ト を指定し

ます。 ターゲッ ト タイプは次のとおりです。

• ppc_hw : PowerPC (405 および 440) システムに接続します。

• mdm : MicroBlaze システムに接続します。 この設定では、 mdm がシステムにある と想定されます。

-hw <bitstream_file> なし システムのビッ ト ス ト リーム ファ イル。 SVF ファ イルが指定されてい

る場合は、 そちらが使用されます。

-elf <list_of_Elf_Files> なし ダウンロードする ELF ファ イルの リ ス ト 。 SVF ファ イルが指定され

ている場合は、 そちらが使用されます。

-data <data_file>

<load_address>なし データ /バイナリ ファ イルとそのロード アドレスのリ ス ト。 ロード ア

ドレスは、 10 進数または 16 進数フォーマッ ト (冒頭に 0x が必要) のいずれかで指定します。 SVF ファ イルが指定されている場合は、 そち

らが使用されます。

-board <board_type>

{user|<supported_board_list>}

なし ボードの JTAG チェーン (デバイス、 IR 幅、 デバッグ デバイスなど)を識別します。 オプシ ョ ンは、 System ACE コン ト ローラに対して設

定します。 スク リプ ト には、 定義済みボードのオプシ ョ ンが含まれま

す。 ボード タイプのオプシ ョ ンは次のとおりです。

• user : ユーザーがオプシ ョ ン ファ イル (OPT) で -configdeviceと -debugdevice オプシ ョ ンを指定します。 詳細は、genace.opt

ファ イルを参照して ください。

• サポート されるボード タイプは、 「Genace.tcl スク リプ トでサポー

ト されるターゲッ ト ボード」 を参照してください。

-ace <ACE_file> なし 出力 ACE ファ イル。 ファ イルの接頭辞は、 入力ファイル (ビッ ト ス ト

リーム、 ELF、 データ ファ イルなど) の接頭辞とは異なるものにする

必要があ り ます。

Page 202: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

202 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

オプシ ョ ンは、 OPT ファ イルで指定して GenACE スク リプ トに渡すこ とができます。 OPT ファ イ

ルの構文を表 13-2 に示します。

表 13-2 : GenACE の OPT ファイルのオプシ ョ ン

オプシ ョ ン デフォルト 説明

# <Some Text> なし # で開始する行は、 コ メン ト と して処理されます。

-jprog false 既存の FPGA コンフ ィギュレーシ ョ ンをク リ アします。 ランタイム コンフ ィギュレーシ ョ ンを実行する場合は、 このオプシ ョ ンを指定しな

いでください。

-ace <ACE_file> なし 出力 ACE ファ イル。 ファ イルの接頭辞は、 入力ファイル (ビッ ト ス ト

リーム、 ELF、 データ ファ イルなど) の接頭辞とは異なる ものにする

必要があ り ます。

-hw <bitstream_file> なし システムのビッ ト ス ト リーム ファ イル。 SVF ファ イルが指定されてい

る場合は、 そちらが使用されます。

-board <board_type> なし ボードの JTAG チェーン (デバイス、 IR 幅、 デバッグ デバイスなど)を識別します。 オプシ ョ ンは、 System ACE コン ト ローラに対して設

定します。 スク リプ ト には、 定義済みボードのオプシ ョ ンが含まれま

す。 ボード タイプのオプシ ョ ンは次のとおりです。

• user : ユーザーが OPT ファ イルで -configdevice と -debugdevice オプシ ョ ンを指定します。 詳細は、 genace.opt

ファ イルを参照して ください。

• サポート されるボード タイプは、 「Genace.tcl スク リプ トでサポー

ト されるターゲッ ト ボード」 を参照して ください。

-configdevice

(-user ボード タイプの

場合のみ)

なし JTAG チェーンのデバイ スに対する コンフ ィ ギュ レーシ ョ ン パラ

メータ。

• devicenr : JTAG チェーン上でのデバイスの位置

• idcode : ID コード

• irlength : 命令レジスタ (IR) の幅

• partname : デバイス名

デバイスの位置は、 System ACE デバイスを基準と したものです。 こ

れらの JTAG デバイスは、 ボード上で JTAG チェーンを接続する順序

で指定する必要があ り ます。

Page 203: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 203EDK 10.1 サービス パッ ク 1

genace.tcl スクリプ トR

-debugdevice <XMD

debug device options>

[cpu_version

<version>]

[mdm_version

<version>]

MB v7 および MDM v1

JTAG チェーンでデバ ッ グ またはコ ンフ ィ ギ ュ レーシ ョ ンする

PowerPC (405 または 440) プロセッサまたは MicroBlaze を含むデバ

イス。 JTAG チェーンでのデバイスの位置 (devicenr)、プロセッサの

数 (cpunr)、およびプロセッサ オプシ ョ ン (OCM、キャ ッシュ アドレ

スなど) を指定します。

スク リプ トでは、MicroBlaze システムで MicroBlaze v7 および MDMv1 が使用されている と想定されます。

ほかのバージ ョ ンの MicroBlaze を指定するには、 次のよ う に

cpu_version オプシ ョ ンを使用します。

cpu_version {microblaze_v5|microblaze_v6|

microblaze_v7}

ほかのバージ ョ ンの MDM を指定するには、 次のよ うに

mdm_version オプシ ョ ンを使用します。

mdm_version {mdm_v2|mdm_v3|mdm_v1}

-target <target_type> ppc_hw ELF/データ フ ァ イルをダウンロードする ターゲッ ト を指定します。

ターゲッ ト タイプは次のとおりです。

• ppc_hw : PowerPC (405 または 440) プロセッサ システムに接続し

ます。

• mdm : MicroBlaze システムに接続します。 この設定では、 mdm がシステムにある と想定されます。

-elf

<list_of_Elf_Files>

なし ダウンロードする ELF ファ イルの リ ス ト 。 SVF ファ イルが指定され

ている場合は、 そちらが使用されます。

-data <data_file>

<load_address>なし データ /バイナリ ファ イルとそのロード アドレスの リ ス ト 。 ロード ア

ドレスは、10 進数または 16 進数フォーマッ ト (0x が前に必要) のいず

れかで指定します。 SVF ファ イルが指定されている場合は、 そちらが

使用されます。

-start_address

<processor run

address>

ELF ファ イルが

指定された場合は

後の ELF ファ イ

ルの開始アドレス、

それ以外はなし

プロセッサの実行を開始するアドレスを指定します。 データ ファ イル

が読み込まれ、 プロセッサを読み込みアドレスから開始する必要があ

る場合に有益です。

表 13-2 : GenACE の OPT ファイルのオプシ ョ ン (続き)

オプシ ョ ン デフォルト 説明

Page 204: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

204 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

構文

xmd -tcl genace.tcl -jprog -target mdm -hw <implementation/download.bit> -elf executable1.elf executable2.svf -data image.bin 0xfe000000 -board ml401 -ace system.ace

genace.opt ファ イルの内容は、 次のとおりです。

-jprog-hw implementation/download.bit-ace system.ace-board ml505-target mdm-elf executable1.elf executable2.svf-data image.bin 0xfe000000

Genace.tcl スクリプ トでサポート されるターゲッ ト ボード

Tcl スク リプ トでは、 次の 3 つのボードがサポート されます。

• アヴネッ ト社 (前メ メ ッ ク社) 2VP4/7 FG456 : ボード タイプは memec です。 このボードの

JTAG チェーンには、 XC18V04 → XC18V04 → XC2VP4/7 が含まれます。

• ML300 : ボード タイプは ml300 です。 このボードの JTAG チェーンには、 XC2VP7 が含まれ

ます。

• ML310 : ボード タイプは ml310 です。 このボードの JTAG チェーンには、 XC2VP30 が含ま

れます。

• MicroBlaze デモ ボード : ボード タイプは mbdemo です。 このボードの JTAG チェーンには、

XC2V1000 が含まれます。

• ML401 : ボード タイプは ml401 です。 このボードの JTAG チェーンには、 XCF32P →XC4VLX25 → XC95144XL が含まれます。

• V4LX25 ES を含む ML401 : ボード タイプは ml401_es です。 このボードの JTAG チェーン

には、 XCF32P → XC4VLX25-ES → XC95144XL が含まれます。

• ML402 : ボード タイプは ml402 です。 このボードの JTAG チェーンには、 XCF32P →XC4VSX35 → XC95144XL が含まれます。

• ML403 : ボード タイプは ml403 です。 このボードの JTAG チェーンには、 XCF32P →XC4VFX12 → XC95144XL が含まれます。

• ML405 : ボード タイプは ml405 です。 このボードの JTAG チェーンには、 XCF32P →XC4VFX20 → XC95144XL が含まれます。

• ML410 : ボード タイプは ml410 です。 このボードの JTAG チェーンには、 XC4FX60 が含ま

れます。

• ML411 : ボード タイプは ml411 です。 このボードの JTAG チェーンには、XC4FX100 が含ま

れます。

• ML501 : ボード タイプは ml501 です。 このボードの JTAG チェーンには、XC5VLX50 が含ま

れます。

• ML505 : ボード タイプは ml505 です。 このボードの JTAG チェーンには、 XC5VLX50T が含

まれます。

• ML506 : ボード タイプは ml506 です。 このボードの JTAG チェーンには、 XC5VSX50T が含

まれます。

• ML507 : ボード タイプは ml507 です。 このボードの JTAG チェーンには、 XC5VFX70T が含

まれます。

Page 205: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 205EDK 10.1 サービス パッ ク 1

ACE ファイルの作成R

カスタム ボードを使用する場合は、-configdevice オプシ ョ ンを使用して JTAG チェーンを指定

し、 OPT ファ イルを使用してください。

ACE ファイルの作成

System ACE ファ イルは、 次のサブセクシ ョ ンに示すよ う な場合に作成できます。 各状況に対し、

OPT ファ イルの例を示します。 OPT ファ イルを使用するには、 次のよ うに入力します。

xmd -tcl genace.tcl -opt genace.opt

カスタム ボード

使用するボードが 「Genace.tcl スク リプ トでサポート されるターゲッ ト ボード」 に リ ス ト されてい

ない場合は、 ボードの JTAG チェーン コンフ ィギュレーシ ョ ンを -configdevice オプシ ョ ンを使用

して指定できます。

-jprog-hw implementation/download.bit -ace system.ace

-board user <= メモ : ボード タイプは user -configdevice devicenr 1 idcode 0x1266093 irlength 14 partname XC2VP20

devicenr 2 idcode 0x1266093 irlength 14 partname XC2VP20 <= メモ : JTAG チェーンをこ こで指定-target ppc_hw -elf executable.elf

1 つの FPGA デバイス

ハードウェアとソフ トウェアのコンフ ィギュレーシ ョ ン

-jprog-hw implementation/download.bit-ace system.ace-board ml501-target mdm-elf executable1.elf executable2.elf

ハードウェアとソフ トウェアのパーシャル リ コンフ ィギュレーシ ョ ン

-hw implementation/download.bit-ace system.ace-board ml501-target mdm-elf executable1.elf executable2.elf

ハードウェアのみのコンフ ィギュレーシ ョ ン

-jprog-hw implementation/download.bit-ace system.ace-board ml401

ハードウェアのみのパーシャル リ コンフ ィギュレーシ ョ ン

-hw implementation/download.bit-ace system.ace-board ml501

Page 206: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

206 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

ソフ トウェアのみのコンフ ィギュレーシ ョ ン

-jprog-ace system.ace-board ml501-target mdm-elf executable1.elf

複数プロセッサ システムの 1 つのプロセッサの ACE 作成

Virtex™ デバイスの多くでは、 システムに PowerPC (405 および 440) プロセッサが 2 つ、 または

複数の MicroBlaze プロセッサが含まれます。 1 つのプロセッサの ACE ファ イルを作成するには、

-debugdevice オプシ ョ ンを使用します。 プロセッサ インスタンスは、 cpunr で指定します。

PowerPC プロセッサ 2 つを含むコンフ ィギュレーシ ョ ンで、2 番目のプロセッサ の ACE ファ イル

を生成する場合、 このコンフ ィギュレーシ ョ ンの OPT ファ イルは次のよ うになり ます。

-jprog-hw implementation/download.bit-ace system.ace-board user-configdevice devicenr 1 idcode 0x1266093 irlength 14 partname XC2VP20

-debugdevice devicenr 1 cpunr 2 <= メモ : cpunr は 2-target ppc_hw-elf executable1.elf executable2.elf

複数のプロセッサを含むシステムのコンフ ィギュレーシ ョ ン

PowerPC プロセッサが 2 つと MicroBlaze プロセッサが 1 つあ り、それぞれに ELF ファ イルがロー

ド されているコンフ ィ ギュレーシ ョ ンでは、 ボード コンフ ィ ギュレーシ ョ ンは次のよ う な OPTファ イルで指定されます。

-jprog-hw implementation/download.bit-ace system.ace-board user-configdevice devicenr 1 idcode 0x1266093 irlength 14 partname XC2VP20# Options for PowerPC Processor 1 - Target Type, ELF files & Data files-debugdevice devicenr 1 cpunr 1-target ppc_hw-elf executable1.elf# Options for PowerPC Processor 2 - Target Type, ELF files & Data files-debugdevice devicenr 1 cpunr 2-target ppc_hw-elf executable2.elf# Options for MicroBlaze Processor - Target Type, ELF files & Data files-debugdevice devicenr 1 cpunr 1-target mdm-elf executable3.elf

メモ : OPT ファ イルで複数のプロセッサを指定する場合は、 ターゲッ ト タイプ、 ELF/データ ファ

イルなどのプロセッサ特定のオプシ ョ ンを -debugdevice オプシ ョ ンの後に指定します。 プロ

セッサの cpunr は、 -debugdevice オプシ ョ ンから判断されます。

Page 207: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 207EDK 10.1 サービス パッ ク 1

ACE ファイルの作成R

複数の FPGA デバイス

2 つの FPGA デバイスにそれぞれ 1 つのプロセッサと ELF ファ イルが使用されるコンフ ィギュ

レーシ ョ ンでは、 ボード コンフ ィギュレーシ ョ ンは次のよ う な OPT ファ イルで指定されます。

このコンフ ィギュレーシ ョ ンの場合、ACE ファ イルを作成するには、次のよ う な手順に従う必要が

あ り ます。

1. 1 つ目の FPGA デバイスに対する SVF ファ イルを作成します。 OPT ファ イルは、 次のよ うに

なり ます。

-jprog-target ppc_hw-hw implementation/download.bit-elf executable1.elf-ace fpga1.ace-board user-configdevice devicenr 1 idcode 0x123e093 irlength 10 partname XC2VP4-configdevice devicenr 2 idcode 0x123e093 irlength 10 partname XC2VP4-debugdevice devicenr 1 cpunr 1

これによ り、 fpga1.svf ファ イルが作成されます。

2. 2 つ目の FPGA デバイスに対する SVF ファ イルを作成します。 OPT ファ イルは、 次のよ うに

なり ます。

-jprog-target ppc_hw-hw implementation/download.bit-elf executable2.elf-ace fpga2.ace-board user-configdevice devicenr 1 idcode 0x123e093 irlength 10 partname XC2VP4-configdevice devicenr 2 idcode 0x123e093 irlength 10 partname XC2VP4

-debugdevice devicenr 2 cpunr 1 <= メモ : devicenr を変更

これによ り、 fpga2.svf ファ イルが作成されます。

3. ファ イルを fpga1.svf、 fpga2.svf の順で連結して final_system.svf を作成します。

4. impact -batch svf2ace.scr を実行して ACE ファ イルを作成します。 次の SCR ファ イルを使用

します。

svf2ace -wtck -d -i final_system.svf -o final_system.acequit

ML561 などの一部のボードでは、 FPGA DONE ピンがすべて 1 つにま とめられて接続されていま

す。 これらのボードでは、 ボード上の FPGA をハード ウェア ビッ ト ス ト リームで同時にコンフ ィ

ギュレーシ ョ ンし、 その後ソフ ト ウェア コンフ ィギュレーシ ョ ンを実行する必要があ り ます。 次

に、 このよ う なコンフ ィギュレーシ ョ ン用の ACE ファ イルを生成する方法を示します。 ML561ボードを例と して使用しています。

Page 208: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

208 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

すべての FPGA をハード ウェア コンフ ィギュレーシ ョ ンするための SVF ファ イルを生成するに

は、 次の手順に従います。

1. 次の内容の SCR ファ イル (impact_download.scr) を作成し、 impact -batch impact_download.scr コマンドを実行します。

setMode -cfsetPreference -pref KeepSVF:TrueaddCollection -name TempaddDesign -version 0 -name config0addDeviceChain -index 0setCurrentDeviceChain -index 0setCurrentCollection -collection TempsetCurrentDesign -version 0addDevice -position 1 -file "ML561_FPGA1_Download.bit"addDevice -position 2 -file "ML561_FPGA2_Download.bit"addDevice -position 3 -file "ML561_FPGA3_Download.bit"generatequit

これによ り、 config0.svf ファ イルが作成されます。

2. 1 つ目の FPGA デバイスのソフ ト ウェアに対する SVF ファ イルを作成します。 OPT ファ イル

は、 次のよ うになり ます。

-jprog-ace fpga1_sw.ace-board user-configdevice devicenr 1 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 2 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 3 idcode 0x22a96093 irlength 10 partname xc5vlx50t-debugdevice devicenr 1 cpunr 1-target mdm-elf executable1.elf

これによ り、 fpga1_sw.svf ファ イルが作成されます。

3. 2 つ目の FPGA デバイスのソフ ト ウェアに対する SVF ファ イルを作成します。 OPT ファ イル

は、 次のよ うになり ます。

-jprog-ace fpga2_sw.ace-board user-configdevice devicenr 1 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 2 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 3 idcode 0x22a96093 irlength 10 partname xc5vlx50t-debugdevice devicenr 2 cpunr 1-target mdm-elf executable2.elf

これによ り、 fpga2_sw.svf ファ イルが作成されます。

Page 209: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 209EDK 10.1 サービス パッ ク 1

関連情報R

4. 3 つ目の FPGA デバイスのソフ ト ウェアに対する SVF ファ イルを作成します。 OPT ファ イル

は、 次のよ うになり ます。

-jprog-ace fpga3_sw.ace-board user-configdevice devicenr 1 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 2 idcode 0x22a96093 irlength 10 partname xc5vlx50t-configdevice devicenr 3 idcode 0x22a96093 irlength 10 partname xc5vlx50t-debugdevice devicenr 3 cpunr 1-target mdm-elf executable3.elf

これによ り、 fpga3_sw.svf ファ イルが作成されます。

5. ファ イルを config0.svf、 fpga1_sw.svf、 fpga2_sw.svf、 fpga3_sw.svf の順で連結

して final_system.svf を作成します。

6. impact -batch svf2ace.scr を実行して ACE ファ イルを作成します。 次の SCR ファ イルを使用

します。

svf2ace -wtck -d -i final_system.svf -o final_system.acequit

関連情報

CF デバイス フォーマッ ト

System ACE コン ト ローラで CF デバイスを読み出すこ とができるよ うにするには、 次の手順に従

います。

1. CF デバイスを FAT16 と してフォーマッ ト します。

2. ルート ディ レク ト リで Xilinx.sys ファ イルを作成します。 このファ イルには、 ACE コン ト

ローラで使用されるディ レ ク ト リ構造が含まれます。 作成された ACE ファ イルを該当する

ディ レク ト リにコピーします。 詳細は、 iMPACT ヘルプを参照してください。

Page 210: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

210 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 13 章 : System ACE ファイル ジェネレータ (GenACE)R

Page 211: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 211EDK 10.1 サービス パッ ク 1

R

第 14 章

コマンド ライン モード

EDK シェルで 「xps -nw」 という コマンドを実行する と、XPS をコマンド ラ イン モード (ユーザー

インターフェイスを使用しないモード ) で起動できます。 これは、 UNIX ベースのプラ ッ ト フォー

ム用に環境変数が設定された、Windows プラ ッ ト フォーム/UNIX シェル用の EDK Cygwin シェル

です。コマンド ラインから、MSS (Microprocessor Software Specification) ファ イルおよび makefileを作成したり、 プロジェク ト フローをバッチ モードで実行したりできます。 また、 XMP プロジェ

ク ト ファ イルの作成、 XPS GUI で作成した XMP ファ イルの読み込みも可能です。

XPS をバッチ モードで起動した場合、 -scr オプシ ョ ンを使用して Tcl スク リプ ト を指定できます。

この場合、 XPS で Tcl スク リプ トが使用され、 コマンド プロンプ トが表示されます。 XPS への入

力と して既存の XMP ファ イルを使用できます。 コマンド プロンプ トが表示される前に、 プロジェ

ク トが読み込まれます。

XPS のバッチ モードでは、EDK デザイン データベースに対してクエリ を発行できます。 クエ リ用

の Tcl コマンドがあ り ます。

この章には、 次のセクシ ョ ンが含まれています。

• 新規プロジェク トの作成 (空のプロジェク ト )

• 新規プロジェク トの作成 (既存の MHS ファ イルを指定)

• 既存のプロジェク ト を開く

• MSS ファ イルの読み込み

• プロジェク ト ファ イルの保存

• プロジェク ト オプシ ョ ンの設定

• フロー コマンドの実行

• MHS ファ イルの再読み込み

• ソフ ト ウェア アプリ ケーシ ョ ンの追加

• ソフ ト ウェア アプリ ケーシ ョ ンの削除

• ソフ ト ウェア アプリ ケーシ ョ ンへのプログラム ファ イルの追加

• ソフ ト ウェア アプリ ケーシ ョ ンからのプログラム ファ イルの削除

• ソフ ト ウェア アプリ ケーシ ョ ンのオプシ ョ ンの設定

• 特殊なソフ ト ウェア アプリ ケーシ ョ ンの設定

• 制限

Page 212: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

212 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 14 章 : コマンド ライン モードR

新規プロジェク トの作成 (空のプロジェク ト )コンポーネン ト を含まない新規プロジェク ト を作成するには、 次のコマンドを使用します。

xload new <basename>.xmp

空の MHS (Microprocessor Hardware Specification) ファ イルと対応する MSS ファ イルが作成され

ます。 すべてのファイルのベース名は、XMP ファ イルと同じです。 ディ レク ト リに同じベース名の

プロジェク ト ファ イルが存在する と、上書きされます。 同じベース名の MHS ファ イルまたは MSSファ イルが存在する場合は、 新規プロジェク トの一部と して読み込まれます。

新規プロジェク トの作成 (既存の MHS ファイルを指定)MHS ファ イルを指定して新規プロジェク ト を作成するには、 次のコマンドを使用します。

xload mhs <basename>.mhs

MHS ファ イルが読み込まれ、新規プロジェク トが作成されます。 プロジェク ト名は MHS ファ イル

のベース名と同じにな り ます。 生成されるすべてのファイルに MHS と同じベース名が付けられま

す。 MHS ファ イルが読み込まれる と、デフォルトのド ライバが XPS に存在する場合は、各ペリ フェ

ラル インスタンスにそのド ライバが割り当てられます。

既存のプロジェク ト を開く

既存の XMP プロジェク ト ファ イルを読み込むには、 次のコマンドを使用します。

xload xmp <basename>.xmp

XMP ファ イルが読み込まれます。 MSS ファ イルは、 XMP ファ イルで指定されたものが使用され

ます。 指定されていない場合は、 同じベース名のファイルがプロジェク ト ディ レク ト リに存在すれ

ば、その MSS ファ イルが読み込まれます。 ファ イルが存在しない場合は、新しい MSS ファ イルが

作成されます。

MSS ファイルの読み込み

MSS ファ イルを読み込むには、 次のコマンドを使用します。

xload mss <filename>

<filename> を指定しない場合は、 そのプロジェク トに割り当てられた MSS ファ イルが読み込ま

れます。 MSS ファ イルを読み込むと、 それ以前の設定は無効になり ます。 たとえば、 あるペリ フェ

ラル インスタンスに対して MSS ファ イルで新しいド ライバが指定されている場合、 それまでペリ

フェラルに指定されていたド ライバは使用されなくなり ます。

プロジェク ト ファイルの保存

プロジェク トの MSS、 XMP、 makefile を保存するには、 次のコマンドを使用します。

save [mss|xmp|make|proj]

save proj を使用する と、 XMP ファ イルと MSS ファ イルが保存されます。 makefile を保存する

には、 save make を使用する必要があ り ます。

Page 213: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 213EDK 10.1 サービス パッ ク 1

プロジェク ト オプシ ョ ンの設定R

プロジェク ト オプシ ョ ンの設定

XPS のプロジェク トのオプシ ョ ンを設定するには、xset コマンドを使用します。 xget コマンドを使

用する と、 オプシ ョ ンの現在の値を表示できます。 また、 xget コマンドで Tcl 文字列を返し、 Tcl変数と して保存するこ と も可能です。 xget と xset コマンドで使用可能なオプシ ョ ンを、 表 14-1 に示します。

xset option <value>xget option

表 14-1 : xset および xget コマンドのオプシ ョ ン

オプシ ョ ン名 説明

arch ターゲッ ト デバイスのアーキテクチャを指定します。

dev デバイス名を指定します。

package ターゲッ ト デバイスのパッケージを指定します。

speedgrade ターゲッ ト デバイスのスピード グレードを指定し

ます。

searchpath <dirs> 検索パスを指定します。 複数のディ レク ト リ を指定

する場合は、 セ ミ コロンで区切り ます。

hier [top|sub] デザイン階層を指定します。

topinst <instname> プロセッサ デザインがサブモジュールの場合に、

そのデザインのインスタンス名を指定します。

hdl [vhdl|verilog] 使用する HDL 言語を指定します。

sim_model [structural|

behavioral|timing]

シ ミ ュレーシ ョ ン モードを設定します。

simulator [mti|ncsim|none] どのシミ ュレータ用にシミ ュレーショ ン スク リ プ

ト を生成するかを指定します。

sim_x_lib

sim_edk_lib

シ ミ ュレーシ ョ ン ライブラ リのパスを設定します。

これらのパスは、 XMP ファ イルではなくユーザー

の指定したレジス ト リに保存されます。 詳細は、 第 3 章 「Simulation Model Generator (Simgen)」 を参

照して ください。

usercmd1 ユーザー コマンド 1 を設定します。

usercmd2 ユーザー コマンド 2 を設定します。

user_make_file

<directory path>makefile のパスを指定します。 XPS で生成された makefile とは異なるファ イルを指定する必要があ り

ます。

ucf_file インプ リ メンテーシ ョ ンで使用するユーザー制約

ファイル (UCF) ファ イルへのパスを指定します。

Page 214: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

214 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 14 章 : コマンド ライン モードR

フロー コマンドの実行

run コマンドを適切なオプシ ョ ンを使用して実行するこ とによ り、 さまざまなフロー ツールを実行

できます。 XPS はプロジェク トの makefile を作成し、 適切なターゲッ ト を使用してその makefileを実行します。 makefile は、 run コマンドを実行するたびに生成されます。 run コマンドで使用可能

なオプシ ョ ンを表 14-2 に示します。

run <option>

fpga_imp_mode [0|1] 使用するインプ リ メンテーシ ョ ン ツールを指定し

ます。

0 : XFLOW

1 : Xplorer

swapps ソフ ト ウェア アプリケーシ ョ ンの リ ス ト を表示しま

す。 このオプシ ョ ンは、 xset コマンドでは使用でき

ません。

mix_lang_sim [true|false] 使用するシ ミ ュレータで VHDL と Verilog の混合フ

ローがサポート されているかど うかを指定します。

gen_sim_tb [true|false] シ ミ ュレーシ ョ ン モデルのテス トベンチを生成し

ます。

enable_par_timing_error [0|1] 1 に設定する と、 PAR のタイ ミ ング エラーがイネー

ブルになり ます。

enable_reset_optimization [0|1] 1 に設定する と、 リセッ ト信号のタイ ミ ングが向上

します。

メモ : このオプシ ョ ンは廃止予定です。

表 14-1 : xset および xget コマンドのオプシ ョ ン (続き)

オプシ ョ ン名 説明

表 14-2 : run コマンドのオプシ ョ ン

オプシ ョ ン名 説明

netlist ネッ ト リ ス ト を生成します。

bits インプリ メンテーシ ョ ン ツールを実行して、 ビッ ト ス ト リームを

生成します。

libs ソフ ト ウェア ラ イブラ リ を生成します。

bsp PowerPC® システムの VxWorks ボード サポート パッケージ (BSP) を生成します。

program プログラムをコンパイルし、 ELF (Executable Linked Format) ファ

イルを生成します。

init_bram ビッ ト ス ト リームを BRAM 初期化情報でアップデート します。

ace BIT ファ イルを BRAM の情報でアップデート した後、 System ACE ファ イルを生成します。

Page 215: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 215EDK 10.1 サービス パッ ク 1

MHS ファイルの再読み込みR

MHS ファイルの再読み込み

すべての EDK デザイン ファ イルは、 MHS ファ イルを参照します。 MHS ファ イルの変更は、 ほか

のファイルにも影響します。 デザインを読み込んだ後、MHS ファ イルが変更された場合は、次のコ

マンドを使用します。

run resync

このコマンドを実行する と、MHS ファ イル、MSS ファ イル、XMP ファ イルが再度読み込まれます。

simmodel シ ミ ュレーシ ョ ン モデルを生成します。 シ ミ ュレータは起動しま

せん。

sim シ ミ ュレーシ ョ ン モデルを生成し、 シ ミ ュレータを実行します。

vp 仮想プラ ッ ト フォームを生成します。

download ビッ ト ス ト リームを FPGA にダウンロード します。

netlistclean NGC/EDN ネッ ト リ ス ト を削除します。

bitsclean implementation ディ レク ト リから BIT ファ イル、 NCD ファ イル、

および BMM ファ イルを削除します。

hwclean implementation ディ レク ト リ を削除します。

libsclean ソフ ト ウェア ラ イブラ リ を削除します。

programclean ELF ファ イルを削除します。

swclean libsclean および programclean を実行します。

simclean simulation ディレク ト リ を削除します。

vpclean virtualplatform ディレク ト リ を削除します。

メモ : VPgen は廃止されています。

clean ツールで生成さ れたすべてのファ イ ルと ディ レク ト リ を削除し

ます。

resync MHS ファ イルの変更をメモリに反映させます。

assign_default_

driversMHS ファ イルのすべてのペリ フェラルにデフォルトのド ライバを

割り当て、 MSS ファ イルを保存します。

exporttopn

importtopm

メモ : これらの機能は GUI から削除されており、 今後のリ リースで

コマンド ラ イン モードからも削除される予定です。 使用しないこ と

をお勧めします。

表 14-2 : run コマンドのオプシ ョ ン (続き)

オプシ ョ ン名 説明

Page 216: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

216 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 14 章 : コマンド ライン モードR

ソフ トウェア アプリケーシ ョ ンの追加

xadd_swapp コマンドを使用する と、新しいソフ ト ウェア アプリ ケーシ ョ ン プロジェク ト を追加で

きます。 ソフ ト ウェア アプリ ケーシ ョ ンを追加するには、 アプリ ケーシ ョ ンの名前と、 そのアプリ

ケーシ ョ ンを実行するプロセッサ インスタンスを指定する必要があ り ます。 デフォルトでは、 ソフ

ト ウェア アプリ ケーシ ョ ンの ELF ファ イルは <swapp_name>/bin/<swapp_name>.elf です。

アプ リケーシ ョ ンを作成した後、 これを変更できます。

xadd_swapp <swapp_name> <proc_inst>

ソフ トウェア アプリケーシ ョ ンの削除

既存のソフ ト ウェア アプリ ケーシ ョ ンをプロジェク トから削除するには、 xdel_swapp コマンドを

使用します。 この際、 削除するソフ ト ウェア アプリ ケーシ ョ ンの名前を指定する必要があ り ます。

xdel_swapp <swapp_name>

ソフ トウェア アプリケーシ ョ ンへのプログラム ファイルの追加

既存のソフ ト ウ ェア アプ リ ケーシ ョ ンにプログラム ファ イル (C ソール ファ イルまたはヘッダ

ファイル) を追加するには、 xadd_swapp_progfile コマンドを使用します。 この際、 ファ イルを追加

するソフ ト ウェア アプリ ケーシ ョ ンの名前とプログラム ファ イルの場所を指定する必要があ り ま

す。 ファ イルの拡張子によって、 ソース ファ イルまたはヘッダ ファ イルかが自動的に判断され、追

加されます。

xadd_swapp_progfile <swapp_name> <filename>

ソフ トウェア アプリケーシ ョ ンからのプログラム ファイルの削除

既存のソフ ト ウェア アプリ ケーシ ョ ンからプログラム ファ イル (C ソール ファ イルまたはヘッダ

ファイル) を削除するには、 xdel_swapp_progfile コマンドを使用します。 この際、 ソフ ト ウェア アプリケーシ ョ ンの名前とプログラム ファ イルの場所を指定する必要があ り ます。

xdel_swapp_progfile <swapp_name> <filename>

Page 217: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 217EDK 10.1 サービス パッ ク 1

ソフ トウェア アプリケーシ ョ ンのオプシ ョ ンの設定R

ソフ トウェア アプリケーシ ョ ンのオプシ ョ ンの設定

ソフ ト ウェア アプリ ケーシ ョ ンのオプシ ョ ンを設定するには、 xset_swapp_prop_value コマンドを

使用します。 xget_swapp_prop_value コマンドを使用する と、 オプシ ョ ンの現在の値を表示できま

す。 xget_swapp_prop_value コマンドでは、 オプシ ョ ンの値を Tcl 文字列と して返すこ と もできま

す。 この 2 つのコマンドで使用可能なオプシ ョ ンを、 表 14-3 に示します。

xset_swapp_prop_value <swapp_name> <option_name> <value>xget_swapp_prop_value <swapp_name> <option_name>

表 14-3 : xset_swapp_prop_value コマンドおよび xget_swapp_prop_value コマンドの

オプシ ョ ン

オプシ ョ ン名 説明

sources ソース ファ イルのリ ス ト を表示します。 ソース ファ イルを追加するに

は、 xadd_swapp_progfile コマンドを使用してください。

headers ヘッダ ファ イルのリ ス ト を表示します。 ヘッダ ファ イルを追加するに

は、 xadd_swapp_progfile コマンドを使用してください。

executable 実行ファイル (ELF) へのパスを指定します。

procinst ソフ ト ウェア アプリ ケーシ ョ ンに関連付けられているプロセッサ イン

スタンスを指定します。

compileroptlevel コンパイラの 適化レベルを指定します。 有効な値は 0 ~ 3 です。

globptropt

{true|false}グローバル ポインタ 適化を実行するかど うかを指定します。 有効な

値は true または false です。

debugsym デバッグ シンボルを指定します。 有効な値は 0 (なし)、1 (-g)、または 2 (-gstabs) です。

searchlibs ラ イブラ リの検索パスを指定します (-L)。

searchincl インクルード検索パスを指定します (-I)。

lflags リ ンクするライブラ リ を指定します (-l)。

progstart プログラムの開始アドレスを指定します。

stacksize スタ ッ ク サイズを指定します。

heapsize ヒープ サイズを指定します。

linkerscript リ ンカ スク リプ ト を指定します (-Wl, -T -Wl, <linker_script_file>)。

progccflags 上記のオプシ ョ ンで指定できないコンパイラ オプシ ョ ンを設定します。

init_bram BRAM の初期化に ELF ファ イルを使用するかど うかを指定します。

mode ELF ファ イルのコンパイルを XMDStub モード (MicroBlaze™ のみ) または実行モードのどちらで行うかを指定します。

Page 218: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

218 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 14 章 : コマンド ライン モードR

特殊なソフ トウェア アプリケーシ ョ ンの設定

各プロセッサ インスタンスには、 デフォル ト でブートループ アプ リ ケーシ ョ ンが生成されます。

MicroBlaze インスタンスに対しては、 XMDStub も生成されます。 これらの特殊なソフ ト ウェア

アプ リ ケーシ ョ ンに対しては、 BRAM の初期化に使用するかど うかのみを指定できます。 この指

定には、 xset_swapp_prop_value コマン ド を使用します。 XPS のコマン ド ラ イ ン モードでは、

<procinst>_bootloop および <procinst>_xmdstub という名前を使用する と、 特殊なソフ ト

ウ ェア アプ リ ケーシ ョ ンであ る と認識されます。 た と えば、 プロセ ッ サ イ ン ス タ ン ス名が

mymblaze である場合は、mymblaze_bootloop および mymblaze_xmdstub が認識されます。 これらのアプリケーシ ョ ンに init_bram オプシ ョ ンを設定するには、 次の構文を使用します。

XPS% xset_swapp_prop_value mymblaze_bootloop init_bram trueXPS% xset_swapp_prop_value mymblaze_xmdstub init_bram false

その他のユーザー ソフ ト ウェア アプリケーシ ョ ンにこれらの名前を使用する と、XPS Tcl インター

フェイスでは設定を変更できません。 XPS のバッチ モードを使用する場合は、 ソフ ト ウェア アプ

リ ケーシ ョ ンに <procinst>_bootloop または <procinst>_xmdstub とい う名前を付けない

でください。 この制限は XPS のバッチ モードにのみ適用されるもので、 GUI を使用する場合はこ

の制限はあ り ません。

制限

MSS ファイルの変更

XPS のバッチ モードでは、MSS ファ イルに対して限られた編集操作しかできません。 MSS ファ イ

ルに変更を加える場合は、 ファ イルをテキス ト エディ タで編集し、 xload mss コマンドを使用して

編集した MSS ファ イルを読み込むよ うにして ください。 この際、 プロジェク ト を閉じる必要はあ

り ません。 MSS ファ イルを編集して保存し、 xload mss コマンドを使用して再読み込みすれば、 編

集した MSS ファ イルが使用されます。

XMP ファイルの変更

XMP ファ イルを手動で変更するこ とはお勧めできません。 XPS のバッチ モードでは、 コマンドを

使用してプロジェ ク ト オプシ ョ ンを変更した り、 プロセッサへのソース ファ イルおよびヘッダ

ファ イルの追加、 コンパイラ オプシ ョ ンの設定を実行できます。 それ以外の変更は、 XPS の GUIから行う必要があ り ます。

Page 219: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 219EDK 10.1 サービス パッ ク 1

R

第 15 章

EDK シェル

この章では、 EDK の Cygwin ベースのシェルについて説明します。 この章には、 次のセクシ ョ ン

が含まれています。

• 概要

• EDK シェル

概要

ザイ リ ンクス エンベデッ ド開発キッ ト (EDK) には、コンパイラやデバッガなどの GNU ツールと、

make ユーテ ィ リ テ ィが含まれています。 NT プラ ッ ト フォームでは、 これらのツールおよびユー

ティ リ ティに UNIX エミ ュレーシ ョ ン シェルが必要です。そのため、Red Hat Cygwin™ シェルと

ユーティ リ ティが EDK の一部と して提供されています。

EDK でインストールされる Cygwin 環境

EDK をインス トールする と、 Cygwin 環境が %XILINX_EDK%\cygwin にインス トールされます。

既存の Cygwin 環境を使用するための要件

既存の Cygwin 環境を使用するこ と も可能ですが、 次の要件を満たしている必要があ り ます。

• Cygwin のリ ビジ ョ ン レベルが 1.5.17 (2005 年 5 月) 以降である。

• make ユーティ リ ティ (make.exe) が使用可能である。

既存の Cygwin 環境が上記の要件を満たしている場合は、 その Cygwin 環境を使用できます。 条件

を満たしていない場合は、 EDK シェルを使用する必要があ り ます。 その場合、 既存の Cygwin のステートに基づいて、 エラー メ ッセージまたは警告メ ッセージが表示されます。

EDK シェル

EDK シェルは、 Cygwin に基づく Linux 環境エ ミ ュレーシ ョ ン メ カニズムであ り、 Windows プラ ッ ト フォーム上で Linux のよ うな環境で EDK ツールおよびほかのユーティ リ ティを実行するた

めに使用します。 このシェルを起動するには、 Windows の [スタート ] メニューから、 [プログラム]→ [Xilinx ISE Design Suite 10.1] → [EDK] → [Accessories] → [Launch EDK Shell] をク リ ッ ク し

ます。 これによ り、 xbash ユーティ リ ティ (%XILINX_EDK%\bin\nt\xbash.exe) が起動します。

xbash ユーティ リ ティ を使用するには、 %XILINX% 環境変数が設定されているこ とが必要です。

Page 220: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

220 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

第 15 章 : EDK シェルR

xbash の使用

xbash の使用法は、 xbash -help コマンドを使用する と表示されます。

構文 :

xbash [-c <COMMAND>] [-override] [-undo]

既存の Cygwin を使用するには、 「既存の Cygwin 環境を使用するための要件」 に記載されている

要件が満たされている必要があ り ます。 要件が満たされていない場合は、 新しいバージ ョ ンの

Cygwin にアップグレードするか、 必要なツールをインス トールする必要がある こ と を示すメ ッ

セージが表示されます。 Cygwin のアップグレードが必要な場合は、 -override および -undo オプシ ョ ンを使用して、 EDK Cygwin を使用するこ と も可能です。

-override オプシ ョ ンと -undo オプシ ョ ン

マシンにインス トールされている Cygwin が 1.5.17 よ り以前のバージ ョ ンである場合は、 xbash

-override コマンドを使用します。 インス トールされている Cygwin のバージ ョ ンが 1.5.17 であ

る場合は、 このオプシ ョ ンは無視されます。

メモ : このオプシ ョ ンは 1 回のみ使用し、Windows/DOS コマンド プロンプ トから実行する必要が

あ り ます。 xbash コマンドまたは EDK シェルを次に実行する際は、 このオプシ ョ ンは必要あ り ま

せん。

メモ : このオプシ ョ ンを使用する と、 既存の Cygwin 設定が変更されるので、 注意が必要です。 こ

のオプシ ョ ンでは必要な Cygwin ツールおよび DLL のみがアップグレード され、 すべてのツール

がアップグレード されるわけではあ り ません。

この変更を元に戻して Cygwin の元の状態を回復するには、 xbash -undo を使用します。

Windows Vista での CygwinWindows Vista プラ ッ ト フォームで EDK を正し く機能させるには、 既存の Cygwin がすべて有効

であ り、 正しい権限でインス トールされている必要があ り ます。 権限に関する次の要件に注意して

ください。

• 既存のすべての Cygwin で、 マシンのすべてのユーザーに対して実行権限が必要です。

• ローカル マシン上の Cygwin が管理者権限を持つユーザーによ り インス トールされていて、こ

の Cygwin が無効である場合、 管理者権限を持つユーザーがこの Cygwin を修正する必要があ

り ます。 管理者権限以外の権限のユーザーが修正するこ とはできません。

-c <COMMAND> EDK Cygwin シェルで <COMMAND> を実行します。

-override ローカルにインス トールされている Cygwin ではなく、 EDK の Cygwin を使用します。

-undo -override オプシ ョ ンの変更を元に戻します。

-help ヘルプを表示します。

Page 221: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 221EDK 10.1 サービス パッ ク 1

R

付録 A

GNU ユーティ リテ ィ

この付録では、EDK で使用可能な GNU ユーティ リ ティについて説明します。 この付録には、次の

セクシ ョ ンが含まれています。

• MicroBlaze および PowerPC の汎用ユーティ リ ティ

• MicroBlaze および PowerPC 専用ユーティ リ ティ

• その他のプログラムおよびファイル

MicroBlaze および PowerPC の汎用ユーティ リテ ィ

cpp

C および C++ コードのプ リプロセッサ。 プリプロセッサは GCC (GNU コンパイラ) によ り自動的

に実行され、 file-include、 define などの命令をインプ リ メン ト します。

gcov GCC と共に使用し、 ユーザー プログラムのテス ト範囲のプロファ イル作成および解析を実行しま

す。 gprof プロファイル作成プログラムでも使用されます。

MicroBlaze および PowerPC 専用ユーティ リテ ィ

MicroBlaze™ 専用ユーテ ィ リ テ ィ には、 次に示すよ う に接頭辞 mb が付いています。 接頭辞

powerpc-eabi が付いているものは PowerPC® 専用ユーティ リ ティで、 同じ機能を実行します。

mb-addr2line実行ファイルのデバッグ情報を使用して、プログラム アドレスを対応する行番号とファ イル名に変

換するプログラム。

mb-ar アーカイブからファ イルを作成、 変更、 および抽出するプログラム。 アーカイブは、 通常ラ イブラ

リのオブジェク ト ファ イルなどの複数のファイルを含むファイルです。

mb-as アセンブラ プログラム。

Page 222: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

222 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 A : GNU ユーティ リテ ィR

mb-c++ mb-gcc と同じ ク ロス コンパイラで、 プログラム言語が C++ に設定されている場合に実行されま

す。 mb-g++ と同じです。

mb-c++filt アセンブリ リ ス トの C++ および Java 関数名をデマングルするプログラム。

mb-g++ mb-gcc と同じ ク ロス コンパイラで、 プログラム言語が C++ に設定されている場合に実行されま

す。 mb-c++ と同じです。

mb-gaspアセンブラ プログラムのマクロ プリプロセッサ。

mb-gccC および C++ プログラムのク ロス コンパイラ。 ファ イル拡張子から、 使用されているプログラム

言語を自動的に認識します。

mb-gdbプログラムのデバッガ。

mb-gprofプログラムの各部分にどれだけの時間がかかるかを解析するプロファ イル生成プログラム。 ランタ

イムを 適化するのに有益です。

mb-ldリ ンカ プログラム。 ラ イブラ リ ファ イルとオブジェク ト ファ イルを結合し、 必要な リ ロケーシ ョ

ンを実行して、 実行ファイルを生成します。

mb-nmオブジェク ト ファ イルのシンボルを リ ス トするプログラム。

mb-objcopyオブジェク ト ファ イルの内容をあるフォーマッ トから別のフォーマッ トに変換するプログラム。

mb-objdumpオブジェク ト ファ イルの情報を表示するプログラム。 プログラムのデバッグにおいて有益で、 正し

いコードおよびデータが正しいメモ リ ロケーシ ョ ンにあるかど うかを検証するのに使用されます。

Page 223: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 223EDK 10.1 サービス パッ ク 1

その他のプログラムおよびファイルR

mb-ranlibアーカイブ ファ イルのインデッ クスを作成し、アーカイブ ファ イルに追加するプログラム。 これに

よ り、 アーカイブで示されるライブラ リへのリ ンク プロセスを高速化できます。

mb-readelfELF (Executable Linked Format) ファ イルの情報を表示するプログラム。

mb-sizeオブジェク ト ファ イルの各セクシ ョ ンのサイズを リ ス トするプログラム。 コードおよびデータのス

タティ ッ ク メモ リ要件を判断するのに有益です。

mb-stringsバイナリ ファ イルの内容を判断するのに有益なプログラム。 オブジェク ト ファ イルに含まれる表

示可能な文字列を リ ス ト します。

mb-stripオブジェク ト ファ イルからシンボルを削除するプログラム。 ファ イル サイズを削減し、ファ イル内

のシンボル情報が見られないよ うにするために使用します。

その他のプログラムおよびファイル

次の Tcl および Tk シェルは、 さまざまなフロン ト エンド プログラムから起動されます。

• cygitclsh30

• cygitkwish30

• cygtclsh80

• cygwish80

• tix4180

Page 224: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

224 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 A : GNU ユーティ リテ ィR

Page 225: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 225EDK 10.1 サービス パッ ク 1

R

付録 B

割り込み制御

この付録では、MicroBlaze™ と PowerPC® での割り込み処理について詳細に説明し、Libgen でど

のよ う な処理が行われるかを示します。 次のセクシ ョ ンが含まれています。

• 関連リ ソース

• EDK での割り込み制御の概要

• Libgen でのカスタマイズ

• MicroBlaze システムの例

• PowerPC システムの例

メモ : ボード サポート パッケージ (BSP) には、 割り込み制御機能の一部が備わっています。 詳細

は、 『OS and Libraries Document Collection』 から 『Standalone Board Support Package』 を参照し

てください。 この下の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

関連リソース

• 『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『PowerPC Processor Reference Guide』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• 『OS and Libraries Document Collection』http://japan.xilinx.com/ise/embedded/edk_docs.htm

• アプリケーシ ョ ン ノート XAPP 778 『Using and Creating Interrupt-Based Systems』http://japan.xilinx.com/bvdocs/appnotes/xapp778.pdf

• ザイ リ ンクス デバイス ド ライバの資料 (EDK のインス トール ディ レク ト リ内)/doc/japanese/xilinx_drivers.htm

Page 226: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

226 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

EDK での割り込み制御の概要

割り込み制御の手順

割り込み制御には、 次の操作が必要です。

• ペリ フェラルの割り込みハンド ラ ルーチンまたは割り込みサービス ルーチン (ISR) を記述し

ます。

• 割り込みベクタ テーブルに ISR を登録します。

• プロセッサおよび割り込みコン ト ローラの割り込みをイネーブルにします。

• MHS (Microprocessor Hardware Specification) ファ イルおよび MSS (Microprocessor Software Specification) ファ イルを適切に設定します。

詳細およびファ イルの例は、 アプ リ ケーシ ョ ン ノー ト XAPP778 『Using and Creating Interrupt-Based Systems』 を参照してください。 この付録の 「関連リ ソース」 に、 このアプ リ ケーシ ョ ン ノー

トへのリ ンクがあ り ます。

MicroBlaze および PowerPC での割り込み処理

割り込みポート

MicroBlaze には割り込みポートが 1 つ、 PowerPC にはク リティカル割り込みポート と非ク リ ティ

カル割り込みポートがあ り ます。

割り込みのイネーブル

• MicroBlaze : microblaze_enable_interrupts 関数を使用して割り込みをイネーブルにします。

• PowerPC : XExc_mEnableExceptions 関数を使用して割り込みをイネーブルにします。

詳細は、 『OS and Libraries Document Collection』 から 『Standalone Board Support Package』 を参

照してください。 この付録の 「関連リ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

エンベデッ ド OS を使用している場合は、 割り込みのイネーブルに関連する関数の資料を参照して

ください。

割り込みの接続

割り込みペリ フェラルは、 プロセッサの割り込みポートに割り込み信号を送信し、 プロセッサのプ

ログラムを停止して割り込みを実行させるコンポーネン トです。

割り込みペリ フェラルまたは外部割り込みピンが 1 つしかない場合、割り込みコン ト ローラは必要

あ り ません。

メモ : 1 つのペリ フェラルで複数の割り込み信号を発生する場合は、 割り込みコン ト ローラが必要

です。

プロセッサの割り込みポートに複数の割り込みを接続する場合は、 割り込みコン ト ローラを使用す

る必要があ り ます。 ザイ リ ンクスでは、 DCR と XPS の 2 つの割り込みコン ト ローラを提供してい

ます。 どちらのコン ト ローラも、32 個までの割り込みを処理できます。 割り込みコン ト ローラでは、

図 B-1 に示すよ うに、 単純な優先順位スキームを使用して複数の割り込みを制御します。

Page 227: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 227EDK 10.1 サービス パッ ク 1

EDK での割り込み制御の概要R

割り込みコン ト ローラとペリフ ェラルの MHS コード例

図 B-1 に対応する MHS コードのセクシ ョ ンを、 次に示します。

BEGIN xps_intcparameter INSTANCE = myintcparameter HW_VER = 1.00.cparameter C_BASEADDR = 0xFFFF1000parameter C_HIGHADDR = 0xFFFF10FFbus_interface SPLB = plb_busport Irq = interruptport Intr = Priority4_interrupt & Priority3_interrupt & Priority2_interrupt & Priority1_interruptEND## MicroBlaze exampleBEGIN microblaze::port INTERRUPT = interrupt:END## PPC exampleBEGIN ppc405::port EICC405EXTINPUTIRQ = interrupt:END

割り込みコン ト ローラ

割り込みペリ フェラルの割り込み信号をプロセッサの割り込み入力に接続します。 上の MHS コー

ド例では、 割り込みペリ フェラルは XPS 割り込みコン ト ローラで、 割り込み信号は IRQ ポートか

ら入力されます。 各割り込み信号の優先順位は割り込みコン ト ローラで制御され、 上記の MHSコード例で割り込みコン ト ローラの Intr ポートの行に定義されているよ うに、優先順位の低い方か

ら記述します。

図 B-1 : 割り込みコン ト ローラとペリフェラル (例)

MicroBlaze PowerPC

( 1)

( 2)

( 3)

( 4) 4

3

2

1

UG111_13_052206

Page 228: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

228 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

外部信号をプロセッサの割り込みポートに接続している場合は、 割り込みポートは MHS ファ イル

で次のよ うに記述されます。

PORT Interrupt_In = interrupt, DIR = IN, LEVEL = LOW, SIGIS = INTERRUPT

MHS フ ァ イ ルの構文については、『 Platform Specification Format Reference Manual』 の

「Microprocessor Hardware Specification (MHS)」 の章を参照して ください。 この付録の 「関連リ

ソース」 に、 このマニュアルへのリ ンクがあ り ます。

割り 込みコント ローラ ペリ フェラルを使用して割り 込みを制御する場合、次の制限が適用されます。

• 割り 込みコント ローラ ペリ フェラルに接続されている割り 込みソースの優先順位は、MHS ファ

イルに定義された時点で固定されます。 ユーザー コード で変更するこ と はできません。

• MHS ファ イルに定義する割り込みソースの範囲を不連続にするこ とはできません。 たとえば、

MHS ファ イルで次のよ う な定義は無効です。

port Intr = Priority4_interrupt & 0x0 & Priority2_interrupt ...

割り込みサービス ルーチン (ISR)割り込みが発生する と、プロセッサは割り込みサービス ルーチン (ISR) (割り込みハンド ラ ) を呼び

出し、 割り込みを制御します。 ISR は、 割り込みを生成するカスタム ペリ フェラルに対し、 void

func (void *) とい う形式の C 関数で作成します。 MicroBlaze の ISR は microblaze_register_handler で、PowerPC の ISR は XExc_RegisterHandler で登録されます。 DCR または XPS 割 り 込みコ ン ト ローラ を使用する場合は、 割 り 込みペ リ フ ェ ラルの ISR は

XIntc_RegisterHandler 関数で登録します。

その他の情報

ハンド ラ登録関数については、 『OS and Libraries Document Collection』 から 『Standalone BoardSupport Package』 を参照して ください。 この付録の 「関連リ ソース」 に、 このマニュアルへのリ ン

クがあ り ます。

エンベデッ ド OS を使用している場合は、 割り込みのイネーブルに関連する関数の資料を参照して

ください。

割り込みコン ト ローラに関連する関数の詳細は、 割り込みコン ト ローラ ソフ ト ウェア ド ラ イバの

資料を参照してください。 この付録の 「関連リ ソース」 に、 この資料へのリ ンクがあ り ます。

割り込みベクタ テーブル

次に、 MicroBlaze および PowerPC プロセッサの割り込みベクタ テーブルについて説明します。

MicroBlaze

割り込みが発生する と、MicroBlaze プロセッサはメ インの ISR の位置であるアドレス 0x10 にジャ

ンプします。 このメ インの ISR は、実際の割り込みソースの ISR にジャンプします。割り込みコン

ト ローラ ISR によ り、 接続されている 32 個の各割り込みの ISR が制御されます。

Page 229: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 229EDK 10.1 サービス パッ ク 1

Libgen でのカスタマイズR

プロセッサは、 アドレス 0x10 にジャンプして、 そこに示される メ インの ISR のアドレスにジャン

プします。 このアドレスには、 実行する個別の ISR を決定するルーチンが含まれます。 その後、 個

別の ISR のアドレスにジャンプし、 そのアドレスにあるルーチンを実行します。

PowerPC

PowerPC プロセッサでの割り込み処理の開始方法は MicroBlaze と異なり ますが、処理が始まる と、

そのプロセスはほぼ同じです。

PowerPC プロ セッ サの割り 込み処理の詳細は、 『PowerPC Processor Reference Guide』 の

「Exceptions and Interruptions」 の章を参照して ください。 この付録の 「関連リ ソース」 に、 このマ

ニュアルへのリ ンクがあ り ます。

Libgen でのカスタマイズ

Libgen の目的

Libgen は、プロセッサに接続されている各ペリ フェラルのベース アドレスとハイ アドレスを定義す

るハードウェア システム アドレス マップを生成します。 また、割り込みコン ト ローラ ペリ フェラル

に接続されている各ペリ フェラルの割り込み優先順位も指定します。 この情報は、 xparameters.h

ヘッダ ファイルに生成されます。 MSS ファ イルでの指定に基づいて、 Libgen は次の割り込み制御

処理を実行します。

• ISR を MicroBlaze の割り込みベクタ テーブルに登録します。

• 割り込みコン ト ローラ ペリ フェラルが使用されている場合は、このペリ フェラルに対してベク

タ テーブルを生成します。

• MSS ファ イルに定義されている場合、 割り込みコン ト ローラ ペリ フェラルに接続されている

ペリ フェラルの各割り込み信号に対する ISR をベクタ テーブルに登録します。

xparameters.h の概要

xparameters.h ファ イルは、 ソフ ト ウェアで使用するハード ウェア システムを定義します。 この

ファイルにはアドレス マップが含まれており、プロセッサに接続されている各ペリ フェラルのベー

ス アドレス とハイ アドレスが定義されています。 ベース アドレス とハイ アドレスの生成に使用さ

れる形式は、 次のとおりです。

XPAR_<PERIPHERAL_INSTANCE_NAME>_BASE_ADDR

XPAR_<PERIPHERAL_INSTANCE_NAME>_HIGH_ADDR

表 B-1 : MicroBlaze の割り込み処理のメカニズム

0x10 メインの ISR のアドレス

* 個別の ISR 1

* 個別の ISR 2

.

.

.

* 個別の ISR 32

Page 230: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

230 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

割り込みコン ト ローラ ド ラ イバでは、xparameters.h の定義を使用して優先順位と割り込みソー

スの 大数を決定します。 各割り込み信号の優先順位は、 xparameters.h ファ イルに #define を使用して次の形式のパラ メータで指定されます。

XPAR_<INTC_INSTANCE_NAME>_<PERIHPERAL_INSTANCE_NAME>_<PERIPHERAL_INTERRUPT_SIGNAL_NAME>_INTR

XPAR_<PERIHPERAL_INSTANCE_NAME>_<PERIPHERAL_INTERRUPT_SIGNAL_NAME>_MASK

たとえば、 優先順位 1 の割り込みは、 次のよ うに指定されます。

XPAR_XPS_INTC_0_PERIPHERAL_1_PRIORITY_1_INTERRUPT_INTR

XPAR_PERIPHERAL_1_PRIORITY_1_INTERRUPT_MASK

こ こで、 XPS_INTC_0 は割り込みコン ト ローラ ペリ フェラルのインスタンス名です。

割り込みコン ト ローラ ペリ フェラルに接続される割り込みソースの合計数は、 227 ページの図 B-1に示すよ う に、 XPAR_<INTC_INSTANCE_NAME>_MAX_NUM_INTR_INPUTS で定義されま

す。 INTR は割り込みソースを定義し、 次の範囲内にする必要があ り ます。

XPAR_<INTC_INSTANCE_NAME>_MAX_NUM_INTR_INPUTS - 1

こ こで、 0 が 優先の割り込みになり ます。

MicroBlaze システムの例

割り込みコン トローラを使用しない MicroBlaze システム (割り込み信号 1 つ)次の場合は、 割り込みコン ト ローラは必要あ り ません。

• 割り込みペリ フェラルが 1 つのみ。

• 外部割り込みピンが 1 つある。

メモ : 1 つのペリ フェラルで複数の割り込み信号を発生する場合は、 割り込みコン ト ローラが必要

です。

手順

割り込みコン ト ローラを使用しない、 レベルで認識される割り込み信号が 1 つのみのシステムを設

定するには、 次の手順に従います。

1. XPS の [System Assembly View] の [Filters] で [Ports] をオンにし、 ペリ フェラルの割り込み

信号または外部割り込み信号を MicroBlaze プロセッサの割り込み入力に接続します。

2. 割り込み信号を処理する割り込みハンド ラ ルーチンを記述します。 ペリ フェラル インスタン

スのベース アドレスは、 XPAR_<INSTANCE_NAME>_BASEADDR でアクセスされます。

3. ソフ ト ウェア アプリ ケーシ ョ ンで、 intc という汎用割り込みコン ト ローラ ド ライバを介して

ISR をプロセッサに登録します。 低レベルのド ラ イバと高レベルのド ラ イバの両方があ り ま

す。 割り込みコン ト ローラ ド ラ イバの詳細は、 割り込みコン ト ローラ ソフ ト ウェア ド ラ イバ

資料を参照してください。 この付録の 「関連リ ソース」 に、 この資料へのリ ンクがあ り ます。

割り込みコン ト ローラの関数を使用した例は、アプ リ ケーシ ョ ン ノート XAPP778 『Using andCreating Interrupt-Based Systems』 を参照して ください。 この付録の 「関連リ ソース」 に、 こ

のアプ リケーシ ョ ン ノートへのリ ンクがあ り ます。

4. LibGen および mb-gcc を実行します。 このプロセスの詳細は、 「Libgen でのカスタマイズ」 を

参照してください。

Page 231: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 231EDK 10.1 サービス パッ ク 1

MicroBlaze システムの例R

MHS ファイルの例 (内部割り込み信号)BEGIN xps_timerparameter INSTANCE = mytimerparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF0000parameter C_HIGHADDR = 0xFFFF00ffbus_interface SPLB = plb_busport Interrupt = interruptport CaptureTrig0 = net_gndEND

begin microblazeparameter INSTANCE = mblazeparameter HW_VER = 7.00.abus_interface DPLB = PLB_busbus_interface DLMB = d_lmbbus_interface ILMB = i_lmbport INTERRUPT = interruptend

MSS ファイルの例

BEGIN DRIVERparameter HW_INSTANCE = mytimerparameter DRIVER_NAME = tmrctrparameter DRIVER_VER = 1.00.bparameter INT_HANDLER = timer_int_handler, INT_PORT = InterruptEND

C プログラムの例

#include <xtmrctr_l.h>#include <xgpio_l.h>#include <xparameters.h>

/* Global variables: count is the count displayed using the * LEDs, and timer_count is the interrupt frequency. */

unsigned int count = 1; /* default count */unsigned int timer_count = 1; /* default timer_count */

/* timer interrupt service routine */void timer_int_handler(void * baseaddr_p) {unsigned int csr;

unsigned int gpio_data;

/* Read timer 0 CSR to see if it raised the interrupt */ csr = XTmrCtr_mGetControlStatusReg(baseaddr_p, 0); if (csr & XTC_CSR_INT_OCCURED_MASK) { /* Increment the count */

if ((count <<= 1) > 8) { count = 1; }

/* Write value to gpio. 0 means light up, hence count is negated */

Page 232: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

232 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

gpio_data = ~count; XGpio_mSetDataReg(XPAR_MYGPIO_BASEADDR, gpio_data);

/* Clear the timer interrupt */ XTmrCtr_mSetControlStatusReg(baseaddr_p, 0, csr);

} }

voidmain() {

unsigned int gpio_data;

/* Enable microblaze interrupts */ microblaze_enable_interrupts();

/* Set the gpio as output on high 3 bits (LEDs)*/ XGpio_mSetDataDirection(XPAR_MYGPIO_BASEADDR, 0x00);

/* set the number of cycles the timer counts before interrupting */ XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*timer_count+1) * 1000000);

/* reset the timers, and clear interrupts */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_INT_OCCURED_MASK | XTC_CSR_LOAD_MASK );

/* start the timers */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK | XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK); /* Wait for interrupts to occur */ while (1) ;

}

MHS ファイルの例 (外部割り込み信号)PORT interrupt_in1 = interrupt_in1, DIR = IN, LEVEL = LOW, SIGIS = INTERRUPT

begin microblazeparameter INSTANCE = mblazeparameter HW_VER = 7.00.abus_interface DPLB = plb_busbus_interface DLMB = d_lmbbus_interface ILMB = i_lmbport INTERRUPT = interrupt_in1end

MSS ファイルの例

PARAMETER int_handler = global_int_handler, int_port = interrupt_in1

Page 233: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 233EDK 10.1 サービス パッ ク 1

MicroBlaze システムの例R

C プログラムの例

#include <xparameters.h>

/* global interrupt service routine */void global_int_handler(void * arg) {/* Handle the global interrupts here */

}

voidmain() {

/* Enable microblaze interrupts */ microblaze_enable_interrupts();/* Wait for interrupts to occur */ while (1) ;}

割り込みコン ト ローラを使用した MicroBlaze システム (複数の割り込み信号)割り込み信号を同時に複数発生させる必要がある場合は、 割り込みコン ト ローラ ペリ フェ ラル

(INTC) を使用する必要があ り ます。 割り込みが発生する と、 INTC の割り込みハンド ラ (XIntc_DeviceInterruptHandler) が呼び出されます。 この関数は割り込みコン ト ローラにアクセスし、 割り

込み信号を生成したペリ フェラルの うち優先順位が 高のものを判断します。 優先順位レベルは、

Libgen で生成されたベクタ テーブルを使用して決定されます。 ペリ フェラルの割り込みハンド ラ

から復帰する と、 INTC で割り込みがイネーブルになり、 次に優先順位の高い割り込みが処理され

ます。

手順

割り込みを発生するペリ フェラルが複数あ り、 割り込みコン ト ローラを使用する場合は、 次の手順

に従います。

1. XPS の [System Assembly View] の [Filters] で [Ports] をオンにし、 ペリ フェラルの割り込み

信号を割り込みコン ト ローラの割り込みポート (ほとんどの場合 Intr) に接続します。

割り込みコン ト ローラからの割り込み信号出力は、MicroBlaze プロセッサの割り込み入力に接

続します。

各割り込み信号の割り込みマスクおよび割り込み ID は、Libgen によ り作成されます (229 ペー

ジの 「Libgen でのカスタマイズ」 を参照)。

2. 各割り込みペリ フェラルの割り込みハンド ラ ルーチンを記述します。

3. ソフ ト ウェア アプリ ケーシ ョ ンで、intc とい う汎用割り込みコン ト ローラ ド ライバを介して

UART ISR をプロセッサに登録します。 低レベルのド ライバと高レベルのド ライバの両方があ

り ます。 割り込みコン ト ローラ ド ラ イバの詳細は、 割り込みコン ト ローラ ソフ ト ウェア ド ラ

イバ資料を参照してください。この付録の「関連リ ソース」に、この資料へのリ ンクがあ り ます。

割り込みコン ト ローラの関数を使用した例は、アプ リ ケーシ ョ ン ノート XAPP778 『Using andCreating Interrupt-Based Systems』 を参照して ください。 この付録の 「関連リ ソース」 に、 こ

のアプ リケーシ ョ ン ノートへのリ ンクがあ り ます。

メモ : INTC 割り込み信号に INT_HANDLER キーワードを使用しないでください。 ペリ フェ

ラルに INT_HANDLER を指定しない場合、 デフォルトのダ ミー ハンド ラが使用されます。

Page 234: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

234 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

4. Libgen および mb-gcc を実行します。 このプロセスの詳細は、 「Libgen でのカスタマイズ」 を

参照してください。

タイマおよび UART の INTC の MHS ファイル例

BEGIN xps_timerparameter INSTANCE = mytimerparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF0000parameter C_HIGHADDR = 0xFFFF00ffbus_interface SPLB = plb_busport Interrupt = timer1port CaptureTrig0 = net_gndEND

BEGIN plb_uartliteparameter INSTANCE = myuartparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF8000parameter C_HIGHADDR = 0xFFFF80FF parameter C_DATA_BITS = 8parameter C_CLK_FREQ = 30000000parameter C_BAUDRATE = 19200parameter C_USE_PARITY = 0bus_interface SOPB = plb_busport RX = rxport TX = txport Interrupt = uart1END

BEGIN plb_intcparameter INSTANCE = myintcparameter HW_VER = 1.00.cparameter C_BASEADDR = 0xFFFF1000parameter C_HIGHADDR = 0xFFFF10ffbus_interface SOPB = plb_busport Irq = interruptport Intr = timer1 & uart1END

begin microblazeparameter INSTANCE = mblazeparameter HW_VER = 7.00.abus_interface DOPB = plb_busbus_interface DLMB = d_lmbbus_interface ILMB = i_lmbport INTERRUPT = interruptend

MSS ファイルの例

BEGIN DRIVERparameter HW_INSTANCE = mytimerparameter DRIVER_NAME = tmrctrparameter DRIVER_VER = 1.00.bparameter INT_HANDLER = timer_int_handler, INT_PORT = InterruptEND

BEGIN DRIVER

Page 235: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 235EDK 10.1 サービス パッ ク 1

MicroBlaze システムの例R

parameter HW_INSTANCE = myuartparameter DRIVER_NAME = uartliteparameter DRIVER_VER = 1.00.bEND

C プログラムの例

#include <xtmrctr_l.h>#include <xuartlite_l.h>#include <xintc_l.h>#include <xgpio_l.h>#include <xparameters.h>

/* Global variables: count is the count displayed using the * LEDs, and timer_count is the interrupt frequency. */

unsigned int count = 1; /* default count */unsigned int timer_count = 1; /* default timer_count */

/* uartlite interrupt service routine */void uart_int_handler(void *baseaddr_p) {char c;/* till uart FIFOs are empty */while (!XUartLite_mIsReceiveEmpty(XPAR_MYUART_BASEADDR)) {/* read a character */c = XUartLite_RecvByte(XPAR_MYUART_BASEADDR);/* if the character is between "0" and "9" */if ((c>47) && (c<58)) {timer_count = c-48;/* print character on hyperterminal (STDOUT) */putnum(timer_count);/* Set timer with new value of timer_count */XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*tim

er_count+1) * 1000000);}

}}

/* timer interrupt service routine */void timer_int_handler(void * baseaddr_p) {unsigned int csr;

unsigned int gpio_data;

/* Read timer 0 CSR to see if it raised the interrupt */ csr = XTmrCtr_mGetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0); if (csr & XTC_CSR_INT_OCCURED_MASK) { /* Increment the count */

if ((count <<= 1) > 8) { count = 1; }

/* Write value to gpio. 0 means light up, hence count is negated */ gpio_data = ~count; XGpio_mSetDataReg(XPAR_MYGPIO_BASEADDR, gpio_data);

Page 236: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

236 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

/* Clear the timer interrupt */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, csr);

} }

voidmain() {

unsigned int gpio_data;

/* Enable microblaze interrupts */ microblaze_enable_interrupts();

/* Connect uart interrupt handler that will be called when an interrupt* for the uart occurs */XIntc_RegisterHandler(XPAR_MYINTC_BASEADDR,

XPAR_MYINTC_MYUART_INTERRUPT_INTR,(XInterruptHandler)uart_int_handler,(void *)XPAR_MYUART_BASEADDR);

/* Start the interrupt controller */ XIntc_mMasterEnable(XPAR_MYINTC_BASEADDR);

/* Set the gpio as output on high 3 bits (LEDs)*/ XGpio_mSetDataDirection(XPAR_MYGPIO_BASEADDR, 0x00);

/* set the number of cycles the timer counts before interrupting */ XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*timer_count+1) * 1000000);

/* reset the timers, and clear interrupts */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_INT_OCCURED_MASK | XTC_CSR_LOAD_MASK );

/* Enable timer and uart interrupts in the interrupt controller */ XIntc_mEnableIntr(XPAR_MYINTC_BASEADDR, XPAR_MYTIMER_INTERRUPT_MASK | XPAR_MYUART_INTERRUPT_MASK); /* Enable Uartlite interrupt */XUartLite_mEnableIntr(XPAR_MYUART_BASEADDR);

/* start the timers */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK | XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK);

/* Wait for interrupts to occur */ while (1) ;}

Page 237: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 237EDK 10.1 サービス パッ ク 1

PowerPC システムの例R

PowerPC システムの例

割り込みコン ト ローラを使用しない PowerPC システム (割り込み信号 1 つ)次の場合は、 割り込みコン ト ローラは必要あ り ません。

• 割り込みペリ フェラルまたは外部割り込みピンが 1 つのみ。

• 割り込み信号がレベルで認識される。

メモ : 1 つのペリ フェラルで複数の割り込み信号を発生する場合は、 割り込みコン ト ローラが必要

です。

手順

割り込みコン ト ローラを使用しない、 レベルで認識される割り込み信号が 1 つのみのシステムを設

定するには、 次の手順に従います。

1. XPS の [System Assembly View] の [Filters] で [Ports] をオンにし、 ペリ フェラルの割り込み

信号または外部割り込み信号を PowerPC プロセッサの割り込み入力に接続します。 この割り

込み入力はク リティカルまたは非ク リティカルにできます。

Libgen によ り、xparameters.h 内に定義が作成されます。 詳細は、229 ページの 「Libgen でのカスタマイズ」 を参照してください。

2. 割り込み信号を処理する割り込みハンド ラ ルーチンを記述します。 ペリ フェラル インスタン

スのベース アドレスは、XPAR_<PERIPHERAL_INSTANCE_NAME>_BASEADDR でアクセ

スされます。

3. ソフ ト ウェア アプリ ケーシ ョ ンで、 intc という汎用割り込みコン ト ローラ ド ライバを介して

ISR をプロセッサに登録します。 低レベルのド ラ イバと高レベルのド ラ イバの両方があ り ま

す。 割り込みコン ト ローラ ド ラ イバの詳細は、 割り込みコン ト ローラ ソフ ト ウェア ド ラ イバ

資料を参照してください。 この付録の 「関連リ ソース」 に、 この資料へのリ ンクがあ り ます。

割り込みコン ト ローラの関数を使用した例は、アプ リ ケーシ ョ ン ノート XAPP778 『Using andCreating Interrupt-Based Systems』 を参照して ください。 この付録の 「関連リ ソース」 に、 こ

のアプ リケーシ ョ ン ノートへのリ ンクがあ り ます。

4. Libgen および powerpc-eabi-gcc を実行します。 このプロセスの詳細は、229 ページの「Libgenでのカスタマイズ」 を参照してください。

MHS ファイルの例 (内部割り込み信号)BEGIN xps_timerparameter INSTANCE = mytimerparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF0000parameter C_HIGHADDR = 0xFFFF00ffbus_interface SPLB = plb_busport Interrupt = interruptport CaptureTrig0 = net_gndEND

BEGIN ppc405_virtex4 PARAMETER INSTANCE = ppc405_0 PARAMETER HW_VER = 2.00.a BUS_INTERFACE JTAGPPC = jtagppc_0_0 BUS_INTERFACE IPLB0 = myplb

Page 238: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

238 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

BUS_INTERFACE DPLB0 = myplb PORT IPLB_0_PLB_Clk = sys_clk_s

PORT C405RSTCHIPRESETREQ = C405RSTCHIPRESETREQ PORT C405RSTCORERESETREQ = C405RSTCORERESETREQ PORT C405RSTSYSRESETREQ = C405RSTSYSRESETREQ PORT RSTC405RESETCHIP = RSTC405RESETCHIP PORT RSTC405RESETCORE = RSTC405RESETCORE PORT RSTC405RESETSYS = RSTC405RESETSYS PORT CPMC405CLOCK = sys_clk_sPORT EICC405EXTINPUTIRQ = interruptEND

MSS ファイルの例

BEGIN DRIVERparameter HW_INSTANCE = mytimerparameter DRIVER_NAME = tmrctrparameter DRIVER_VER = 1.00.bparameter INT_HANDLER = timer_int_handler, INT_PORT = InterruptEND

C プログラムの例

/********************************************************************* Copyright (c) 2001 Xilinx, Inc. All rights reserved. * Xilinx, Inc.*** This program uses the timer and gpio to demonstrate interrupt handling.* The timer is set to interrupt regularly. The frequency is set in the code.* Every time there is an interrupt from the timer, * a rotating display of LEDs on the board is updated.** The LEDs and switches are in these bit positions: * LSB 0: gpio_io<3> * LSB 1: gpio_io<2> * LSB 2: gpio_io<1> * LSB 3: gpio_io<0> **********************************************************************/

/* This is the list of files that must be included to access the peripherals: * xtmrctr.h - to access the timer * xgpio_l.h - to access the general purpose I/O* xparameters.h - General purpose definitions. Must always be included * when any drivers/print routines are accessed. This defines * addresses of all peripherals, declares the interrupt service * routines, etc. */#include <xtmrctr_l.h>#include <xgpio_l.h>#include <xparameters.h>#include <xexception_l.h>

/* Global variables: count is the count displayed using the

Page 239: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 239EDK 10.1 サービス パッ ク 1

PowerPC システムの例R

* LEDs, and timer_count is the interrupt frequency. */unsigned int count = 1; /* default count */unsigned int timer_count = 1; /* default timer_count */

/* * Interrupt service routine for the timer. It has been declared as an ISR in * the mss file using the attribute INT_HANDLER. The ISR can be written as a normal C routine. * The peripheral can be accessed using XPAR_<peripheral name in the mhs file>_BASEADDR * as the base address. */void timer_int_handler(void * baseaddr_p) { int baseaddr = (int)baseaddr_p; unsigned int csr; unsigned int gpio_data;int baseaddr = (int) baseaddr_p;

/* Read timer 0 CSR to see if it raised the interrupt */ csr = XTmrCtr_mGetControlStatusReg(baseaddr, 0);

if (csr & XTC_CSR_INT_OCCURED_MASK) {/* Shift the count */

if ((count <<= 1) > 16) { count = 1; }

XGpio_mSetDataReg(XPAR_MYGPIO_BASEADDR, ~count);/* Clear the timer interrupt */XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, csr);

}}

voidmain() {

int i, j;

/* Initialize exception handling */ XExc_Init();

/* Register external interrupt handler */ XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)timer_int_handler, (void *)XPAR_MYTIMER_BASEADDR);

/* Set the gpio as output on high 4 bits (LEDs)*/ XGpio_mSetDataDirection(XPAR_MYGPIO_BASEADDR, 0x00);

/* set the number of cycles the timer counts before interrupting */ XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*timer_count+1) * 8000000);

/* reset the timers, and clear interrupts */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_INT_OCCURED_MASK | XTC_CSR_LOAD_MASK );

Page 240: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

240 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

/* start the timers */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK | XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK);/* Enable PPC non-critical interrupts */ XExc_mEnableExceptions(XEXC_NON_CRITICAL);

/* Wait for interrupts to occur */ while (1) ;}

MHS ファイルの例 (外部割り込み信号)PORT interrupt_in1 = interrupt_in1, DIR = IN, LEVEL = LOW, SIGIS = INTERRUPTBEGIN ppc405_virtex4 PARAMETER INSTANCE = ppc405_0 PARAMETER HW_VER = 2.00.a BUS_INTERFACE JTAGPPC = jtagppc_0_0 BUS_INTERFACE IPLB0 = myplb BUS_INTERFACE DPLB0 = myplb PORT IPLB_0_PLB_Clk = sys_clk_s PORT DPLB_0_PLB_Clk = sys_clk_s PORT C405RSTCHIPRESETREQ = C405RSTCHIPRESETREQ PORT C405RSTCORERESETREQ = C405RSTCORERESETREQ PORT C405RSTSYSRESETREQ = C405RSTSYSRESETREQ PORT RSTC405RESETCHIP = RSTC405RESETCHIP PORT RSTC405RESETCORE = RSTC405RESETCORE PORT RSTC405RESETSYS = RSTC405RESETSYS PORT CPMC405CLOCK = sys_clk_sPORT EICC405EXTINPUTIRQ = interrupt_in1END

MSS ファイルの例

PARAMETER int_handler = global_int_handler, int_port = interrupt_in1

C プログラムの例

#include <xparameters.h>

/* global interrupt service routine */void global_int_handler(void * arg) {/* Handle the global interrupts here */}voidmain() {/* Initialize exception handling */ XExc_Init();

/* Register external interrupt handler */ XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)global_int_handler, (void *)0);

/* Enable PPC non-critical interrupts */XExc_mEnableExceptions(XEXC_NON_CRITICAL);

Page 241: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 241EDK 10.1 サービス パッ ク 1

PowerPC システムの例R

/* Wait for interrupts to occur */ while (1);}

割り込みコン ト ローラを使用した PowerPC システム (複数の割り込み信号)割り込み信号が複数ある場合は、割り込みコン ト ローラ ペリ フェラル (INTC) を使用する必要があ

り ます。 割り込みが発生する と、 割り込みコン ト ローラの割り込みハンド ラ (XIntc_DeviceInterruptHandler) が呼び出されます。 この関数は割り込みコン ト ローラにアクセスし、 割り

込み信号を生成したペリ フェラルの うち優先順位が 高のものを判断します。 優先順位レベルは、

Libgen で生成された例外テーブルを使用して決定されます。 ペリ フェラルの割り 込みハンド ラから

復帰すると 、 INTC で割り 込みがイネーブルになり 、次に優先順位の高い割り 込みが処理されます。

手順

割り込みを発生するペリ フェラルが複数あ り、 割り込みコン ト ローラを使用する場合は、 次の手順

に従います。

1. XPS の [System Assembly View] の [Filters] で [Ports] をオンにし、 ペリ フェラルの割り込み

信号を割り込みコン ト ローラの Intr ポート に接続します。 INTC からの割り込み信号出力は、

PowerPC プロセッサの割り込み入力に接続します。 この割り込み入力はク リ テ ィカルまたは

非ク リティカルにできます。

Libgen によ り、 ユーザー プログ ラ ムで指定された各ペ リ フ ェ ラルのベース ア ド レ スが、

xparameters.h フ ァ イル内で XPAR_<INTC_INSTANCE_NAME>_BASEADDR を使用し

て定義されます。 また、 各割り込み信号の割り込みマスクおよび割り込み ID も作成されます。

マスクは、割り込みをイネーブル/ディ スエーブルにするために使用できます。 詳細は、「Libgenでのカスタマイズ」 を参照してください。

2. 各割り込みペリ フェラルの割り込みハンド ラ ルーチンを記述します。

3. ソフ ト ウェア アプリ ケーシ ョ ンで、 intc という汎用割り込みコン ト ローラ ド ライバを介して

UART ISR をプロセッサに登録します。 低レベルのド ライバと高レベルのド ライバの両方があ

り ます。 割り込みコン ト ローラ ド ラ イバの詳細は、 割り込みコン ト ローラ ソフ ト ウェア ド ラ

イバ資料を参照してください。この付録の「関連リ ソース」に、この資料へのリ ンクがあ り ます。

割り込みコン ト ローラの関数を使用した例は、アプ リ ケーシ ョ ン ノート XAPP778 『Using andCreating Interrupt-Based Systems』 を参照して ください。 この付録の 「関連リ ソース」 に、 こ

のアプ リケーシ ョ ン ノートへのリ ンクがあ り ます。

メモ : INTC 割り込み信号に INT_HANDLER キーワードを使用しないでください。 ペリ フェ

ラルに INT_HANDLER を指定しない場合、 デフォルトのダ ミー ハンド ラが使用されます。

4. Libgen および mb-gcc を実行します。 このプロセスの詳細は、 「Libgen でのカスタマイズ」 を

参照してください。

MHS ファイルの例

BEGIN xps_timerparameter INSTANCE = mytimerparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF0000parameter C_HIGHADDR = 0xFFFF00ffbus_interface SPLB = plb_busport Interrupt = timer1port CaptureTrig0 = net_gnd

Page 242: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

242 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

END

BEGIN opb_uartliteparameter INSTANCE = myuartparameter HW_VER = 1.00.bparameter C_BASEADDR = 0xFFFF8000parameter C_HIGHADDR = 0xFFFF80FF parameter C_DATA_BITS = 8parameter C_CLK_FREQ = 30000000parameter C_BAUDRATE = 19200parameter C_USE_PARITY = 0bus_interface SOPB = opb_busport RX = rxport TX = txport Interrupt = uart1END

BEGIN plb_intcparameter INSTANCE = myintcparameter HW_VER = 1.00.cparameter C_BASEADDR = 0xFFFF1000parameter C_HIGHADDR = 0xFFFF10ffbus_interface SPLB = plb_busport Irq = interruptport Intr = timer1 & uart1END

BEGIN ppc405_virtex4 PARAMETER INSTANCE = ppc405_0 PARAMETER HW_VER = 2.00.a BUS_INTERFACE JTAGPPC = jtagppc_0_0 BUS_INTERFACE IPLB0 = myplb BUS_INTERFACE DPLB0 = myplb PORT IPLB_0_PLB_Clk = sys_clk_s PORT DPLB_0_PLB_Clk = sys_clk_s PORT C405RSTCHIPRESETREQ = C405RSTCHIPRESETREQ PORT C405RSTCORERESETREQ = C405RSTCORERESETREQ PORT C405RSTSYSRESETREQ = C405RSTSYSRESETREQ PORT RSTC405RESETCHIP = RSTC405RESETCHIP PORT RSTC405RESETCORE = RSTC405RESETCORE PORT RSTC405RESETSYS = RSTC405RESETSYS PORT CPMC405CLOCK = sys_clk_sPORT EICC405EXTINPUTIRQ = interruptEND

MSS ファイルの例

BEGIN DRIVERparameter HW_INSTANCE = mytimerparameter DRIVER_NAME = tmrctrparameter DRIVER_VER = 1.00.bparameter INT_HANDLER = timer_int_handler, INT_PORT = InterruptEND

BEGIN DRIVERparameter HW_INSTANCE = myuartparameter DRIVER_NAME = uartliteparameter DRIVER_VER = 1.00.bEND

Page 243: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 243EDK 10.1 サービス パッ ク 1

PowerPC システムの例R

C プログラムの例

#include <xtmrctr_l.h>#include <xuartlite_l.h>#include <xintc_l.h>#include <xgpio_l.h>#include <xparameters.h>

/* Global variables: count is the count displayed using the * LEDs, and timer_count is the interrupt frequency.*/

unsigned int count = 1; /* default count */unsigned int timer_count = 1; /* default timer_count */

/* uartlite interrupt service routine */void uart_int_handler(void *baseaddr_p) {char c;/* till uart FIFOs are empty */while (!XUartLite_mIsReceiveEmpty(XPAR_MYUART_BASEADDR)) {/* read a character */c = XUartLite_RecvByte(XPAR_MYUART_BASEADDR);/* if the character is between "0" and "9" */if ((c>47) && (c<58)) {timer_count = c-48;/* print character on hyperterminal (STDOUT) */putnum(timer_count);/* Set timer with new value of timer_count */XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*tim

er_count+1) * 1000000);}

}}

/* timer interrupt service routine */void timer_int_handler(void * baseaddr_p) {unsigned int csr;

unsigned int gpio_data;int baseaddr = (int) baseaddr_p;

/* Read timer 0 CSR to see if it raised the interrupt */ csr = XTmrCtr_mGetControlStatusReg(baseaddr, 0); if (csr & XTC_CSR_INT_OCCURED_MASK) { /* Increment the count */

if ((count <<= 1) > 8) { count = 1; }

/* Write value to gpio. 0 means light up, hence count is negated */ gpio_data = ~count; XGpio_mSetDataReg(XPAR_MYGPIO_BASEADDR, gpio_data); /* Clear the timer interrupt */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, csr);

Page 244: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

244 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 B : 割り込み制御R

} }

voidmain() {

unsigned int gpio_data;

/* Initialize exception handling */ XExc_Init();

/* Register external interrupt handler */ XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)XIntc_DeviceInterruptHandler, (void *)XPAR_MYINTC_DEVICE_ID);

/* Connect uart interrupt handler that will be called when an interrupt* for the uart occurs */XIntc_RegisterHandler(XPAR_MYINTC_BASEADDR,

XPAR_MYINTC_MYUART_INTERRUPT_INTR,(XInterruptHandler)uart_int_handler,(void *)XPAR_MYUART_BASEADDR);

/* Start the interrupt controller */ XIntc_mMasterEnable(XPAR_MYINTC_BASEADDR);

/* Set the gpio as output on high 3 bits (LEDs)*/ XGpio_mSetDataDirection(XPAR_MYGPIO_BASEADDR, 0x00);

/* set the number of cycles the timer counts before interrupting */ XTmrCtr_mSetLoadReg(XPAR_MYTIMER_BASEADDR, 0, (timer_count*timer_count+1) * 1000000);

/* reset the timers, and clear interrupts */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_INT_OCCURED_MASK | XTC_CSR_LOAD_MASK );

/* Enable timer and uart interrupts in the interrupt controller */ XIntc_mEnableIntr(XPAR_MYINTC_BASEADDR, XPAR_MYTIMER_INTERRUPT_MASK | XPAR_MYUART_INTERRUPT_MASK); /* Enable Uartlite interrupt */XUartLite_mEnableIntr(XPAR_MYUART_BASEADDR);

/* start the timers */ XTmrCtr_mSetControlStatusReg(XPAR_MYTIMER_BASEADDR, 0, XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK | XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK); /* Enable PPC non-critical interrupts */ XExc_mEnableExceptions(XEXC_NON_CRITICAL);

/* Wait for interrupts to occur */ while (1) ;

}

Page 245: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

R

付録 C

EDK Tcl インターフェイス

この付録では、 EDK ツールで使用可能なツール コマンド言語 (Tcl) アプリ ケーシ ョ ン プログラム

インターフェイス (API) について、 および EDK ツールから Tcl API を使用して情報にアクセスす

る方法を説明します。

この付録は、 次のセクシ ョ ンから構成されています。

• はじめに

• その他のリ ソース

• ハンドル

• データ構造の作成

• Tcl コマンドの使用法

• EDK ハードウェア Tcl コマンド

• ハードウェア API を使用する Tcl の例

• ソフ ト ウェア Tcl コマンド

• ハードウェア プラ ッ ト フォーム生成の Tcl フロー

• 統合ハードウェア データ構造の追加のキーワード

• ソフ ト ウェア プラ ッ ト フォーム生成の Tcl フロー

はじめに

EDK ツールを実行する と、 デザインのランタイム データ構造が毎回構築されます。 このデータ構

造には、 MHS (Microprocessor Hardware Specification) や MSS (Microprocessor SoftwareSpecification) などのユーザー デザイン ファ イル、 MPD (Microprocessor Peripheral Definition)、MDD (Microprocessor Driver Definition)、MLD (Microprocessor Library Definition) などのライブ

ラ リ データ ファ イルに関する情報が含まれます。 データ構造にアクセスするには、 Tcl API を使用

します。 IP、 ド ライバ、 ラ イブラ リ、 OS ライタは、デザイン要件に基づき、 データ構造情報にアク

セスしてツールの処理手順を追加します。 EDK ツールでも、Tcl を使用してさまざまな DRC (デザ

イン ルール チェッ ク ) を実行し、 デザインのデータ構造を限られた範囲内でアップデート します。

その他のリソース

• 『Platform Specification Format Reference Manual』http://japan.xilinx.com/ise/embedded/edk_docs.htm

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 245EDK 10.1 サービス パッ ク 1

Page 246: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

ハンドル

ツールは、 API 関数を使用してデータ構造にアクセスします。 各 API 関数には、 システム情報の形

の引数が必要です。 これらの引数は、 「ハンドル」 と呼ばれます。

たとえば、 MHS ファ イルで定義される IP や、 MSS ファ イルで定義される ド ラ イバは、 ハンド ラ

となり得ます。 ハンド ラには、アクセスするデータのタイプに応じてさまざまなタイプがあ り ます。

データ タイプには、 インスタンス名、 ド ラ イバ名、 ハード ウェア パラ メータ、 ハード ウェア ポー

ト などがあ り ます。 特定のハンドルから、 そのハンドルに関する情報を取得したり、 関連するほか

のハンドルを取得したりできます。

データ構造の作成

EDK ツールでは、 2 つの基本的なランタイム情報にアクセスできます。

• オリジナル デザインと ラ イブラ リ データファイルのデータ構造

• オリジナル データ構造では、 さまざまなデータ ファ イルに存在する情報のみにアクセス可能

です。 MHS、 MSS、 MPD、 MDD、 MLD などのファイルへのハンドルを取得できます。 これ

らのハンドルを使用する と、 対応するファイルの内容を参照できます。

• 統合データ構造

• EDK ツールを実行する と、デザイン ファ イル (MHS または MSS) の情報がライブラ リ ファ イ

ル (MPD、 MDD、 MLD) からの対応する情報と統合され、ハードウェア統合データ構造 (ハー

ド ウェア統合オブジェク ト ) およびソフ ト ウェア統合データ構造 (ソフ ト ウェア統合オブジェ

ク ト ) の統合データ構造が作成されます。 統合データ構造の作成プロセスで、 接続やアドレス

マップなどのさまざまなデザイン特性も解析され、その情報も統合データ構造に保存されます。

統合データ構造では、 この解析情報に簡単にアクセスできます。 たとえば、MHS ファ イル内の

IP のインスタンスは対応する MPD と統合されるので、 統合インスタンスを使用する と、 1 つのハンドルで完全な情報を取得でき、 IP インスタンスのハンドルと MPD のハンドルに別々に

アクセスする必要はあ り ません。

図 C-1 : 統合ハードウェア データ構造の作成

MHS

MPD

MergedDataStructure

X10582

246 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 247: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

Tcl コマンドの使用法R

Tcl コマンドの使用法

一般的な規則

Tcl API には、 返すデータのタイプによって 2 種類あり ます。 Tcl API は、 次のものを返します。

• オブジェク トのハンドルまたはハンドルのリ ス ト

• 値または値のリ ス ト

すべての Tcl API に共通の規則があ り ます。

• 別のオブジェク トへの要求されたハンドルが見つからなかった場合、NULL ハンドルが返され

ます。

• 値が空であるか特定できない場合、 空の文字列が返されます。

Tcl コマンド使用前の確認事項

XPS をコマンド ラ インモード (xps -nw) で使用する場合は、 xload コマンドを使用してプロジェク

ト を読み込み、 内部ツール データベース (ランタイム データ構造) を初期化する必要があ り ます。

xload <filetype><filename>.{MHS/MSS/XMP}

xload コマンドの詳細は、 第 14 章 「コマンド ライン モード」 を参照して ください。

MHS ハンドルまたは統合 MHS ハンドルにアクセスするには、 プロジェク ト を読み込んだ後に次

のいずれかのコマンドを使用します。

XPS% set original_mhs_handle [xget_handle mhs]

または

XPS% set merged_mhs_handle [xget_handle merged_mhs]

次のセクシ ョ ンで、 EDK ハードウェア Tcl コマンドについて詳細に説明します。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 247EDK 10.1 サービス パッ ク 1

Page 248: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

EDK ハードウェア Tcl コマンド

概要

このセクシ ョ ンでは、 EDK のハード ウェア データ構造で使用可能な Tcl API を示します。 これら

のコマンドの説明で使用する用語を次に定義します。

オリジナル MHS ハンドル (original_mhs_handle)

MHS 情報のみを含むハンドルで、 MPD 情報は含まれません。 MHS で IP パラ メータを指定してい

ない場合、 そのパラ メータは含まれません。

統合 MHS ハンドル (merged_mhs_handle)

MHS と MPD 両方の情報を含むハン ドルです。 ハード ウェア データ構造/統合オブジェ ク ト は、

MHS と MPD 情報が統合される際に作成されます。

メモ : Tcl プロシージャは、 Platgen、 Libgen、 Simgen などのバッチ ツールから も呼び出されます。

バッチ ツールで提供されるハンドルでは、常に統合 MHS ハンドルが参照されます。 バッチ ツール

からオ リ ジナル MHS ハンドルにアクセスする こ とはできません。 オ リ ジナル MHS ハンドルは、

MHS デザイン ファ イルをアップデートするために API を使用してデザインを変更する場合にの

み必要です。

オリジナル IP インスタンス ハンドル (original_IP_handle)

MHS ファ イルに示される情報のみを含むオリジナル MHS ハンドルから取得した IP インスタンス

へのハンドルです。

統合 IP インスタンス ハンドル (merged_IP_handle)

統合 MHS ハンドルから取得した IP ハンドルです。 統合 IP インスタンス ハンドルには、 MHS とMPD 両方の情報が含まれます。

メモ : Platgen などのバッチ ツールは、 統合 IP インスタンス ハンドルにのみアクセスし、 オ リ ジ

ナル IP インスタンス ハンドルにはアクセスしません。 そのため、パラ メータ ハンドルやポート ハンドルなどのプロパティ ハンドルも、 オ リジナル ハンドルではなく統合ハンドルです。

248 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 249: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

EDK ハードウェア Tcl コマンドR

ハードウェア読み出しアクセス API次の表に、定義済みのハードウェア読み出しアクセス API の一覧を示します。 この表で API のリ ン

クをク リ ッ クする と、 その説明にジャンプします。

ハードウェア読み出しアクセス API の一覧

ハードウェア読み出しアクセス API の説明

表 C-1 : ハードウェア読み出しアクセス API

xget_hw_busif_value <handle> <busif_name>xget_hw_bus_slave_addrpairs <merged_bus_handle>xget_hw_busif_handle <handle> <busif_name>xget_hw_connected_busifs_handle <merged_mhs_handle> <businst_name> <busif_type>xget_hw_connected_ports_handle <merged_mhs_handle> <connector_name> <port_type>xget_hw_ioif_handle <handle> <ioif_name>xget_hw_ioif_value <handle> <ioif_name>xget_hw_ipinst_handle <mhs_handle> <ipinst_name>xget_hw_mpd_handle <ipinst_handle>xget_hw_name <handle>xget_hw_option_handle <handle> <option_name>xget_hw_option_value <handle> <option_name>xget_hw_parameter_handle <handle> <parameter_name>xget_hw_parameter_value <handle> <parameter_name>xget_hw_pcore_dir_from_mpd <mpd_handle>xget_hw_pcore_dir <ipinst_handle>xget_hw_port_connectors_list <ipinst_handle> <portName>xget_hw_parent_handle <handle>xget_hw_port_connectors_list <ipinst_handle> <portName>xget_hw_port_handle <handle> <port_name>xget_hw_port_value <handle> <port_name>xget_hw_proj_setting <prop_name>xget_hw_proc_slave_periphs <merged_proc_handle>xget_hw_subproperty_handle <property_handle> <subprop_name>xget_hw_subproperty_value <property_handle> <subprop_name>xget_hw_value <handle>

xget_hw_busif_handle <handle> <busif_name>

説明 ハンドルに関連するバス インターフェイスへのハンドルを返します。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 または統合 IP インスタンス

へのハンドルです。

<busif_name> : ハンドルを取得するバス インターフェイスの名前です。 アス

タ リ スク (*) を指定する と、 バス インターフェイス ハンドルのリ ス トが返され

ます。 個々のバス インターフェイス ハンドルにアクセスするには、 Tcl のリ ス

トに対して繰り返し処理を実行します。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 249EDK 10.1 サービス パッ ク 1

Page 250: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_hw_busif_value <handle> <busif_name>

説明 指定したバス インターフェイスの値を返します。 値は通常、 指定したバス イン

ターフェイスに接続されているバスのインスタンス名です。 透過バス インター

フェイスの場合は、 値はバス インスタンス名ではなく コネク タです。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 または統合 IP インスタンス

へのハンドルです。

<busif_name> : 値を取得するバス インターフェイスの名前です。

xget_hw_bus_slave_addrpairs <merged_bus_handle>

説明 指定したバス ハンドルに関連するスレーブ アドレスのリ ス ト を返します。 戻り

値は、 次のよ う な整数値のリ ス トです。

• 初の値は、 接続されたペリ フェラルのベース アドレスです。

• 2 番目の値は、 そのハイ アドレスです。

• その後の値は、 その他のペリ フェラルのベース アドレス とハイ アドレスが

ペアで リ ス ト されます。

引数 <merged_bus_handle> : バス インスタンスを示す統合 IP インスタンスへの

ハンドルです。

xget_hw_connected_busifs_handle <merged_mhs_handle> <businst_name> <busif_type>

説明 指定したバスに接続されているバス インターフェイスへのハンドルのリ ス ト を

返します。

引数 <merged_mhs_handle> : 統合 MHS へのハンドルです。

<businst_name> : 接続されたバス インスタンスの名前です。

<busif_type> : MASTER、 SLAVE、 TARGET、 INITIATOR、 または ALL のいずれかです。

250 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 251: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

EDK ハードウェア Tcl コマンドR

xget_hw_connected_ports_handle <merged_mhs_handle> <connector_name> <port_type>

説明 指定したコネク タに関連しているポートへのハンドルのリ ス ト を返します。 有効なハンドル タイプは統合 MHS です。

引数 <merged_mhs_handle> : 統合 MHS へのハンドルです。

<connector_name> : コネクタの名前です。

<port_type> : source、 sink、 または all のいずれかです。

この API は、 <port_type> によって、 次のよ う なポートのハンドルのリ ス ト

を返します。

• source : 指定の信号を駆動するポートのリ ス ト

• sink : 指定の信号で駆動されるポートの リ ス ト

• all : 指定の信号に接続されるすべてのポートの リ ス ト

xget_hw_ioif_handle <handle> <ioif_name>

説明 ハンドルに関連する I/O インターフェイスへのハンドルを返します。

引数 <handle> : MPD または統合 IP インスタンスへのハンドルです。

メモ : オリジナル IP インスタンスへのハンドルを指定した場合、NULL が返さ

れます。

<ioif_name> : ハンドルを取得する I/O インターフェイスの名前です。 アスタ

リ スク (*) を指定する と、 I/O インターフェイス ハンドルのリ ス トが返されま

す。 個々の I/O インターフェイス ハンドルにアクセスするには、 Tcl のリ ス ト

に対して繰り返し処理を実行します。

xget_hw_ioif_value <handle> <ioif_name>

説明 指定した I/O インターフェイスの値を返します。 値は MPD ファ イルで指定さ

れており、 MHS で上書きするこ とはできません。

引数 <handle> : MPD または統合 IP インスタンスへのハンドルです。

<ioif_name> : 値を取得する I/O インターフェイスの名前です。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 251EDK 10.1 サービス パッ ク 1

Page 252: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_hw_ipinst_handle <mhs_handle> <ipinst_name>

説明 指定した IP インスタンスのハンドルを返します。

引数 <mhs_handle> : オリジナル MHS または統合 MHS へのハンドルです。

<ipinst_name> : ハンドルを取得する IP インスタンスの名前です。 アスタ リ ス

ク (*) を指定する と、IP インスタンス ハンドルのリ ス トが返されます。 個々の IP インスタンス ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返し処理

を実行します。

xget_hw_mpd_handle <ipinst_handle>

説明 指定した IP インスタンスに関連する MPD オブジェク トへのハンドルを返し

ます。

引数 <ipinst_handle> : 統合 IP インスタンスへのハンドルです。

xget_hw_name <handle>

説明 指定したハンドルの名前を返します。

引数 <handle> : ハンドルのタイプです。

<handle> が IP インスタンスの場合、 返される名前はその IP インスタンスの

名前です。 たとえば、ハンドルが MHS ファ イル内の mymb とい う MicroBlaze インスタンスを参照する場合、 API は mymb を返します。 パラ メータ ハンドル

からパラ メータの名前を取得する場合にも、 このコマンドを使用します。

xget_hw_option_handle <handle> <option_name>

説明 オプシ ョ ンに関連するハンドルを返します。

引数 <handle> : 関連するオプシ ョ ンです。

<option_name> : ハンドルを取得するオプシ ョ ンの名前です。

アスタ リ スク (*) を指定する と、 オプシ ョ ン ハンドルのリ ス トが返されます。

個々のオプシ ョ ン ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返

し処理を実行します。

252 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 253: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

EDK ハードウェア Tcl コマンドR

xget_hw_option_value <handle> <option_name>

説明 オプシ ョ ンの値を返します。 値は MPD ファ イルで指定されており、 MHS で上

書きするこ とはできません。

引数 <handle> : MPD または統合 IP インスタンスへのハンドルです。

<option_name> : ハンドルを取得するオプシ ョ ンの名前です。

xget_hw_parameter_handle <handle> <parameter_name>

説明 関連するパラ メータへのハンドルを返します。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 または統合 IP インスタンス

へのハンドルです。

<parameter_name> : ハンドルを取得する関連するパラ メータの名前です。 アスタ リ スク (*) を指定する と、 パラ メータ ハンドルのリ ス トが返されます。 個々のパラ メータ ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返

し処理を実行します。

xget_hw_parameter_value <handle> <parameter_name>

説明 指定したパラ メータの値を返します。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 または統合 IP インスタンス

へのハンドルです。

<parameter_name> : 値を取得する関連するパラ メータの名前です。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 253EDK 10.1 サービス パッ ク 1

Page 254: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_hw_parent_handle <handle>

説明 指定したハンドルの親へのハンドルを返します。 親ハンドルのタイプは、 指定し

たハンドルのタイプによって決ま り ます。 指定したハンドルが統合ハンドルの場

合は、 この API で取得される親も統合ハンドルです。

引数 <handle> は、 次のいずれかです。

• PARAMETER : 親は MPD、 IP インスタンス、 または統合 IP インスタンス

オブジェク トです。

• PORT : 親は MPD、 IP インスタンス、 統合 IP インスタンス、 または MHSオブジェク トです。

• BUS_INTERFACE : 親は MPD、 IP インスタンス、 または統合 IP インスタ

ンス オブジェク トです。

• IO_INTERFACE : 親は MPD または統合 IP インスタンス オブジェク ト です。

• OPTION : 親は MPD または統合 IP インスタンス オブジェク トです。

• IPINST : 親は MHS または統合 MHS オブジェク トです。

• MHS または MPD : 親は NULL ハンドルです。

xget_hw_pcore_dir_from_mpd <mpd_handle>

説明 MPD の pcore ディ レク ト リ パスを返します。

引数 <mpd_handle> : MPD へのハンドルです。

xget_hw_pcore_dir <ipinst_handle>

説明 指定の IP インスタンスの pcore ディ レク ト リ パスを返します。

引数 <ipinst_handle> : IP インスタンスへのハンドルです。

xget_hw_port_connectors_list <ipinst_handle> <portName>

説明 ポートの値 (コネクタ ) が & で区切られた リ ス トの場合、 そのリ ス ト を分割し、

文字列 (コネクタ名) のリ ス ト を返します。

引数 <ipinst_handle> : IP インスタンス (統合またはオリ ジナル) へのハンドル

です。

<option_name> : コネクタを取得するポートの名前です。

254 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 255: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

EDK ハードウェア Tcl コマンドR

xget_hw_port_handle <handle> <port_name>

説明 ハンドルに関連するポートへのハンドルを返します。 ハンドルのタイプが MHS である場合、 返されるハンドルは指定した名前のグローバル ポート を示します。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 統合 IP インスタンス、 オ リ

ジナル MHS、 または統合 MHS へのハンドルです。

<port_name> : ハンドルを取得するポートの名前です。

アスタ リ スク (*) を指定する と、 ポート ハンドルのリ ス トが返されます。 個々

のポート ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返し処理を

実行します。

ハンドルのタイプが MHS (オリジナルまたは統合) である場合、 返されるハン

ドルは指定した名前のグローバル ポート を示します。

xget_hw_port_value <handle> <port_name>

説明 指定したポートの値を返します。 ポートの値は、 ポートに接続されている信号

の名前です。

引数 <handle> : MPD、 オ リ ジナル IP インスタンス、 統合 IP インスタンス、 オ リ

ジナル MHS、 または統合 MHS へのハンドルです。

<port_name> : 値を取得するポートの名前です。

xget_hw_proj_setting <prop_name>

説明 prop_name で指定したプロパティの値を返します。

引数 <prop_name> : 値を取得するプロパティ の名前です。 fpga_family、fpga_partname、 fpga_device、 fpga_package、 fpga_speedgrade のいずれかです。

xget_hw_proc_slave_periphs <merged_proc_handle>

説明 指定したプロセッサでアドレス指定可能なスレーブへのハンドルのリ ス ト を返

します。

引数 <merged_proc_handle> : プロセッサ インスタンスを示す統合 IP インスタン

スへのハンドルです。 返される リ ス トには、 プロセッサに直接接続されておら

ず、バス間ブリ ッジ (opb2plb_bridge など) を介してアクセス可能なスレーブが

含まれます。

入力ハンド ルは、 プロセッ サ インスタンスへの IP インスタンス ハンド ルである

必要があり 、 オリ ジナル MHS からではなく 統合 MHS からのみ取得可能です。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 255EDK 10.1 サービス パッ ク 1

Page 256: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_hw_subproperty_handle <property_handle> <subprop_name>

説明 <property_handle> で指定したプロパティ ハンドルに関連するサブプロパ

ティへのハンドルを返します。

引数 <property_handle> : PARAMETER、 PORT、 BUS_INTERFACE、IO_INTERFACE、 または OPTION のいずれかへのハンドルです。

<subprop_name> : ハンドルを取得するサブプロパティの名前です。 サブプロ

パティの リ ス トは、 『Platform Specification Format Reference Manual』 の

「Microprocessor Peripheral Definition (MPD)」 および 279 ページの 「統合ハー

ドウェア データ構造の追加のキーワード」 を参照して ください。

xget_hw_subproperty_value <property_handle> <subprop_name>

説明 指定したサブプロパティの値を返します。

引数 <property_handle> : PARAMETER、 PORT、 BUS_INTERFACE、IO_INTERFACE、 または OPTION のいずれかです。

<subprop_name> : 値を取得するサブプロパティの名前です。 サブプロパティ

の リ ス トは、 『Platform Specification Format Reference Manual』 の

「Microprocessor Peripheral Definition (MPD)」 および 279 ページの 「統合ハー

ドウェア データ構造の追加のキーワード」 を参照して ください。

xget_hw_value <handle>

説明 指定したハンドルに関連する値を取得します。

引数 <handle> : ハンドルのタイプです。

<handle> のタイプが IP インスタンスの場合、 返される値は IP モジュール名

です。 たとえば、ハンドルが MHS ファ イルの MicroBlaze™ インスタンスを参

照する場合、 IP 名である microblaze が返されます。 パラ メータ ハンドルから

パラ メータの値を取得する場合にも、 このコマンドを使用します。

256 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 257: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア API を使用する Tcl の例R

ハードウェア API を使用する Tcl の例

次に、 ハードウェア API Tcl コマンドを使用する Tcl の例を示します。

例 1この例では、 特定の IPTYPE の IP のリ ス ト を取得する方法を示します。 EDK レポジ ト リに含まれ

る各 IP には、 MPD フ ァ イルの IPTYPE オプシ ョ ンで指定する IP タ イプが対応しています。

merged_mhs_instance には、 MHS ファ イルと MPD ファ イルの両方からの情報が含まれます。

特定の IPTYPE の IP のリ ス ト を取得するには、 次の手順に従います。

1. merged_mhs_instance を使用してすべての IP のリ ス ト を取得します。

2. この リ ス トに対して繰り返し処理を実行して各 IP の OPTION IPTYPE の値を取得し、 指定の

IP タイプと比較します。

次のコードは、 特定の IP の IPTYPE を取得する方法を示します。

## Procedure to get a list of IPs of a particular IPTYPEproc xget_ipinst_handle_list_for_iptype {merged_mhs_handle iptype} {##Get a list of all IPs set ipinst_list [xget_hw_ipinst_handle $merged_mhs_handle "*"] set ret_list ""foreach ipinst $ipinst_list {## Get the value of the IPTYPE Option. set curiptype [xget_hw_option_value $ipinst "IPTYPE"]##if curiptype matches the given iptype, then add it to ## the list that this proc returns.

if {[string compare -nocase $curiptype $iptype] == 0}{lappend ret_list $ipinst

} } return $ret_list}

例 2この例では、 デザインのメモ リ コン ト ローラであるコアのリ ス ト を取得する方法を示します。 メモ

リ コン ト ローラ コアには、アドレス パラ メータに ADDR_TYPE = MEMORY という タグが付いてい

ます。

## Procedure to get a list of memory controllers in a design.proc xget_hw_memory_controller_handles { merged_mhs } {

set ret_list "" # Gets all MhsInsts in the system set mhsinsts [xget_hw_ipinst_handle $merged_mhs "*" ]

# Loop through each MhsInst and determine if it has #"ADDR_TYPE = MEMORY" in the parameters.

foreach mhsinst $mhsinsts {

# Gets all parameters of the IP set params [xget_hw_parameter_handle $mhsinst "*"] # Loop through each param and find tag "ADDR_TYPE = MEMORY"

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 257EDK 10.1 サービス パッ ク 1

Page 258: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

foreach param $params { if {$param == 0} { continue } elseif {$param == ""} { continue } set addrTypeValue [xget_hw_subproperty_value $param"ADDR_TYPE"] # Found tag! Add MhsInst to list and break to go to next MhsInst if {[string compare -nocase $addrTypeValue "MEMORY"] == 0} { lappend ret_list $mhsinst break } } } return $ret_list}

アドバンス書き込みアクセス APIアドバンス書き込みアクセス API は、 メモ リの MHS オブジェク ト を変更します。 これらのコマン

ドは、 オ リジナル MHS ハンドルおよび MHS ハンドルから取得されるハンドルを処理します。

ハードウェア アドバンス書き込みアクセス ハードウェア API の一覧

次の表に、 ハード ウェア アドバンス書き込みアクセス API の一覧を示します。 この表で API のリ

ンクをク リ ッ クする と、 その説明にジャンプします。

表 C-2 : ハードウェア アドバンス書き込みアクセス API

追加コマンド

xadd_hw_hdl_srcfile <ipinst_handle> <fileuse> <filename> <hdllang>xadd_hw_ipinst_busif <ipinst_handle> <busif_name> <busif_value>xadd_hw_ipinst_port <ipinst_handle> <port_name> <connector_name>xadd_hw_ipinst <mhs_handle> <inst_name> <ip_name> <hw_ver>xadd_hw_ipinst_parameter <ipinst_handle> <param_name> <param_value>xadd_hw_subproperty <prop_handle> <subprop_name> <subprop_value>xadd_hw_toplevel_port <mhs_handle> <port_name> <connector_name> <direction>

削除コマンド

xdel_hw_ipinst <mhs_handle> <inst_name>xdel_hw_ipinst_busif <ipinst_handle> <busif_name>xdel_hw_ipinst_port <ipinst_handle> <port_name>xdel_hw_ipinst_parameter <ipinst_handle> <param_name>xdel_hw_subproperty <prop_handle> <subprop_name>xdel_hw_toplevel_port <mhs_handle> <port_name>

258 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 259: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア API を使用する Tcl の例R

ハードウェア アドバンス書き込みアクセス API の説明

追加コマンド

xadd_hw_hdl_srcfile <ipinst_handle> <fileuse> <filename> <hdllang>

説明 PAO に HDL ファ イルを追加します。 この API は、 Platgen や Simgen などの

バッチ ツールでのみ使用し、 デザイン入力方法と して xps バッチで使用しない

でください。

VHDL ファ イルを追加する場合、 インスタンス特定のカスタマイズであるこ と

が想定され、 <instname>_<wrapper>_<hwver> とい う論理ライブラ リに追

加されます。

VHDL ファ イルは、 <projdir>/hdl/elaborate/<instname>_<wrapper>_<hwver> ディレク ト リに生成する必要があ り ます。

Verilog ではライブラ リは使用されませんが、 ファ イルを特定のディ レク ト リ

構造で特定の場所に生成する必要があ り ます。

引数 <ipinst_handle> : IP インスタンスのハンドルです。

<fileuse> : lib、 synlib、 simlib のいずれかです。

<filename> : 指定のファイル名です。

<hdllang> : vhdl または verilog です。

例 xadd_hw_hdl_srcfile $ipinst_handle "lib" "xps_central_dma.vhd" "vhdl"

xadd_hw_ipinst_busif <ipinst_handle> <busif_name> <busif_value>

説明 <busif_name> および <busif_value> で指定したバス インターフェイスを

作成し、<ipinst_handle> で指定した IP インスタンスに追加します。 処理が

正し く実行された場合は新し く作成されたバス インターフェイスへのハンドル

が返され、 正し く実行されなかった場合は NULL が返されます。

引数 <ipinst_handle> : バス インターフェイスを追加する IP インスタンスへのハ

ンドルです。

<busif_name> : バス インターフェイスの名前です。

<busif_value> : バス インターフェイスの値です。

例 MicroBlaze からの ILMB バス インターフェイスを ilmb_0 バスに接続

xadd_hw_ipinst_busif $mb_handle "ILMB" "ilmb_0"

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 259EDK 10.1 サービス パッ ク 1

Page 260: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xadd_hw_ipinst <mhs_handle> <inst_name> <ip_name> <hw_ver>

説明 新しい MHS インスタンスを <mhs_handle> で指定した MHS に追加します。 処理が正し く実行された場合は新し く作成されたインスタンスへのハンドルが

返され、 正し く実行されなかった場合は NULL が返されます。

引数 <mhs_handle> : MHS インスタンスを追加する MHS へのハンドルです。

<inst_name> : 追加する IP インスタンスの名前です。

<ip_name> : 追加する IP の名前です。

<hw_ver> : 追加する IP のバージ ョ ンです。

例 mblaze とい う インスタンス名の Microblaze v7.00.a IP を MHS に追加

xadd_hw_ipinst $mhs_handle "mblaze" "microblaze" "7.00.a"

xadd_hw_ipinst_port <ipinst_handle> <port_name> <connector_name>

説明 <port_name> および <connector_name> で指定したポート を作成し、

<ipinst_handle> で指定した IP インスタンスに追加します。

処理が正し く実行された場合は新し く作成されたポートへのハンドルが返さ

れ、 正し く実行されなかった場合は NULL が返されます。

引数 <inst_handle> : ポート を追加する IP インスタンスへのハンドルです。

<port_name> : ポートの名前です。

<connector_name> : コネク タの名前です。

例 MicroBlaze インスタンスにク ロ ッ ク ポート を追加し、 sys_clk_s 信号に接続

xadd_hw_ipinst_port $mb_handle "Clk" "sys_clk_s"

xadd_hw_ipinst_parameter <ipinst_handle> <param_name> <param_value>

説明 <param_name> および <param_value> で指定したパラ メータを作成し、

<ipinst_handle> で指定した IP インスタンスに追加します。 処理が正し く実

行された場合は新し く作成されたパラ メータへのハンドルが返され、 正し く実

行されなかった場合は NULL が返されます。

引数 <inst_handle> : パラ メータを追加する IP インスタンスへのハンドルです。

<param_name> : パラ メータの名前です。

<param_value> : パラ メータの値です。

例 MicroBlaze インスタンスに C_DEBUG_ENABLED パラ メータを追加し、 値

を 1 に設定

xadd_hw_ipinst_parameter $mb_handle "C_DEBUG_ENABLED" "1"

260 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 261: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア API を使用する Tcl の例R

xadd_hw_subproperty <prop_handle> <subprop_name> <subprop_value>

説明 プロパティ (パラ メータ、 ポート、 またはバス インターフェイス) にサブプロパ

ティを追加します。

引数 <prop_handle> : パラ メータ、 ポート、 またはバス インターフェイスへのハ

ンドルです。

<subprop_name> : サブプロパティの名前です。

<subprop_value> : サブプロパティの値です。 サブプロパティの リ ス トは、

『Platform Specification Format Reference Manual』 の 「Microprocessor Peripheral Definition (MPD)」 および 279 ページの 「統合ハードウェア データ

構造の追加のキーワード」 を参照してください。

例 ポートに DIR を追加

xadd_hw_subproperty $port_handle "DIR" "I"

xadd_hw_toplevel_port <mhs_handle> <port_name> <connector_name> <direction>

説明 新しい 上位ポート を <mhs_handle> で指定した MHS に追加します。 処理が

正し く実行された場合は新し く作成されたポートへのハンドルが返され、 正し

く実行されなかった場合は NULL が返されます。

引数 <mhs_handle> : 上位ポート を追加する MHS へのハンドルです。

<port_name> : 追加するポートの名前です。

<connector_name> : コネクタの名前です。

<direction> : ポートの方向 (I、 O、 または IO) です。

例 コネク タ dcm_clk_s を持つ sys_clk_pin という名前の 上位ポート を追加

xadd_hw_toplevel_port $mhs_handle "sys_clk_pin" "dcm_clk_s" "I"

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 261EDK 10.1 サービス パッ ク 1

Page 262: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

削除コマンド

xdel_hw_ipinst <mhs_handle> <inst_name>

説明 指定した名前の IP インスタンスを削除します。

引数 <mhs_handle> : オリジナル MHS へのハンドルです。

<inst_name> : 削除するインスタンスの名前です。

例 mymb とい う名前のインスタンスを削除

xdel_hw_ipinst $mhs_handle "mymb"

xdel_hw_ipinst_busif <ipinst_handle> <busif_name>

説明 IP インスタンス ハンドル上の指定のバス インターフェイスを削除します。

引数 <ipinst_handle> : IP インスタンスのハンドルです。

<busif_name> : 削除するバス インターフェイスの名前です。

例 MicroBlaze インスタンスから ILMB バス インターフェイスを削除

xdel_hw_ipinst_busif $mb_handle "ILMB"

xdel_hw_ipinst_port <ipinst_handle> <port_name>

説明 IP インスタンス ハンドル上の指定のポート を削除します。

引数 <ipinst_handle> : IP インスタンスのハンドルです。

<port_name> : 削除するポートの名前です。

例 MicroBlaze インスタンス上の Clk ポート を削除

xdel_hw_ipinst_port $mb_handle "Clk"

xdel_hw_ipinst_parameter <ipinst_handle> <param_name>

説明 IP インスタンス ハンドル上の指定のパラ メータを削除します。

引数 <ipinst_handle> : IP インスタンスへのハンドルです。

<param_name> : 削除するパラ メータの名前です。

例 MicroBlaze インスタンスから C_DEBUG_ENABLED パラ メータを削除

xdel_hw_ipinst_busif $mb_handle "C_DEBUG_ENABLED"

262 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 263: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア API を使用する Tcl の例R

xdel_hw_subproperty <prop_handle> <subprop_name>

説明 プロパティ ハンドルから指定のサブプロパティを削除します。

引数 <prop_handle> : パラ メータ、 ポート、 またはバス インターフェイスへのハ

ンドルです。

<subprop_name> : サブプロパティの名前です。

例 ポートから SIGIS サブプロパティを削除

xdel_hw_subproperty $port_handle "SIGIS"

xdel_hw_toplevel_port <mhs_handle> <port_name>

説明 指定した名前の 上位ポート を削除します。

引数 <mhs_handle> : オリジナル MHS へのハンドルです。

<port_name> : 削除するポートの名前です。

例 sys_clk_pin とい う名前の 上位ポート を削除

xdel_hw_toplevel_port $mhs_handle "sys_clk_pin"

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 263EDK 10.1 サービス パッ ク 1

Page 264: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

ソフ トウェア Tcl コマンド

このセクシ ョ ンでは、EDK ソフ ト ウェア Tcl API で使用される用語を説明し、使用可能な Tcl ソフ

ト ウェア API を示します。

ソフ トウェア API で使用される用語

次の表に、 ソフ ト ウェア Tcl API で使用される用語を説明します。

表 C-3 : ソフ トウェア API の用語

オリジナル MSS MSS 情報のみを含むハンドルで、 MDD または MLD 情報は含

まれません。 MSS でド ライバまたはライブラ リ パラ メータを

指定していない場合、 そのパラ メータは含まれません。

統合 MSS MSS と MDD または MLD の情報を含むハンドルです。 この

データ構造オブジェク トは、 MDD または MLD 情報を MSS 情報と統合するこ とによ り形成されます。

オリジナル プロセッサ インスタンス

オリジナル MSS から取得されるプロセッサ ハンドルで、

MSS に示される情報のみが含まれます。

統合プロセッサ 統合 MSS から取得されるプロセッサ ハンドルで、 プロセッサ

からアクセス可能な統合ド ライバおよび統合ライブラ リのリ ス

ト 、 プロセッサに割り当てられた統合 OS インスタンスなど、

MDD 情報およびその他の接続情報が含まれます。 このハンド

ルは、 Libgen を実行した後に使用可能になり ます。

オリジナル ド ライバ インスタンス ハンドル

オリジナル MSS から取得される ド ライバ ハンドルで、 MSS に示される情報のみが含まれます。

統合ド ライバ 使用するペリ フェラルのリ ス ト と、 すべての統合パラ メータ値

を含むド ライバです。 統合プロセッサ オブジェク トで示される

接続情報が含まれます。

オリジナル OS インスタンス ハンドル

オリジナル MSS から取得される OS ハンドルで、MSS に示さ

れる情報のみが含まれます。

統合 OS ハンドル 統合 MSS から取得される OS ハンドルで、 MLD に示される

情報も含まれます。

オリジナル ライブラ リ インス

タンス

オリジナル MSS から取得されるライブラ リ ハンドルで、

MSS に示される情報のみが含まれます。

統合ライブラ リ 統合 MSS から取得されるライブラ リ ハンドルで、 MLD に示

される情報も含まれます。

264 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 265: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア Tcl コマンドR

ソフ トウェア読み出しアクセス API このセクシ ョ ンでは、ソフ ト ウェア読み出しアクセス API を リ ス ト しています。 次の表は API の一

覧で、 リ ンクをク リ ッ クする とその説明にジャンプします。 この一覧の後に、 各 API の説明を示し

ます。

ソフ トウェア読み出しアクセス API の一覧

表 C-4 : ソフ トウェア読み出しアクセス API

xget_sw_array_handle <handle> <array_name>xget_libgen_proc_handlexget_sw_array_element_handle <handle> <element_name>xget_sw_driver_handle <mss_handle> <driver_name>xget_sw_driver_handle_for_ipinst <merged_processor_handle> <ipinst_name>xget_sw_function_handle <handle> <function_name>xget_sw_ipinst_handle <handle> <ipinst_name>xget_sw_ipinst_handle_from_processor <ipinst_name> <merged_processor_handle>xget_sw_iplist_for_driver <merged_driver_handle>xget_sw_interface_handle <handle> <interface_name>xget_sw_library_handle <mss_handle> <library_name>xget_sw_mdd_handle <handle>xget_sw_mld_handle <handle>xget_sw_name <handle>xget_sw_parameter_handle <handle> <parameter_name>xget_sw_parameter_value <handle> <parameter_name>xget_sw_os_handle <mss_handle> <os_name>xget_sw_option_handle <handle> <option_name>xget_sw_option_value <handle> <option_name>xget_sw_parent_handle <handle>xget_sw_processor_handle <mss_handle> <processor_name>xget_sw_property_handle <handle> <property_name>xget_sw_subproperty_handle <property_handle> <subprop_name>xget_sw_property_value <handle> <property_name>xget_sw_subproperty_value <property_handle> <subprop_name>

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 265EDK 10.1 サービス パッ ク 1

Page 266: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

ソフ トウェア読み出しアクセス API の説明

xget_libgen_proc_handle

説明 Libgen が現在実行している統合プロセッサへのハンドルを返します。 この API は、 Libgen を実行中にのみ使用可能です。

引数 なし

例 ド ライバ Tcl ファ イルで、Libgen が実行されている統合プロセッサ インスタン

スを取得

set proc_handle [xget_libgen_proc_handle]

xget_sw_array_handle <handle> <array_name>

説明 ハンドルに関連するアレイへのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なハンドル タイプは、 MDD、 MLD、

MSS、 統合 MSS、 オ リジナル ド ライバ インスタンス、 統合ド ライバ、 オリジ

ナル プロセッサ インスタンス、統合プロセッサ、オリジナル OS インスタンス、

統合 OS、 オ リジナル ライブラ リ インスタンス、 または統合ライブラ リです。

<array_name> : アレイの名前です。 アスタ リ スク (*) を指定する と、 アレイ ハンドルのリ ス トが返されます。 個々のアレイ ハンドルにアクセスするには、

Tcl のリ ス トに対して繰り返し処理を実行します。

例 MSS ハンドルに関連するアレイ ハンドルのリ ス ト を取得

set array_handle [xget_sw_array_handle $mss_handle *]

xget_sw_array_element_handle <handle> <element_name>

説明 ハンドルに関連するアレイ エレ メン トへのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なハンドル タイプは、 アレイまたは

アレイ インスタンスです。

<element_name> : アレイ エレ メン トです。 アスタ リ スク (*) を指定する と、

エレ メン ト ハンドルのリ ス トが返されます。 個々のエレ メン ト ハンドルにア

クセスするには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 set elem_handle [xget_sw_array_element_handle $array_handle "myelement"]

266 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 267: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア Tcl コマンドR

xget_sw_driver_handle <mss_handle> <driver_name>

説明 <mss_handle> で指定した MSS ハンドルに関連する ド ラ イバ (<driver_name>) へのハンドルを返します。

引数 <driver_name> : ド ライバの名前です。

<mss_handle> : MSS ファ イルへのハンドルです。

例 set drv_handle [xget_sw_driver_handle $mss_handle "<driver_name>"]

xget_sw_driver_handle_for_ipinst <merged_processor_handle> <ipinst_name>

説明 <ipinst_name> で指定した IP インスタンスに割り当てられた統合ド ライバ オブジェク トへのハンドルを返します。 統合ド ライバ オブジェク トは、 統合ド

ライバを使用するペリ フェラルのリ ス ト とパラ メータ値を含むド ライバで、 統合プロセッサ オブジェク トで示される接続情報が含まれます。

引数 <merged_processor_handle> : Libgen を実行中にのみ使用可能な統合プロ

セッサ オブジェク トです。 xget_libgen_proc_handle API を使用する と取得で

きます。

<ipinst_name> : 統合ド ライバ情報を取得する IP インスタンスです。

例 割り込みコン ト ローラに接続されている IP ソースのド ライバを取得

set sw_proc_handle [xget_libgen_proc_handle]set ip_driver [xget_sw_driver_handle_for_ipinst $sw_proc_handle $ip_name]

メモ : この例は、 intc ド ライバ Tcl ファ イルからのものです。

xget_sw_function_handle <handle> <function_name>

説明 <function_name> で指定したハンドルに関連する関数へのハンドルを返し

ます。

引数 <handle> : インターフェイス ハンドルです。

<function_name> : 関数の名前です。 アスタ リ スク (*) を指定する と、関数ハ

ンドルのリ ス トが返されます。 個々の関数ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 set func_handle [xget_sw_function_handle $swif_handle "<function_name>"]

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 267EDK 10.1 サービス パッ ク 1

Page 268: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_sw_ipinst_handle <handle> <ipinst_name>

説明 <ipinst_name> で指定した IP インスタンスへのハンドルを返します。

引数 <handle> : 統合プロセッサ インスタンスです。

<ipinst_name> : IP インスタンスの名前です。

例 set ipinst [xget_sw_ipinst_handle $mpi_handle "<ipname>"]

xget_sw_iplist_for_driver <merged_driver_handle>

説明 <merged_driver_handle> に関連する ド ラ イバに割り当てられたペリ フェ

ラルへのハンドルのリ ス ト を返します。

引数 <merged_driver_handle> : Libgen の実行中のみ使用可能なド ライバ ハン

ドルです。 xget_sw_driver_handle_for_ipinst API を使用する と取得できます。

例 uart_driver_handle を使用する ド ラ イバ uartlite を使用するすべてのペリ フェラ

ルのリ ス ト を取得

set periphs [xget_sw_iplist_for_driver $uart_driver_handle]

xget_sw_ipinst_handle_from_processor <ipinst_name> <merged_processor_handle>

説明 統合プロセッサ ハンドルに関連する IP インスタンスへのハンドルを返します。

引数 <ipinst_name> : 統合プロセッサ ハンドルに関連する IP インスタンスです。

<merged_processor_handle> : 統合プロセッサの名前です。

xget_libgen_proc_handle API を使用する と取得できます。

例 my_plb_ethernet という名前のインスタンスへのハンドルを取得

set sw_proc_handle [xget_libgen_proc_handle]set inst_handle [xget_sw_ipinst_handle_from_processor $sw_proc_handle "my_plb_ethernet"]

268 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 269: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア Tcl コマンドR

xget_sw_interface_handle <handle> <interface_name>

説明 <interface_name> で指定したハンドルに関連するインターフェイスへのハ

ンドルを返します。

引数 <handle> : インターフェイス ハンドルです。 有効なハンドル タイプは、

MDD、 MLD、 オ リ ジナル ド ライバ インスタンス、 統合ド ライバ、 オリジナ

ル プロセッサ インスタンス、 統合プロセッサ、 オ リジナル OS インスタンス、

統合 OS、 オ リ ジナル ラ イブラ リ インスタンス、 または統合ライブラ リです。

<interface_name> : インターフェイスです。 アスタ リ スク (*) を指定する と、

インターフェイス ハンドルのリ ス トが返されます。 個々のインターフェイス ハンドルにアクセスするには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 set swif_handle [xget_sw_interface_handle $mld_handle "<interface_name>"]

xget_sw_library_handle <mss_handle> <library_name>

説明 <mss_handle> で指定した MSS ハンドルに関連するライブラ リ (<library_name>) へのハンドルを返します。

引数 <library_name> : ラ イブラ リの名前です。

<mss_handle> : MSS ファ イルへのハンドルです。

例 set lib_handle [xget_sw_library_handle $mss_handle "<library_name>"]

xget_sw_mdd_handle <handle>

説明 指定したド ライバまたはプロセッサ インスタンスに関連する MDD オブジェク

トへのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なタイプは、 オリジナル ド ラ イバ インスタンス、 オ リ ジナル プロセッサ インスタンス、 統合ド ライバ、 または統

合プロセッサです。

例 set mdd_handle [xget_sw_mdd_handle $drv_handle]

xget_sw_mld_handle <handle>

説明 指定した OS またはライブラ リ インスタンスに関連する MLD オブジェク トへ

のハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なタイプは、 オ リジナル OS インスタ

ンス、 オ リ ジナル ラ イブラ リ インスタンス、 統合 OS、 または統合ライブラ リ

です。

例 set mld_handle [xget_sw_mld_handle $os_handle]

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 269EDK 10.1 サービス パッ ク 1

Page 270: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_sw_name <handle>

説明 指定したハンドルの名前を返します。 たとえば、 MSS ファ イル内の standalone という OS インスタンスの場合、 standalone が返されます。 パラ メータ ハンド

ルからパラ メータの名前を取得する場合にも、 このコマンドを使用します。

引数 <handle> : ハンドルのタイプです。

例 OS インスタンス とその名前を取得

set os_name [xget_sw_name $os_handle]

xget_sw_parameter_handle <handle> <parameter_name>

説明 ハンドルに関連するパラ メータへのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なハンドル タイプは、 MDD、 MLD、

MSS、 統合 MSS、 オ リジナル ド ライバ インスタンス、 統合ド ライバ、 オリジ

ナル プロセッサ インスタンス、統合プロセッサ、オリジナル OS インスタンス、

統合 OS、 オ リジナル ライブラ リ インスタンス、 または統合ライブラ リです。

メモ : ハンドルのタイプによって、 オリ ジナルまたは統合パラ メータ ハンドル

が返されます。

<parameter_name> : パラ メータです。 アスタ リ スク (*) を指定する と、 パラ

メータ ハンドルのリ ス トが返されます。 個々のパラ メータ ハンドルにアクセス

するには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 OS インスタンスの MSS ファ イルに含まれる stdin とい うパラ メータのハンド

ルを、 os_handle から取得

set stdin_handle [xget_sw_parameter_handle $os_handle]

xget_sw_parameter_value <handle> <parameter_name>

説明 指定したパラ メータの値を返します。

引数 <handle> : ハンドルのタイプです。

<parameter_name> : 指定のパラ メータです。

例 OS インスタンスの MSS ファ イルで uart0 と指定されている stdin というパラ

メータの値を取得 (戻り値はUART0)

set stdin_value [xget_sw_parameter_value $os_handle]

270 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 271: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア Tcl コマンドR

xget_sw_option_handle <handle> <option_name>

説明 ハンドルに関連するオプシ ョ ンへのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 有効なハンドル タイプは、 MDD、 MLD、

オ リ ジナル ド ラ イバ インスタンス、 統合ド ライバ、 オ リジナル プロセッサ インスタンス、 統合プロセッサ、 オ リジナル OS インスタンス、 統合 OS、 オ リ

ジナル ラ イブラ リ インスタンス、 または統合ライブラ リです。

<option_name> : オプシ ョ ンの名前です。 アスタ リ スク (*) を指定する と、 オ

プシ ョ ン ハンドルのリ ス トが返されます。 個々のオプシ ョ ン ハンドルにアクセ

スするには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 OS インスタンスの MSS ファ イルで standalone_drc と指定されている DRC というオプシ ョ ンのハンドルを、 os_handle から取得

set drc_handle [xget_sw_option_handle $os_handle]

xget_sw_option_value <handle> <option_name>

説明 <handle> に関連した指定の <option_name> の値を返します。

引数 <handle> : ハンドルのタイプです。

<option_name> : オプシ ョ ンの名前です。

例 OS インスタンスの MLD ファ イルで standalone_drc と指定されている drc とい

うオプシ ョ ンの値を、 os_handle から取得

set drc_value [xget_sw_option_value $os_handle]

xget_sw_os_handle <mss_handle> <os_name>

説明 <mss_handle> で指定した MSS ハンドルに関連する OS (<os_name>) へのハ

ンドルを返します。

引数 <os_name> : OS の名前です。

<mss_handle> : MSS ファ イルへのハンドルです。

例 set os_handle [xget_sw_os_handle $mss_handle "<os_name>"]

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 271EDK 10.1 サービス パッ ク 1

Page 272: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

xget_sw_parent_handle <handle>

説明 指定したハンドルの親へのハンドルを返します。

引数 <handle> : ハンドルのタイプです。 親ハンドルのタイプは、指定したハンドル

のタイプによって異なり ます。 指定したハンドルが統合ハンドルの場合は、 こ

の API で取得される親も統合ハンドルです。 指定したハンドル タイプによる親

ハンドルのタイプは、 次のとおりです。

• PARAMETER : 親は MDD、 MLD、 プロセッサ インスタンス、 ド ライバ インスタンス、 OS インスタンス、 ラ イブラ リ インスタンス、 統合プロセッサ インスタンス、 統合ド ライバ インスタンス、 統合 OS インスタンス、 また

は統合ライブラ リ インスタンス オブジェク トです。

• ARRAY : 親は MDD、 MLD、 ド ライバ インスタンス、 プロセッサ インス

タンス、 OS インスタンス、 ライブラ リ インスタンス、 統合インスタンス (プロセッサ インスタンス、 OS インスタンス、 ライブラ リ インスタンス、

ド ライバ インスタンス) のいずれか、 または MSS オブジェク トです。

• ELEMENT : 親はアレイ オブジェク トです。

• INTERFACE : 親は MDD、 MLD、 ド ライバ インスタンス、 プロセッサ インスタンス、 OS インスタンス、 ライブラ リ インスタンス、 または統合イン

スタンス (プロセッサ インスタンス、 OS インスタンス、 ラ イブラ リ インス

タンス、 ド ライバ インスタンス) のいずれかです。

• FUNCTION : 親はインターフェイス オブジェク トです。

• OPTION : 親は MDD、 MLD、 ド ライバ インスタンス、 プロセッサ インス

タンス、 OS インスタンス、 ライブラ リ インスタンス、 または統合インスタ

ンス (プロセッサ インスタンス、 OS インスタンス、 ラ イブラ リ インスタン

ス、 ド ライバ インスタンス) のいずれかです。

• DRVINST : 親は MSS または統合 MSS オブジェク トです。

• PROCINST : 親は MSS または統合 MSS オブジェク トです。

• OSINST : 親は MSS または統合 MSS オブジェク トです。

• LIBINST : 親は MSS または統合 MSS オブジェク トです。

• MSS、 MDD、 または MLD : 親は NULL ハンドルです。

例 パラ メータの親を取得

set parent_handle [xget_sw_parent_handle $param_handle]

xget_sw_processor_handle <mss_handle> <processor_name>

説明 <mss_handle> で指定した MSS ハンドルに関連するプロセッサ (<processor_name>) へのハンドルを返します。

引数 <processor_name> : <mss_handle> に関連するプロセッサの名前です。

<mss_handle> : MSS ファ イルへのハンドルです。

例 set proc_handle [xget_sw_processor_handle $mss_handle "<processor_name>"]

272 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 273: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア Tcl コマンドR

xget_sw_property_handle <handle> <property_name>

説明 ハンドルに関連する <property_name> で指定したプロパティへのハンドルを

返します。 有効なハンドル タイプは、 インターフェイス、 アレイ、 および関数

です。

引数 <handle> : ハンドルのタイプです。 有効なタイプは、 インターフェイス、 アレ

イ、 および関数です。

<property_name> : プロパティの名前です。 アスタ リ スク (*) を指定する と、

プロパティ ハンドルのリ ス トが返されます。 個々のプロパティ ハンドルにアク

セスするには、 Tcl のリ ス トに対して繰り返し処理を実行します。

例 set prop_handle [xget_sw_property_handle $swif_handle "HEADER"]

xget_sw_property_value <handle> <property_name>

説明 指定したプロパティの値を返します。

引数 <handle> : ハンドルのタイプです。

<property_name> : プロパティの名前です。

例 set prop_val [xget_sw_property_value $swif_handle "HEADER"]

xget_sw_subproperty_handle <property_handle> <subprop_name>

説明 <property_handle> で指定したプロパティ ハンドルに関連するサブプロパ

ティへのハンドルを返します。

引数 <property_handle> : プロパティの名前です。 有効なオプシ ョ ンは、

PARAMETER、 ARRAY、 ELEMENT、 FUNCTION、 PROPERTY、

INTERFACE、 または OPTION です。

<subprop_name> : サブプロパティの名前です。

例 set subprop_handle [xget_sw_subproperty_handle $prop_handle "<subprop_name>"]

xget_sw_subproperty_value <property_handle> <subprop_name>

説明 指定したサブプロパティの値を返します。

引数 <property_handle> : プロパティの名前です。

<subprop_name> : サブプロパティの名前です。

例 set subprop_value [xget_sw_subproperty_handle $prop_handle "<subprop_name>"]

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 273EDK 10.1 サービス パッ ク 1

Page 274: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

ハードウェア プラッ ト フォーム生成の Tcl フロー

入力ファイル

Platgen、 Simgen、 Libgen など、 ハードウェア プラ ッ ト フォームを作成するツールは、 MHS デザ

イン ファ イルと IP データ ファ イル (MPD) を使用します。 内部的には、 これらのツールはこれら

のファイルに基づいてシステム ビューを作成します。 デザインに含まれる各 IP には、MPD ファ イ

ルが関連付けられています。 オプシ ョ ンで、 Tcl ファ イルを関連付けるこ と もできます。 Tcl ファ イ

ルは、 DRC プロシージャやパラ メータの計算を自動化するプロシージャを含めた り、 またはその

他のタスクを実行したりできます。 ハード ウェア プラ ッ ト フォームの生成中に使用される Tcl ファ

イルは、 コアのディ レク ト リに MPD ファ イルと共に配置されています。 ザイ リ ンクスが提供する

コアの Tcl ファイルは、 <EDK インス トール ディレク ト リ >/hw/XilinxProcessorIPLib/pcores/<corename>/data/ ディ レク ト リにあ り ます。

ハードウェア プラッ ト フォーム生成中に呼び出される Tcl プロシージャ

Platgen (および Libgen、 Simgen、 Bitinit などの EDK バッチ ツール) は、 各 IP に関連する定義済

みの Tcl プロシージャを実行して DRC を実行し、 IP 上の一部のパラ メータの値を算出します。 IPの Tcl ファ イルについては、 『Platform Format Specification Reference Manual』 を参照してくださ

い。 この付録の 245 ページの 「その他のリ ソース」 に、 このマニュアルへのリ ンクがあ り ます。

このセクシ ョ ンでは、 Tcl プロシージャについて説明し、 ユーザー IP に対して呼び出す方法を説明

します。 Tcl プロシージャは、 次のよ うに分類されます。

• Tcl プロシージャで実行されるアクシ ョ ン

♦ DRC

システムに対して DRC を実行しますが、 システムのステートは変更しません。 これらの

プロシージャで生成される リ ターン コードは、 Platgen によ りキャプチャされます。 DRCプロシージャでエラー ステータスが返された場合、 Platgen でエラーが認識され、 適切な

時点で実行を停止します。

♦ UPDATE

システムが正しいステートである と想定し、 Tcl API を使用してデザイン データ構造を参

照して特定のパラ メータの値を算出します。 ツールは、 これらのプロシージャで返された

文字列を使用して、 デザインを Tcl で算出された値でアップデート します。

• Tcl プロシージャが呼び出されるハードウェア プラ ッ ト フォーム作成の段階

♦ IPLEVEL

ツール処理の初期段階で呼び出されます。 これらのプロシージャでは、 デザイン解析は実

行されておらず、 システム レベルの情報はないと想定されます。

xget_sw_value <handle>

説明 指定したハンドルに関連する値を取得します。 ハンドルのタイプが PARAMETER の場合、 値はパラ メータの値です。

引数 <handle> : ハンドルのタイプです。

例 OS インスタンスの MSS ファ イルで UART0 と指定されている stdin とい うパ

ラ メータの値を取得 (戻り値は uart0)

set stdin_value [xget_sw_value $stdin_param_handle]

274 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 275: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア プラッ ト フォーム生成の Tcl フローR

♦ SYSLEVEL

ツールでデザインのシステム レベルの解析が実行され、一部のパラ メータがアップデート

された後に呼び出されます。 これらのパラ メ ータの リ ス ト は、 第 6 章 「PlatformSpecification Utility (PsfUtil)」 の 「予約済みパラ メータ」 を参照して ください。 IP の Tclプロシージャでアップデート されるパラ メータもあ り ます。 これらのパラ メータは IP Tclでのみ処理されるので、 MPD の資料にはリ ス ト されていません。

各 Tcl プロシージャは、 引数を 1 つ使用します。 引数は、 データ構造内の特定のタイプの

ハンドルです。 ハンドル タイプは、 Tcl プロシージャが関連付けられているオブジェク ト

のタ イプによって異な り ます。 パラ メータに関連付けられている Tcl プロシージャには、

そのパラ メータへのハンドルが引数と して指定されます。

IP に関連付けられている Tcl プロシージャには、 デザインで使用される IP の特定のイン

スタンスへのハンドルが引数と して指定されます。 次に、 IP インスタンスに対して呼び出

すこ とができる Tcl プロシージャを示します。

メモ : Tcl プロシージャ名を指定する MPD タグ名は、前述した Tcl プロシージャのカテゴ

リ を示します。

次の各タグは、 MPD ファ イルの名前と値のペアで、 値はそのタグに関連付けられている

Tcl プロシージャを指定します。 IP の Tcl ファ イルにその Tcl プロシージャが存在するこ

とを確認してください。

• ツール特定の Tcl 呼び出し

♦ Platgen または Simgen に特定の呼び出しを指定できます。

MPD 内の Tcl プロシージャの実行順

MPD で指定されている Tcl プロシージャは、 ハード ウェア プラ ッ ト フォームの生成中に次の順序

で実行されます。

1. IPLEVEL_UPDATE_VALUE_PROC (パラ メータに対して)

2. IPLEVEL_DRC_PROC (パラ メータに対して)

3. IPLEVEL_DRC_PROC (IP に対して、 オプシ ョ ンで指定)

4. SYSLEVEL_UPDATE_VALUE_PROC (パラ メータに対して)

5. SYSLEVEL_UPDATE_PROC (IP に対して、 オプシ ョ ンで指定)

6. SYSLEVEL_DRC_PROC (パラ メータに対して)

7. SYSLEVEL_DRC_PROC (IP に対して、 オプシ ョ ンで指定)

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 275EDK 10.1 サービス パッ ク 1

Page 276: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

システム レベル解析前のパラメータ用の UPDATE プロシージャ

パラ メータ サブプロパティ IPLEVEL_UPDATE_VALUE_PROC を使用する と、同じ IP のほかの

パラ メータに基づいてパラ メータ値を算出する Tcl プロシージャを指定できます。 入力ハン ドル

は、 その IP の特定のインスタンスのパラ メータ オブジェク トに関連します。

## MPD snippetPARAMETER C_PARAM1 = 4, ..., PARAMETER C_PARAM2 = 0, ..., IPLEVEL_UPDATE_VALUE_PROC = update_param2

## Tcl computes value based on other parameters on the IP## Argument param_handle points to C_PARAM2 because the Tcl is## associated with C_PARAM2proc update_param2 {param_handle} {set retval 0;set mhsinst [xget_hw_parent_handle $param_handle]set param1val [xget_hw_param_value $mhsinst "C_PARAM1"]if {$param1val >= 4} {set retval 1;

}return $retval

}

システム レベル解析前のパラメータ用の DRC プロシージャ

パラ メータ サブプロパティ IPLEVEL_DRC_PROC を使用する と、そのパラ メータ専用の DRC を実行する Tcl プロシージャを指定できます。 これらの DRC は、 その IP のほかのパラ メータ値とは

独立している必要があ り ます。

たとえば次の DRC は、 パラ メータに有効な値が指定されている こ と を確認するために使用しま

す。 入力ハンドルは、 その IP の特定のインスタンスに対するパラ メータ オブジェク トへのハンド

ルです。

## MPD snippetPARAMETER C_PARAM1 = 0, ..., IPLEVEL_DRC_PROC = drc_param1

## Tcl snippet## Argument param_handle points to C_PARAM1 since the Tcl is## associated with C_PARAM1proc drc_param1 {param_handle} {set param1val [xget_hw_value $param_handleif {$param1val >= 5} {error "C_PARAM1 value should be less 5"return 1;

} else {return 0;

}}

276 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 277: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ハードウェア プラッ ト フォーム生成の Tcl フローR

システム レベル解析前の IP 用の DRC プロシージャ

OPTION IPLEVEL_DRC_PROC を使用する と、 この DRC を実行する Tcl プロシージャを指定で

きます。 このプロシージャは、 IPLEVEL で DRC を実行するために使用します (2 つのパラ メータ

値が一致しているかなど)。 こ こで実行される DRC は、 システム (MHS) での IP の使用とは独立し

ており、 パラ メータ、 バス インターフェイス、 ポート設定のみを使用する必要があ り ます。 入力ハ

ンドルは、 IP のインスタンスへのハンドルです。

## MPD SnippetOPTION IPLEVEL_DRC_PROC = iplevel_drcBUS_INTERFACE BUS = SPLB, BUS_STD = PLB, BUS_TYPE = SLAVEPORT MYPORT = "", DIR = I

## Tcl snippetproc iplevel_drc {ipinst_handle} {set splb_handle [xget_hw_busif_handle $ipinst_handle "SPLB"]set splb_conn [xget_hw_value $splb_handle]set myport_handle [xget_hw_port_handle "MYPORT"]set myport_conn [xget_hw_value $myport_handle]if {$splb_conn == "" || $myport_conn == ""} {error "Either busif SPLB or port MYPORT must be connected in the

design"return 1;

}else {return 0;

}}

システム レベル解析後のパラメータ用の UPDATE プロシージャ

パラ メータ サブプロパティ SYSLEVEL_UPDATE_VALUE_PROC を使用する と、同じ IP のほか

のパラ メータに基づいてパラ メータ値を算出する Tcl プロシージャを指定できます。 入力ハンドル

は、 その IP の特定のインスタンスに対するパラ メータ オブジェク トへのハンドルです。 このプロ

シージャが呼び出されたと きには、Platgen によ り算出されたシステム レベルのパラ メータ (バス上

の C_NUM_MASTERS など) は既に正しい値でアップデート されています。

## MPD snippetPARAMETER C_PARAM1 = 5, ..., SYSLEVEL_UPDATE_VALUE_PROC = sysupdate_param1

## Tcl snippetproc sysupdate_param1 {param_handle} {set retval [somehow_compute_param1]return $reetval;

}

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 277EDK 10.1 サービス パッ ク 1

Page 278: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

システム レベル解析後の IP インスタンス用の UPDATE プロシージャ

OPTION SYSLEVEL_UPDATE_PROC を使用する と、 特定の IP に関連するアクシ ョ ンを実行で

きます。 このプロシージャは、特定のパラ メータではなく IP に関連付けられているので、特定のパ

ラ メータの値をアップデートするためには使用できません。 たとえば、 このプロシージャを使用し

て、特定のディ レク ト リにある IP に関連付けられているファ イルをコピーできます。 入力ハンドル

は、 IP のインスタンスへのハンドルです。

## MPD SnippetOPTION SYSLEVEL_UPDATE_PROC = syslevel_update_proc## Tcl snippetProc myip_syslevel_update_proc {ipinst_handle} {## do somethingreturn 0;

}

システム レベル解析前のパラメータ用の DRC プロシージャ

タグ SYSLEVEL_DRC_PROC を使用する と、 IP がシステムでどのよ うに使用されるかに基づい

て、 完全な IP に DRC を実行する Tcl プロシージャを指定できます。 入力ハンドルは、 その IP の特定のインスタンスに対するパラ メータ オブジェク トへのハンドルです。

PARAMETER C_MYPARAM = 5, ..., SYSLEVEL_DRC_PROC = sysdrc_myparam

システム レベル解析後の IP 用の DRC プロシージャ

OPTION SYSLEVEL_DRC_PROC を使用する と、 Platgen でシステム レベル情報がアップデート

された後に DRC を実行する Tcl プロシージャを指定できます。 入力ハンドルは、 IP のインスタン

スへのハンドルです。 たとえば、 IP がインスタンシエート されている場合、 このプロシージャでこ

の IP のインスタンスの数が制限内か、 常に別の IP と共に使用されているか、 別の IP とは共に使

用されないかが確認されます。

## MPD SnippetOPTION SYSLEVEL_DRC_PROC = syslevel_drcBUS_INTERFACE BUS = SPLB, BUS_STD = PLB, BUS_TYPE = SLAVEPORT MYPORT = "", DIR = O## Tcl snippetproc syslevel_drc {ipinst_handle} {set myport_conn [xget_hw_port_value $ipinst_handle "MYPORT"]set mhs_handle [xget_hw_parent_handle $ipinst_handle]set sink_ports [xget_hw_connected_ports_handle $mhs_handle

$myport_conn "SINK"]if {[llength $sink_ports] > 5} {error "MYPORT should not drive more than 5 signals"return 1;

}else {return 0;

}}

278 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 279: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

統合ハードウェア データ構造の追加のキーワードR

Platgen 特定の呼び出し

共通の Tcl プロシージャがすべて呼び出された後、OPTION PLATGEN_SYSLEVEL_UPDATE_PROCが呼び出されます。 特定のアクショ ンが Platgen の実行でのみ行われるよう にし、ほかのツールの実行

では行われないよう にする場合、 このプロシージャを使用できます。

## MPD SnippetOPTION PLATGEN_SYSLEVEL_UPDATE_PROC = platgen_syslevel_update

Simgen 特定の呼び出し

共通の Tcl プロシージャがすべて呼び出された後、OPTION SIMGEN_SYSLEVEL_UPDATE_PROCが呼び出されます。 特定のアクショ ンが Simgen の実行でのみ行われるよう にし、 ほかのツールの実

行では行われないよう にする場合、 このプロシージャを使用できます。

## MPD SnippetOPTION SIMGEN_SYSLEVEL_UPDATE_PROC = simgen_syslevel_update

統合ハードウェア データ構造の追加のキーワード

統合ハード ウェア データ構造のパラ メータ、 ポート、 およびバス インターフェイスに対して、 オ

プシ ョ ンで作成されているキーワード (サブプロパティ ) があ り ます。 これらのキーワードは DRC用にツールで内部で使用され、Tcl で使用するこ と も可能です。 これらのキーワードについて次に説

明します。

• MHS_VALUE : 統合オブジェク トが作成される際、MHS と MPD 両方からの情報が統合され

ます。 デフォルト値は MPD で設定されていますが、 MHS で設定した値が優先されます。 条件

によって、自動算出された値が MHS の値よ り優先される場合もあ り ます。 MHS で指定された

値は、 MHS_VALUE サブプロパティに保存されます。

• MPD_VALUE : 統合オブジェク トが作成される際、MHS と MPD 両方からの情報が統合され

ます。 デフォルト値は MPD で設定されていますが、 MHS で設定した値が優先されます。 条件

によって、自動算出された値が MHS の値よ り優先される場合もあ り ます。 MPD で指定された

値は、 MPD_VALUE サブプロパティに保存されます。

• CLK_FREQ_HZ : 統合ハード ウェア データ構造の各クロ ッ クの周波数は、 そのポートの

CLK_FREQ_HZ とい うサブプロパテ ィに保存されます。 これは内部サブプロパテ ィであ り、

周波数値の単位は Hz です。

• RESOLVED_ISVALID : MPD でパラ メータ、 ポート、 またはバス インターフェイスに

ISVALID というサブプロパティが定義されている場合、 ツールによ り論理式が真 (1) か偽 (0)かが評価され、 この値がそのプロパティの RESOLVED_ISVALID という内部サブプロパティ

に保存されます。

• RESOLVED_BUS : IP のポート またはパラ メータにコロンで区切られたバスのリ ス ト (BUSタグで指定) があ り、 MPD ファ イルで関連付けるこ とができる場合、 その IP の接続が解析さ

れて IP が接続されているバスが検出され、 そのバス インターフェイスの名前が RESOLVED_BUS タグに保存されます。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 279EDK 10.1 サービス パッ ク 1

Page 280: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

ソフ トウェア プラッ ト フォーム生成の Tcl フロー

ド ライバおよびライブラ リは、 データ定義ファ イル (MDD または MLD) および対応するデータ生

成ファイル (Tcl) を使用してコンフ ィギュレーシ ョ ンされます。 Tcl ファ イルでは、 プロシージャが

定義されています。 これらの各プロシージャは、 ソフ ト ウェアおよびハード ウェア両方のアクセス

コマンドを使用します。 Tcl プロシージャは、 Libgen の自動ソフ ト ウェア生成の一部と して実行さ

れます。 次のセクシ ョ ンでは、ド ライバまたはライブラ リに対する Libgen と Tcl プロシージャの関

係について説明します。 Tcl プロシージャは、 ハンドルを使用してシステム データ構造にアクセス

します。 詳細は、 246 ページの 「ハンドル」 を参照して ください。

入力ファイル

Libgen は、 入力ファイル (MSS または MHS) と、 IP、 ド ラ イバ、 OS、 プロセッサ、 ライブラ リの

データ ファ イル (MPD、 MDD、 MLD、 または Tcl) を使用し、 これらのファイルに基づいてシステ

ム ビューを作成します。 MSS ファ イルで定義された各ド ライバ、 OS、 プロセッサ、 ライブラ リに

は、MDD または MLD ファ イルと Tcl ファ イルが関連付けられています。 Tcl ファ イルには、MSSファ イルの入力に基づいてド ライバおよびライブラ リの正しいコンフ ィギュレーシ ョ ンを生成する

プロシージャが含まれています。 ソフ ト ウェア プラ ッ ト フォームの生成中に使用される Tcl ファ イ

ルは、 ド ライバのディ レク ト リに MDD ファ イルと共に配置されています。 ザイ リ ンクスが提供す

るコアのファイルは、 <EDK インス トール ディ レク ト リ >/sw/XilinxProcessorIPLib/drivers/<driver_name>/data/ ディ レク ト リにあ り ます。

Libgen からの Tcl プロシージャ呼び出し

Libgen を実行する と、 MSS ファ イルに含まれる各ド ライバ、 OS、 プロセッサ、 およびライブラ リ

に対して次の Tcl プロシージャがリ ス ト されている順に呼び出されます。

• DRC : DRC プロシージャの名前は、MDD または MLD ファ イルの OPTION で指定されます。

これが、 ド ラ イバ、 OS、 プロセッサ、 ラ イブラ リ に対して Libgen で呼び出されるプロシー

ジャです。 たとえばド ライバに対しては、MDD と Tcl に DRC プロシージャを定義する次の構

文があ り ます。

MDD/MLDOPTION DRC = mydrcTcl procedure mydrc {driver_handle} {

...}

• generate : Tcl プロシージャ generate の実行中、 関連のド ライバ、 OS、 プロセッサ、 ライブ

ラ リ ファ イルがコピーされ対応する DRC プロシージャが実行された後、 Libgen によ り MSSファ イルに含まれるすべてのド ライバ、 OS、 プロセッサ、 ライブラ リが要求されます。 各ド ラ

イバ、 OS、 プロセッサ、 ラ イブラ リの Tcl ファ イルでこのプロシージャが定義されます。 この

プロシージャは、 Libgen から対応する ド ラ イバ、 OS、 プロセッサ、 またはライブラ リ ハンド

ルを使用して呼び出されます。 たとえばド ライバの Tcl ファ イルには、generate プロシージャを定義する次の構文があ り ます。

procedure generate {driver_handle} {...}

• post_generate : Tcl プロシージャ post_generate の実行中、Tcl プロシージャ generate が呼

び出された後、 Libgen によ り MSS ファ イルに含まれるすべてのド ライバ、 OS、 プロセッサ、

ライブラ リが要求されます。 各ド ライバ、 OS、 プロセッサ、 ラ イブラ リの Tcl ファ イルでこの

プロシージャが定義されます。 このプロシージャは、 Libgen から対応する ド ラ イバ、 OS、 プ

ロセッサ、 またはライブラ リ ハンドルを使用して呼び出されます。

280 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 281: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

ソフ トウェア プラッ ト フォーム生成の Tcl フローR

たとえばド ライバの Tcl ファ イルには、post_generate プロシージャを定義する次の構文があ り

ます。

procedure post_generate {driver_handle} {...}

• execs_generate : Tcl プロシージャ post_generate が呼び出された後、 Libgen によ り MSSファ イルに含まれるすべてのド ラ イバ、 OS、 プロセッサ、 ラ イブラ リに対して呼び出される

Tcl プロシージャです。 各ド ライバ、 OS、 プロセッサ、 ライブラ リの Tcl ファ イルでこのプロ

シージャが定義されます。 このプロシージャは、 Libgen から対応する ド ラ イバ、 プロセッサ、

またはラ イブラ リ ハンドルを使用して呼び出されます。 たとえばド ラ イバの Tcl ファ イルに

は、 execs_generate プロシージャを定義する次の構文があ り ます。

procedure execs_generate {driver_handle} {...}

ド ライバ、 OS、 またはライブラ リ ラ イタは、 Tcl プロシージャ (drc、 generate、 post_generate、 ま

たは execs_generate) に含まれる読み出し専用のソフ ト ウェア アクセス コマンドおよびハードウェ

ア アクセス コマンドを使用して、 システム データ構造にアクセスできます。

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 281EDK 10.1 サービス パッ ク 1

Page 282: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

付録 C : EDK Tcl インターフェイスR

282 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

Page 283: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 283EDK 10.1 サービス パッ ク 1

R

付録 D

用語集

B

BBD ファイル

ブラ ッ ク ボッ クス定義ファ イル。 ペリ フェラルで使用されるネッ ト リ ス ト

ファ イルがリ ス ト されます。

BFLBus Functional Language (バス ファンクシ ョ ン言語) の略。

BFMBus Functional Model (バス ファンクシ ョ ン モデル) の略。

BIT ファイル

ビッ ト ス ト リーム ファ イル。

BitInitBitstream Initializer の略。 FPGA 上のプロセッサの命令メモ リ を初期化し、

ブロ ッ ク RAM の命令メモリに格納するツールです。

BMM ファイル

ブロ ッ ク RAM のマップ ファ イル。 各ブロッ ク RAM がどのよ うに連続した

論理データ空間を構成するかが記述されています。 Data2MEM は、このファ

イルを使用してデータを 適な初期化形式に変換します。 BMM ファ イルは

テキス ト ファ イルなので、 直接編集可能です。

BSBBase System Builder の略。EDK デザインを作成するためのウ ィザードです。

BSB ウ ィザードで使用されるファ イル タイプも BSB です。

BSP「Standalone BSP」 を参照して ください。

Page 284: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

284 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 D : 用語集R

D

DCMDigital Clock Manager (デジタル クロ ッ ク マネージャ ) の略。

DCRデバイス コン ト ロール レジスタ。

DLMBデータ側のローカル メモ リ バス。 「LMB」 も参照して ください。

DMADirect Memory Access の略。

DOPBデータ側のオンチップ ペリ フェラル バス。 「OPB」 も参照してください。

DRCデザイン ルール チェッ ク。

E

EDIF ファイル

Electronic Data Interchange Format の略。 業界標準のネッ ト リ ス ト ファ イル

形式です。

EDKエンべデッ ド開発キッ ト 。

ELF ファイル

Executable Linked Format の略。

EMCEnclosure Management Controller の略。

ESTエンベデッ ド システム ツール。

Page 285: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 285EDK 10.1 サービス パッ ク 1

R

F

FATfs (XilFATfs)LibXil FATFile システム。 XilFATfs ファ イル システムのアクセス ライブラ

リ を使用する と、 ザイ リ ンクス System ACE のコンパク ト フラ ッシュまた

は IBM のマイク ロ ド ライブ デバイスに保存されたファイルに対して読み出

し /書き込みを実行できます。

FPGAフ ィールド プログラマブル ゲート アレイ。

FSLMicroBlaze の高速シンプレッ クス リ ンク。 単一方向のポイン ト ト ゥ ポイン

ト (PPP) データ ス ト リーミ ング インターフェイスで、 ハード ウェア間での

データ送信を高速にします。 MicroBlaze プロセッサには、FSL インターフェ

イスが直接接続されています。

G

GDBGNU デバッガ。

GPIO汎用入出力。 オンチップ ペリ フェラル バスに接続される 32 ビッ ト のペリ

フェラルです。

H

HDLハードウェア記述言語。

I

IBAIntegrated Bus Analyzer の略。

IDEIntegrated Design Environment の略。

ILAIntegrated Logic Analyzer の略。

Page 286: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

286 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 D : 用語集R

ILMB命令側のローカル メモ リ バス。 「LMB」 も参照して ください。

IOPB命令側のオンチップ ペリ フェラル バス。 「OPB」 も参照してください。

IPICIP インターコネク ト 。

IPIFIP インターフェイス。

ISA命令セッ ト アーキテクチャ。 プロセッサの命令セッ ト、 レジスタ、 割り込

み、 例外、 アドレスなどをプログラマに対してど う表示するかが記述されて

います。

ISC割り込みソース コン ト ローラ。

ISE ファイル

ザイ リ ンクス ISE™ (Integrated Software Environment) の Project Navigatorプロジェク ト ファ イル。

ISS命令セッ ト シ ミ ュレータ。

J

JTAGJoint Test Action Group の略。

L

LibgenXPS (Xilinx Platform Studio™) に含まれる Library Generator の略。

LibXil 標準 C ライブラリ

標準 C ライブラ リ関数、およびペリ フェラルにアクセスするための関数を含

む EDK ライブラ リ とデバイス ド ラ イバ。 EDK ライブラ リは、 MSS ファ イ

ルの情報を基に Libgen で自動的にコンフ ィギュレーシ ョ ンされます。

Page 287: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 287EDK 10.1 サービス パッ ク 1

R

LibXil Fileファ イルおよびデバイスに対してブロ ッ ク アクセスを提供するモジュール。

LibXil File モジュールには、 open、 close、 read、 write などの標準ルーチン

が含まれています。

LibXil Netエンベデッ ド プロセッサのネッ ト ワーク ライブラ リ。

LibXil Profileソフ ト ウェアによるプロファ イルのライブラ リ。 ボードで実行されるプログ

ラムのコール グラフおよびヒ ス ト グラム情報を生成します。

LMBローカル メモ リ バス。 主にオンチップ ブロ ッ ク RAM にアクセスするのに

使用する レ イテンシの低い同期バスです。 MicroBlaze プロセッ サには、

ILMB バス と DLMB バスが含まれます。

M

MDD ファイル

Microprocessor Driver Definition の略。

MDMMicroprocessor Debug Module の略。

MFS LibXil Memory File System の略。 ファ イル ハンドルの形式で、 ユーザーが

プログラム メモ リ を管理できます。

MHS ファイル

Microprocessor Hardware Specification の略。 バス、ペリ フェラル、プロセッ

サ、接続、アドレス空間などのエンベデッ ド プロセッサ システムのコンフ ィ

ギュレーシ ョ ンを定義するファイルです。

MLD ファイル

Microprocessor Library Definition の略。

MPD ファイル

Microprocessor Peripheral Definition の略。 ペリ フェラルで使用可能なポー

トおよびハードウェア パラ メータがすべて含まれます。

MSS ファイル

Microprocessor Software Specification の略。

Page 288: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

288 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 D : 用語集R

MVS ファイル

Microprocessor Verification Specification の略。

N

NCF ファイル

ネッ ト リ ス ト制約ファイル。

NGC ファイル

論理デザイン データ と制約の情報を含むネッ ト リ ス ト ファ イル。EDIF およ

び NCF ファ イルからの情報がこのファイルに含まれています。

NGD ファイル

Native Generic Database の略。 デザイン全体を記述したネッ ト リ ス ト ファ

イル。

NGO ファイル

ザイ リ ンクス特定のフォーマッ トのバイナリ ファ イルで、オ リジナルのコン

ポーネン ト と階層によるデザインの論理記述が含まれます。

NPINative Port Interface の略。 ネイティブ ポート インターフェイス。

O

OCMオンチップ メモ リ。

OPBオンチップ ペリ フェラル バス。

P

PACEPinout and Area Constraints Editor の略。

PAO ファイル

Peripheral Analyze Order ファ イル。 合成およびシ ミ ュレーシ ョ ンに必要な

HDL ファ イルの解析順を定義します。

PBD ファイル

Processor Block Diagram ファ イル。

Page 289: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 289EDK 10.1 サービス パッ ク 1

R

PlatgenXPS に含まれる Hardware Platform Generator の略。

PLBプロセッサ ローカル バス。

PROMプログラマブル ROM。

PSFPlatform Specification Format の略。 EDK ツールを駆動するデータ ファ イ

ルの形式です。

S

SDF ファイル

Standard Data Format ファ イル。 プログラム間のデータを転送するために固

定長フィールドを使用するデータ形式です。

SDKソフ ト ウェア開発キッ ト 。

SimgenXPS に含まれる Simulation Generator の略。

SPISerial Peripheral Interface (シ リ アル ペリ フェラル インターフェイス) の略。

Standalone BSPスタンドアロン ボード サポート パッケージ。 プロセッサに特有の関数にア

クセスするソフ ト ウェア モジュールのセッ トです。 アプリケーシ ョ ンがボー

ドまたはプロセッサ機能に直接 (OS レイヤなしで) アクセスする際に使用し

ます。

SVF ファイル

Serial Vector Format ファ イル。

U

UARTUniversal Asynchronous Receiver-Transmitter の略。

Page 290: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

290 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 D : 用語集R

UCFユーザー制約ファイル。

V

VHDLVHSIC ハードウェア記述言語。

VP仮想プラ ッ ト フォーム。

VPgenXPS に含まれる Virtual Platform Generator の略。

X

XBD ファイル

ザイ リ ンクス ボード定義ファイル。

XCLXilinx CacheLink の略。 MicroBlaze プロセッサで使用可能な高パフォーマ

ンスの外部メモ リ キャ ッシュ インターフェイスです。

XilkernelEDK に含まれるザイ リ ンクス エンベデッ ド カーネル。 ザイ リ ンクス エンベ

デッ ド ソフ ト ウェア プラ ッ ト フォーム用のコンフ ィギュレーシ ョ ン可能な

モジュール型の小型 RTOS です。

XMDXilinx Microprocessor Debugger の略。

XMKXilinx Microkernel の略。 標準 C ライブラ リ、 Xilkernel、 Standalone BSP、LibXil MFS、 LibXil ファ イル、 LibXil ド ラ イバを含む集合ソフ ト ウェア システムを表すエンティティです。

XMP ファイル

Xilinx Microprocessor Project の略。 EDK デザインの 上位のプロジェク ト

ファ イルです。

XPSXilinx Platform Studio の略。 エンベデッ ド デザインを開発する GUI 環境

です。

Page 291: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

エンベッ ド システム ツール リ ファレンス マニュアル japan.xilinx.com 291EDK 10.1 サービス パッ ク 1

R

XSTXilinx Synthesis Technology の略。

Z

ZBTZero Bus Turnaround™ の略。

ソフ トウェア プラッ ト フォーム

アプ リ ケーシ ョ ンを構築する ソフ ト ウェア ド ラ イバおよび OS をま とめた

もの。 ハード ウェア プラ ッ ト フォームの流動性およびザイ リ ンク スおよび

サードパーテ ィ パー ト ナーのサポー ト によ り、 各ハード ウ ェア プラ ッ ト

フォームに対して複数のソフ ト ウェア プラ ッ ト フォームを作成できます。

ハードウェア プラッ ト フォーム

ザイ リ ンクスの FPGA 技術を使用する と、 プロセッサ サブシステムのハー

ド ウェア ロジッ クをカスタマイズできます。 標準的なマイ ク ロプロセッサ

チップまたはコン ト ローラ チップでは、このよ う なカスタマイズは不可能で

す。ハードウェア プラ ッ ト フォームは、ザイ リ ンクスの技術を使用して作成

するエンベデッ ド プロセッサ サブシステムです。

ブロック RAMデバイスに組み込まれた LUT ベースのランダム アクセス メモ リ (RAM) のブロ ッ ク。 分散 RAM とは区別されます。

Page 292: エンベデッド システム ツール リファレンス マニュアル - Xilinx...R 本資料は英語版 (v10.0) を翻訳したものです。英語の更新バージョンがリリースされている場合には、最新の英語版

292 japan.xilinx.com エンベッ ド システム ツール リフ ァレンス マニュアル

EDK 10.1 サービス パッ ク 1

付録 D : 用語集R