Xilinx UG702 パーシャル リコンフィギュレーション ユーザー ガイド

パーシ ャル
リ コ ン フ ィ ギ ュ レーシ ョ ン
ユーザー ガ イ ド
[Guide Subtitle]
[optional]
UG702 (v13.1) 2011 年 3 月 1 日 [optional]
Xilinx is disclosing this user guide, manual, release note, and/or specification (the “Documentation”) to you solely for use in the development 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 liability arising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the
Documentation without notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you of any
corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in
connection with the Information.
THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES NO OTHER
WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT
WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING
ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.
CRITICAL APPLICATIONS DISCLAIMER
XILINX PRODUCTS (INCLUDING HARDWARE, SOFTWARE AND/OR IP CORES) ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE,
OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS IN LIFE-SUPPORT OR SAFETY DEVICES OR
SYSTEMS, CLASS III MEDICAL DEVICES, NUCLEAR FACILITIES, APPLICATIONS RELATED TO THE DEPLOYMENT OF AIRBAGS, OR
ANY OTHER APPLICATIONS THAT COULD LEAD TO DEATH, PERSONAL INJURY OR SEVERE PROPERTY OR ENVIRONMENTAL
DAMAGE (INDIVIDUALLY AND COLLECTIVELY, “CRITICAL APPLICATIONS”). FURTHERMORE, XILINX PRODUCTS ARE NOT
DESIGNED OR INTENDED FOR USE IN ANY APPLICATIONS THAT AFFECT CONTROL OF A VEHICLE OR AIRCRAFT, UNLESS THERE
IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO
IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR. CUSTOMER AGREES, PRIOR TO
USING OR DISTRIBUTING ANY SYSTEMS THAT INCORPORATE XILINX PRODUCTS, TO THOROUGHLY TEST THE SAME FOR SAFETY
PURPOSES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY
OF ANY USE OF XILINX PRODUCTS IN CRITICAL APPLICATIONS.
AUTOMOTIVE APPLICATIONS DISCLAIMER
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE
PERFORMANCE, SUCH AS APPLICATIONS RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO
IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD
TO DEATH OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS IN
SUCH APPLICATIONS.
© Copyright 2011 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarks of Xilinx in the
United States and other countries. All other trademarks are the property of their respective owners.
本資料は英語版 (v 13.1) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。
資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
japan.xilinx.com
UG702 (v13.1) 2011 年 3 月 1 日
改定履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2010 年 5 月 3 日
12.1
ISE 12.1 初期 リ リ ース
2010 年 7 月 23 日
12.2
ISE 12.2 リ リ ース用にア ッ プデー ト
2010 年 10月 5日
12.3
ISE 12.3 リ リ ース用にア ッ プデー ト
2011 年 3月 1 日
13.1
ISE 13.1 リ リ ース用にア ッ プデー ト
UG702 (v13.1) 2011 年 3 月 1 日
改定内容
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
japan.xilinx.com
UG702 (v13.1) 2011 年 3 月 1 日
目次
改定履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
第 1 章 : 概要
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
用語 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
ISE 13.1 のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンの基準 . . . . . . . . . . . . . . . . . . . . . . . . 10
第 2 章 : よ く 使用 さ れる ア プ リ ケーシ ョ ン
ネ ッ ト ワー ク マルチポー ト イ ン タ ーフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCIe イ ン タ ーフ ェ イ ス を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ダ イ ナ ミ ッ ク リ コ ン フ ィ ギ ャ ブル パケ ッ ト プ ロ セ ッ サ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
非対称鍵暗号化方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ま とめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
15
15
17
18
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
デザ イ ン構造例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
プ ロ ジ ェ ク ト フ ァ イ ルの構造例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
コ ン フ ィ ギ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
制約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パーテ ィ シ ョ ン と イ ン ポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
イ ンプ リ メ ン テーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ビ ッ ト フ ァ イ ルの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
レ ポー ト フ ァ イ ル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
21
23
24
25
34
37
39
40
pr_verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
フ ロ ーの違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
第 4 章 : PlanAhead サポー ト
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し てのプ ロ ジ ェ ク ト の設定 . . . . . . . . . . .
ネ ッ ト リ ス ト デザ イ ン を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
リ コ ン フ ィ ギ ャ ブル イ ン ス タ ン ス の定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
プ ロ ジ ェ ク ト への リ コ ン フ ィ ギ ャ ブル モジ ュ ールの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザ イ ン ルール チ ェ ッ ク . . . . . . . . . . . . . . . . . . . . . . . .
コ ン フ ィ ギ ュ レーシ ョ ンの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
コ ン フ ィ ギ ュ レーシ ョ ンの制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
コ ン フ ィ ギ ュ レーシ ョ ンの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ビ ッ ト フ ァ イ ルの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PlanAhead プ ロ ジ ェ ク ト のデ ィ レ ク ト リ 構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
55
56
58
60
67
68
71
76
78
79
第 5 章 : コマン ド ラ イ ン スク リ プ ト
Tcl ス ク リ プ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
data.tcl の フ ォーマ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
推奨フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
必要な フ ァ イ ル と デ ィ レ ク ト リ 構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
81
82
87
88
5
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
コ ン フ ィ ギ ュ レーシ ョ ン モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
フル ビ ッ ト フ ァ イ ルのダ ウ ン ロ ー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
パーシ ャ ル ビ ッ ト フ ァ イ ルのダ ウ ン ロ ー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
FPGA デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンする ためのシ ス テ ム デザ イ ン . . . . . . . . . . . . . . . . . . . 94
パーシ ャ ル ビ ッ ト フ ァ イ ルの イ ン テ グ リ テ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
パーシ ャ ル ビ ッ ト ス ト リ ームの CRC チ ェ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
コ ン フ ィ ギ ュ レーシ ョ ン フ レーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
コ ン フ ィ ギ ュ レーシ ョ ン時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
コ ン フ ィ ギ ュ レーシ ョ ンのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
第 7 章 : デザイ ンの注意事項
デザ イ ン階層 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ク ロ ッ ク 規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ア ク テ ィ ブ Low の リ セ ッ ト と ク ロ ッ ク イ ネーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デカ ッ プ リ ン グ機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デザ イ ンの リ ビ ジ ョ ン チ ェ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バ ウ ン ダ リ の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
プロ キシ ロ ジ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ブラ ッ ク ボッ ク ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
モジ ュ ール レベルの制約フ ァ イ ル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
イ ンプ リ メ ン テーシ ョ ン ス ト ラ テジ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
シ ミ ュ レーシ ョ ン と 検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
高速 ト ラ ン シーバの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
その他のザ イ リ ン ク ス ツール と の連動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザ イ ン チ ェ ッ ク リ ス ト . . . . . . . . . . . . . . . . . . . . . . .
105
111
113
113
114
114
115
116
116
117
117
118
119
121
付録 A : 既知の問題 と 制限
既知の問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
既知の制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
付録 B : パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ア ッ プグ レー ド ガ イ ド
早期ア ク セ ス版 と 製品版の違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
デザ イ ンのア ッ プグ レー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
ま と め . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
付録 C : その他の リ ソ ース
6
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第1章
概要
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン と は、 パーシ ャ ル コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを読み
込んで動作中の FPGA デザ イ ン を修正する こ と です。本書では、「パーテ ィ シ ョ ン」 と い う モジ ュ ー
ル デザ イ ン の手法を使用 し て、 部分的に リ コ ン フ ィ ギ ュ レーシ ョ ン可能な FPGA デザ イ ン を作成
お よ び イ ンプ リ メ ン ト す る 方法について説明 し ます。 デザ イ ンのモジ ュ ール イ ン ス タ ン ス は、 新 し
い ハ ー ド ウ ェ ア フ ァ ン ク シ ョ ン を 定義す る パ ー シ ャ ル ビ ッ ト フ ァ イ ル に 変換 さ れ ま す。
『Differencing Method for Partial Reconfiguration』 (XAPP290)に記述 さ れ る 差分方法な ど のその他
の手法については、 本書では説明 し ません。 その他のマニ ュ アルについては、 付録 C 「その他の リ
ソ ース」 を参照 し て く だ さ い。
本書の対象は、 次の と お り です。
•
部分的に リ コ ン フ ィ ギ ュ レーシ ョ ン可能な FPGA デザ イ ン を作成する 設計者用です。
•
ザ イ リ ン ク ス ® ISE® Design Suite お よ び PlanAhead™ ソ フ ト ウ ェ ア な ど の FPGA デザ イ ン
ソ フ ト ウ ェ アに既に精通 し てい る 方を対象 と し ます。
•
特に ISE Design Suite 13.1 用に記述 さ れてい ます。 こ の リ リ ース でサポー ト さ れ る のは、
Virtex®-4、 Virtex-5、 Virtex-6 デバ イ ス のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンのみです。
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンの概要
FPGA では、 デザ イ ン を変更 し て も 製造 し 直す必要な く 、 オンサ イ ト プ ロ グ ラ ム ま たは リ プ ロ グ ラ
ムが柔軟に実行で き ます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン (PR) は、 こ の柔軟性を さ ら に推
進 し た も ので、 パーシ ャ ル コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (通常はパーシ ャ ル ビ ッ ト フ ァ イ ル)
を読み込む こ と で、 動作中の FPGA デザ イ ンが修正で き ます。 フル ビ ッ ト フ ァ イ ルで FPGA を コ
ン フ ィ ギ ュ レーシ ョ ン し た後に、 パーシ ャ ル ビ ッ ト フ ァ イ ルを ダ ウ ン ロ ー ド す る と 、 デバ イ ス の
該当パーツ に対 し て アプ リ ケーシ ョ ン を ま と めて実行 し な く て も 、 FPGA の リ コ ン フ ィ ギ ャ ブル領
域を変更で き ます。
図 1-1 は、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの概念を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
7
第 1 章 : 概要
X-Ref Target - Figure 1-1
FPGA
A4.bit
A3.bit
A2.bit
A1.bit
Reconfig
Block “A”
X12001
図 1-1 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの基本的概念
図に示す よ う に、 Reconfig Block A に イ ン プ リ メ ン ト さ れ る フ ァ ン ク シ ョ ン は、 A1.bit、 A2.bit、
A3.bit、 ま たは A4.bit な ど の複数のパーシ ャ ル ビ ッ ト フ ァ イ ルのいずれか 1 つを ダ ウ ン ロ ー ド す
る と 修正で き ます。 FPGA デザ イ ン ロ ジ ッ ク は、 リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク と ス タ テ ィ ッ ク ロ
ジ ッ ク の 2 種類に分類 さ れ ます。 図の FPGA ブ ロ ッ ク のグ レーの部分は、 ス タ テ ィ ッ ク ロ ジ ッ ク
を表 し 、 Reconfig Block “A” と 記述 さ れた黒い部分が リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク を表 し てい ま
す。パーシ ャ ル ビ ッ ト フ ァ イ ルが読み込まれて も 、 ス タ テ ィ ッ ク ロ ジ ッ ク は動作 し た ま ま で、 ま っ
た く 影響を受け ません。 リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク はパーシ ャ ル ビ ッ ト フ ァ イ ルの内容で置 き
換え ら れます。
1 つの FPGA デバ イ ス にハー ド ウ ェ ア を ダ イ ナ ミ ッ ク に時分割多重化で き る と 効果的なのには、 多
く の理由があ り ます。
こ の理由は、 次の と お り です。
•
指定フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す る ために必要な FPGA デバ イ ス のサ イ ズ を削減す る
ので、 コ ス ト お よ び消費電力 も 削減で き ます。
•
アプ リ ケーシ ョ ンに対 し て使用可能な アルゴ リ ズ ム ま たはプ ロ ト コ ルが柔軟に選択で き ます。
•
デザ イ ン を保護 し た ま ま新技術を使用可能にな り ます。
•
FPGA の フ ォール ト ト レ ラ ン ス を改善 し ます。
•
コ ン フ ィ ギ ャ ブルな計算を促進 し ます。
サ イ ズ、 重 さ 、 電力、 コ ス ト を削減す る だけでな く 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン な し に
イ ンプ リ メ ン ト で き ない新 し い タ イ プの FPGA デザ イ ンに対応 し ます。
用語
次は、 こ のマニ ュ アルで使用 さ れ る パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに特有の用語です。
ボ ト ムア ッ プ合成
ボ ト ム ア ッ プ合成は、 1 つのプ ロ ジ ェ ク ト ま たは複数プ ロ ジ ェ ク ト で、 モジ ュ ールご と にデザ イ ン
を合成す る 方法で、 パーテ ィ シ ョ ン ご と に別々のネ ッ ト リ ス ト が必要です。 こ れ ら のバ ウ ン ダ リ を
越えた最適化は実行 さ れないので、 デザ イ ンの各部分が別々に合成 さ れます。 最上位レベル ロ ジ ッ
ク は、 パーテ ィ シ ョ ン用にブ ラ ッ ク ボ ッ ク ス を使用 し て合成 さ れ る 必要があ り ます。
8
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
用語
コ ン フ ィ ギ ュ レーシ ョ ン
コ ン フ ィ ギ ュ レーシ ョ ンは、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン ご と に 1 つの リ コ ン フ ィ ギ ャ ブル
モジ ュ ールを含む完全なデザ イ ン です。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン FPGA プ ロ ジ ェ ク
ト には、 多 く の コ ン フ ィ ギ ュ レーシ ョ ンが含まれ る こ と があ り ます。 コ ン フ ィ ギ ュ レーシ ョ ンはそ
れぞれ 1 つのフル ビ ッ ト フ ァ イ ルを生成す る ほか、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールご と に 1 つの
パーシ ャ ル ビ ッ ト フ ァ イ ルを生成 し ます。
コ ン フ ィ ギ ュ レーシ ョ ン フ レーム
コ ン フ ィ ギ ュ レーシ ョ ン フ レームは、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ 空間の中で最小のア
ド レ ス指定可能なセグ メ ン ト です。 リ コ ン フ ィ ギ ャ ブル フ レームは、 こ れ ら の最下位レベルのエ レ
メ ン ト の一部か ら 構築 さ れます。
フ レーム
フ レームは、 FPGA デバ イ ス内の最小の リ コ ン フ ィ ギ ャ ブル領域を表 し ます ( こ のマニ ュ アルでは
コ ン フ ィ ギ ュ レーシ ョ ン フ レーム を除 く )。 リ コ ン フ ィ ギ ャ ブル フ レームのビ ッ ト ス ト リ ーム サ イ
ズは、 フ レーム内に含まれ る ロ ジ ッ ク タ イ プに よ っ て異な り ます。
内部 コ ン フ ィ ギ ュ レーシ ョ ン ア ク セス ポー ト (ICAP)
内部 コ ン フ ィ ギ ュ レーシ ョ ン ア ク セ ス ポー ト (ICAP) は、 元々 SelectMAP イ ン タ ーフ ェ イ ス の内
部バージ ョ ン です。 詳細は、 該当デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド を参照 し て
く だ さ い。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン (PR)
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン (PR) は、パーシ ャ ル コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを ダ
ウ ン ロ ー ド し て、 動作中の FPGA デザ イ ンの ロ ジ ッ ク を修正する こ と を示 し ます。
パーテ ィ シ ョ ン
パーテ ィ シ ョ ンは、 階層バ ウ ン ダ リ でユーザーに よ り 定義 さ れ、 デザ イ ン再利用の際に考慮 さ れ る
デザ イ ンの論理セ ク シ ョ ンです。 パーテ ィ シ ョ ンは、 新規 と し て イ ンプ リ メ ン ト さ れ る か、 前の イ
ンプ リ メ ン テーシ ョ ンか ら 保持 さ れ る こ と も あ り ます。 保持 さ れたパーテ ィ シ ョ ンには、 同一の機
能だけでな く 、 同一の イ ンプ リ メ ン テーシ ョ ン結果 も 保持 さ れます。
パーテ ィ シ ョ ン ピ ン
パーテ ィ シ ョ ン ピ ンは、 ス タ テ ィ ッ ク ロ ジ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間の論理お よ び物
理接続です。 パーテ ィ シ ョ ン ピ ンは、 すべての リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン ポー ト に対 し
て自動的に作成 さ れます。
プ ロキシ ロ ジ ッ ク
プ ロ キ シ ロ ジ ッ ク と は、 専用配線以外で、 パーテ ィ シ ョ ン ピ ン ご と に ソ フ ト ウ ェ アで自動的に挿
入 さ れ る 1 つの LUT1 エ レ メ ン ト です。 プ ロ キ シ ロ ジ ッ ク は固定 さ れ る 必要があ り 、 ス タ テ ィ ッ
ク ロ ジ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間の イ ン タ ーフ ェ イ ス と し ての既知のポ イ ン ト です。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
9
第 1 章 : 概要
リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク
リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク と は、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの一部であ る 論理エ レ メ ン ト
の こ と です。 こ れ ら の論理エ レ メ ン ト は、 パーシ ャ ル ビ ッ ト フ ァ イ ルが読み込ま れ る と 変更 さ れ
ます。 LUT、 フ リ ッ プ フ ロ ッ プ、 BRAM、 DSP ブ ロ ッ ク お よ び I/O な ど、 ほ と ん ど の タ イ プの論
理 コ ン ポーネ ン ト が リ コ ン フ ィ ギ ュ レーシ ョ ン で き ます。
リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール (RM)
リ コ ン フ ィ ギ ャ ブル モジ ュ ール (RM) と は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン であ る イ ン ス タ
ン ス に よ っ て イ ン ス タ ン シエー ト さ れ る と イ ンプ リ メ ン ト さ れ る ネ ッ ト リ ス ト ま たは HDL 記述の
こ と です。1 つの リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに対 し て複数の リ コ ン フ ィ ギ ャ ブル モジ ュ ー
ルがあ る こ と も あ り ます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン (RP)
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン (RP) と は、 イ ン ス タ ン ス を リ コ ン フ ィ ギ ャ ブル と し て定義す
る イ ン ス タ ン シエーシ ョ ンの属性セ ッ ト です。 イ ン ス タ ン ス の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
属性は、 NGDBuild、 MAP、 お よ び PAR な ど の ソ フ ト ウ ェ ア ツールで検出 さ れ、 正 し く 処理 さ れ
ます。
イ ン ス タ ン ス が リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン の場合、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
は 「 イ ン ス タ ン ス」 と よ く 同 じ 意味で使用 さ れます。
ス タ テ ィ ッ ク ロジ ッ ク
ス タ テ ィ ッ ク ロ ジ ッ ク と は、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールには含まれない論理エ レ メ ン ト です。
こ の論理エ レ メ ン ト が部分的に リ コ ン フ ィ ギ ュ レーシ ョ ン さ れ る こ と はな く 、 リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ンが リ コ ン フ ィ ギ ュ レーシ ョ ン さ れ る 場合、 常にア ク テ ィ ブにな り ます。 ス タ テ ィ ッ
ク ロ ジ ッ ク と は、 最上位レベル ロ ジ ッ ク の こ と です。
ISE 13.1 のパーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン デザイ ンの基準
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン (PR) は、 ISE® Design Suite のア ド バン ス フ ロ ーです。 こ
の ソ フ ト ウ ェ アには さ ま ざ ま な機能が含ま れてい ますが、 PR プ ロ ジ ェ ク ト を始め る 前に、 まず次
の要件を理解 し て く 必要があ り ます。
各項目の詳細は、 こ のユーザー ガ イ ド で説明 さ れます。
デザイ ン要件 と ガ イ ド ラ イ ン
•
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンには、ISE 12.1 以降のバージ ョ ン を使用す る 必要があ り
ます。
•
デバ イ ス サポー ト :Virtex®-4、 Virtex-5、 Virtex-6
•
こ れ ら の フ ァ ミ リ のすべての派生デバ イ ス がサポー ト さ れます。
•
Xilinx® 7 シ リ ーズ デバ イ ス (Virtex-7、 Kintex-7、 Artix-7) は ま だサポー ト さ れてい ませ
ん。
•
PR は、 PlanAhead™ ま たは コ マ ン ド ラ イ ンでのみサポー ト さ れます。 Project Navigator では
サポー ト さ れません。
10
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
ISE 13.1 のパーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン デザイ ンの基準
•
エ レ メ ン ト タ イ プご と に リ コ ン フ ィ ギ ャ ブル領域を定義す る には、 フ ロ アプ ラ ンが必要にな り
ます。
•
•
ボ ト ム ア ッ プ合成 (複数ネ ッ ト フ ァ イ ルの作成) と リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ
ス ト フ ァ イ ルの管理は、 ユーザーの責任で行っ て く だ さ い。
•
•
可能であれば、 フ レーム / ク ロ ッ ク 領域のバ ウ ン ダ リ に対 し て ア ラ イ メ ン ト し てお く と 、 効
率的です。
合成は PlanAhead の外部で実行 し ます。 ど の合成ツールで も 使用で き ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン中に リ コ ン フ ィ ギ ャ ブル領域 と デザ イ ンの ス タ テ ィ ッ
ク 部分の接続を解除す る には、 ロ ジ ッ ク をデカ ッ プ リ ン グ し て く だ さ い。
•
リ コ ン フ ィ ギ ャ ブル エ レ メ ン ト が FPGA 外部にあ る 場合、 デカ ッ プ リ ン グはオ フチ ッ プ
で実行 さ れ る 必要があ り ます。
•
標準的な タ イ ミ ン グ制約がサポー ト さ れ る ほか、必要であればその他の タ イ ミ ン グ バジ ェ ッ ト
機能 も 使用で き ます。
•
デザ イ ン を問題な く 完成 さ せ る ために、 独自のデザ イ ン ルール チ ェ ッ ク (DRC) が含まれてい
ます。
•
PR デザ イ ンでは、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの開始 と 、 パーシ ャ ル ビ ッ ト フ ァ イ
ルを FPGA 内部で出力す る か、 シ ス テ ム デザ イ ン の一部 と し て出力す る か を考慮す る 必要が
あ り ます。
•
すべての イ ンプ リ メ ン テーシ ョ ン オプシ ョ ンが PR フ ロ ーで使用で き る わけではあ り ません。
MAP コ マ ン ド の -global_opt オプシ ョ ン と その子オプシ ョ ンお よ び SmartGuide™ は、 デザ イ
ン全体の最適化を実行す る ので、 パーテ ィ シ ョ ン ま たは PR フ ロ ーでは使用で き ません。
•
-power オプシ ョ ンは、 MAP と PAR の ど ち ら に も 使用で き ますが、 すべてのオプシ ョ ンが使
用で き る わけではあ り ません。 MAP で high お よ び xe 値を指定す る と 、 デザ イ ン を フ ラ ッ ト
にす る のに必要な Intelligent Clock Gating 機能が起動 さ れ ま すので、 パーシ ャ ル リ コ ン フ ィ
ギ ュ レーシ ョ ンでは使用で き ません。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンには、パーテ ィ シ ョ ン用に イ ンプ リ メ ン ト さ れ る さ ま ざ ま
な リ コ ン フ ィ ギ ャ ブル モジ ュ ールで使用 さ れ る よ う に、すべての ピ ンの スーパーセ ッ ト が含ま
れ る 必要があ り ます。 こ のため、 一部のモジ ュ ール パ タ ーンの入力ま たは出力が未使用にな り
ます。 未使用の入力は、 モジ ュ ール内で ど こ に も 接続 さ れない ま ま にな り 、 イ ンプ リ メ ン テー
シ ョ ン ツールではそれを無視で き る こ と を示す メ ッ セージが表示 さ れます。 未使用の出力は 1
に接続 さ れます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンには、 1 つのモジ ュ ールに使用 さ れて も
別のモ ジ ュ ールでは使用 さ れない よ う な ピ ン が含 ま れ る こ と が あ る ので、 PR フ ロ ーの場合、
PXML フ ァ イ ルで BoundaryOpt 制約をパーテ ィ シ ョ ンに適用する こ と はで き ません。
デザイ ン パ フ ォ ーマ ン ス
•
パフ ォーマ ン ス の測定基準はデザ イ ンに よ っ て異な り ますが、階層デザ イ ン手法を使用す る と 、
悪影響を最低限に抑え る こ と がで き ます。 階層デザ イ ンの詳細は、 『階層デザ イ ン手法ガ イ ド 』
(UG748)お よ びホ ワ イ ト ペーパー 「Repeatable Results with Design Preservation」 (WP632) を
参照 し て く だ さ い。 ただ し 、 ほ と ん ど のデザ イ ンがシ リ コ ン分離に必要なその他の制限の影響
を受け る 可能性があ り ます。
通常、 次の よ う にな り ます。
•
ク ロ ッ ク 周波数が 10% 低下
•
記録密度が 80% ス ラ イ ス未満
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
11
第 1 章 : 概要
•
こ れ ら の追加要件を考慮す る と 、 ほ と ん ど の場合デザ イ ン実行時間は増加 し ます。 MAP が最
も 影響を受け ますが、 NGDBuild お よ び PAR も PR デザ イ ン の処理の影響を受け る こ と があ
り ます。
•
リ コ ン フ ィ ギ ャ ブル領域が小 さ すぎた り 、 長方形以外の形で形成 さ れ る 場合は、 配線が困難に
な る こ と も あ り ます。
設計に関する考慮事項
•
すべてではあ り ませんが、ほ と ん ど の コ ン ポーネ ン ト タ イ プは リ コ ン フ ィ ギ ュ レーシ ョ ン で き
ます。
•
グ ロ ーバル ク ロ ッ ク と ク ロ ッ ク 修正 ロ ジ ッ ク は、 ス タ テ ィ ッ ク 領域に含まれ る 必要があ り
ます。
-
BUFG、 MMCM、 PLL、 DCM お よ び同様の も のが含まれます。
-
BSCAN や STARTUP な ど のアーキ テ ク チ ャ 特有の コ ン ポーネ ン ト は、 それぞれデザ
イ ンの ス タ テ ィ ッ ク 領域に含まれてい る 必要があ り ます。
•
IP を イ ンプ リ メ ン ト す る のに使用 さ れ る コ ン ポーネ ン ト のために、 IP 制限が発生す る こ と が
あ り ます。 具体的な例は、 次の と お り です。
•
ChipScope ICON (BUFG)
•
グ ロ ーバル バ ッ フ ァ の付いた EDK ブ ロ ッ ク
•
MIG コ ン ト ロ ー ラ (MMCM)
•
ス タ テ ィ ッ ク 領域 と リ コ ン フ ィ ギ ャ ブル領域の間には双方向 イ ン タ ーフ ェ イ ス は使用で き ませ
ん。
•
専用の暗号化は、 Virtex-6 でサポー ト さ れ る ほか、 Virtex-5 の場合は IP コ ア を介 し てサポー ト
さ れます。
•
•
ユーザーは独自の ソ フ ト ウ ェ ア暗号化エン ジ ン を構築 し てパーシ ャ ル ビ ッ ト フ ァ イ ルを
修正で き 、 FPGA 内にハー ド ウ ェ ア暗号化エン ジ ン を構築 し て暗号化のニーズ を処理す る
こ と も で き ます。
Virtex デバ イ ス の場合、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの終わ り に専用の CRC 機能は
あ り ませんが、 パーシ ャ ル ビ ッ ト フ ァ イ ルの統合が有効か ど う か を、 ビ ッ ト フ ァ イ ル出力機
能の一部 と し て挿入 さ れ る IP コ ア を介 し てチ ェ ッ ク で き ます。
特定の IP ソ リ ュ ーシ ョ ン も あ り ま すが ( ザ イ リ ン ク ス ア プ リ ケーシ ョ ン ノ ー ト
『PRC/EPRC:
Data Integrity and Security Controller for Partial Reconfiguration』 (XAPP887) 参照)、 前述の よ う
に、 独自の ソ リ ュ ーシ ョ ン を開発 し て、 デザ イ ン内で CRC チ ェ ッ ク を実行す る こ と も で き ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンは、 ザ イ リ ン ク ス FPGA に含ま れ る 優れた機能で、 シ リ コ
ンの機能 と ソ フ ト ウ ェ アの機能を理解す る こ と が重要なポ イ ン ト と な り ます。 開発プ ロ セ ス におけ
る ト レー ド オ フ を理解 し て考慮す る 必要はあ り ますが、 全体的に見る と 、 FPGA デザ イ ンの イ ンプ
リ メ ン テーシ ョ ンは よ り 柔軟にな り ます。
パー シ ャ ル リ コ ン フ ィ ギ ュ レ ー シ ョ ン は、 ザ イ リ ン ク ス サ ポー ト 、 デザ イ ン サー ビ ス お よ び
Titanium テ ク ニ カル サービ ス で完全にサポー ト さ れてい ます。 こ れ ら のサポー ト サービ ス か ら は、
ユーザーのデザ イ ンに合っ た ソ リ ュ ーシ ョ ン を提供 し てい ます。
12
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第2章
よ く 使用 さ れる ア プ リ ケーシ ョ ン
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン では、 FPGA ハー ド ウ ェ ア リ ソ ース を マ イ ク ロ プ ロ セ ッ サ
の機能 と 同様に、 時分割 し て タ ス ク を切 り 替え る こ と がで き ます。 FPGA デバ イ ス の場合、 ハー ド
ウ ェ アで タ ス ク を切 り 替え る ので、 ソ フ ト ウ ェ ア イ ンプ リ メ ン テーシ ョ ンの柔軟性 と ハー ド ウ ェ ア
イ ンプ リ メ ン テーシ ョ ンのパフ ォーマ ン ス の両方の利点を生かす こ と がで き ます。 こ こ では、 さ ま
ざ ま なシナ リ オ を使用 し て、 こ のテ ク ノ ロ ジの詳細を説明 し ます。
ネ ッ ト ワー ク マルチポー ト イ ン タ ー フ ェ イ ス
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン では、 サ イ ズ、 重量、 電力、 コ ス ト な ど を削減す る こ と で
FPGA アプ リ ケーシ ョ ン を最適化 し ま す。 時間非依存の フ ァ ン ク シ ョ ンは リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ール と し て識別 し 、 分離 し 、 イ ンプ リ メ ン ト で き 、 必要に応 じ て デバ イ ス に入れた り 出 し た り
で き ます。 よ く あ る 例は、 ネ ッ ト ワ ー ク ス イ ッ チです。 こ の ス イ ッ チのポー ト では複数の イ ン タ ー
フ ェ イ ス プ ロ ト コ ルがサポー ト さ れ る こ と も あ り ますが、FPGA デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ
ン前に ど のプ ロ ト コ ルが使用 さ れ る かは予測で き ません。 すべてのポー ト をデ ィ ス エーブルに し て
FPGA デバ イ ス を リ コ ン フ ィ ギ ュ レーシ ョ ン し ないですむ よ う にす る には、 図 2-1 の よ う に、 可能
性のあ る すべての イ ン タ ーフ ェ イ ス プ ロ ト コ ルを全ポー ト に イ ンプ リ メ ン ト し ます。
X-Ref Target - Figure 2-1
FPGA
Switch
Fabric
10 GigE
tx/rx
OC48
tx/rx
Fibre
tx/rx
10 GigE
tx/rx
OC48
tx/rx
Fibre
tx/rx
10 GigE
tx/rx
OC48
tx/rx
Fibre
tx/rx
10 GigE
tx/rx
OC48
tx/rx
Fibre
tx/rx
Port 1
Port 2
Port 3
Port 4
X12002
図 2-1 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用 し ない場合のネ ッ ト ワー ク ス イ ッ チ
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
13
第 2 章 : よ く 使用 さ れる ア プ リ ケーシ ョ ン
こ の場合、 各ポー ト に 1 つの規格 し か使用 さ れないので、 効率の悪いデザ イ ンにな り ます。 14 ペー
ジの図 2-2 に示す よ う に、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用す る と 、各ポー ト イ ン タ ー
フ ェ イ ス を リ コ ン フ ィ ギ ャ ブル モジ ュ ールにす る こ と で、 効率の良いデザ イ ン を作成で き ます。 こ
れに よ り 、複数のプ ロ ト コ ル エン ジ ン を 1 つのポー ト に接続す る ために必要であ っ た MUX エ レ メ
ン ト は必要な く な り ます。
X-Ref Target - Figure 2-2
Config Memory Storage
FPGA
10 GigE
Port 1
tx/rx
10 GigE
tx/rx
tx/rx
OC48
tx/rx
Fibre
tx/rx
Port 2
OC48
Switch
Fabric
Fibre
tx/rx
Port 3
Port 4
OC48
tx/rx
X12003
図 2-2 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用 し た場合のネ ッ ト ワー ク ス イ ッ チ
こ の基本的な方法は、 さ ま ざ ま なデザ イ ンで利用で き ます。 た と えば、 相互に排他的な機能を持つ
多 く のアプ リ ケーシ ョ ンの 1 つであ る Software Defined Radio (SDR) で こ の機能が分割 さ れ る と 、
柔軟性お よ び リ ソ ース使用率がかな り 改善 さ れます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用 し たデザ イ ンの利点は、 効率だけではあ り ません。 た
と えば、 新規プ ロ ト コ ルは 図 2-2 の よ う に、 ス タ テ ィ ッ ク ロ ジ ッ ク ( こ の例では ス イ ッ チ フ ァ ブ
リ ッ ク ) に影響な く 、 ど の時点で も サポー ト さ れ ます。 新 し い標準がポー ト に読み込ま れて も 、 そ
れ以外のポー ト には何の影響 も あ り ません。追加 さ れ る 標準は、デザ イ ン全体をや り 直 さ な く て も 、
作成 し て、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ に追加で き る ので、 ス イ ッ チ フ ァ ブ リ ッ ク お よ びその
ポー ト での柔軟性お よ び信頼度が増 し 、 ダ ウ ン タ イ ム も 削減で き ます。 デバ ッ グ モジ ュ ールを作成
す る こ と で、 ポー ト でエ ラ ーが発生す る 場合、 未使用のポー ト に解析/修正 ロ ジ ッ ク が読み込まれ る
よ う にす る と 、 リ アル タ イ ムで問題を処理で き ます。
図 2-2 の例では、各プ ロ ト コ ルで タ ーゲ ッ ト と な る 可能性のあ る 独自の物理 ロ ケーシ ョ ンに対 し て、
独自のパーシ ャ ル ビ ッ ト フ ァ イ ルが生成 さ れ る 必要があ り ます。 パーシ ャ ル ビ ッ ト フ ァ イ ルは、
デバ イ ス の明示的な領域に関連付け ら れます。 こ の例では、 16 個のパーシ ャ ル ビ ッ ト フ ァ イ ルが
4 つの ロ ケーシ ョ ンの 4 つのプ ロ ト コ ルに対応 し てい ます。 今後のパーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ンの開発に よ り 、 ビ ッ ト フ ァ イ ルを別々の物理 ロ ケーシ ョ ンに配置 し 直せ る よ う にな る 可能性
も あ り ます。
14
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
PCIe イ ン タ ー フ ェ イ ス を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
PCIe イ ン タ ー フ ェ イ ス を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンでは、シ ス テ ム アーキテ ク チ ャ と よ り 互換性のあ る イ ン タ ー
フ ェ イ ス標準を使用 し て、新 し い コ ン フ ィ ギ ュ レーシ ョ ン ポー ト を作成で き ます。た と えば、FPGA
デバ イ ス は PCIe バス のペ リ フ ェ ラ ルにで き る ので、 シ ス テ ム ホ ス ト は こ の FPGA を PCIe 接続を
介 し て コ ン フ ィ ギ ュ レーシ ョ ン で き ま す。 電源投入 リ セ ッ ト 後は、 FPGA デバ イ ス を フ ル ビ ッ ト
フ ァ イ ルで コ ン フ ィ ギ ュ レ ーシ ョ ンす る 必要があ り ま すが、 フ ル ビ ッ ト フ ァ イ ルには PCIe イ ン
タ ーフ ェ イ ス と Internal Configuration Access Port (ICAP) への接続 し か含 ま れていない可能性が
あ り ます。
ビ ッ ト ス ト リ ーム圧縮を使用す る と 、 サ イ ズ を削減で き る ので、 こ の内部デバ イ ス ロ ー ド の コ ン
フ ィ ギ ュ レーシ ョ ン時間 も 削減で き 、 FPGA コ ン フ ィ ギ ュ レーシ ョ ンが PCIe の列挙仕様を満た し
やす く な り ます。
こ れで、 図 2-3 の よ う に、 シ ス テ ム ホ ス ト が PCIe ポー ト を介 し てパーシ ャ ル ビ ッ ト フ ァ イ ルを
ダ ウ ン ロ ー ド し 、 ほ と ん ど の FPGA の機能を コ ン フ ィ ギ ュ レーシ ョ ンで き る よ う にな り ます。
X-Ref Target - Figure 2-3
Full
Bit File
ICAP
PCIe
Static
Partial
Bit File
X12021
図 2-3 : PCIe イ ン タ ー フ ェ イ ス を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
PCIe 標準には、 リ ク エ ス ト を処理で き な く て も 、 リ ク エ ス ト を認識す る ためのペ リ フ ェ ラ ル ( こ の
場合は FPGA) が必要です。 FPGA デバ イ ス全体を コ ン フ ィ ギ ュ レーシ ョ ン し 直す と 、 こ の要件に
違反 し て し ま う 可能性があ り ます。 PCIe は ス タ テ ィ ッ ク ロ ジ ッ ク の一部なので、 パーシ ャ ル リ コ
ン フ ィ ギ ュ レ ーシ ョ ン のプ ロ セ ス 中 も 常に ア ク テ ィ ブです。 こ の た め、 FPGA デバ イ ス は リ コ ン
フ ィ ギ ュ レーシ ョ ン中で も PCIe コ マ ン ド に反応で き る よ う にな っ てい ま す。 こ の使用例は、 ザ イ
リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト 『Fast Configuration of PCI Express Technology through Partial
Reconfiguration』 (XAPP883) に記述 さ れてい ます。 ML605 評価ボー ド を タ ーゲ ッ ト にす る リ フ ァ
レ ン ス デザ イ ンは、 こ のアプ リ ケーシ ョ ン ノ ー ト に含まれてい ます。
ダ イ ナ ミ ッ ク リ コ ン フ ィ ギ ャ ブル パケ ッ ト プ ロ セ ッ サ
パケ ッ ト プ ロ セ ッ サにパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用す る と 、 受信す る パケ ッ ト の
種類に基づい て、 その処理 フ ァ ン ク シ ョ ン を素早 く 変更で き ま す。 図 2-4 では、 パケ ッ ト にパー
シ ャ ル ビ ッ ト フ ァ イ ルを含むヘ ッ ダがあ る か、 特定パケ ッ ト にパーシ ャ ル ビ ッ ト フ ァ イ ルが含ま
れてい ます。パーシ ャ ル ビ ッ ト フ ァ イ ルは処理後に、FPGA デバ イ ス の コ プ ロ セ ッ サを リ コ ン フ ィ
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
15
第 2 章 : よ く 使用 さ れる ア プ リ ケーシ ョ ン
ギ ュ レーシ ョ ンす る ために使用 さ れ ま す。 こ れは、 パーシ ャ ル ビ ッ ト フ ァ イ ルの定義済み ラ イ ブ
ラ リ に依存す る のではな く 、受信 し たデー タ パケ ッ ト に基づいて FPGA デバ イ ス を リ コ ン フ ィ ギ ュ
レーシ ョ ンす る 例です。
X-Ref Target - Figure 2-4
FPGA
1
2
Partially
Reconfigurable
Co-processor
ICAP
Data
Packet Processor
PBF: Partial
Bit FIle
Data
PBF
H
Data
2
PBF
1
H
X12005
図 2-4 : ダ イ ナ ミ ッ ク リ コ ン フ ィ ギ ャ ブル パケ ッ ト プ ロ セ ッ サ
16
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
非対称鍵暗号化方式
非対称鍵暗号化方式
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン な し ではデザ イ ン で き ない新 し いア プ リ ケーシ ョ ン も あ り
ます。 FPGA コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを保護す る には、 パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ン と 非対称の暗号文を組み合わせます(非対称鍵暗号の詳細は、 「Public-key cryptography」 を
参照 し て く だ さ い)。
図 2-5 の場合、青いボ ッ ク ス のすべての フ ァ ン ク シ ョ ンが FPGA の物理パ ッ ケージ内で イ ンプ リ メ
ン ト で き ます。 cleartext 情報 と Private Key は、 保護 さ れた コ ン テナ外部には出せません。
X-Ref Target - Figure 2-5
cleartext
Key Co-generation
Public Key
f
ciphertext
Private Key
f
cleartext
X12022
図 2-5 : 非対称鍵暗号化方式
こ のデザ イ ン を実際に イ ンプ リ メ ン ト す る 場合、最初のビ ッ ト フ ァ イ ルは所有権情報を含ま ない暗
号化 さ れていないデザ イ ンです。 最初のデザ イ ンには、 公開鍵 と 秘密鍵のペア を生成す る アルゴ リ
ズ ム と 、 ホ ス ト 、 FPGA、 ICAP を接続する イ ン タ ーフ ェ イ ス のみが含まれてい ます。
最初の ビ ッ ト フ ァ イ ルが読み込 ま れ る と 、 FPGA デバ イ ス で公開鍵 と 秘密鍵のペアが生成 さ れ ま
す。 公開鍵はホ ス ト に送信 さ れ、 ホ ス ト でパーシ ャ ル ビ ッ ト フ ァ イ ルを暗号化す る のにその鍵が
使用 さ れます。 図 2-6 に示す よ う に、 暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ルが FPGA デバ イ ス
にダ ウ ン ロ ー ド さ れ、 解読 さ れ、 ICAP に送信 さ れ る と 、 FPGA が部分的に コ ン フ ィ ギ ュ レーシ ョ
ン し 直 さ れます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
17
第 2 章 : よ く 使用 さ れる ア プ リ ケーシ ョ ン
X-Ref Target - Figure 2-6
FPGA
Host
Bit File
Library
Config 1
Generate Key Pair
Encrypt
Algorithm
Config 2
Config 3
Public
Public
Private
External
Interface
Decrypt
Algorithm
ICAP
X12023
図 2-6 : 暗号化 さ れたパーシ ャル ビ ッ ト フ ァ イルの読み込み
パーシ ャ ル ビ ッ ト フ ァ イ ルは、 ス タ テ ィ ッ ク デザ イ ンの ロ ジ ッ ク も 含め、 FPGA デザ イ ンのかな
り の部分を占め ます。 ま た、 FPGA リ ソ ース全体のわずかな割合 し か消費 し ません。
こ の方法には、 次の よ う な利点があ り ます。
•
公開鍵 と 秘密鍵のペアはど の時点で も 再生成で き ます。 新 し い コ ン フ ィ ギ ュ レーシ ョ ンがホ ス
ト か ら ダ ウ ン ロ ー ド さ れ る と 、 異な る 公開鍵で暗号化で き ます。 FPGA デバ イ ス が電源投入 リ
セ ッ ト 後な ど の同 じ パーシ ャ ル ビ ッ ト フ ァ イ ルを使用 し て コ ン フ ィ ギ ュ レーシ ョ ン さ れ る 場
合、 同 じ ビ ッ ト フ ァ イ ルであ っ て も 別の公開鍵ペアが使用 さ れます。
•
秘密鍵は SRAM に格納 さ れます。 FPGA デバ イ ス が電力を失 う と 、 秘密鍵は存在 し な く な り
ます。
•
FPGA デバ イ ス に電源が入っ た状態でシ ス テ ムが盗難にあ っ た と し て も 、 秘密鍵は汎用の
FPGA フ ァ ブ リ ッ ク に格納 さ れてい る ため、 非常に見つけに く く な っ てい ます。 秘密鍵は特定
の レ ジ ス タ に格納 さ れてい る わけではあ り ません。 設計者は、 物理的な リ モー ト 領域お よ び無
関連の領域に秘密鍵を格納す る レ ジ ス タ ビ ッ ト を それぞれ手動で探す こ と がで き ます。暗号化
機能の例については、ザ イ リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト 『PRC/EPRC: Data Integrity and
Security Controller for Partial Reconfiguration』 (XAPP887) を参照 し て く だ さ い。 Virtex-5 お
よ び Virtex-6 のサンプル デザ イ ンは、 こ のアプ リ ケーシ ョ ン ノ ー ト に含まれます。
ま とめ
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン は、 サ イ ズ、 重 さ 、 電力、 コ ス ト を 削減す る だ け で な く 、
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン な し に イ ン プ リ メ ン ト で き ない新 し い タ イ プの FPGA デザ
イ ンに も 対応 し てい ます。
18
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第3章
ソ フ ト ウ ェ ア ツール フ ロー
こ の章では、 基本的な ソ フ ト ウ ェ ア ツール フ ロ ー、 部分的に リ コ ン フ ィ ギ ャ ブルな FPGA と デザ
イ ンの構造をサポー ト す る シ ス テ ム、 お よ び制約の適用な ど について説明 し ます。
部分的に リ コ ン フ ィ ギ ャ ブルな FPGA デザ イ ン を イ ンプ リ メ ン ト する 方法は、共通 ロ ジ ッ ク を共有
す る パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン以外の複数デザ イ ン を イ ン プ リ メ ン ト す る 方法 と 類似
し てい ます。 複数デザ イ ン間で同 じ 共通 ロ ジ ッ ク が使用 さ れ る よ う にす る には、 パーテ ィ シ ョ ンが
使用 さ れます。 図 3-1 は、 こ の概念を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
19
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
X-Ref Target - Figure 3-1
HDL Sources
Top
Static
Static
Module
Reconfig
Module
Reconfig
Module
Reconfig
Module
Top
SM
RMA
RMB
RMN
Synthesize
Netlists
(EDIF or NGC)
Design 1
Module
Constraints
RMA.bit
Implement
Full_1.bit
Module
Constraints
tic
Design 2
ta
S
py
Co
Static
Constraints
RMB.bit
Implement
Full_2.bit
Module
Constraints
tic
Design N
ta
S
py
Co
Static
Constraints
RMN.bit
Implement
Full_N.bit
Static
Constraints
図 3-1 : パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ ア フ ローの概要
一番上の薄いグ レーのボ ッ ク ス部分は、 各モジ ュ ールの HDL ソ ース か ら ネ ッ ト リ ス ト への合成を
示 し てい ます。 最適なネ ッ ト リ ス ト が各領域に イ ンプ リ メ ン ト さ れ、 その コ ン フ ィ ギ ュ レーシ ョ ン
用の フル ビ ッ ト フ ァ イ ル と パーシ ャ ル ビ ッ ト フ ァ イ ルが生成 さ れます。 最初の イ ンプ リ メ ン テー
シ ョ ン か ら の ス タ テ ィ ッ ク ロ ジ ッ ク は、 その後に続 く デザ イ ン イ ン プ リ メ ン テーシ ョ ンすべてで
共有 さ れます。
デザイ ン構造例
こ のマニ ュ アルでは、 デザ イ ン フ ロ ー と 手法を説明する のに Color2 サンプル デザ イ ン を使用 し ま
す。 こ のデザ イ ンは主に赤、 青、 緑 ( こ の色は主には使用 さ れません) の DVI サポー ト のモニ タ カ
ラ ー バーに表示 さ れ る ほか、主な色を混ぜた別の形で も 表示 さ れます。パーシ ャ ル リ コ ン フ ィ ギ ャ
ブル モジ ュ ールは赤、 青、 緑のモジ ュ ールで表示 さ れます。 各モジ ュ ールには、 赤、 青、 緑ご と に
高速お よ び低速の種類があ り ます。 こ の色の速度は、 LED がデモ ボー ド で点滅す る 速 さ を示 し て
い ま す。 こ のデザ イ ン では、 Virtex®-6 ML-605 評価版プ ラ ッ ト フ ォ ーム を タ ーゲ ッ ト に し てい ま
す。
参照デザ イ ンのデザ イ ン フ ァ イ ルは、 次か ら ダ ウ ン ロ ー ド で き ます。
20
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
プ ロ ジ ェ ク ト フ ァ イルの構造例
http://japan.xilinx.com/tools/partial-reconfiguration
図 3-2 は、 階層ネ ッ ト リ ス ト の図を示 し てい ます。 Top、 IIC_init、 DVI_IF、 VGA はデザ イ ンの ス
タ テ ィ ッ ク 領域にあ る モジ ュ ールで、ほかのモジ ュ ールが リ コ ン フ ィ ギ ュ レーシ ョ ン可能な場合 も 、
こ れ ら の ロ ジ ッ ク は通常の動作状態を保ち ます。 赤、 青、 緑は、 それぞれ Red、 Blue、 Green フ ァ
ン ク シ ョ ン の リ コ ン フ ィ ギ ャ ブル モジ ュ ールの イ ン ス タ ン シエーシ ョ ン を示 し てい ま す。 各色モ
ジ ュ ールには、 それぞれ高速お よ び低速パ タ ーンがあ り ます。
X-Ref Target - Figure 3-2
TOP
DVI_IF
ICC_init
VGA
Static Modules
Red
Blue
Green
Reconfigurable Partitions
X12025
図 3-2 : Color2 デザイ ン階層
次は、デザ イ ン ソ ース の階層 と Color2 と い う パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト
全体の リ コ ン フ ィ ギ ャ ブル モジ ュ ールの コ ー ド 例です。
Design source hierarchy and Reconfigurable Module variants for overall
PR project named Color2:
Top.v ......... top module which is static
red.......... instantiation of a Reconfigurable Module
red_fast.v......Reconfigurable Module
red_slow.v......""
blue ......... instantiation of a Reconfigurable Module
blue_fast.v .....Reconfigurable Module
blue_slow.v .....""
green......... instantiation of a Reconfigurable Module
green_fast.v.....Reconfigurable Module
green_slow.v.....""
DVI_IF.v ....... static module
IIC_init.v ......""
VGA.v.........""
Red、 Green、 Blue は部分的に リ コ ン フ ィ ギ ャ ブルな イ ン ス タ ン ス です。 デザ イ ンのその他すべて
の ロ ジ ッ ク は ス タ テ ィ ッ ク です。
Red、 Green、 Blue イ ン ス タ ン ス にはほかの ロ ジ ッ ク が含ま れ ま せん。 こ れ ら の イ ン ス タ ン ス は単
に イ ン ス タ ン シエーシ ョ ン文で、 red_fast お よ び blue_slow な ど のモジ ュ ール定義には、 イ ンプ リ
メ ン ト す る ロ ジ ッ ク が含まれます。
プ ロ ジ ェ ク ト フ ァ イルの構造例
部分的に リ コ ン フ ィ ギ ャ ブルな FPGA デザ イ ン プ ロ ジ ェ ク ト は、 平均的な FPGA デザ イ ン プ ロ
ジ ェ ク ト よ り も 複雑ですが、 明確に定義 さ れた フ ァ イ ル と デ ィ レ ク ト リ 構造があ る と 、 プ ロ ジ ェ ク
ト が管理 し やす く な り ます。
プ ロ ジ ェ ク ト 全体で、 各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン には複数の リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ールが あ り ま す。 モ ジ ュ ールはボ ト ム ア ッ プ方式で合成 さ れ る ので、 各 リ コ ン フ ィ ギ ャ ブル
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
21
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
パーテ ィ シ ョ ンに関連す る ネ ッ ト リ ス ト が複数生成 さ れます。 イ ンプ リ メ ン テーシ ョ ンは ト ッ プダ
ウ ン方式で実行 さ れ、 「 コ ン フ ィ ギ ュ レーシ ョ ン」 と い う 特定のネ ッ ト リ ス ト セ ッ ト が定義 さ れま
す。
ソ ース、 制約、 合成結果、 イ ンプ リ メ ン テーシ ョ ン結果の混同を避け る ため、 デザ イ ン イ ンプ リ メ
ン テーシ ョ ンの各段階ご と に別々のデ ィ レ ク ト リ を使用す る こ と をお勧め し ます。パーシ ャ ル リ コ
ン フ ィ ギ ュ レーシ ョ ン デザ イ ンに最 も よ く 使用 さ れ る デ ィ レ ク ト リ 構造は、 次の と お り です。
project_name ..... プ ロ ジ ェ ク ト 全体の名前
Docs......... ユーザーま たはデザ イ ン ド キ ュ メ ン ト
Implementation....ザ イ リ ン ク ス ソ フ ト ウ ェ ア イ ンプ リ メ ン テーシ ョ ン結果
modules....... ス タ テ ィ ッ ク ま たは リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ ス ト
configurations ... コ ン フ ィ ギ ュ レーシ ョ ンの イ ンプ リ メ ン テーシ ョ ン結果
Source........ ソ ース フ ァ イ ル
modules.......ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル モジ ュ ールの HDL ソ ース
フ ァ イル
UCF......... 制約フ ァ イ ル
Synth ........ 合成結果
modules....... 各ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ ス ト
Tools ........Tcl ス ク リ プ ト ま たはその他のユーザー ス ク リ プ ト
フ ァ イ ルに Color2 デザ イ ンが記述 さ れてい る と する と 、 フ ロ ー ベース のデ ィ レ ク ト リ 構造は次の
よ う にな り ます。
Color2.......... プ ロ ジ ェ ク ト 全体の名前
Docs
readme.txt
Source ........HDL ソ ース フ ァ イ ル
Static....... ス タ テ ィ ッ ク ロ ジ ッ ク のすべての HDL の コ レ ク シ ョ ン
Top ....... 最上位レベルの ス タ テ ィ ッ ク モジ ュ ール
DVI_IF...... 下位レベルの ス タ テ ィ ッ ク モジ ュ ール
IIC_init.....""
VGA .......""
red_fast......Red の リ コ ン フ ィ ギ ャ ブル モジ ュ ール
red_slow......""
blue_fast .....Blue の リ コ ン フ ィ ギ ャ ブル モジ ュ ール
blue_slow .....""
green_fast.....Green の リ コ ン フ ィ ギ ャ ブル モジ ュ ール
green_slow.....""
UCF ........ 制約フ ァ イ ル
Synth......... 合成済みネ ッ ト リ ス ト
static....... top、 DVI_IF、 IIC_init お よ び VGA
red_fast
red_slow
blue_fast
blue_slow
green_fast
green_slow
Implementation .... ス ク リ プ ト か ら 実行 し た イ ンプ リ メ ン テーシ ョ ン結果
FastConfig..... イ ンプ リ メ ン テーシ ョ ン結果 と ビ ッ ト フ ァ イ ル
SlowConfig.....""
FSFConfig .....""
BlankConfig .... こ れ ら の色のブ ラ ッ ク ボ ッ ク ス
PlanAhead....... PlanAhead か ら 実行 し た イ ンプ リ メ ン テーシ ョ ン結果
FFF ........ イ ンプ リ メ ン テーシ ョ ン結果 と ビ ッ ト フ ァ イ ル
SSS ........""
FSF ........""
22
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
合成
BB......... こ れ ら の色のブ ラ ッ ク ボ ッ ク ス
Tools.........Tcl ス ク リ プ ト ま たはその他のユーザー ス ク リ プ ト
合成
リ コ ン フ ィ ギ ャ ブル モジ ュ ールはそれぞれボ ト ム ア ッ プ形式でほかのモジ ュ ール と は別々に合成
さ れ ま す。 こ れは、 グ ラ フ ィ カル イ ン タ ーフ ェ イ ス か コ マ ン ド ラ イ ン のいずれかか ら 個別のプ ロ
ジ ェ ク ト を使用す る と 実行で き ま す。 こ れ ら のモジ ュ ールのポー ト はパ ッ ケージ ピ ン に接続 さ れ
ず、 その上の ス タ テ ィ ッ ク ロ ジ ッ ク に接続 さ れ る ので、 モジ ュ ールご と に、 I/O 挿入をデ ィ ス エー
ブルに し て く だ さ い。 I/O ポー ト は、 リ コ ン フ ィ ギ ュ レーシ ョ ンに含め る こ と がで き ます。 詳細は、
第 7 章の 「 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの I/O」 を参照 し て く だ さ い。
ス タ テ ィ ッ ク モジ ュ ール同士は一緒に合成 し て 1 つのネ ッ ト リ ス ト を生成で き る ほか、複数の ス タ
テ ィ ッ ク ネ ッ ト リ ス ト を個別に生成 し た り で き ます。 NGDBuild では ス タ テ ィ ッ ク モジ ュ ール と
リ コ ン フ ィ ギ ャ ブル モジ ュ ールが ま と め ら れ、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン の定義で ス タ
テ ィ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間の イ ン タ ーフ ェ イ ス が表 さ れます。 ス タ テ ィ ッ ク ま たは
リ コ ン フ ィ ギ ャ ブル モジ ュ ール合成には、 別のオプシ ョ ン も 使用でい ます。
次は、 Color2 デザ イ ン例で生成 さ れた一番短い コ ー ド 例です。
Netlists generated for the PR project named Color2:
Netlist for Top which contains DVI_IF, IIC_init and VGA modules
Netlists for the reconfigurable instance Red:
-------------Netlist for red_fast
Netlist for red_slow
Netlists for the reconfigurable instance Blue:
-------------Netlist for blue_fast
Netlist for blue_slow
Netlists for the reconfigurable instance Green:
-------------Netlist for green_fast
Netlist for green_slow
注意 : ネ ッ ト リ ス ト 名は HDL フ ァ イ ル名ではな く 、モジ ュ ール名に関連 し てい ます。Red のモ
ジ ュ ール/ ネ ッ ト リ ス ト 名は、それぞれ同 じ に し ておかない と 、ス タ テ ィ ッ ク ロ ジ ッ ク モジ ュ ー
ルの イ ン ス タ ン シエーシ ョ ンか ら リ コ ン フ ィ ギ ャ ブル モジ ュ ールを呼び出す こ と がで き な く
な り ます。 ま た、 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールのポー ト も 同 じ に し ない と 、 デザ イ ンのア
セ ンブ リ が う ま く い き ません。
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの各 イ ン ス タ ン シエーシ ョ ンには、独自のモジ ュ ール名を付け る 必
要があ り ます。 こ のサンプル デザ イ ンでは、 Red は 1 度だけ イ ン ス タ ン シエー ト で き ます。 こ れに
よ り 、イ ンプ リ メ ン テーシ ョ ン ツールで ど の リ コ ン フ ィ ギ ャ ブル モジ ュ ールが ど の リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ンに関連 し てい る かが決定 さ れ る よ う にな り ます。
実際には、 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ ス ト 名は同一なので、 各ネ ッ ト リ ス ト はそ
れぞれのデ ィ レ ク ト リ にあ る 必要があ り ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
23
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
Netlist directory for the PR project named Color2:
Static/Top.ngc (contains logic for all static logic including
DVI_IF, IIC_init and VGA)
Netlists for the reconfigurable instance Red:
-------------red_fast/red.ngc
red_slow/red.ngc
Netlists for the reconfigurable instance Blue:
-------------blue_fast/blue.ngc
blue_slow/blue.ngc
Netlists for the reconfigurable instance Green:
-------------green_fast/green.ngc
green_slow/green.ngc
コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャ ル リ コ ン フ ィ ギ ャ ブル ソ フ ト ウ ェ アでは、 ス タ テ ィ ッ ク ロ ジ ッ ク と 各 リ コ ン フ ィ ギ ャ ブ
ル パーテ ィ シ ョ ン ご と に 1 つの リ コ ン フ ィ ギ ャ ブル モジ ュ ールを含む完全なデザ イ ンが イ ンプ リ
メ ン ト さ れます。 イ ンプ リ メ ン テーシ ョ ンはそれぞれ本文中で実行 さ れます。 こ れに よ り 、 リ ソ ー
ス使用率、 グ ロ ーバル信号、 デザ イ ン制約お よ びその他の要件な ど の情報すべてが ツールに渡 さ れ
ます。 すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールを イ ンプ リ メ ン ト する には、 すべての可能性のあ る
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの組み合わせのサブセ ッ ト を選択 し 、 それ ら を独自のデザ イ ン と し
て イ ンプ リ メ ン ト す る 必要があ り ます。 独自の イ ンプ リ メ ン テーシ ョ ンはそれぞれ 「 コ ン フ ィ ギ ュ
レーシ ョ ン」 と 呼ばれます。
各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンはオプシ ョ ンでブ ラ ッ ク ボ ッ ク ス と し て設定で き る ので、空
の ビ ッ ト ス ト リ ーム を リ コ ン フ ィ ギ ャ ブル モジ ュ ールにで き ま す。 こ のため、 Color2 デザ イ ン で
は、 リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの フ ルセ ッ ト と 、 それに伴 っ てパーシ ャ ル ビ ッ ト フ ァ イ ル
(BIT) も 次の よ う に イ ンプ リ メ ン ト で き ます。
Red { red_fast, red_slow, black box }
Blue { blue_fast, blue_slow, black box }
Green { green_fast, green_slow, black box }
各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに対す る 3 つの選択肢 と 、こ のデザ イ ンの 3 つの リ コ ン フ ィ
ギ ャ ブル パーテ ィ シ ョ ン を使用 し た場合、 コ ン フ ィ ギ ュ レーシ ョ ン と し て定義で き る 独自の組み合
わせは 27 個あ り ますが、 各組み合わせご と に コ ン フ ィ ギ ュ レーシ ョ ン を作成す る 必要はあ り ませ
ん。 モジ ュ ールのパーシ ャ ル ビ ッ ト フ ァ イ ルはそれ以外の リ コ ン フ ィ ギ ャ ブル モジ ュ ールか ら は
独立 し てい る ので、 各モジ ュ ールを含む コ ン フ ィ ギ ュ レーシ ョ ンのみを 1 回 イ ンプ リ メ ン ト す る だ
けで十分です。
24
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
制約
Color2 デザ イ ン の場合に最低限必要な コ ン フ ィ ギ ュ レ ーシ ョ ン数は次の コ ー ド 例の よ う にな り ま
す。
Minimum number of FPGA designs (Configurations) required to implement
the PR project Color2:
First Configuration
------------------Top
Red
red_fast
Blue
blue_fast
Green
green_fast
DVI_IF
IIC_init
VGA
Second Configuration
-------------------Top
Red
red_slow
Blue
blue_slow
Green
green_slow
DVI_IF
IIC_init
VGA
Third Configuration
------------------Top
Red
black box
Blue
black box
Green
black box
DVI_IF
IIC_init
VGA
Red、 Green、 Blue にはそれぞれ 3 つの異な る モジ ュ ールがあ り ます。 こ のため、 すべての リ コ ン
フ ィ ギ ャ ブル モジ ュ ールを イ ン プ リ メ ン ト す る のに必要な コ ン フ ィ ギ ュ レーシ ョ ン数は最低 3 つ
にな り ま す。 必要であれば、 も っ と コ ン フ ィ ギ ュ レーシ ョ ン を作成 し て、 独自の フ ル ビ ッ ト フ ァ
イ ル *(BIT) を作成す る こ と も で き ます。
た と えば、 red_fast、 blue_slow、 green_fast モジ ュ ールを含む 4 つ目の コ ン フ ィ ギ ュ レーシ ョ ン を
作成す る こ と がで き ます。 こ の場合、 3 つの リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべてが こ の コ ン フ ィ
ギ ュ レーシ ョ ンで再使用 さ れます。 こ れ ら のモジ ュ ールの イ ンプ リ メ ン テーシ ョ ン結果 と パーシ ャ
ル ビ ッ ト フ ァ イ ルは、 複数の コ ン フ ィ ギ ュ レーシ ョ ンで同 じ にな り ます。
パーシ ャ ル ビ ッ ト ス ト リ ーム を作成す る と 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト
で作成 さ れた フ ル ビ ッ ト ス ト リ ーム ま た はパーシ ャ ル ビ ッ ト ス ト リ ーム の ど の組み合わせで も
FPGA デバ イ ス に読み込め る よ う にな り ますが、 その特定の組み合わせが予測どお り に動作す る か
ど う か を確認す る には、 その組み合わせのモジ ュ ールの コ ン フ ィ ギ ュ レーシ ョ ン を作成す る 必要の
あ る こ と が あ り ま す。 パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン デザ イ ン の全デザ イ ン レ ベルのシ
ミ ュ レーシ ョ ン と 検証フ ロ ーは、 標準のデザ イ ン と 同 じ です。
制約
ス タ テ ィ ッ ク ロ ジ ッ ク の制約は通常 UCF フ ァ イ ルに格納 さ れ、 すべての コ ン フ ィ ギ ュ レーシ ョ ン
間で共有 さ れ ます。 ngdbuild -uc オプシ ョ ン を使用す る と 、 1 つの共通の UCF フ ァ イ ルをすべ
ての コ ン フ ィ ギ ュ レーシ ョ ン間で共有す る こ と で、 すべての ス タ テ ィ ッ ク 制約を同 じ にで き ます。
ス タ テ ィ ッ ク ロ ジ ッ ク 制約に含め る こ と ので き ないモジ ュ ール特有の制約があ る こ と も あ り ます。
た と えば、 タ イ ミ ン グ制約が red_fast にのみ存在する パ ス に設定 さ れ る 場合、 こ の制約は上記の最
初の コ ン フ ィ ギ ュ レーシ ョ ンにだけ適用 さ れます。 こ れは、 PlanAhead™ を使用 し て制約フ ァ イ ル
を管理す る か、 特定モジ ュ ールのネ ッ ト リ ス ト 内に制約を埋め込む と 実行で き ます。 ngdbuild uc オプシ ョ ンは、 コ マ ン ド ラ イ ン ご と に何度で も 使用で き る ので、 各 run で複数の UCF フ ァ イ ル
を指定す る こ と も で き ます。
エ リ ア グループ制約
AREA_GROUP は、 論理デザ イ ン エ レ メ ン ト を特定の ラ ベル ま たはグループに関連付け る グルー
プ制約です。 AREA_GROUP 制約 と パーテ ィ シ ョ ン定義は、 ス タ テ ィ ッ ク ロ ジ ッ ク を リ コ ン フ ィ
ギ ャ ブル ロ ジ ッ ク と 区別す る ために必要で、 ス タ テ ィ ッ ク 領域内の ロ ジ ッ ク が リ コ ン フ ィ ギ ャ ブル
モジ ュ ールに統合 さ れない よ う に し た り 、 リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク が ス タ テ ィ ッ ク 領域の ロ
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
25
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
ジ ッ ク に統合 さ れない よ う に し ます。 AREA_GROUP 制約は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ
ン ご と に定義す る 必要があ り ます。 次の例では、 reconfig_red と い う リ コ ン フ ィ ギ ャ ブル パーテ ィ
シ ョ ンに対 し て pblock_reconfig_red と い う AREA_GROUP 制約を設定 し てい ます。
INST “reconfig_red” AREA_GROUP = “pblock_reconfig_red”;
少な く と も 1 つ、 で き れば複数の AREA_GROUP RANGE 制約を各 リ コ ン フ ィ ギ ャ ブル領域に定
義 し て、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン領域の形や配置を設定する 必要があ り ます。 主な範
囲 (RANCE) 制約は、 通常 ス ラ イ ス 範囲に な り ま す。 ス ラ イ ス はパーシ ャ ル リ コ ン フ ィ ギ ュ レ ー
シ ョ ン領域内にあ り ます。 ス ラ イ ス には、 基本的な LUT お よ び FF な ど の論理エ レ メ ン ト が含まれ
ま す。 リ コ ン フ ィ ギ ャ ブル モジ ュ ールにブ ロ ッ ク RAM、 I/O、 その他の種類の論理エ レ メ ン ト も
含まれ る 場合は、 別の範囲制約を作成す る 必要があ り ます。
AREA_GROUP RANGE 制約を設定す る ための要件は、 PlanAhead で管理で き ます。
•
AREA_GROUP RANGE 制約は リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン領域のサ イ ズ と 形を定義
す る ので、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン ご と に必要です。
•
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン内に配置 さ れ る リ コ ン フ ィ ギ ャ ブル モジ ュ ールに含まれ
る すべてのデバ イ ス リ ソ ー ス ( ス ラ イ ス、 I/O、 ブ ロ ッ ク RAM、 DSP ブ ロ ッ ク 、 マルチギ ガ
ビ ッ ト ト ラ ン シーバ (MGT) な ど ) に、 それぞれ対応す る AREA_GROUP RANGE 制約を指
定す る 必要があ り ます。 シ ン グル サ イ ト の リ ソ ース で も 関連す る RANGE 制約は必要です。
リ コ ン フ ィ ギ ュ レーシ ョ ン し ない、ま たは リ コ ン フ ィ ギ ュ レーシ ョ ン で き ないエ レ メ ン ト には、
AREA_GROUP RANGE 制約を作成 し ないで く だ さ い。た と えば、DCM、PLL、 ま たは BUFG
には AREA_GROUP RANGE 制約を作成 し ないで く だ さ い。
•
1 つの リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンが複数の AREA_GROUP RANGE 制約で定義 さ れ
る 場合、 こ れ ら は隣接 し てい る 必要があ り ます。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの AREA_GROUP RANGE 制約は、 別の リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ンの AREA_GROUP RANGE 制約 と は重複 し ない よ う に し ます。
•
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの ス ラ イ ス領域は、 左下端 (minX, minY) か ら 右上端
(maxX, maxY) に向か っ て定義する 必要があ り ます。 次に例を示 し ます。
INST “reconfig_red” AREA_GROUP = “pblock_reconfig_red”;
AREA_GROUP “pblock_reconfig_red” RANGE = SLICE_X20Y76:SLICE_X25Y79;
INST “reconfig_blue” AREA_GROUP = “pblock_reconfig_blue”;
AREA_GROUP “pblock_reconfig_blue” RANGE = SLICE_X28Y64:SLICE_X33Y67;
INST “reconfig_green” AREA_GROUP = “pblock_reconfig_green”;
AREA_GROUP “pblock_reconfig_green” RANGE = SLICE_X20Y50:SLICE_X25Y53;
•
ほ と ん ど の ロ ジ ッ ク タ イ プは、 ス ラ イ ス、 ブ ロ ッ ク RAM、 DSP48、 IOB、 MGT な ど の リ コ
ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン内に設定で き ま す。 DCM、 PLL、 ま たは PMCD の よ う な ク
ロ ッ ク 修正 ロ ジ ッ ク な ど を含むグ ロ ーバル ク ロ ッ ク ロ ジ ッ ク は、 ス タ テ ィ ッ ク モジ ュ ール内
に含ま れてい る 必要があ り ます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの規則に関す る 詳細は、
第 7 章 「デザ イ ンの注意事項」 を参照 し て く だ さ い。
•
ス ラ イ ス範囲は、 CLB バ ウ ン ダ リ に設定 さ れ る 必要があ り ます (CLB は分割 し ません)。 こ の
規則に従 う と 、 AREA_GROUP RANGE 制約が CLB すべてに適用 さ れ ま す (Virtex®-5 デバ
イ ス )。
•
AREA_GROUP SLICE 範囲の横軸 (minX) は常に偶数
•
AREA_GROUP SLICE 範囲の横軸 (maxX) は常に奇数
こ の規則に従 う と 、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの RANGE が Virtex-5 デバ イ ス の
CLB バ ウ ン ダ リ にな り ます。 こ の場合、 リ コ ン フ ィ ギ ャ ブル フ レーム規則には従っ た こ と にな
26
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
制約
り ません。 第 7 章 「デザ イ ンの注意事項」 で説明 さ れ る リ コ ン フ ィ ギ ャ ブル フ レーム規則に従
う よ う に し て く だ さ い。
•
ブ ロ ッ ク RAM の AREA_GROUP RANGE には、 奇数ま たは偶数のいずれかにな る 座標
(minX, minY) お よ び (maxX, maxY) が含 ま れ ま す。 AREA_GROUP のブ ロ ッ ク RAM 範囲
は、 PlanAhead ま たは FPGA Editor で指定で き ます。
27 ページの図 3-3 は、 AREA_GROUP RANGE の例を示 し てい ます。
X-Ref Target - Figure 3-3
SLICE
X42
Y157
SLICE
X42
Y156
AG_PRregionA
BRAM
X3
Y18
BRAM
X0
Y0
SLICE SLICE
X3
X2
Y1
Y1
SLICE SLICE
X3
X2
Y0
Y0
X12026
図 3-3 : パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン領域のス ラ イ ス範囲 と BRAM 範囲
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
27
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
次の コ ー ド 例は、 ス ラ イ スお よ び BRAM の AREA_GROUP RANGE 制約を示 し てい ます。
AREA_GROUP “AG_PRregionA” RANGE = SLICE_X2Y0:SLICE_X43Y157;
AREA_GROUP “AG_PRregionA” RANGE = RAMB16_X0Y0:RAMB16_X3Y18;
PlanAhead ソ フ ト ウ ェ アでは、 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールのサ イ ズが概算 さ れ、 使用 さ れ る
リ ソ ース が表示 さ れ る ので、 ブ ロ ッ ク RAM ま たは I/O に必要な AREA_GROUP RANGE を決定
す る 際に便利です。
た だ し 、 リ コ ン フ ィ ギ ャ ブ ル パー テ ィ シ ョ ン の 形や配置 に 関す る 推奨案 は表示 さ れ ま せ ん。
AREA_GROUP RANGE は、 各 リ ソ ース タ イ プの最大の リ コ ン フ ィ ギ ャ ブル モジ ュ ールを適用す
る のに十分な大 き さ にす る 必要があ り ます。つま り 、ほ と ん ど の ス ラ イ ス を使用す る リ コ ン フ ィ ギ ャ
ブル モジ ュ ールは、ほ と ん ど の BRAM を使用する リ コ ン フ ィ ギ ャ ブル モジ ュ ール と は異な る 可能
性があ り ます。 ま た、 AREA_GROUP RANGE は、 デザ イ ンが タ イ ミ ン グ を満たす こ と がで き る よ
う な形お よ び配置にす る 必要 も あ り ます。
パーテ ィ シ ョ ン ピ ン
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンには、 ス タ テ ィ ッ ク ロ ジ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ
ク 間のポー ト バ ウ ン ダ リ に 「パーテ ィ シ ョ ン ピ ン」 と い う コ ン ポーネ ン ト が含まれます。 パーテ ィ
シ ョ ン ピ ンは、 ス タ テ ィ ッ ク ロ ジ ッ ク と 各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン間の異な る リ コ ン
フ ィ ギ ャ ブル モジ ュ ールの回路接続を同 じ にす る ために必要です。 ま た、 パーテ ィ シ ョ ン ピ ンは
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バ ウ ン ダ リ を始点、 終点、 通過点 と す る ネ ッ ト に タ イ ミ ン グ
制約を作成す る 際に便利な コ ン ポーネ ン ト です。
パーテ ィ シ ョ ン ピ ンは イ ンプ リ メ ン テーシ ョ ン ソ フ ト ウ ェ アで自動的に挿入 さ れます。第 7 章 「デ
ザ イ ンの注意事項」 で説明 さ れ る 制御配線を除 き 、 特別な イ ン ス タ ン シエーシ ョ ンや考慮は必要あ
り ません。
メ モ : パーテ ィ シ ョ ン ピ ンは、 リ コ ン フ ィ ギ ャ ブル領域への入力ま たは出力接続にす る こ と がで き
ます。 パーテ ィ シ ョ ン ピ ンは、 双方向にはで き ません。
パーテ ィ シ ョ ン ピ ンの タ イ ミ ン グ制約の フ ォ ーマ ッ ト は、 29 ページの図 3-4 に示すパ ス構造のい
ずれかにな り ます。 黄色の リ コ ン フ ィ ギ ャ ブル モジ ュ ールのボ ッ ク ス は、 物理範囲ま たはフ ロ アプ
ラ ンの必要がない論理バ ウ ン ダ リ を表 し てい ます。
パス
パス
パス
パス
パス
28
A)
B)
C)
D)
X、
パーテ ィ シ ョ ン ピ ンへの ス タ テ ィ ッ ク ネ ッ ト 入力
パーテ ィ シ ョ ン ピ ンの リ コ ン フ ィ ギ ャ ブル ネ ッ ト 出力
パーテ ィ シ ョ ン ピ ンへの リ コ ン フ ィ ギ ャ ブル ネ ッ ト 入力
パーテ ィ シ ョ ン ピ ンの ス タ テ ィ ッ ク ネ ッ ト 出力
Y、 Z) パ ス にパーテ ィ シ ョ ン ピ ン を含む register-to-register パ ス
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
制約
X-Ref Target - Figure 3-4
Top (static)
RP_A
RM_A1
A
B
1
C
2
D
RP_B
RM_B1
X
6
7
Z
8
Y
9
X12027
図 3-4 : リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を通る タ イ ミ ング パス
タ イ ミ ン グ制約 を 作成す る 前に、 PIN-TPSYNC 制約 を 使用 し て ネ ッ ト を リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ールへの入力 ま たは リ コ ン フ ィ ギ ャ ブル モジ ュ ールか ら の出力に よ っ て グループ分けす る 必
要があ り ます。
ピ ン名の構文は、 <Partition_name>.<port_name> です。 次の コ ー ド はその具体例です。
PIN “RP_A.1” TPSYNC = group_RP_A_input;
PIN “RP_A.2” TPSYNC = group_RP_A_output;
パーテ ィ シ ョ ン ピ ンに TPSYNC 制約を使用 し た場合、 PERIOD 制約のみを使用す る よ り も 広範囲
に こ れ ら のパス がカバー さ れます。 TPSYNC を使用する と 、 ス タ テ ィ ッ ク 領域か ら パーテ ィ シ ョ ン
ピ ン ま での遅延が最小にな る よ う に初期配置を実行で き ます。 こ れに よ り 、 リ コ ン フ ィ ギ ャ ブル モ
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
29
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
ジ ュ ールへの タ イ ミ ン グ バジ ェ ッ ト が多 く な る ので、イ ンプ リ メ ン テーシ ョ ン ツールで リ コ ン フ ィ
ギ ャ ブル モジ ュ ールの タ イ ミ ン グ要件が満た し やす く な り ます。
PIN-TPSYNC グループ制約では、 標準の UCF の ワ イ ル ド カー ド 表記規則がサポー ト さ れます。 た
と えば、 RP_A へのデー タ バ ス入力があ る と する と 、 次の方法で、 こ の制約を使用 し た前述の例の
入力グループに追加で き ます。
PIN “RP_A.data*” TPSYNC = group_RP_A_input;
パーテ ィ シ ョ ン ピ ン RP_A.1 への ス タ テ ィ ッ ク ネ ッ ト すべて、お よ びパーテ ィ シ ョ ン ピ ン RP_A.1
か ら の リ コ ン フ ィ ギ ャ ブル ネ ッ ト すべて (上記のパ ス A & B) に対 し て タ イ ミ ン グ制約を作成す る
には、 次を使用 し ます。
TIMESPEC TS_from_static_to_PP_input = TO “group_RP_A_input” 4.5 ns;
TIMESPEC TS_from_PP_input_to_RM = FROM “group_RP_A_input” 4.5 ns;
パーテ ィ シ ョ ン ピ ン RP_A.2 への リ コ ン フ ィ ギ ャ ブル ネ ッ ト すべて、 お よ びパーテ ィ シ ョ ン ピ ン
RP_A.2 か ら の ス タ テ ィ ッ ク ル ネ ッ ト すべて (上記のパ ス C & D) に対 し て タ イ ミ ン グ制約を作成
す る には、 次を使用 し ます。
TIMESPEC TS_from_RM_to_PP_output = TO “group_RP_A_output” 4.5 ns;
TIMESPEC TS_from_PP_output_to_static = FROM “group_RP_A_output” 4.5 ns;
こ れ ら の制約が非同期パ ス に適用 さ れ る こ と も あ る ので、 リ コ ン フ ィ ギ ャ ブル パ スへのパ ス と リ コ
ン フ ィ ギ ャ ブル パ ス か ら のパ スすべて を同期 し てお く こ と をお勧め し ます。 ®
最初の イ ンプ リ メ ン テーシ ョ ン中には、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの 1 つのみで タ イ ミ ン グ目
的が考慮 さ れ ま す。 ツールで生成 さ れ る タ イ ミ ン グ バジ ェ ッ ト では、 その他すべての リ コ ン フ ィ
ギ ャ ブル モジ ュ ールの タ イ ミ ン グ マージ ン が十分に提供 さ れないので、 後で イ ン プ リ メ ン ト さ れ
た と き に タ イ ミ ン グが満たせない こ と があ り ます。 TPSYNC オプシ ョ ン を使用する と 、デザ イ ンの
ス タ テ ィ ッ ク 部分 を 各 リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール と は別に含め る こ と がで き る ので、 ス タ
テ ィ ッ ク 領域 と 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールに タ イ ミ ン グ バジ ェ ッ ト が適切に分配 さ れ る よ
う にな り ます。
TPSYNC の詳細は、 付録 A 「既知の問題 と 制限」 を参照 し て く だ さ い。
標準の PERIOD タ イ ミ ン グ制約は、パーテ ィ シ ョ ン ピ ン を含む register-to-register パ ス に使用 さ れ
ます。 前述のネ ッ ト X、 Y、 Z には、 次の よ う に制約が付け ら れます。
NET clk TNM_NET = clk_group;
TIMESPEC TS_clk_period = PERIOD clk_group 10 ns;
こ の制約を使用す る と 、 register-to-register パ ス にパーテ ィ シ ョ ン ピ ンの遅延が含ま れ、 タ イ ミ ン
グ制約が満た さ れます。 ネ ッ ト 遅延の ど の部分がネ ッ ト の ス タ テ ィ ッ ク 部分お よ び リ コ ン フ ィ ギ ャ
ブ ル部分 に分配 さ れ る か は指定 さ れ ま せん。 こ の た め、 PERIOD 制約 を FROM、 TO、 お よ び
FROM:TO 制約 と 組み合わせて使用 し 、 パス全体のバジ ェ ッ ト を正確に分配する 必要があ り ます。
パーテ ィ シ ョ ンに直接入力パ ッ ド を接続 し た り 、 パーテ ィ シ ョ ンか ら 出力パ ッ ド に出力を直接接続
す る と 、 最適な タ イ ミ ン グ パフ ォーマ ン ス にはな ら ない こ と があ り ます。 パーテ ィ シ ョ ン ピ ンは、
組み合わせ ロ ジ ッ ク と パ ス遅延で構成 さ れてい ます。 パーテ ィ シ ョ ン ピ ン を使用す る と 、 IOB パ ッ
キ ン グが実行 さ れないので、パ ッ キ ン グが必要な場合に入力お よ び出力で タ イ ミ ン グ エ ラ ーにな る
こ と があ り ます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バ ウ ン ダ リ を通 る グ ロ ーバル ク ロ ッ ク を除 く すべての信号が
レ ジ ス タ 入力 さ れ る よ う に し て く だ さ い。 こ れに よ り 、 タ イ ミ ン グ制約が簡素化 さ れて、 タ イ ミ ン
グ制約が満た さ れ る 可能性が上が り ます。 ® ただ し 、 パ ッ ド が リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
の同期 コ ン ポーネ ン ト に直接接続 さ れない場合は、 OFFSET 制約を使用 し てパ ス に正 し く 制約を付
け ます。
30
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
制約
入力パ ッ ド に よ り パーテ ィ シ ョ ン内の同期 コ ン ポーネ ン ト が駆動 さ れ る 場合は、 OFFSET IN 制約
を入力に適用で き ます。 こ れに よ り 、 パーテ ィ シ ョ ン ピ ンの遅延が考慮 さ れ る よ う にな り ます。 グ
ロ ーバル OFFSET IN は次の よ う に適用で き ます。
OFFSET = IN 3 ns VALID 8 ns BEFORE “clk”;
同期 コ ン ポーネ ン ト がパーテ ィ シ ョ ン出力を駆動 し 、 パーテ ィ シ ョ ン出力が出力パ ッ ド を駆動す る
場合は、 OFFSET OUT 制約を出力に適用で き ます。 こ れに よ り 、 パーテ ィ シ ョ ン ピ ンの遅延が考
慮 さ れ る よ う にな り ます。 グ ロ ーバル OFFSET OUT は次の よ う に適用で き ます。
OFFSET = OUT 5 ns AFTER “clk”;
オプシ ョ ンで、 パーテ ィ シ ョ ン ピ ン を リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの area_group 範囲内の
サ イ ト に物理的に ロ ッ ク す る こ と も で き ます。 こ れ ら はパーテ ィ シ ョ ン リ コ ン フ ィ ギ ュ レーシ ョ ン
ソ フ ト ウ ェ アで自動的に配置 さ れ る ので、 必ず し も ロ ッ ク す る 必要はあ り ませんが、 ロ ッ ク し てお
く と 、 イ ンプ リ メ ン テーシ ョ ン結果を さ ら に詳細に制御す る こ と がで き ます。 こ の方法は最後の手
段 と し て使用す る べ き で、 自動配置の後にのみ、 タ イ ミ ン グ制約を使用 し て実行で き ま す。 次の
UCF コ マ ン ド では、 パーテ ィ シ ョ ン ピ ン をサ イ ト に物理的に ロ ッ ク し てい ます。
PIN “RP_A.1” LOC = SLICE_X4Y4;
ICAP 用の タ イ ミ ング制約
FPGA のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン の コ ン フ ィ ギ ュ レ ーシ ョ ン ポー ト と し て Internal
Configuration Access Port (ICAP) が使用 さ れ る 場合、タ イ ミ ン グ制約を使用する と 、 こ の イ ン タ ー
フ ェ イ ス の潜在的なパフ ォーマ ン ス が理解 し やす く な り ます。
Virtex-6 の ICAP の タ イ ミ ング制約
Virtex-6 FPGA では、 ICAP が TRACE で同期 コ ン ポーネ ン ト と し て記述 さ れてい ま す。 こ れは、
PERIOD、 FROM:TO、 お よ びすべてのグループ ベース の制約が ICAP サ イ ト へのパ ス と ICAP サ
イ ト か ら のパ ス に正 し く 適用 さ れ る こ と を意味 し ます。 ICAP コ ン ポーネ ン ト が適用可能な タ イ ミ
ン グ グループに追加 さ れてい る 限 り 、 その他の制約が必要にな る こ と はあ り ません。
Virtex-5 および Virtex-4 の ICAP の タ イ ミ ング制約
Virtex-5 お よ び Virtex-4 FPGA の場合、 PERIOD 制約が ICAP へのパ ス と ICAP か ら のパ ス に適
用 さ れません。 ICAP 入力お よ び出力は TRACE で同期 と は認識 さ れません。 BUSY、 CE、 WRITE
信号 も 同様です。 こ のため、 ICAP への入力 と ICAP か ら の出力には、 次の例外制約を付け る 必要
があ り ます。 NET MAXDELAY
NET MAXDELAY 制約を使用 し た場合、 構文は次の よ う にな り ます。
NET
NET
NET
NET
NET
“to_icap<*>” MAXDELAY = 15 ns;
“from_icap<*>” MAXDELAY = 15 ns;
“busy_from_icap” MAXDELAY = 15 ns;
“write_to_icap” MAXDELAY = 15 ns;
“ce_to_icap” MAXDELAY = 15 ns;
こ の例の場合、 to_icap お よ び from_icap ネ ッ ト ワ ー ク はすべての幅のバ ス です。 ア ス タ リ ス ク は、
バ ス全体 (0、 1、 2...) を表 し てい ます。 NET MAXDELAY 制約は、 ネ ッ ト 遅延のみに制約を付け
ます。 セ ッ ト ア ッ プ タ イ ムや clock-to-out タ イ ムは考慮 さ れません。
ICAP コ ン ポーネ ン ト は、 同期エ レ メ ン ト で考慮 さ れないので タ イ ム グループに追加で き ま せん。
こ のため、 ICAP は TPSYNC 制約を使用 し て同期 コ ン ポーネ ン ト にはで き ません。 ICAP は特殊な
コ ン ポーネ ン ト なので、 デザ イ ンで使用す る 際には タ イ ミ ン グ を特に考慮す る 必要があ り ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
31
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
パーテ ィ シ ョ ン ピ ン情報の抽出
パーテ ィ シ ョ ン ピ ンは イ ン プ リ メ ン テーシ ョ ン ツールで追加 さ れ る ので、 論理 ソ ース デザ イ ンに
は存在 し ません。 パーテ ィ シ ョ ン ピ ンは予測可能な形式で命名 さ れますが、 正 し い名前が確実に使
われてい る か ど う か を確認す る には、 デザ イ ン を イ ン プ リ メ ン テーシ ョ ン し 直す必要があ り ます。
こ の後、 pr2ucf ユーテ ィ リ テ ィ を使用す る と 、 イ ンプ リ メ ン ト 済みデザ イ ンか ら パーテ ィ シ ョ ン ピ
ン の配置を抽出で き ま す。 こ のユーテ ィ リ テ ィ は、 Configuration デ ィ レ ク ト リ 内の配置配線済み
NCD フ ァ イ ルに対 し て実行 し ます。
pr2ucf design_routed.ncd –o partition_pins.ucf
PIN 位置制約は partition_pins.ucf フ ァ イ ルか ら design.ucf フ ァ イ ルへ コ ピーす る と 、 デザ イ ン の
UCF フ ァ イ ルにバ ッ ク ア ノ テー ト で き ます。 ただ し 、 こ れは 1 つの コ ン フ ィ ギ ュ レーシ ョ ンか ら 次
の コ ン フ ィ ギ ュ レーシ ョ ンへの配置を維持す る ためには必要あ り ません。
パーテ ィ シ ョ ン ピ ンは、 リ コ ン フ ィ ギ ャ ブル領域内に物理的に配置 さ れていて も 、 ス タ テ ィ ッ ク ロ
ジ ッ ク の論理的な部分なので、 パーテ ィ シ ョ ン ピ ンに設定す る 制約は最上位レベルの UCF に含め
る 必要があ り ます。 パーテ ィ シ ョ ン ピ ン の配置は FPGA Editor 内で表示す る と 、 ほかの ロ ジ ッ ク
と の関連を確認で き ます。
Constraints Editor
パーテ ィ シ ョ ン ピ ン グループ を作成す る には、 Constraints Editor を使用で き ます。 最初の イ ン プ
リ メ ン テーシ ョ ン後の タ イ ミ ン グ制約は、 少な く と も 1 つの コ ン フ ィ ギ ュ レーシ ョ ンに対 し て実行
さ れます。
デザ イ ン フ ァ イ ルを要求す る ダ イ ア ロ グ ボ ッ ク ス が表示 さ れた ら 、 最新の コ ン フ ィ ギ ュ レーシ ョ
ンの NGD フ ァ イ ルを選択 し ます。 ただ し 、 UCF は新 し い フ ァ イ ル (Constraints Editor を開 く 前に
作成 さ れた フ ァ イ ル) にす る 必要があ り ます。 既に PlanAhead に イ ン ポー ト 済みの UCF フ ァ イ ル
名や現在 コ ン フ ィ ギ ュ レーシ ョ ンに含まれてい る フ ァ イ ル名にはで き ません。
Constraints Editor 内には、 [Constraint Type] ウ ィ ン ド ウ に Group Constraints カ テ ゴ リ があ り
ます。 [By Combinatorial Pins] を選択 し 、 パーテ ィ シ ョ ン ピ ン に基づいて 制約を作成 し ます。 開
いたダ イ ア ロ グ ボ ッ ク ス の [Design element type] フ ィ ール ド を [Partition Pins] に設定す る と 、 デ
ザ イ ン内のパーテ ィ シ ョ ン ピ ン イ ン ス タ ン ス を簡単に見つけ る こ と がで き ます。 こ こ で作成 し た
グ ルー プ を 使用 し て、 タ イ ミ ン グ 仕様 を 定義 し て く だ さ い。 図 3-5 は、 [Group Constraints by
Combinatorial Pins] ダ イ ア ロ グ ボ ッ ク ス を示 し てい ます。
32
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
制約
X-Ref Target - Figure 3-5
図 3-5 : Constraints Editor でのパーテ ィ シ ョ ン ピ ン グループの作成
Constraints Editor で生成 し た新 し い制約は、 PlanAhead ソ フ ト ウ ェ アに イ ン ポー ト し て、 デザ イ ン
に反映 さ せ る 必要が あ り ま す。 [File] → [Import Constraint] を ク リ ッ ク し 、 Constraints Editor で
ア ッ プデー ト し た UCF か ら 制約を イ ン ポー ト し ます。
PlanAhead の リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール制約
PlanAhead には、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を管理す る 効率的な機能が組み
込まれてい ます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンに制約を付け る のは複雑なので、
PlanAhead を使用 し て こ れ ら の制約を管理す る 場合は、 まず計画す る 必要があ り ます。
リ コ ン フ ィ ギ ャ ブル モジ ュ ール制約を PlanAhead のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ
ンに含め る には、 主に 3 つの方法があ り ます。
•
最上位レベルの UCF – こ の方法では、 制約が PlanAhead プ ロ ジ ェ ク ト よ り も 前に 1 つま たは
複数の最上位レベルの UCF フ ァ イ ルに存在 し ます。 こ れ ら の制約は、 リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ール ロ ジ ッ ク への完全な階層パ ス を含み、 指定 し た イ ン ス タ ン ス を含むすべての リ コ ン
フ ィ ギ ャ ブル モジ ュ ールに適用 さ れます。 リ コ ン フ ィ ギ ャ ブル モジ ュ ール ロ ジ ッ ク に関連す
る 制約は、 最上位レベルの UCF か ら 抽出 さ れ、 PlanAhead で生成 さ れたパーテ ィ シ ョ ン UCF
に追加 さ れ ま す。 こ の方法は、 リ コ ン フ ィ ギ ャ ブル モジ ュ ール ロ ジ ッ ク に制約を付け る 際に
は推奨 さ れません。
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの UCF – こ の方法では、制約が PlanAhead プ ロ ジ ェ ク ト よ り
も 前に リ コ ン フ ィ ギ ャ ブル モジ ュ ール レベルの UCF フ ァ イ ルに存在 し ます。 こ れ ら の制約の
階層は リ コ ン フ ィ ギ ャ ブル モジ ュ ール階層に特有の も のです (最上位か ら の完全な階層パ ス で
はない)。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
33
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
複数の リ コ ン フ ィ ギ ャ ブル モジ ュ ールに同 じ 制約が必要な場合は、 その制約を リ コ ン フ ィ ギ ャ
ブル モ ジ ュ ール UCF で重複 さ せ る 必要が あ り ま す。 こ の方法は、 リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ール特有の制約を追加す る 際に推奨 さ れ る 方法です。
•
GUI 手法 – こ の方法では、 制約が PlanAhead の GUI ま たは Tcl コ マ ン ド を使用 し て
PlanAhead プ ロ ジ ェ ク ト が作成 さ れた後に生成 さ れます。 リ コ ン フ ィ ギ ャ ブル モジ ュ ール特有
の制約は、 制約の作成時に ア ク テ ィ ブ な リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールに のみ適用 さ れ、
PlanAhead で生成 さ れた リ コ ン フ ィ ギ ャ ブル モジ ュ ール UCF に追加 さ れ ます ( こ れ ら は最上
位レベルの タ ーゲ ッ ト UCF には表示 さ れません)。 こ れ ら の制約はユーザー定義の リ コ ン フ ィ
ギ ャ ブル モジ ュ ール UCF それぞれに手動で追加 し 、 [Update Reconfigurable Module] コ マ ン
ド を使用 し て リ コ ン フ ィ ギ ャ ブル モジ ュ ールを ア ッ プデー ト す る よ う に し て く だ さ い。
PlanAhead の UCF に関する規則
PlanAhead フ ロ ーを使用す る 場合は、 UCF 制約に関す る 規則に従 う 必要があ り ま す。 こ れ ら の規
則は、制約管理シ ス テ ムが今後の PlanAhead リ リ ース で修正 さ れ る と 変更 さ れ る 可能性 も あ り ます
が、 ISE® 12.3 ソ フ ト ウ ェ アの場合は、 次の規則に従っ て く だ さ い。
•
PlanAhead プ ロ ジ ェ ク ト 用に UCF を指定する 際は、 [Copy into Project] オプシ ョ ン を使用 し
ます。 こ のオプシ ョ ン を使用す る と 、 PlanAhead に読み込まれ る リ コ ン フ ィ ギ ャ ブル モジ ュ ー
ル制約が自動的に処理 さ れます。 こ れに よ り 、 PlanAhead での変更が ロ ーカル コ ピーの UCF
にのみ反映 さ れ る よ う にな り ます。
•
すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ール制約を リ コ ン フ ィ ギ ャ ブル モジ ュ ール用の UCF
フ ァ イ ルに含め ます。リ コ ン フ ィ ギ ャ ブル モジ ュ ール制約を最上位レベルの UCF に含めた り 、
GUI を使用 し て リ コ ン フ ィ ギ ャ ブル モジ ュ ールの UCF を作成す る と 、 ビヘ イ ビ アで問題にな
る こ と があ り ます。
PlanAhead UCF の既知の問題
•
最上位レベルの UCF に リ コ ン フ ィ ギ ャ ブル モジ ュ ール用の制約が含まれ る 場合、 こ れ ら の制
約はその リ コ ン フ ィ ギ ャ ブル モジ ュ ールが該当す る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に対
し て定義 さ れ る ま で読み込まれません。 こ の場合、 [Netlist Design] ビ ュ ーを一旦閉 じ 、 リ コ ン
フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ ス ト を追加 し てか ら 、 開 き なお し て く だ さ い。 こ れは既知
の問題で、 今後の リ リ ース で修正 さ れ る 予定ですが、 上記の方法で回避で き ます。
•
[Netlist Design] ビ ュ ーは、 run を起動する 前に開 く 必要があ り ます。 こ う し ない と 、 run フ ァ
イ ルが記述 さ れ る 前に、 リ コ ン フ ィ ギ ャ ブル モジ ュ ール ロ ジ ッ ク に制約が正 し く 適用 さ れな
い こ と があ り ます。
•
PlanAhead の GUI で制約を変更 し た場合は、 プ ロ ジ ェ ク ト を保存 し てか ら 、 [Netlist Design]
ビ ュ ーを一旦閉 じ 、 run を開始する 前に開き なお し て く だ さ い。
パーテ ィ シ ョ ン と イ ンポー ト
パーテ ィ シ ョ ン を使用す る と 、 ス タ テ ィ ッ ク ロ ジ ッ ク な ど の共通モジ ュ ールをすべての コ ン フ ィ
ギ ュ レーシ ョ ンで同 じ にで き ます。パーテ ィ シ ョ ンは、イ ン ス タ ン ス ( ま たは最上位レベル モジ ュ ー
ル) に設定 さ れ る 属性で、 ザ イ リ ン ク ス ソ フ ト ウ ェ アでは こ れ ら の属性に従っ て ロ ジ ッ ク が特定の
方法で イ ンプ リ メ ン ト さ れます。 パーテ ィ シ ョ ンには、 パーテ ィ シ ョ ン ロ ジ ッ ク の イ ンプ リ メ ン ト
方法を さ ら に詳細に指定す る RECONFIGURABLE お よ び STATE な ど の属性があ り ます。
RECONFIGURABLE 属性では、 イ ン ス タ ン ス ま た はモ ジ ュ ールが最終的にパーシ ャ ル ビ ッ ト
フ ァ イ ルに イ ン プ リ メ ン ト さ れ る 方法を指定 し ま す。 リ コ ン フ ィ ギ ャ ブル モジ ュ ールには リ コ ン
フ ィ ギ ャ ブ ル 以 外 の モ ジ ュ ー ル に は 必 要 の な い 物 理 要 件 が 多 く 含 ま れ て い る の で、
RECONFIGURABLE 属性は イ ン プ リ メ ン テーシ ョ ン ツール フ ロ ーを実行す る 前に設定す る 必要
34
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーテ ィ シ ョ ン と イ ンポー ト
があ り ます。 こ の属性に よ り 、 モジ ュ ールの最終的な イ ンプ リ メ ン テーシ ョ ン でかな り 影響が出ま
す。
STATE 属性では、 モジ ュ ールを イ ンプ リ メ ン ト す る か、 前の イ ンプ リ メ ン テーシ ョ ン済み (保存 し
た ) デザ イ ンか ら イ ン ポー ト す る か を指定で き ます。
パーテ ィ シ ョ ン を イ ン ポー ト す る 場合、 配置配線を含む イ ンプ リ メ ン テーシ ョ ンは イ ン ポー ト 先の
デザ イ ン と 同 じ にな り ます。 た と えば、 最初の コ ン フ ィ ギ ュ レーシ ョ ンで ス タ テ ィ ッ ク ロ ジ ッ ク を
イ ンプ リ メ ン ト し 、 ユーザーが こ の結果をエ ク ス ポー ト (プ ロ モー ト ) し た と し ます。 こ の後の イ ン
プ リ メ ン テーシ ョ ンには、 すべて こ のプ ロ モー ト さ れた コ ン フ ィ ギ ュ レーシ ョ ンか ら の ス タ テ ィ ッ
ク なパーテ ィ シ ョ ンが イ ン ポー ト さ れます。 ス タ テ ィ ッ ク ロ ジ ッ ク を変更 し て再びエ ク ス ポー ト し
た場合、 続 く コ ン フ ィ ギ ュ レーシ ョ ンには こ の新 し い ス タ テ ィ ッ ク ロ ジ ッ ク を イ ン ポー ト し 、 コ ン
フ ィ ギ ュ レーシ ョ ン を イ ンプ リ メ ン ト し 直 し て、 ア ッ プデー ト す る 必要があ り ます。
PXML フ ァ イルの役割
パーテ ィ シ ョ ン情報は、 イ ン プ リ メ ン テーシ ョ ン デ ィ レ ク ト リ の xpartition.pxml フ ァ イ ルに格納
さ れ ます。 コ ン フ ィ ギ ュ レーシ ョ ンは、 それぞれデザ イ ン デ ィ レ ク ト リ に PXML フ ァ イ ルを含ん
でい ます。
xpartition.pxml フ ァ イ ルには、 次の特徴があ り ます。
•
XML 形式のテ キ ス ト フ ァ イ ルです。
•
PlanAhead ソ フ ト ウ ェ ア ま たは提供 さ れてい る gen_xp.tcl ス ク リ プ ト で自動的に生成 さ れま
す。 gen_xp.tcl の詳細は、 第 5 章 「 コ マ ン ド ラ イ ン ス ク リ プ ト 」 を参照 し て く だ さ い。
•
ユーザーが作成ま たは変更で き ます。
•
MAP や PAR な ど の イ ンプ リ メ ン テーシ ョ ン ツールの入力にな り ます。
•
リ ビ ジ ョ ン コ ン ト ロ ールの必要に応 じ て ソ ース を考慮で き ます。
NGDBuild、 MAP、 お よ び PAR な ど のザ イ リ ン ク ス ソ フ ト ウ ェ ア では、 自動的に イ ン プ リ メ ン
テーシ ョ ン デ ィ レ ク ト リ か ら xpartition.pxml が検索 さ れ使用 さ れ ます。 パーテ ィ シ ョ ン情報を含
む XML フ ァ イ ルには、 xpartition.pxml と い う 名前を付け、 イ ンプ リ メ ン テーシ ョ ン デ ィ レ ク ト リ
に含めない と 、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンが認識 さ れません。
xpartition.pxml フ ァ イ ルを変更 し た場合は、 フ ロ ーの一部を実行 し 直す必要があ り ます。 STATE 属
性を変更 し た場合は、 MAP ま たは PAR のいずれか を実行 し 直 し ます。 MAP と PAR の両方を実行
し 直す と 、 配置配線で xpartition.pxml フ ァ イ ルか ら の STATE 属性が使用 さ れます。 PAR のみを実
行 し 直 し た 場合、 配置 で は 前 の run か ら の STATE 属性 が 維持 さ れ、 配線 で の み現在 の
xpartition.pxml フ ァ イ ルの STATE 属性が使用 さ れます。ImportLocation ま たは Reconfigurable 属
性を変更 し た場合は、 NGDBuild、 MAP、 お よ び PAR のすべて を実行 し 直す必要があ り ます。
メ モ : PXML フ ァ イ ルのパーテ ィ シ ョ ンに適用 さ れ る BoundaryOpt 属性は、 パーシ ャ ル リ コ ン
フ ィ ギ ュ レーシ ョ ン フ ロ ーでは使用で き ません。
次のセ ク シ ョ ン では、 1 つ目か ら 3 つ目ま での コ ン フ ィ ギ ュ レーシ ョ ン PXML フ ァ イ ルを示 し て
い ます。
1 つ目の コ ン フ ィ ギ ュ レーシ ョ ン PXML フ ァ イル
最初の コ ン フ ィ ギ ュ レーシ ョ ン PXML フ ァ イ ルは、 次の よ う にな り ます。
First Configuration's xpartition.pxml file:
<Project FileVersion=”1.2” Name=”FFF” ProjectVersion=”2.0”>
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
35
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
<Partition Name=”/top” State=”implement”
ImportLocation=”NONE” >
<Partition Name=”/top/red” State=”implement”
ImportLocation=”NONE” Reconfigurable=”true”
ReconfigModuleName=”red_fast”>
<Partition Name=”/top/blue” State=”implement”
ImportLocation=”NONE" Reconfigurable="true"
ReconfigModuleName="blue_fast">
<Partition Name="/top/green" State="implement"
ImportLocation="NONE" Reconfigurable="true"
ReconfigModuleName="green_fast">
</Partition>
</Partition>
</Project>
2 つ目の コ ン フ ィ ギ ュ レーシ ョ ン PXML フ ァ イル
ス タ テ ィ ッ ク ロ ジ ッ ク に イ ン ポー ト さ れ る 2 つ目の コ ン フ ィ ギ ュ レーシ ョ ンは、次の よ う にな り ま
す。
Second Configuration's xpartition.pxml file:
<Project FileVersion=”1.2” Name=”SSS” ProjectVersion=”2.0”>
<Partition Name=”/top” State=”import”
ImportLocation=”../XFFF" >
<Partition Name="/top/red"
State="implement" ImportLocation="NONE" Reconfigurable="true"
ReconfigModuleName="red_slow" >
<Partition Name="/top/blue"
State="implement" ImportLocation="NONE" Reconfigurable="true"
ReconfigModuleName="blue_slow" >
<Partition Name="/top/green"
State="implement" ImportLocation="NONE" Reconfigurable="true"
ReconfigModuleName="green_slow" >
</Partition>
</Partition>
</Project>
3 つ目の コ ン フ ィ ギ ュ レーシ ョ ン PXML フ ァ イル
ス タ テ ィ ッ ク ロ ジ ッ ク と 3 つすべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールに イ ン ポー ト さ れ る 3 つ目
の コ ン フ ィ ギ ュ レーシ ョ ンは、 次の よ う にな り ます。
Third Configuration's xpartition.pxml file:
<Project FileVersion="1.2“ Name=”FSF" ProjectVersion="2.0">
<Partition Name="/top" State="import"
36
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
イ ン プ リ メ ン テーシ ョ ン
ImportLocation="../XFFF" >
<Partition Name="/top/red" State="import"
ImportLocation="../XFFF" Reconfigurable="true"
ReconfigModuleName="red_fast" >
<Partition Name="/top/blue" State="import"
ImportLocation="../XSSS" Reconfigurable="true"
ReconfigModuleName="blue_slow" >
<Partition Name="/top/green" State="import"
ImportLocation="../XFFF" Reconfigurable="true"
ReconfigModuleName="green_fast" >
</Partition>
</Partition>
</Project>
ス タ テ ィ ッ ク ロ ジ ッ ク と Red、Green モジ ュ ールは 1 つ目の コ ン フ ィ ギ ュ レーシ ョ ンか ら イ ン ポー
ト さ れます。 Blue モジ ュ ールは、 2 つ目の コ ン フ ィ ギ ュ レーシ ョ ンか ら イ ン ポー ト さ れます。
イ ン プ リ メ ン テーシ ョ ン
FPGA デザ イ ン を イ ンプ リ メ ン ト す る には、 NGDBuild、 MAP、 お よ び PAR をパーシ ャ ル リ コ ン
フ ィ ギ ュ レ ーシ ョ ン デザ イ ン以外のデザ イ ン と 同 じ よ う に実行す る 必要が あ り ま す。 ほ と ん ど の
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン特有の情報は xpartition.pxml フ ァ イ ル と UCF フ ァ イ ルに
含まれます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン特有の コ マ ン ド ラ イ ン オプシ ョ ンはあ り ませ
ん。 次の例は、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を イ ン プ リ メ ン ト す る コ マ ン ド を
示 し てい ます。
ngdbuild -sd ../red_fast -sd ../blue_fast –sd ../green_fast -uc
../UCF/design.ucf ../Static/top.edf FFF.ngd
map -w -o FFF_map.ncd FFF.ngd FFF.pcf
par -w FFF_map.ncd FFF.ncd FFF.pcf
すべての イ ン プ リ メ ン テーシ ョ ン オプシ ョ ン がパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン に使用で き
る わけではあ り ません。 使用で き ないオプシ ョ ンは次の と お り です。
•
MAP コ マ ン ド の global_opt オプシ ョ ン と それに関す る 子 コ マ ン ド
•
MAP コ マ ン ド の -power オプシ ョ ンの high お よ び xe 値
•
BoundaryOpt 制約 (PXML フ ァ イ ルでパーテ ィ シ ョ ンに適用 さ れ る )
•
SmartGuide™
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
37
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
配置配線問題のデバ ッ グ
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンが配置 さ れれ る と 、 次の よ う にな り ます (図 3-6 参
照) 。
•
ス タ テ ィ ッ ク 配線は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を通 し て配線で き ます。
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ール内の配線は、 その リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに関連
す る エ リ ア グループの外部には配線で き ません。
•
イ ン ポー ト さ れた配線が イ ンプ リ メ ン ト 済みの配線 よ り 優先 さ れます。
X-Ref Target - Figure 3-6
図 3-6 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの配線制限
こ こ では、 配置配線問題のデバ ッ グについて記述 し ます。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのエ リ ア グループは、 平坦なデザ イ ンの同 じ エ リ ア グ
ループ よ り も 大 き く す る 必要があ り ます。
•
配置ツールでは こ れ ら の配線制限が考慮 さ れ る ので、 使用で き ない配線 リ ソ ース があ る と 配置
エ ラ ーが発生す る こ と があ り ます。
配置でエ ラ ーが発生 し た場合は、 xpartition.pxml フ ァ イ ルで reconfigurable=”true” を削除 し て、 リ
コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン以外を テ ス ト し てみます。 こ の修正を加え る 前、 フ ァ イ ルは次の
よ う にな っ てい ます。
38
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
ビ ッ ト フ ァ イルの生成
修正を加え る と 、 フ ァ イ ルは次の よ う にな り ます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン以外の部分には同 じ 配線制限がないので、 リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ンが こ の変更で問題な く 配置配線 さ れ る 場合、エ リ ア グループ を その リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ン を配置配線す る のに十分な大 き さ にす る 必要があ り ます。
こ の変更後は、 NGDBuild、 MAP、 お よ び PAR を実行 し 直 し て く だ さ い。
ビ ッ ト フ ァ イルの生成
NCD フ ァ イ ルで bitgen コ マ ン ド を実行す る と 、 フル ビ ッ ト フ ァ イ ル と パーシ ャ ル ビ ッ ト フ ァ イ
ルの両方が生成 さ れ ます。 パーシ ャ ル ビ ッ ト フ ァ イ ルを生成す る のに特別なオプシ ョ ンは必要あ
り ま せんが、 パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン機能専用のオプシ ョ ン については、 こ のセ ク
シ ョ ンの後半に リ ス ト し てい ます。
bitgen -w FFF.ncd
デザ イ ンに リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンが含まれ る 場合、それぞれに対 し てパーシ ャ ル ビ ッ
ト フ ァ イ ルが自動的に生成 さ れ ます。 フル ビ ッ ト フ ァ イ ルには、 コ ン フ ィ ギ ュ レーシ ョ ン で使用
さ れたパーシ ャ ル モジ ュ ールが含まれます。
た と えば、 デザ イ ン例の 1 つ目の コ ン フ ィ ギ ュ レーシ ョ ンでは次の フ ァ イ ルが生成 さ れます。
fff.bit
( ス タ テ ィ ッ ク ロ ジ ッ ク お よ び red_fast、 blue_fast、 green_fast モジ ュ ール)
fff_reconfig_red_red_fast_partial.bit
( リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの red に定義 し た範囲にあ る ロ ジ ッ ク のみ)
fff_reconfig_blue_blue_fast_partial.bit
( リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの blue に定義 し た範囲にあ る ロ ジ ッ ク のみ)
fff_reconfig_green_green_fast_partial.bit
( リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの green に定義 し た範囲にあ る ロ ジ ッ ク のみ)
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
39
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
次の BitGen オプシ ョ ン をパーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン デザ イ ン の該当箇所に設定す る
必要があ り ます。
•
–g ActiveReconfig:Yes
ActiveReconfig オプシ ョ ンは、 通常パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンで使用 さ れ、 FPGA
がシ ャ ッ ト ダ ウ ン さ れない よ う に し ます (GHIGH と GSR がアサー ト さ れない よ う に し ます)。
•
-g Binary:Yes
こ れに よ り 、 コ ン フ ィ ギ ュ レーシ ョ ン
デー タ のみを含むバ イ ナ リ
コ ン フ ィ ギ ュ レーシ ョ ン
(BIT フ ァ イ ルか ら ヘ ッ ダ情報を抜いた も の と 同 じ ) が生成 さ れます。 BIT フ ァ イ ルには、 さ ま
ざ ま な長 さ のヘ ッ ダ情報が含まれ る ので (常に ワー ド バ ウ ン ダ リ にあ る わけではない)、 カ ス タ
ム コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス には BIN フ ァ イ ルが よ く 使用 さ れます。
•
-g ConfigFallback:Disable
こ のオプシ ョ ン を使用す る と 、パーシ ャ ル ビ ッ ト ス ト リ ームで コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ー
(CRC エ ラ ー ) 後に フル デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンが ト リ ガ さ れな く な り ます。 こ のオ
プシ ョ ンは、 Virtex-5 お よ びそれ以降のアーキ テ ク チ ャ で使用 し て く だ さ い。
•
–g CRC:enable
こ れはデフ ォ ル ト です。 CRC をデ ィ ス エーブルにす る のはお勧め し ません。
•
-g Persist:Yes
多目的 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンがユーザー I/O と し て使用 さ れない よ う に し ます。 こ れ
は、 Slave SelectMAP ま たは Slave Serial モー ド がパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン で使
用 さ れ る 場合に設定す る 必要があ り ます。こ のオプシ ョ ン を CONFIG_MODE 制約 と 一緒に使
用す る と 、適切な コ ン フ ィ ギ ュ レーシ ョ ン ピ ンのセ ッ ト が コ ン フ ィ ギ ュ レーシ ョ ン後に使用 さ
れ る よ う に予約で き ます。 CONFIG_MODE の値 (S_SELECTMAP、 S_SERIAL な ど ) につい
ては、 『制約ガ イ ド 』 を参照 し て く だ さ い。
パーテ ィ シ ョ ン ベー ス のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーでは BitGen オプシ ョ ン を
使用 し ないで く だ さ い。 -r オプシ ョ ンでは相違ベース の フ ロ ーがサポー ト さ れ、 配線済みデザ イ ン
に小 さ な変更を加え る こ と がで き ます。 ま た、 こ のオプシ ョ ン を使用す る と 、 その変更点を比較 し
てパーシ ャ ル ビ ッ ト フ ァ イ ルを構築で き ます。
こ れ ら も 含 め た BitGen オ プ シ ョ ン の 詳細 は、 『 コ マ ン ド ラ イ ン ツ ール ユ ーザー ガ イ ド 』 の
「BitGen」 の章を参照 し て く だ さ い。
レ ポー ト フ ァ イル
NGDBuild、 MAP、 PAR、 TRACE お よ び BitGen の レ ポー ト フ ァ イ ルには、 リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ンに特有の情報が含まれます。 レ ポー ト フ ァ イ ルには、 次の よ う な フ ァ イ ルがあ り ま
す。
•
「NGDBuild レ ポー ト 」
•
「MAP レ ポー ト 」
•
「PAR レ ポー ト 」
•
「TRACE レ ポー ト 」
•
「BitGen レ ポー ト 」
次のサンプル レ ポー ト は、 省略 し て表示 し てい ます。
40
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
レ ポー ト フ ァ イル
NGDBuild レ ポー ト
NGDBuild レ ポー ト は、 最上位レベルの ス タ テ ィ ッ ク パーテ ィ シ ョ ン も 含め、 ど のパーテ ィ シ ョ ン
が イ ンプ リ メ ン ト さ れ、 ど のパーテ ィ シ ョ ンが保持 さ れたかが表示 さ れます。 こ の例では、 最上位
レベルの ス タ テ ィ ッ ク パーテ ィ シ ョ ンが保持 さ れ、3 つの リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンが イ
ンプ リ メ ン ト さ れてい ます。
Partition Implementation Status
------------------------------Preserved Partitions:
Partition "/top"
Implemented Partitions:
Partition "/top/reconfig_red" (Reconfigurable Module "red_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_blue" (Reconfigurable Module "blue_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_green" (Reconfigurable Module "green_fast"):
Attribute STATE set to IMPLEMENT.
MAP レポー ト
NGDBuild レ ポー ト と 同様、 MAP レ ポー ト (.mrp) にはすべてのパーテ ィ シ ョ ンが イ ンプ リ メ ン ト
さ れた こ と が示 さ れますが、 最上位レベルの ス タ テ ィ ッ ク パーテ ィ シ ョ ンだけは表示 さ れません。
Section 9 - Area Group and Partition Summary
-------------------------------------------Partition Implementation Status
------------------------------Preserved Partitions:
Partition "/top"
Implemented Partitions:
Partition "/top/reconfig_red" (Reconfigurable Module "red_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_blue" (Reconfigurable Module "blue_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_green" (Reconfigurable Module
"green_fast"):
Attribute STATE set to IMPLEMENT.
「Partition Resource Summary」 には、 デザ イ ン の各パーテ ィ シ ョ ン で使用 さ れた リ ソ ー ス 数が レ
ポー ト さ れ ます。 ま た、 ど のエ リ ア グループが ど の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に関連 し
てい る か も レ ポー ト さ れます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
41
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
次 の 例 で は、 AREA GROUP pblock_reconfig_red が リ コ ン フ ィ ギ ャ ブ ル パ ー テ ィ シ ョ ン の
/top/reconfig_red と 関連 し てい る こ と がわか り ます。
Partition Resource Summary:
--------------------------Resources are reported for each Partition followed in parenthesis by resources
for the Partition plus all of its descendants.
Partition "/top":
State=implement
Slice Logic Utilization:
Number of Slice Registers:
Number of Slice LUTs:
Number used as logic:
Number used as Memory:
Slice Logic Distribution:
Number of occupied Slices:
Number of LUT Flip Flop pairs used:
Number with an unused Flip Flop:
Number with an unused LUT:
Number of fully used LUT-FF pairs:
IO Utilization:
Number of bonded IOBs:
Number of MMCM_ADV:
Number of OLOGICE1:
Number of STARTUP:
113
148
146
2
(188)
(274)
(272)
(2)
60
157
44
7
106
(105)
(288)
out of
out of
out of
26
1
17
1
Partition "/top/reconfig_blue" (Reconfigurable
State=implement
Slice Logic Utilization:
Number of Slice Registers:
25
Number of Slice LUTs:
42
Number used as logic:
42
Slice Logic Distribution:
Number of occupied Slices:
15
Number of LUT Flip Flop pairs used:
44
Number with an unused Flip Flop:
19
Number with an unused LUT:
1
Number of fully used LUT-FF pairs:
24
157
157
157
28%
4%
67%
(26)
(1)
(17)
(1)
Module "Blue_Fast") (Area Group "AG_reconfig_blue"):
(25)
(42)
(42)
(15)
(44)
out of
out of
out of
44
44
44
43%
2%
54%
次の MAP レ ポー ト のセ ク シ ョ ンには、 UCF フ ァ イ ルで定義 さ れた物理エ リ ア グループに含ま れ
る リ ソ ース の使用率が % で表示 さ れてい ます。 こ の例では、 AG_reconfig_blue エ リ ア グループに
は ス ラ イ ス (LUT お よ び FF) 用に関連付け ら れた範囲が 1 つ指定 さ れてい ます。 AG_RP_green エ
リ ア グループにはブ ロ ッ ク RAM と ス ラ イ ス の範囲が指定 さ れてい ます。
Area Group Information
---------------------Area Group "AG_reconfig_blue"
No COMPRESSION specified for Area Group "AG_reconfig_blue"
RANGE:SLICE_X74Y0:SLICE_X83Y79
Slice Logic Utilization:
Number of Slice Registers:
25 out of 6,400
Number of Slice LUTs:
42 out of 3,200
Number used as logic:
42
Slice Logic Distribution:
Number of occupied Slices:
15 out of
800
Number of LUT Flip Flop pairs used:
44
Number with an unused Flip Flop:
19 out of
44
Number with an unused LUT:
1 out of
44
Number of fully used LUT-FF pairs:
24 out of
44
42
japan.xilinx.com
1%
1%
1%
43%
2%
54%
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
レ ポー ト フ ァ イル
PAR レポー ト
NGDBuild レ ポー ト と MAP レ ポー ト と 同様、PAR レ ポー ト に も ど のパーテ ィ シ ョ ンが イ ンプ リ メ
ン ト さ れたかが表示 さ れます。
Partition Implementation Status
------------------------------Preserved Partitions:
Partition "/top"
Implemented Partitions:
Partition "/top/reconfig_red" (Reconfigurable Module "red_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_blue" (Reconfigurable Module "blue_fast"):
Attribute STATE set to IMPLEMENT.
Partition "/top/reconfig_green" (Reconfigurable Module "green_fast"):
Attribute STATE set to IMPLEMENT.
TRACE レ ポー ト
TRACE ツールは、 FPGA デザ イ ン の ス タ テ ィ ッ ク タ イ ミ ン グ解析を実行す る ために使用 さ れ ま
す。 こ の ツールは、 タ イ ミ ン グ検証 と レ ポー ト の両方に使用 さ れます。 TRACE の使用方法につい
ては、 『 コ マ ン ド ラ イ ン ツール ユーザー ガ イ ド 』 (UG628) の 「TRACE」 セ ク シ ョ ン を参照 し て く
だ さ い。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン フ ロ ーは、 常に完全なデザ イ ン と 連動 し ます。 こ
れに よ り 、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの解析の際に、 タ イ ミ ン グ解析で ス タ テ ィ ッ ク 領域に適
用 さ れた制約を再利用で き る よ う にな り ます (つま り 、 ス タ テ ィ ッ ク 領域の ク ロ ッ ク に適用 さ れた
PERIOD 制約に よ り 、 リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの該当パ ス の解析が実行 さ れ ま す)。 ス タ
テ ィ ッ ク ロ ジ ッ ク は常に解析 さ れます。
TRACE では複数の出力フ ァ イ ルを生成で き ます。 次の 3 つの フ ァ イ ルは、 ユーザー定義の制約を
デザ イ ンが どれ く ら い満た し てい る か を確認す る 場合に使用で き ます。
•
TWR - ASCII 形式の タ イ ミ ン グ レ ポー ト
•
TWX - XML 形式の タ イ ミ ン グ レ ポー ト
•
TSI - ASCII 形式の制約相互作用レ ポー ト
TWR と TWX タ イ ミ ン グ レ ポー ト は、 各 コ ン フ ィ ギ ュ レーシ ョ ン を イ ンプ リ メ ン テーシ ョ ンす る
と 作成 さ れます。 別のオプシ ョ ン を使用 し たそれ以外の レ ポー ト が必要な場合は、 TRACE を コ マ
ン ド ラ イ ンか ら 実行す る か、PlanAhead ソ フ ト ウ ェ アの該当す る イ ンプ リ メ ン テーシ ョ ン オプシ ョ
ン を変更 し てか ら 、 イ ンプ リ メ ン テーシ ョ ン を実行 し 直 し ます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を含むデザ イ ン の ス タ テ ィ ッ ク タ イ ミ ン グ解析を実行す る の
は、 普通のデザ イ ンの ス タ テ ィ ッ ク タ イ ミ ン グ を解析す る 場合 と 同 じ ですが、 手法が異な り ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン の場合、 タ イ ミ ン グ解析は コ ン フ ィ ギ ュ レーシ ョ
ン ご と に実行す る 必要があ り ます。
次は、 TRACE コ マ ン ド ラ イ ンの例です。 こ の例で使用 さ れ る オプシ ョ ンの詳細は、 『 コ マ ン ド ラ
イ ン ツール ユーザー ガ イ ド 』 (UG628) の 「TRACE」 の章を参照 し て く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
43
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
trce –v 10 –u 10 –tsi top.tsi –o top.twr –xml top.twx top top.pcf
タ イ ミ ン グ レ ポー ト は、 パーテ ィ シ ョ ン ピ ン を通 る パ ス を検証す る ために も 使用で き ま す。 こ の
ロ ジ ッ ク は、 キー ワー ド 「PROXY」 で検索で き ます。 LUT 名に _PROXY が付いた名前は、 LUT
がプ ロ キ シ ロ ジ ッ ク と し て使用 さ れ る こ と を示 し 、 パーテ ィ シ ョ ン ピ ンが こ のプ ロ キ シ ロ ジ ッ ク
に含まれ る こ と を意味 し ます。
次の例では、 こ れ ら の制約 と 共に、 TPSYNC 制約が red.addr バ ス に適用 さ れてい ます。
PIN “red.addr(*)” TPSYNC = “group_RP_red_input”;
TIMESPEC TS_from_static_to_PP_input = TO “group_RP_red_input” 4.5 ns;
こ のパス の ソ ース は、 ス タ テ ィ ッ ク 領域に含まれます。 デス テ ィ ネーシ ョ ンは、 プ ロ キ シ ロ ジ ッ ク
と し て挿入 さ れた LUT です。 こ の特定パ ス のデス テ ィ ネーシ ョ ン パ ス は、 red.addr(11) です。 こ
れは、 パーテ ィ シ ョ ン名が red で、 ポー ト 名が addr(11) であ る こ と を示 し てい ます。
こ の解析では、 レ ジ ス タ の clock-to-out タ イ ム と ネ ッ ト 遅延がパーテ ィ シ ョ ン ピ ン ま で考慮 さ れて
い る こ と がわか り ます。パーテ ィ シ ョ ン ピ ン ま での遅延は、こ のパ ス解析では考慮 さ れてい ません。
Timing constraint:TS_from_static_to_PP_input = MAXDELAY TO TIMEGRP
“group_RP_red_input” 4.5 ns;
12 paths analyzed, 12 endpoints analyzed, 0 failing endpoints
0 timing errors detected.(0 setup errors, 0 hold errors)
Maximum delay is
1.111ns.
--------------------------------------------------------------------Slack:
3.389ns (requirement - data path)
Source:
count_34 (FF)
Destination:
red/addr(11)_PROXY (LUT) (red.addr(11))
Requirement:
4.500ns
Data Path Delay:
1.111ns (Levels of Logic = 0)
Source Clock:
gclk rising at 0.000ns
Maximum Data Path: count_34 to RP_red/addr(11)_PROXY
Location
Delay type
Delay(ns) Physical Resource
Logical Resource(s)
------------------------------------------ ---------------------SLICE_X47Y39.CQ Tcko
0.326
count[34]
count_34
SLICE_X45Y37.A1 net (fanout=2)
0.785
count[34]
------------------------------------------ ---------------------Total
1.111ns (0.326ns logic, 0.785ns route)
(29.3% logic, 70.7% route)
45 ページの図 3-7 は、 ス タ テ ィ ッ ク FF か ら パーテ ィ シ ョ ン ピ ン ま でのパ ス を示 し てい ます。
44
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
レ ポー ト フ ァ イル
X-Ref Target - Figure 3-7
Path Analyzed
Partition pin
red. addr(11)
red
(partition)
LUT
FF
addr(11)_PROXY
count_34
X12028
図 3-7 : ス タ テ ィ ッ ク FF からパーテ ィ シ ョ ン ピ ン ま でのパス
次の例では、 こ れ ら の制約 と 共に、 TPSYNC 制約が red.d_out バ ス に適用 さ れてい ます。
PIN "red.d_out(*)" TPSYNC = "Bram_output_PPs";
TIMESPEC TS_from_PP_output_to_static = FROM "Bram_output_PPs" 5.0 ns;
こ のパ ス の ソ ー ス は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン の出力のプ ロ キ シ ロ ジ ッ ク です。 デス
テ ィ ネーシ ョ ン は、 ス タ テ ィ ッ ク 領域の PAD です。 こ の特定パ ス の ソ ー ス 名は red.d_out(5) で、
red はパーテ ィ シ ョ ン名、 d_out(5) はポー ト 名を示 し てい ます。
次の解析では、 プ ロ キ シ ロ ジ ッ ク を介 し た伝搬時間 と 、 出力バ ッ フ ァ へのネ ッ ト 遅延、 その後の出
力バ ッ フ ァ を介 し た PAD ま での伝搬遅延が考慮 さ れてい ます。
Timing constraint:TS_from_PP_output_to_static = MAXDELAY FROM TIMEGRP
"Bram_output_PPs" 5.0 ns;
8 paths analyzed, 8 endpoints analyzed, 0 failing endpoints
0 timing errors detected.(0 setup errors, 0 hold errors)
Maximum delay is
4.770ns.
---------------------------------------------------------------------Slack:
0.230ns (requirement - data path)
Source:
red/d_out(5)_PROXY (LUT) (red.d_out(5))
Destination:
out_bram[5] (PAD)
Requirement:
5.000ns
Data Path Delay:4.770ns (Levels of Logic = 2)
Maximum Data Path:U1_RP_Bram/d_out(5)_PROXY to out_bram[5]
Location
Delay type
Delay(ns) Physical Resource
Logical Resource(s)
(Partition Pin)
-------------------------------------------- ------------------SLICE_X33Y38.B
Tilo
0.080
red/d_out(5)_PROXY
red/d_out(5)_PROXY
(red.d_out(5))
G15.O
net (fanout=1)
2.514
out_bram_5_OBUF
G15.PAD
Tioop
2.176
out_bram[5]
out_bram_5_OBUF
out_bram[5]
-------------------------------------------- --------------------Total
4.770ns (2.256ns logic, 2.514ns rte)
(47.3% logic, 52.7% route)
図 3-8 は、 パーテ ィ シ ョ ン ピ ンか ら ス タ テ ィ ッ ク PAD ま での解析パ ス を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
45
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
X-Ref Target - Figure 3-8
Path Analyzed
Partition pin
red.d_out(5)
red
(partition)
LUT
d_out(5)_PROXY
out_bram[5]
(PAD)
X12029
図 3-8 : パーテ ィ シ ョ ン ピ ンから ス タ テ ィ ッ ク PAD ま でパス
次の例では、 PERIOD 制約が static_VGA_vgaclk2_i ク ロ ッ ク 信号に適用 さ れ、 関連する PERIOD
制約が VGA_CLK ク ロ ッ ク 信号に適用 さ れてい ます ( ど ち ら も ス タ テ ィ ッ ク 領域にあ り ます)。
こ のパ ス の ソ ー ス と デ ス テ ィ ネーシ ョ ンは ス タ テ ィ ッ ク 領域の FF ( フ リ ッ プ フ ロ ッ プ) です。 ソ ー
ス と デ ス テ ィ ネーシ ョ ン間のパ ス はプ ロ キ シ ロ ジ ッ ク を通 り 、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ
ン を通っ た後、 さ ら に多 く のプ ロ キ シ ロ ジ ッ ク へ戻 り 、 最後に ス タ テ ィ ッ ク 領域の FF に到着 し ま
す。 こ のパ ス の最初のパーテ ィ シ ョ ン ピ ンの名前 red.VGA_in7 は、 パーテ ィ シ ョ ン名が red、 ポー
ト 名が VGA_in7 で あ る こ と を 示 し て い ま す。 こ のパ ス の 2 つ目のパーテ ィ シ ョ ン ピ ン の名前
red.VGA_out7 は、 パーテ ィ シ ョ ン名が red、 ポー ト 名が VGA_out7 であ る こ と を示 し てい ます。
次の解析フ ァ イ ルの例では、 パーテ ィ シ ョ ン ピ ン の伝搬遅延 も 含めたパ ス 全体が考慮 さ れてい ま
す。 こ のパス には違反があ り ますが、 こ の違反はパーテ ィ シ ョ ン内に レ ジ ス タ を追加す る と 回避で
き ます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を通 る 組み合わせパ ス は、 2 つの LUT 遅延が追加 さ
れ る だけでな く 、 第 7 章の 「デカ ッ プ リ ン グ機能」 に示す ロ ジ ッ ク デカ ッ プ リ ン グが実行 さ れない
ため、 使用 し ない よ う に し て く だ さ い。
46
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
レ ポー ト フ ァ イル
Timing constraint:TS_static_VGA_vgaclk2_i = PERIOD TIMEGRP
“static_VGA_vgaclk2_i” TS_static_VGA_pixel_clock_i PHASE 3.167 ns HIGH 50%;
126 paths analyzed, 36 endpoints analyzed, 10 failing endpoints
10 timing errors detected.(10 setup errors, 0 hold errors, 0 component switching limit
errors)
Minimum period is 15.401ns.
---------------------------------------------------------------------------Slack:
-0.451ns (req-(data path-clock path skew + uncer'ty))
Source:
static_VGA/VGA_R_1[0] (FF)
Destination:
static_DVI_IF/ODDR_DVI_DATA11 (FF)
Requirement:
3.167ns
Data Path Delay:
3.387ns (Levels of Logic = 2)
Clock Path Skew:
0.084ns (1.427 - 1.343)
Source Clock:
static_VGA/pixel_clock rising at 0.000ns
Destination Clock:
VGA_CLK rising at 3.167ns
Clock Uncertainty:
0.315ns
Clock Uncertainty:
0.315ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
Total System Jitter (TSJ):0.070ns
Total Input Jitter (TIJ):
0.000ns
Discrete Jitter (DJ):
0.458ns
Phase Error (PE):
0.050ns
Maximum Data Path: static_VGA/VGA_R_1[0] to static_DVI_IF/ODDR_DVI_DATA11
Location
Delay type
Delay(ns) Physical Resource
Logical Resource(s)
(Partition Pin)
---------------------------------------------- ------------------SLICE_X25Y75.DQ
Tcko
0.326
VGA_R_bus_out[1]
static_VGA/VGA_R_1[0]
SLICE_X25Y76.C6
net (fanout=8)
0.248
VGA_R_bus_out[1]
SLICE_X25Y76.C
Tilo
0.080
red/VGA_out7_PROXY
red/VGA_in7_PROXY
(red.VGA_in7)
SLICE_X25Y76.D5
net (fanout=1)
0.164
red/VGA_out7
SLICE_X25Y76.D
Tilo
0.080
red/VGA_out7_PROXY
red/VGA_out7_PROXY
(red.VGA_out7)
OLOGIC_X2Y39.D1
net (fanout=1)
2.192
VGA_R[7]
OLOGIC_X2Y39.CLK
Todck
0.297
DVI_LCD_DATA11_c
static_DVI_IF/ODDR_DVI_DATA11
---------------------------------------------- ---------------------Total
3.387ns (0.783ns logic, 2.604ns rte)
(23.1% logic, 76.9% rte)
48 ページの図 3-9 は、 パーテ ィ シ ョ ン ピ ン を通る FF か ら FF ま でのパ ス を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
47
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
X-Ref Target - Figure 3-9
Path Analyzed
Partition pin
red. VGA_in7
red
(partition)
Partition pin
red. VGA_out7
LUT
LUT
FF
FF
VGA_in7_PROXY
VGA_out7_PROXY
static_VGA/
VGA_R_1[0]
static_DVI_IF/
ODDR_DVI_DATA11
X12030
図 3-9 : パーテ ィ シ ョ ン ピ ン を通る FF から FF ま でのパス
BitGen レポー ト
BitGen を実行す る と 、 各パーシ ャ ル ビ ッ ト フ ァ イ ル と フル ビ ッ ト フ ァ イ ルの レ ポー ト フ ァ イ ル
が作成 さ れ ま す。 フ ル ビ ッ ト フ ァ イ ルの レ ポー ト には、 フ ル ビ ッ ト フ ァ イ ルに含 ま れ る リ コ ン
フ ィ ギ ャ ブル モジ ュ ールすべてが リ ス ト さ れ、 ActiveReconfig = No 設定でそれがパーシ ャ ル ビ ッ
ト フ ァ イ ルではない こ と が示 さ れます。
...
Partition “/top/reconfig_red” (Reconfigurable Module “red_fast”)
Partition “/top/reconfig_blue” (Reconfigurable Module “blue_fast”)
Partition “/top/reconfig_green” (Reconfigurable Module “green_fast”)
...
Summary of Bitgen Options:
+----------------------+----------------------+
| ActiveReconfig
| No*
|
+----------------------+----------------------+
| Partial
| (Not Specified)*
|
+----------------------+----------------------+
...
* Default setting.
パーシ ャ ル ビ ッ ト フ ァ イ ルの レ ポー ト には、それがパーシ ャ ル ビ ッ ト フ ァ イ ルであ る こ と と 、パー
テ ィ シ ョ ン と リ コ ン フ ィ ギ ャ ブル モジ ュ ールがそれぞれどれに関連 し てい る のかが示 さ れます。
...
Summary of Bitgen Options:
+----------------------+----------------------+
| ActiveReconfig
| Yes
|
+----------------------+----------------------+
| Partial
| reconfig_red
|
+----------------------+----------------------+
...
Creating bit stream for Partition “/top/reconfig_red”
(Reconfigurable Module “red_fast”)
Creating bit map...
Saving bit stream in “fff_reconfig_red_red_fast_partial.bit”.
48
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
pr_verify
pr_verify
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン がハー ド ウ ェ アで動作す る よ う にす る には、 すべ
ての コ ン フ ィ ギ ュ レーシ ョ ン間で ス タ テ ィ ッ ク ロ ジ ッ ク の配置配線が矛盾 し ない よ う にす る 必要
があ り ま す。 ま た、 プ ロ キ シ ロ ジ ッ ク も 同 じ 位置に配置 し 、 ク ロ ッ ク ス パ イ ン配線 も 一致す る よ
う にす る 必要があ り ます。pr_verify ユーテ ィ リ テ ィ を使用する と 、パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ン デザ イ ン用に作成 さ れた複数の コ ン フ ィ ギ ュ レーシ ョ ンか ら 配線済みの NCD フ ァ イ ルが比
較 さ れ、 イ ン ポー ト さ れた リ ソ ース がすべて一致す る か ど う か確認 さ れます。 こ れ ら の リ ソ ース に
は、 次が含まれます。
•
グ ロ ーバル ク ロ ッ ク スパ イ ン – 各グ ロ ーバル ク ロ ッ ク には、 すべての コ ン フ ィ ギ ュ レーシ ョ
ンで同 じ ク ロ ッ ク 領域内に配線 さ れた ク ロ ッ ク スパ イ ンが必要です。
•
リ ージ ョ ナル ク ロ ッ ク スパ イ ン – Virtex-5 以外のアーキテ ク チ ャ では、すべての コ ン フ ィ ギ ュ
レーシ ョ ン で各 リ ージ ョ ナル ク ロ ッ ク に同 じ ク ロ ッ ク 領域内に配線 さ れた ク ロ ッ ク ス パ イ ン
が必要です。 詳細は、 第 7 章の 「 リ ージ ョ ナル ク ロ ッ ク 」 を参照 し て く だ さ い。
•
プ ロ キ シ ロ ジ ッ ク – プ ロ キ シ ロ ジ ッ ク は、 論理的には ス タ テ ィ ッ ク デザ イ ンの一部ですが、
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン用に割 り 当て ら れたエ リ ア グループ内の同 じ 位置に配置
す る 必要があ り ます。
•
イ ン ポー ト さ れたパーテ ィ シ ョ ン – コ ン フ ィ ギ ュ レーシ ョ ン間で イ ン ポー ト さ れたパーテ ィ
シ ョ ンはすべて同 じ 配置配線にす る 必要があ り ます。 ス タ テ ィ ッ ク 部分 と 複数の コ ン フ ィ ギ ュ
レーシ ョ ンで使用 さ れ る リ コ ン フ ィ ギ ャ ブル モジ ュ ールの両方が確認 さ れます。
•
パーテ ィ シ ョ ン イ ン タ ーフ ェ イ ス - リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンには、それぞれ各 コ ン
フ ィ ギ ュ レ ーシ ョ ン の リ コ ン フ ィ ギ ャ ブル モジ ュ ールへの入力 と 出力に同 じ ポー ト が使用 さ
れ る 必要があ り ます。
pr_verify の使用方法
pr_verify は、 PlanAhead ま たは コ マ ン ド ラ イ ンの ど ち ら かで実行で き ます。 PlanAhead での実行
方法については、 第 4 章の 「コ ン フ ィ ギ ュ レーシ ョ ンの検証」 を参照 し て く だ さ い。
コ マ ン ド ラ イ ン構文
pr_verify [-verbose] <design1[.ncd]> <design2[.ncd]> [<design[.ncd]>]
[-o <outfile>]
-verbose – すべての メ ッ セージが レ ポー ト さ れます。
-o <outfile> – 拡張子 も 含めた出力フ ァ イ ル名を指定 し ます。 こ のオプシ ョ ン を使用 し な
い場合は、 デフ ォ ル ト の pr_verify.log フ ァ イ ルが作成 さ れます。
<design*[.ncd]> – 比較する 少な く と も 2 つの NCD フ ァ イ ルを入力 し ます。
本書のデザ イ ン例の場合、 pr_verify コ マ ン ド ラ イ ンは次の よ う にな り ます。
pr_verify -verbose ./FastConfig/FastConfig.ncd
./SlowConfig/SlowConfig.ncd ./FSFConfig/FSFConfig.ncd
./BlankConfig/BlankConfig.ncd
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
49
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
pr_verify
ロ グ フ ァ イル
上記の コ マ ン ド ラ イ ン例を実行す る と 、 次の よ う な pr_verify ロ グ フ ァ イ ルが出力 さ れます。
Command Line:/Xilinx/13.1/ISE_DS/ISE/bin/lin/unwrapped/pr_verify
./BlankConfig/BlankConfig.ncd ./FastConfig/FastConfig.ncd
./FSFConfig/FSFConfig.ncd ./SlowConfig/SlowConfig.ncd
Loading
Loading
Loading
Loading
./BlankConfig/BlankConfig.ncd:Mon Feb 14 14:53:16 2011
./FastConfig/FastConfig.ncd:Mon Feb 14 14:35:32 2011
./FSFConfig/FSFConfig.ncd:Mon Feb 14 14:47:54 2011
./SlowConfig/SlowConfig.ncd:Mon Feb 14 16 14:40:58 2011
---------------------------------------Analyzing Designs:
./BlankConfig/BlankConfig.ncd
./FastConfig/FastConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
=
=
=
=
54
33
4
0
=
=
=
=
54
33
4
2
=
=
=
=
54
33
4
0
=
=
=
=
54
33
4
1
SUCCESS!
---------------------------------------Analyzing Designs:
./FastConfig/FastConfig.ncd
./FSFConfig/FSFConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
SUCCESS!
---------------------------------------Analyzing Designs:
./FSFConfig/FSFConfig.ncd
./BlankConfig/BlankConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
SUCCESS!
---------------------------------------Analyzing Designs:
./FSFConfig/FSFConfig.ncd
./SlowConfig/SlowConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
SUCCESS!
50
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
pr_verify
---------------------------------------Analyzing Designs:
./SlowConfig/SlowConfig.ncd
./BlankConfig/BlankConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
=
=
=
=
54
33
4
0
=
=
=
=
54
33
4
0
SUCCESS!
---------------------------------------Analyzing Designs:
./SlowConfig/SlowConfig.ncd
./FastConfig/FastConfig.ncd
Number
Number
Number
Number
of
of
of
of
matched
matched
matched
matched
proxy logic bels
external nets
global clock nets
Reconfigurable Partitions
SUCCESS!
/Xilinx/13.1/ISE_DS/ISE/bin/lin/unwrapped/pr_verify
./BlankConfig/BlankConfig.ncd ./FastConfig/FastConfig.ncd
./FSFConfig/FSFConfig.ncd ./SlowConfig/SlowConfig.ncd => PASS
ロ グ フ ァ イ ルか ら 、 NCD フ ァ イ ルが 1 度に 2 つ比較 さ れ、 コ ン フ ィ ギ ュ レーシ ョ ンの特定情報 と
矛盾す る リ ソ ース が表示 さ れてい る こ と がわか り ます。最後の行には、 その run 全体がパ ス (PASS)
し たかエ ラ ー (FAIL) だっ たかが表示 さ れます。
ロ グ フ ァ イ ルには、 次の リ ソ ース比較が表示 さ れてい ます。
•
Number of matched proxy logic bels
こ れは、こ れ ら 2 つの コ ン フ ィ ギ ュ レーシ ョ ンの存在 と 位置の両方が同 じ プ ロ キ シ ロ ジ ッ ク と
し て使用 さ れ る LUT1 の数を示 し ます。 こ の数はすべての解析で同 じ にな る はずです。
•
Number of matched external nets
こ れは、こ れ ら 2 つの コ ン フ ィ ギ ュ レーシ ョ ンの リ コ ン フ ィ ギ ャ ブル モジ ュ ールの入力ま たは
出力ポー ト の数を示 し ます。 こ の数はすべての解析で同 じ にな る はずです。
•
Number of matched global clock nets
こ れは、こ れ ら 2 つの コ ン フ ィ ギ ュ レーシ ョ ン間に常に配線 さ れ る グ ロ ーバル ク ロ ッ ク のネ ッ
ト 数を示 し ます。 こ の数はすべての解析で同 じ にな る はずです。
•
Number of matched Reconfigurable Partitions
こ れは、 こ れ ら コ ン フ ィ ギ ュ レーシ ョ ン両方で使用 さ れ る 同 じ イ ンプ リ メ ン テーシ ョ ンの リ コ
ン フ ィ ギ ャ ブル モジ ュ ールの数を示 し ます。 こ の数はすべての解析で同 じ であ る 必要はあ り ま
せん。た と えば、BlankConfig お よ び FastConfig では ス タ テ ィ ッ ク のみが共通 し てい る ので、こ
れ ら の コ ン フ ィ ギ ュ レーシ ョ ンの解析では一致す る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンは 0
と 表示 さ れます。 ただ し 、 FSFConfig と FastConfig には ス タ テ ィ ッ ク が含まれ、 Red_Fast と
Green_Fast が共通 し てい る ので、一致す る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンは 2 つにな り ま
す。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
51
第 3 章 : ソ フ ト ウ ェ ア ツール フ ロー
フ ローの違い
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン の フ ロ ーは、 イ ン プ リ メ ン テーシ ョ ン ツールを使用 し た標
準的な フ ロ ー と ほ と ん ど同 じ ですが、 安全なシ リ コ ン結果を作成す る には、 配置配線に制限を加え
る 必要があ り ます。 こ れ ら の制限に よ り 、 パフ ォーマ ン ス、パ ッ キ ン グ密度、 イ ンプ リ メ ン テーシ ョ
ンの柔軟度な ど が影響を受け ます。
表 3-1 : フ ローの違い
フ ロー
配置
配線
標準
デバ イ ス 制限以外の制限は あ り
ません。
デバ イ ス 制限以外の制限は あ り ま
せん。
パーテ ィ シ ョ ン
イ ン ポー ト さ れた ロ ジ ッ ク が最
初に配置 さ れ ま す。 イ ン プ リ メ
ン ト さ れた ロ ジ ッ ク が 2 つ目に
配置 さ れます。
イ ン ポー ト さ れ た ロ ジ ッ ク が最初
に配線 さ れます。
イ ン プ リ メ ン ト さ れた ロ ジ ッ ク が
2 つ目に配置 さ れます。
エ リ ア グループ要件はあ り ませ
ん。
パーシ ャ ル リ コ ン フ ィ
ギ ュ レーシ ョ ン
制約で強制的に位置を指
定 さ れな い限 り、 リ コ ン フ ィ
ギ ャ ブル パーテ ィ シ ョ ンのエ リ
ア グループに配置で き る のは リ
コ ン フ ィ ギ ャ ブル ロ ジ ッ ク のみ
です。
LOC
配線制限は、 配置段階で考慮 さ
れます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ
ンのエ リ ア グループ外に ま たが る
配線 リ ソ ース は、 リ コ ン フ ィ ギ ャ ブ
ル ロ ジ ッ ク には使用で き ません。
イ ン ポー ト さ れ た ロ ジ ッ ク が最初
に配線 さ れます。
イ ン プ リ メ ン ト さ れた ロ ジ ッ ク が
2 つ目に配置 さ れます。
こ の よ う に フ ロ ーに違いがあ る ため、標準フ ロ ーま たはパーテ ィ シ ョ ン フ ロ ーで問題な く イ ンプ リ
メ ン ト さ れたデザ イ ン で も 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーでは同 じ タ イ ミ ン グや
密度にな ら ない こ と があ り ます。 どれ く ら い違 う かは、 デザ イ ンに よ っ て異な り ます。
52
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第4章
PlanAhead サポー ト
こ の章では、 PlanAhead ソ フ ト ウ ェ ア を使用 し たパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン
の作成手順について説明 し ます。 説明は、 まず合成後か ら 開始 し ます。 デザ イ ンは、 RTL で コ ー ド
記述 さ れ、 第 3 章 「 ソ フ ト ウ ェ ア ツール フ ロ ー」 の説明どお り に合成 さ れてい る も の と し ます。
こ のユーザー ガ イ ド では、 PlanAhead の基礎知識があ る も の と し て説明 し ます。 PlanAhead の基礎
知識については、 『PlanAhead ユーザー ガ イ ド 』 (UG632) お よ び 『PlanAhead ソ フ ト ウ ェ ア チ ュ ー
ト リ アル : ク イ ッ ク フ ロ ー概要』 (UG673) を参照 し て く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト の作成
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト を作成する には、 次の手順に従い ます。
1. New Project ウ ィ ザー ド を起動 し 、プ ロ ジ ェ ク ト 名 と デ ィ レ ク ト リ を指定 し 、合成済みネ ッ ト リ
ス ト (EDIF ま たは NGC) を イ ン ポー ト し ます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ
ジ ェ ク ト は、PlanAhead ソ フ ト ウ ェ アの RTL レベルでは開始で き ません。こ れをパーシ ャ ル リ
コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し て定義す る には、 [Set PR Project] を オンに し ます。
図 4-1 は、 New Project ウ ィ ザー ド を示 し てい ます。
X-Ref Target - Figure 4-1
図 4-1 : New Project ウ ィ ザー ド
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
53
第 4 章 : PlanAhead サポー ト
2. 最上位レベルのネ ッ ト リ ス ト を指定 し ます。 ネ ッ ト リ ス ト のデ ィ レ ク ト リ は、 ス タ テ ィ ッ ク ロ
ジ ッ ク のほかのモジ ュ ールがあ る デ ィ レ ク ト リ に設定す る 必要があ り ます。 こ の例では、 ス タ
テ ィ ッ ク ロ ジ ッ ク はすべて top.ngc に含まれてい ます。 下位レベル ( リ コ ン フ ィ ギ ャ ブル) モ
ジ ュ ールは後で イ ン ポー ト し ます。 図 4-2 は、 [New Project] → [Specify Top Netlist File] ダ イ
ア ロ グ ボ ッ ク ス を示 し てい ます。
X-Ref Target - Figure 4-2
図 4-2 : ス タ テ ィ ッ ク ロ ジ ッ ク のみを含むネ ッ ト リ ス ト のイ ンポー ト
3. I/O お よ び タ イ ミ ン グ制約を含む最上位レベルの制約フ ァ イ ルを追加 し ます。複数の UCF フ ァ
イ ルを使用で き ます。 PlanAhead ソ フ ト ウ ェ アは、 イ ンプ リ メ ン テーシ ョ ンの実行前にすべて
の最上位レベルの UCF フ ァ イ ルをモジ ュ ール レベルの UCF フ ァ イ ル と 関連付け ます。図 4-3
は、 [New Project] → [Constraint Files] ダ イ ア ロ グ ボ ッ ク ス を示 し てい ます。
X-Ref Target - Figure 4-3
図 4-3 : [Constraints Files] ダ イ ア ログ ボ ッ ク ス
54
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し てのプ ロ ジ ェ ク ト の設定
PlanAhead ソ フ ト ウ ェ アは、 ネ ッ ト リ ス ト か ら タ ーゲ ッ ト デバ イ ス を読み出 し ます。
4. タ ーゲ ッ ト デバ イ ス が正 し いか ど う か確認 し (必要であれば変更 し )、 [Next] を ク リ ッ ク し ま
す。
5. ウ ィ ザー ド の残 り を ク リ ッ ク し て、 プ ロ ジ ェ ク ト を作成 し ます。
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し てのプ ロ ジ ェ ク ト
の設定
プ ロ ジ ェ ク ト を 作成 し た と き にパーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン プ ロ ジ ェ ク ト と し て プ ロ
ジ ェ ク ト を定義 し なか っ た場合は、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し てプ
ロ ジ ェ ク ト を定義す る プ ロ ジ ェ ク ト 設定を使用 し て、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン関連の
コ マ ン ド を実行 し ます。 こ のオプシ ョ ンは、 有効なパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ラ イ セ
ン ス があ る 場合にのみ表示 さ れ、 XILINX 環境変数は古いバージ ョ ンの ISE® ツールの イ ン ス ト ー
ル デ ィ レ ク ト リ を ポ イ ン ト し ません。
プ ロ ジ ェ ク ト をパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し て設定す る には、 次の手
順に従い ます。
•
[Tools] → [Project Options] を ク リ ッ ク し 、 [General] タ ブで [Partial Reconfiguration Project]
をオンに し ます。
プ ロ ジ ェ ク ト をパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト と し て設定する と 、平坦な ISE
イ ンプ リ メ ン テーシ ョ ンには使用で き な く な り ます。 イ ン タ ーフ ェ イ ス と オプシ ョ ンは、 パーシ ャ
ル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ アの機能を使用で き る よ う に変更 さ れ、 平坦なデザ イ ン
には不必要であ っ た制限が含まれ る よ う にな り ます。
こ のオプシ ョ ン を選択す る と 、 PlanAhead の イ ン タ ーフ ェ イ ス がパーシ ャ ル リ コ ン フ ィ ギ ュ レ ー
シ ョ ン デザ イ ン用に変更 さ れ ます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン と し て イ ン ス タ ン ス を設
定 し た り 、 イ ン ス タ ン ス に リ コ ン フ ィ ギ ャ ブル モジ ュ ールを さ ら に追加 し た り す る その他の コ マ ン
ド は、 [Netlist] ビ ュ ーのポ ッ プア ッ プ メ ニ ュ ーか ら 実行で き ます。 こ のオプシ ョ ン を選択す る と 、
図 4-4 の よ う に、 右下 の ス テ ー タ ス バー が [Post-Synthesis Flow] か ら [Partial Reconfiguration
Flow] に変わ り ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
55
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-4
図 4-4 : PlanAhead のパーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト
ネ ッ ト リ ス ト デザイ ン を開 く
PlanAhead で Project Manager ページが開 き ます。 デザ イ ン を開始す る には、 まずネ ッ ト リ ス ト を
メ モ リ に読み込む必要があ り ます。 Flow Manager で [Netlist Design] を ク リ ッ ク し ます。
ネ ッ ト リ ス ト が読み込まれた ら 、 未定義のモジ ュ ールがあ る こ と を示す警告 メ ッ セージが表示 さ れ
ます (図 4-5)。 こ の メ ッ セージは、 イ ン ポー ト さ れたネ ッ ト リ ス ト にデザ イ ン全体が記述 さ れてい
ない こ と を示 し てい ます。 リ ス ト さ れ る モジ ュ ールが リ コ ン フ ィ ギ ュ レーシ ョ ン さ れ る モジ ュ ール
であ る か ど か確認 し て く だ さ い。
X-Ref Target - Figure 4-5
図 4-5 : 必ず表示 さ れる警告 メ ッ セージ
56 ペ ー ジ の 図 4-4 の デ ザ イ ン 例 の
[Netlist]
ビ ュ ー で は、 reconfig_blue、 reconfig_green、
reconfig_red と い う 3 つのブ ラ ッ ク ボ ッ ク ス イ ン ス タ ン ス にブ ラ ッ ク ボ ッ ク ス ア イ コ ンが表示 さ
れてい ます。 こ れは、こ れ ら のブ ラ ッ ク ボ ッ ク ス にネ ッ ト リ ス ト が関連付け ら れていないか ら です。
その他の [Netlist] ビ ュ ーのア イ コ ンの意味については、 『PlanAhead ユーザー ガ イ ド 』 (UG632) を
参照 し て く だ さ い。
56
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
ネ ッ ト リ ス ト デザイ ン を開 く
こ れ ら に リ ン ク さ れた リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ ト リ ス ト は、 blue、 green、 red のそれ
ぞれに Fast と Slow があ り ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
57
第 4 章 : PlanAhead サポー ト
リ コ ン フ ィ ギ ャ ブル イ ン ス タ ン スの定義
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンは、 下位レベル イ ン ス タ ン ス を選択 し 、 [Set Partition] コ マ ン
ド を実行す る と 定義で き ます。
1. 図 4-6 に示す よ う に [Set Partition] を ク リ ッ ク し ます。
X-Ref Target - Figure 4-6
図 4-6 : パーテ ィ シ ョ ン を リ コ ン フ ィ ギ ャ ブル と し て設定
パーテ ィ シ ョ ンは、 リ コ ン フ ィ ギ ャ ブルま たは標準に設定で き ます。 こ こ では、 こ のモジ ュ ー
ルに関連付け ら れたネ ッ ト リ ス ト がないので、リ コ ン フ ィ ギ ャ ブル と し て し か定義で き ません。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンには、読み込まれた リ コ ン フ ィ ギ ャ ブル モジ ュ ールのネ ッ
ト リ ス ト を含め る こ と がで き る ほか、オプシ ョ ン でブ ラ ッ ク ボ ッ ク ス モジ ュ ール と し て定義す
る こ と も で き ます。
2. 図 4-7 の よ う に、 モジ ュ ール名 と それが Fast か Slow か を示す よ う に、 リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ールの名前を入力 し ます。
X-Ref Target - Figure 4-7
図 4-7 : リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの命名
58
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
リ コ ン フ ィ ギ ャ ブル イ ン ス タ ン スの定義
ネ ッ ト リ ス ト が存在す る こ と を示す最初のオプ シ ョ ン を オ ン に し た場合、 こ のモ ジ ュ ールの
ネ ッ ト リ ス ト を指定す る ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。1 つの リ コ ン フ ィ ギ ャ ブル パー
テ ィ シ ョ ンのすべての種類に同 じ ネ ッ ト リ ス ト 名を付け る 必要があ る ので、 デ ィ レ ク ト リ 構造
を使用 し て イ ン ス タ ン ス を区別 し ます。
3. [Set Partition] ダ イ ア ロ グ ボ ッ ク ス で NGC フ ァ イ ルへのパ ス を指定 し ます (図 4-8)。
X-Ref Target - Figure 4-8
図 4-8 : リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール 1 つが追加 さ れた リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
ほかのデ ィ レ ク ト リ の別のネ ッ ト リ ス ト を追加す る 場合は、 検索パ ス を こ こ で入力 し ま す。 ま た、
こ の特定の リ コ ン フ ィ ギ ャ ブル モジ ュ ールの物理制約を含む制約フ ァ イ ルは、次のダ イ ア ロ グ ボ ッ
ク ス で指定で き ます。
リ コ ン フ ィ ギ ャ ブル モジ ュ ールは、[Netlist] ビ ュ ーの リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの下に表
示 さ れます。
デザ イ ンには、 複数の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を含む こ と がで き ます。 こ の場合、 デザ
イ ンの リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン それぞれに対 し て [Set Partition] コ マ ン ド を実行す る 必
要が あ り ま す。 こ のデザ イ ン例では、 fast バージ ョ ン のモ ジ ュ ールが各 リ コ ン フ ィ ギ ャ ブル パー
テ ィ シ ョ ンに対 し て読み込まれます。 red、 green、 blue
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
59
第 4 章 : PlanAhead サポー ト
プ ロ ジ ェ ク ト への リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの追加
図 4-9 に示す よ う に、 [Add Reconfigurable Module] コ マ ン ド を使用す る と 、 リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ン それぞれに対 し て リ コ ン フ ィ ギ ャ ブル モジ ュ ールを さ ら に追加で き ます。
X-Ref Target - Figure 4-9
図 4-9 : リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンへの リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの追加
こ の コ マ ン ド を使用 し てすべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールをすべての リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ン に追加 し ま す。 こ のデザ イ ン例では、 red、 green、 blue の slow バージ ョ ン が追加
さ れてい ます。
ブ ラ ッ ク ボ ッ ク ス モ ジ ュ ールの追加
ブ ラ ッ ク ボ ッ ク ス モジ ュ ールを定義す る こ と も で き ます。
1. こ の場合、 同 じ [Add Reconfigurable Module] コ マ ン ド を使用 し ますが、 [black box] オプシ ョ
ン を選択 し ます。 こ のモジ ュ ールにはネ ッ ト リ ス ト が関連付け ら れてい ません (図 4-10)。
60
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
プ ロ ジ ェ ク ト への リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの追加
X-Ref Target - Figure 4-10
図 4-10 : リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール と し てのブ ラ ッ ク ボ ッ ク スの追加
リ コ ン フ ィ ギ ャ ブ ル モ ジ ュ ールは、 [Netlist] ビ ュ ーの リ コ ン フ ィ ギ ャ ブ ル モ ジ ュ ール の下の
[Reconfigurable Modules] フ ォ ルダに追加 さ れます。 チ ェ ッ ク マー ク は、 リ コ ン フ ィ ギ ャ ブル パー
テ ィ シ ョ ンに対 し て ア ク テ ィ ブな リ コ ン フ ィ ギ ャ ブル モジ ュ ールを示 し ます。
図 4-11 は、 blue_fast が リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン reconfig_blue のア ク テ ィ ブな リ コ ン
フ ィ ギ ャ ブル モジ ュ ールであ る こ と を示 し てい ます。 ま た、 reconfig_blue は白い正方形の中に黄
色のひ し 形が表示 さ れた ア イ コ ンにな っ てい ますが、 こ れはそのモジ ュ ールが リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ンであ る こ と を示 し てい ます。 グ レーの正方形の中に黄色のひ し 形が表示 さ れた ア イ
コ ンにな っ てい る 場合は、そのモジ ュ ールがブ ラ ッ ク ボ ッ ク ス に定義 さ れた リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ールであ る こ と を示 し てい ます。
X-Ref Target - Figure 4-11
図 4-11 : すべての リ コ ン フ ィ ギャ ブル モジ ュールが追加された リ コ ン フ ィ ギャ ブル パーテ ィ シ ョ ン
2. ポ ッ プア ッ プ メ ニ ュ ーか ら [Set as Active Reconfigurable Module] コ マ ン ド を使用す る と 、 リ
コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのア ク テ ィ ブ モジ ュ ールをいつで も 変更で き ます。
こ の コ マ ン ド を実行す る と 、 選択 し たモジ ュ ールのネ ッ ト リ ス ト が開いてい る ワー ク スペース
に読み込まれます (図 4-12)。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
61
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-12
図 4-12 : ア ク テ ィ ブ リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの変更
デザイ ン ソ ースの管理
ソ ー ス フ ァ イ ルを変更 し た場合は、 新 し いネ ッ ト リ ス ト ま たは制約を PlanAhead に読み込む必要
があ り ます。 こ れ ら の フ ァ イ ルは、 [Netlist Design] ビ ュ ーの [Sources] タ ブですべて管理 さ れます
(図 4-13)。
62
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
プ ロ ジ ェ ク ト への リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの追加
X-Ref Target - Figure 4-13
図 4-13 : [Sources] タ ブ
ア ッ プデー ト す る ネ ッ ト リ ス ト を右 ク リ ッ ク し 、 [Update File] を選択 し て、 ネ ッ ト リ ス ト を新 し く
し ます。 PlanAhead では、 こ の新規ネ ッ ト リ ス ト を メ モ リ に読み込むために、 ソ ース を読み込み直
すか ど う か尋ね る メ ッ セージが表示 さ れます。
こ のプ ロ セ ス では、 ス タ テ ィ ッ ク ロ ジ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間の イ ン タ ーフ ェ イ ス
の変更はない と 仮定 さ れてい ます。 ポー ト リ ス ト が変更 さ れた場合は、 新 し いネ ッ ト リ ス ト で新規
プ ロ ジ ェ ク ト を作成す る こ と をお勧め し ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
63
第 4 章 : PlanAhead サポー ト
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン領域の定義
すべての リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に含ま れ る すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ール
のバージ ョ ン を PlanAhead ソ フ ト ウ ェ アで定義 し た ら 、次はデザ イ ンの物理レ イ ア ウ ト を定義 し ま
す。 PlanAhead の メ イ ン ツールバーで [Floorplanning] モー ド を選択 し て [Physical Constraints] タ
ブ と FPGA の フ ロ アプ ラ ン ビ ュ ーを開き ます (図 4-14)。
X-Ref Target - Figure 4-14
図 4-14 : PlanAhead ツールバーの [Floorplanning] モー ド
デバ イ ス の リ コ ン フ ィ ギ ャ ブル領域を定義す る には、 Pblock 長方形を作成する 必要があ り ます。 長
) を使用 し ます。
方形エ リ ア を [Device] ビ ュ ーで描画する には、 [Set Pblock Size] コ マ ン ド (
メ モ : デバ イ ス に Pblock を 自動的に配置す る 場合は、 [Tools] → [Floorplanning] → [Place
Pblocks] コ マ ン ド を使用 し ないで く だ さ い。 こ の コ マ ン ド を使用す る と 、 イ ン プ リ メ ン テー
シ ョ ンに不向 き な配置にな っ て し ま い ます。
1. 65 ページの図 4-15 に示す よ う に、 [Physical Constraints] ビ ュ ーで定義する Pblock を選択 し
て、 こ の コ マ ン ド を実行で き る よ う に し ます。
64
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
プ ロ ジ ェ ク ト への リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの追加
X-Ref Target - Figure 4-15
図 4-15 : リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの Pblock の描画
[Device] ビ ュ ーの ク ロ ッ ク 領域バ ウ ン ダ リ は、 リ コ ン フ ィ ギ ャ ブル領域の形を描画す る 際のガ
イ ド と し て使用で き ます。 リ コ ン フ ィ ギ ャ ブル領域の フ ロ アプ ラ ンの詳細は、 第 3 章の 「制約」
お よ び第 7 章の「 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バ ウ ン ダ リ の定義」を参照 し て く だ さ い。
Pblock が定義 さ れ る と 、PlanAhead ソ フ ト ウ ェ アでその領域に制約を付け る リ ソ ース を選択す
る ダ イ ア ロ グ ボ ッ ク ス (66 ページの図 4-16) が表示 さ れます。
メ モ : PlanAhead では、リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン内でエ リ ア グループ サブモジ ュ ー
ルは使用で き ません。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
65
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-16
図 4-16 : Pblock を使用 し た範囲の定義
こ の選択をす る と 、 リ コ ン フ ィ ギ ャ ブル
パーテ ィ シ ョ ンに対 し て一連の
AREA_GROUP
RANGE 制約が作成 さ れます。
2. リ コ ン フ ィ ギ ャ ブル モジ ュ ールに含まれないエ レ メ ン ト のチ ェ ッ ク ボ ッ ク ス を オ フ に し ます。
パーシ ャ ル ビ ッ ト フ ァ イ ルは こ こ で選択 し た制約に基づいて作成 さ れ る ので、余分なエ レ メ ン
ト を含め る と 、 ビ ッ ト フ ァ イ ルが不必要に大 き く な り ます。
[Pblock Properties] ビ ュ ーの [General] タ ブ (図 4-17) には、 含め る こ と ので き る ほかの リ ソ ー
ス が表示 さ れ、 デザ イ ンに基づいてオン ま たはオ フ にで き ます。
3. 対応す る リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべてに含まれ る ロ ジ ッ ク タ イ プそれぞれに対 し て、
RANCE を定義 し ます。
各 リ コ ン フ ィ ギ ャ ブ ル領域 に は、 そ こ に配置す る モ ジ ュ ール内 に含 ま れ る ロ ジ ッ ク タ イ プ の
RANGE を指定す る 必要があ り ます。
X-Ref Target - Figure 4-17
図 4-17 : リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの RANGE 制約に適用可能な タ ーゲ ッ ト
66
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザイ ン ルール チ ェ ッ ク
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザイ ン ルール チ ェ ッ ク
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン デザ イ ン の違反は、 ザ イ リ ン ク ス 開発のデザ イ ン ルール
チ ェ ッ ク (DRC) 機能を使用す る と 検出で き ます。
1. [Tools] → [Run DRC] を ク リ ッ ク し て表示 さ れ る ダ イ ア ロ グ ボ ッ ク ス か ら 、カ テ ゴ リ 別にな っ
てい る DRC を オン ま たはオ フ にで き ます。
2. こ れ ら のチ ェ ッ ク を定期的に実行 し 、デザ イ ンがパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの原則
に違反 し ていないか ど う か を確認 し て く だ さ い。
図 4-18 は、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの DRC の リ ス ト を示 し てい ます。
X-Ref Target - Figure 4-18
図 4-18 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの [Run DRC] ダ イ ア ログ ボ ッ ク ス
[DRC Results] ビ ュ ーにすべての警告お よ びエ ラ ーが表示 さ れます。違反を ク リ ッ ク す る と 、図 4-19
に示す [Violation Properties] ビ ュ ーにその詳細が表示 さ れます。
X-Ref Target - Figure 4-19
図 4-19 : DRC チ ェ ッ クの結果
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
67
第 4 章 : PlanAhead サポー ト
一 部 の パ ー シ ャ ル リ コ ン フ ィ ギ ュ レ ー シ ョ ン DRC に 違反す る オ ブ ジ ェ ク ト は、 [Violation
Properties] ビ ュ ーでその リ ン ク を ク リ ッ ク す る と 、 ど こ にあ る のかわか り ます。
コ ン フ ィ ギ ュ レーシ ョ ンの作成
すべてのモジ ュ ールお よ び Pblock 範囲が定義 さ れた ら 、 コ ン フ ィ ギ ュ レーシ ョ ン を定義お よ び イ
ンプ リ メ ン ト で き ます。
最初の コ ン フ ィ ギ ュ レーシ ョ ンは、 自動的に生成 さ れ ます。 PlanAhead の一番下の [Design Runs]
タ ブ を ク リ ッ ク し 、 config_1 を ク リ ッ ク し ます。 [Implementation Run Properties] ダ イ ア ロ グ ボ ッ
ク ス の下の [Partitions] タ ブに、 こ の コ ン フ ィ ギ ュ レーシ ョ ン用に選択 さ れた リ コ ン フ ィ ギ ャ ブル
モジ ュ ールが表示 さ れます (図 4-20 参照)。 各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの最初の リ コ ン
フ ィ ギ ャ ブル モジ ュ ールが選択 さ れますが、必要であれば変更で き ます。[General] タ ブの コ ン フ ィ
ギ ュ レーシ ョ ン名 も 変更で き ます。 こ のデザ イ ンの場合、 名前が config_1 か ら FFF に変更 さ れて
い ます。
X-Ref Target - Figure 4-20
図 4-20 : コ ン フ ィ ギ ュ レーシ ョ ンの リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの定義
イ ン プ リ メ ン テ ー シ ョ ン の run プ ロ パ テ ィ は、 [Options] タ ブ で選択す る か、 Flow Manager の
[Implementation Settings] で選択する と 変更で き ます。 図 4-21 を参照 し て く だ さ い。
X-Ref Target - Figure 4-21
図 4-21 : イ ン プ リ メ ン テーシ ョ ン プ ロパテ ィ の設定
68
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンの作成
[Configurations] ビ ュ ー ([Window] → [Configurations]) には、 69 ページの図 4-22 の よ う に、 コ ン
フ ィ ギ ュ レーシ ョ ン と それに含まれ る リ コ ン フ ィ ギ ャ ブル モジ ュ ール、 ス テー タ ス な ど が表示 さ れ
ます。
X-Ref Target - Figure 4-22
図 4-22 : レポー ト さ れる各 コ ン フ ィ ギ ュ レーシ ョ ンの詳細
Flow Manager の [Implement] の下の [Create New Implementation Runs] オプシ ョ ン を ク リ ッ ク す
る か、 [Design Runs] ビ ュ ーの [Create New Runs] ボ タ ン を ク リ ッ ク す る と 、 複数の コ ン フ ィ ギ ュ
レーシ ョ ン を作成で き ます (図 4-23 お よ び図 4-24 を参照)。
X-Ref Target - Figure 4-23
図 4-23 : [Create New Implementation Runs Option] オプ シ ョ ン
X-Ref Target - Figure 4-24
図 4-24 : [Create New Runs] ボ タ ン
リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール と ブ ラ ッ ク ボ ッ ク ス を ど の よ う に組み合わせて も コ ン フ ィ ギ ュ
レーシ ョ ンが作成で き ます。 コ ン フ ィ ギ ュ レーシ ョ ンは、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デ
ザ イ ン の ど の段階でで も 作成で き ま す。 [Partition Action] ボ タ ン を使用 し 、 各 コ ン フ ィ ギ ュ レ ー
シ ョ ンに必要な リ コ ン フ ィ ギ ャ ブル モジ ュ ールを選択 し ます。
メ モ : こ の時点で こ れ ら の run は起動 し ないで く だ さ い。
70 ページの図 4-25 は、 [Create New Runs] ダ イ ア ロ グ ボ ッ ク ス を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
69
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-25
図 4-25 : 複数 run の作成
こ のデザ イ ン例では、 図 4-26 に示す よ う に 4 つの独自の コ ン フ ィ ギ ュ レーシ ョ ンが作成 さ れます。
X-Ref Target - Figure 4-26
図 4-26 : 最初のコ ン フ ィ ギ ュ レーシ ョ ン
70
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンの制御
コ ン フ ィ ギ ュ レーシ ョ ンの制御
さ ま ざ ま な コ ン フ ィ ギ ュ レーシ ョ ン を確認す る には、 タ イ ミ ン グ解析や回路図を使用 し たデザ イ ン
検索な ど の従来の PlanAhead ソ フ ト ウ ェ アの解析機能を使用で き ます。
1. 図 4-27 の よ う に [Configurations] ビ ュ ーのポ ッ プア ッ プ メ ニ ュ ーか ら [Load Configuration]
を ク リ ッ ク す る と 、 解析用のネ ッ ト リ ス ト が読み込まれます。
こ れに よ り 、 [Netlist] ビ ュ ーでその コ ン フ ィ ギ ュ レーシ ョ ンの リ コ ン フ ィ ギ ャ ブル モジ ュ ール
がア ク テ ィ ブにな り ます。
X-Ref Target - Figure 4-27
図 4-27 : 既存コ ン フ ィ ギ ュ レーシ ョ ンの読み込み
イ ンプ リ メ ン テーシ ョ ンお よ び制約を設定 し 終え る と 、 コ ン フ ィ ギ ュ レーシ ョ ン を イ ンプ リ メ
ン ト で き ます。
2. [Design Runs] タ ブで コ ン フ ィ ギ ュ レーシ ョ ン を右 ク リ ッ ク し 、[Launch Runs] を ク リ ッ ク し ま
す。
Flow Manager で [Implement] ボ タ ン を ク リ ッ ク し て も 、 ア ク テ ィ ブ デザ イ ン を起動す る こ と
がで き ます。 図 4-28 は、 コ ン フ ィ ギ ュ レーシ ョ ンが実行 さ れてい る と こ ろ を示 し てい ます。
X-Ref Target - Figure 4-28
図 4-28 : コ ン フ ィ ギ ュ レーシ ョ ンのイ ン プ リ メ ン ト
3. コ ン フ ィ ギ ュ レーシ ョ ンが問題な く イ ンプ リ メ ン ト さ れ る と 、 その結果を今後の イ ンプ リ メ ン
テーシ ョ ン と コ ン フ ィ ギ ュ レーシ ョ ンに イ ン ポー ト で き る よ う にプ ロ モー ト で き ます。72 ペー
ジの図 4-29 に示すダ イ ア ロ グ ボ ッ ク ス の [Promote Partitions] を使用 し て、コ ン フ ィ ギ ュ レー
シ ョ ン をプ ロ モー ト し ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
71
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-29
図 4-29 : [Implementation Completed] ダ イ ア ログ ボ ッ ク ス
図 4-30 に示す [Configurations] ビ ュ ーのポ ッ プア ッ プ メ ニ ュ ーか ら [Promote Partitions] を ク
リ ッ ク し て も コ ン フ ィ ギ ュ レーシ ョ ン をプ ロ モー ト で き ます。
X-Ref Target - Figure 4-30
図 4-30 : コ ン フ ィ ギ ュ レーシ ョ ンのプ ロ モー ト
コ ン フ ィ ギ ュ レーシ ョ ン同士は互いに依存 し てい ます。
72
•
ス タ テ ィ ッ ク ロ ジ ッ ク と 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールは、それを使用す る 各 コ ン フ ィ ギ ュ
レーシ ョ ンで同 じ であ る 必要があ り ます。
•
すべての コ ン フ ィ ギ ュ レーシ ョ ンで同 じ ス タ テ ィ ッ ク ロ ジ ッ ク イ ンプ リ メ ン テーシ ョ ン を使
用す る 必要があ り ます。 コ ン フ ィ ギ ュ レーシ ョ ンの中には、 同 じ リ コ ン フ ィ ギ ャ ブル モジ ュ ー
ルを共有す る こ と が可能な も の も あ り ます。
•
コ ン フ ィ ギ ュ レーシ ョ ンがプ ロ モー ト さ れ る と 、 その イ ンプ リ メ ン テーシ ョ ンは コ ン フ ィ ギ ュ
レーシ ョ ンに含まれ る すべてのモジ ュ ールで最適な結果 と し て設定 さ れます。
•
コ ン フ ィ ギ ュ レーシ ョ ン をプ ロ モー ト ま たは リ セ ッ ト す る と 、 ほかの コ ン フ ィ ギ ュ レーシ ョ ン
も 影響 を受け る こ と が あ り ま す。 こ の場合、 PlanAhead ソ フ ト ウ ェ ア で警告が表示 さ れ ま す
(73 ページの図 4-31)。
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンの制御
X-Ref Target - Figure 4-31
図 4-31 : 古い コ ン フ ィ ギ ュ レーシ ョ ンの リ セ ッ ト
run がプ ロ モー ト さ れた ら 、 ほかの コ ン フ ィ ギ ュ レーシ ョ ンの リ コ ン フ ィ ギ ャ ブル モジ ュ ールの ス
テー タ ス がア ッ プデー ト さ れます。
図 4-32 お よ び 74 ページの図 4-33 は、 コ ン フ ィ ギ ュ レーシ ョ ン FFF がプ ロ モー ト さ れた ために、
コ ン フ ィ ギ ュ レ ーシ ョ ン SSS の ス テー タ ス ロ ジ ッ ク が Import に設定 さ れた と こ ろ を示 し てい ま
す。
X-Ref Target - Figure 4-32
図 4-32 : コ ン フ ィ ギ ュ レーシ ョ ン FFF のプ ロ モー ト 前
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
73
第 4 章 : PlanAhead サポー ト
X-Ref Target - Figure 4-33
図 4-33 : コ ン フ ィ ギ ュ レーシ ョ ン FFF のプ ロ モー ト 後
複数の コ ン フ ィ ギ ュ レーシ ョ ン を一度にプ ロ モー ト で き ます。 モジ ュ ールはプ ロ モー ト さ れた順に
コ ン フ ィ ギ ュ レーシ ョ ンか ら イ ン ポー ト さ れます。
図 4-34 の コ ン フ ィ ギ ュ レーシ ョ ン FSF には、 Static、 reconfig_green、 お よ び reconfig_red が FFF
か ら イ ン ポー ト さ れ、 リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール reconfig_blue は コ ン フ ィ ギ ュ レ ーシ ョ ン
FFF に イ ンプ リ メ ン ト さ れず、 SSS か ら イ ン ポー ト さ れます。
X-Ref Target - Figure 4-34
図 4-34 : プ ロ モー ト さ れた複数コ ン フ ィ ギ ュ レーシ ョ ン
ス タ テ ィ ッ ク ロ ジ ッ ク お よ びすべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールがほかの コ ン フ ィ ギ ュ レー
シ ョ ンか ら イ ン ポー ト さ れ る 場合、 コ ン フ ィ ギ ュ レーシ ョ ンはプ ロ モー ト で き ません。 こ の例では、
74
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンの制御
FSF コ ン フ ィ ギ ュ レーシ ョ ンが FFF と SSS の一部か ら 構築 さ れてい る ので、 FSF をプ ロ モー ト す
る 必要はあ り ません。
リ コ ン フ ィ ギ ャ ブル モジ ュ ールは イ ンプ リ メ ン ト ま たは イ ン ポー ト で き る ので、個別の リ コ ン フ ィ
ギ ャ ブル モジ ュ ールで試す こ と がで き ます。 こ の よ う に柔軟性があ る ため、 プ ロ モー ト す る のに最
適な コ ン フ ィ ギ ュ レ ーシ ョ ン が見つけやす く な っ てい ま す。 こ れは、 図 4-35 の [Implementation
Run Properties] か ら も 実行で き ます。
X-Ref Target - Figure 4-35
図 4-35 : [Action] の選択 ([Implement] または [Import])
次は、 ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク に対す る 74 ページ の図 4-34 の [Status]
フ ィ ール ド のサマ リ を示 し てい ます。
•
[Implement] ( コ ン フ ィ ギ ュ レーシ ョ ンの場合は [Not Started])
モジ ュ ールは定義 さ れたのに、 イ ンプ リ メ ン ト さ れていない状態です。 イ ンプ リ メ ン テーシ ョ
ンが実行 さ れ る と 、 そのモジ ュ ールに指定 さ れたネ ッ ト リ ス ト 、 オプシ ョ ン、 制約を使用 し て
配置配線が最初か ら 実行 さ れます。
•
[Import]
モジ ュ ールは定義 さ れ、 結果が別の コ ン フ ィ ギ ュ レーシ ョ ンか ら コ ピー さ れます。 イ ンプ リ メ
ン テーシ ョ ンが実行 さ れ る と 、 配置配線で こ のモジ ュ ールのプ ロ モー ト さ れたデ ィ レ ク ト リ か
ら 結果が コ ピー さ れ、 同 じ 結果が保持 さ れます。
•
[Implemented] ( コ ン フ ィ ギ ュ レーシ ョ ンの場合は [PAR Complete!])
選択 し た コ ン フ ィ ギ ュ レーシ ョ ンでモジ ュ ールの配置配線が問題な く 終了 し た こ と を示 し てい
ます。
•
[Imported]
モジ ュ ールがプ ロ モー ト さ れた run か ら 問題な く コ ピー さ れ、 貼 り 付け ら れてい ます。
•
[Promoted]
モジ ュ ールが完全な ス テー タ ス にな り 、 [Import] にな っ てい る ほかの コ ン フ ィ ギ ュ レーシ ョ ン
で重複す る モジ ュ ールが こ のマ ス タ 結果か ら イ ン ポー ト さ れます。
こ れ ら の イ ン プ リ メ ン テーシ ョ ン run の結果は、 次の PlanAhead プ ロ ジ ェ ク ト デ ィ レ ク ト リ にあ
り ます。 <project_name>.runs\<configuration_name>
プ ロ モ ー ト さ れ た run は PlanAhead プ ロ ジ ェ ク ト デ ィ レ ク ト リ の 別 の フ ォ ル ダ に あ り ま す。
<project_name>.promote\<configuration_name>
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
75
第 4 章 : PlanAhead サポー ト
こ のデザ イ ン例の場合、 XFFF、 XSSS、 お よ び XBB デ ィ レ ク ト リ が FFF、 SSS、 FSF、 BB に対
し て作成で き ます。 使用 さ れたモジ ュ ールはすべてほかの コ ン フ ィ ギ ュ レーシ ョ ンか ら イ ンプ リ メ
ン ト さ れてい る ので、 FSF のプ ロ モー ト は必要あ り ません。
コ ン フ ィ ギ ュ レーシ ョ ンの検証
pr_verify は、イ ンプ リ メ ン ト 済み コ ン フ ィ ギ ュ レーシ ョ ンの ど の組み合わせで も 呼び出す必要があ
る ツールで、 デザ イ ンの コ ン フ ィ ギ ュ レーシ ョ ンの イ ンプ リ メ ン テーシ ョ ン を確認 し ます。
1. pr_verify は、 [Configurations] ビ ュ ーのポ ッ プア ッ プ メ ニ ュ ーか ら 実行 し ます (図 4-36)。 こ れ
は、 すべてのデザ イ ン ルールが守 ら れたか ど う か を確認す る パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ン デザ イ ンの重要な手順です。
X-Ref Target - Figure 4-36
図 4-36 : コ ン フ ィ ギ ュ レーシ ョ ンの検証
2. 複数の コ ン フ ィ ギ ュ レーシ ョ ンに対 し てダ イ ア ロ グ ボ ッ ク ス が表示 さ れ る ので、出力フ ァ イ ル
を定義 し ます (図 4-37)。
すべての コ ン フ ィ ギ ュ レーシ ョ ン を検証 し て、 ハー ド ウ ェ アで問題がない よ う に し ます。
76
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンの検証
X-Ref Target - Figure 4-37
図 4-37 : 検証する コ ン フ ィ ギ ュ レーシ ョ ンの選択
ワ ー ク ス ペー ス には、 ロ グ フ ァ イ ル も 表示 さ れ ま す。 pr_verify 中にエ ラ ーが検出 さ れな ければ、
ビ ッ ト フ ァ イ ルを作成 し ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
77
第 4 章 : PlanAhead サポー ト
ビ ッ ト フ ァ イルの生成
コ ン フ ィ ギ ュ レ ーシ ョ ン が問題な く イ ン プ リ メ ン ト さ れ、 pr_verify ですべての コ ン フ ィ ギ ュ レ ー
シ ョ ンが検証で き た ら 、 ビ ッ ト フ ァ イ ルを生成で き ます。
[Design Runs] ビ ュ ーのポ ッ プア ッ プ メ ニ ュ ーか ら [Generate Bitstream] を ク リ ッ ク し ます
(図 4-38)。
X-Ref Target - Figure 4-38
図 4-38 : ビ ッ ト フ ァ イルの生成
こ れに よ り 、 コ ン フ ィ ギ ュ レーシ ョ ン の フ ル ビ ッ ト フ ァ イ ル と 選択 し た コ ン フ ィ ギ ュ レーシ ョ ン
の各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールのパーシ ャ ル ビ ッ ト フ ァ イ ルが生成 さ れます。
メ モ : ブ ロ ッ ク RAM の内容を ア ッ プデー ト す る のに Data2MEM プ ロ グ ラ ム を実行す る 必要があ
る 場合は (EDK プ ロ セ ッ サ シ ス テ ムの場合な ど )、 BitGen コ マ ン ド が -bd オプシ ョ ン で実行 さ れ る
よ う にす る と 、 ビ ッ ト ス ト リ ーム生成の一部 と し て Data2MEM が実行 さ れます。 詳細については、
第 7 章の 「EDK と の連動」 を参照 し て く だ さ い。
メ モ : 暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ル (bitgen -g encrypt で生成) は、Virtex-6 デバ イ ス で
サポー ト さ れます。 こ の場合、 各コ ン フ ィ ギ ュ レーシ ョ ンに対 し て同 じ NKY フ ァ イ ルを指定 し て、
暗号キーの値が同 じ にな る よ う にす る 必要があ り ます。 暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ル
は、 Virtex-4 お よ び Virtex-5 デバ イ ス ではサポー ト さ れません。
こ のデザ イ ン例では、 FFF コ ン フ ィ ギ ュ レーシ ョ ンに対 し て次のビ ッ ト フ ァ イ ルが生成 さ れます。
•
fff.bit
•
fff_reconfig_blue_blue_fast_partial.bit
•
fff_reconfig_red_red_fast_partial.bit
•
fff_reconfig_green_green_fast_partial.bit
複数の コ ン フ ィ ギ ュ レーシ ョ ン を選択 し て、1 度にプ ロ ジ ェ ク ト 全体のフル ビ ッ ト フ ァ イ ル と パー
シ ャ ル ビ ッ ト フ ァ イ ルすべて を作成す る こ と も で き ます。
フル ビ ッ ト フ ァ イ ル と パーシ ャ ル ビ ッ ト フ ァ イ ルは コ ン フ ィ ギ ュ レーシ ョ ン別のデ ィ レ ク ト リ に
それぞれ出力 さ れます。 詳細は、 「 コ ン フ ィ ギ ュ レーシ ョ ンの制御」 を参照 し て く だ さ い。
78
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
PlanAhead プ ロ ジ ェ ク ト のデ ィ レ ク ト リ 構造
PlanAhead プ ロ ジ ェ ク ト のデ ィ レ ク ト リ 構造
PlanAhead では、 図 4-39 に示す よ う に、 すべての フ ァ イ ル、 コ ン フ ィ ギ ュ レーシ ョ ン、 イ ン プ リ
メ ン テーシ ョ ン な ど のデザ イ ン デー タ が単純で構造的な方法で分類 さ れ保存 さ れます。
X-Ref Target - Figure 4-39
図 4-39 : PlanAhead パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンのデ ィ レ ク ト リ 構造
こ の構造は、 PlanAhead ソ フ ト ウ ェ アの /project デ ィ レ ク ト リ と 類似 し てい ます。 プ ロ ジ ェ ク ト の
ネ ッ ト リ ス ト と 制約は、 <project>.srcs デ ィ レ ク ト リ に イ ン ポー ト さ れ ます。 こ のデ ィ レ ク ト
リ は、 GUI と 同 じ 構造で分類 さ れ、 ス タ テ ィ ッ ク ロ ジ ッ ク は sources_1 デ ィ レ ク ト リ の下に、 すべ
ての RM ソ ース は最適な名前の付いたデ ィ レ ク ト リ の下に保存 さ れ ます。 ビ ッ ト フ ァ イ ル も 含め
た イ ン プ リ メ ン テーシ ョ ン run は、 該当す る フ ロ ア プ ラ ンお よ び コ ン フ ィ ギ ュ レ ーシ ョ ン の下の
/PlanAhead.runs デ ィ レ ク ト リ に保存 さ れ ま す。 プ ロ モ ー ト さ れ た コ ン フ ィ ギ ュ レ ー シ ョ ン は
/PlanAhead.promote デ ィ レ ク ト リ に保存 さ れ、 X と い う 文字がその前に追加 さ れます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
79
第 4 章 : PlanAhead サポー ト
80
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第5章
コマン ド ラ イ ン スク リ プ ト
こ の章では、 GUI を使用せずにツールセ ッ ト か ら フ ロ ーを自動化す る 方法についての手順 と 推奨情
報を示 し ます。
ザ イ リ ン ク ス では、 パーテ ィ シ ョ ン ベース のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を定
義 し て イ ンプ リ メ ン ト す る Tcl ス ク リ プ ト 例を提供 し てい ます。 こ れ ら の ス ク リ プ ト は、 一般的な
フ ロ ーに使用で き 、 カ ス タ ム フ ロ ーに合わせて修正で き る テ ンプ レー ト にな っ てい ます。
こ れ ら の ス ク リ プ ト を実行す る には、Tcl シ ェ ルが使用で き る よ う にな っ てい る 必要があ り ます。ほ
と ん ど の Linux で、 Tcl シ ェ ルはデフ ォ ル ト で /usr/bin デ ィ レ ク ト リ に イ ン ス ト ール さ れてい ます。
Tcl シ ェ ルが イ ン ス ト ール さ れていない場合は、 http://www.activestate.com/activetcl か ら 無料でダ
ウ ン ロ ー ド で き ます。 こ のマニ ュ アルの ス ク リ プ ト は、 Tcl 8.4 を使用 し てテ ス ト さ れてい ます。
Tcl ス ク リ プ ト
•
xpartition.tcl
パーテ ィ シ ョ ン ベース のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を定義 し イ ンプ リ メ
ン ト し ます。 3 つのほかの Tcl ス ク リ プ ト を呼び出 し て、 それ ら の関数を実行 し ます。 こ の ス ク
リ プ ト は完全な フ ロ ーを実行す る のに使用 し て く だ さ い。
•
gen_xp.tcl
各プ ロ ジ ェ ク ト に必要なパーテ ィ シ ョ ン フ ァ イ ルを作成お よ び修正 し ます。 xpartition.tcl
ス ク リ プ ト か ら 呼び出 さ れます。
•
implement.tcl
パーテ ィ シ ョ ン ベース のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン コ ン フ ィ ギ ュ レーシ ョ ン
を イ ンプ リ メ ン ト し ます。 xpartition.tcl ス ク リ プ ト か ら 呼び出 さ れます。
•
export.tcl
必要な フ ァ イ ルをエ ク ス ポー ト し 、 パーテ ィ シ ョ ン を今後の
xpartition.tcl ス ク リ プ ト か ら 呼び出 さ れます。
run に イ ン ポー ト し ます。
xpartition.tcl フ ァ イ ルは data.tcl フ ァ イ ル を 引数 と し て使用 し ま す。 data.tcl フ ァ イ ルには、 パー
テ ィ シ ョ ン定義、 コ ン フ ィ ギ ュ レ ーシ ョ ン、 イ ン プ リ メ ン テーシ ョ ン のオプシ ョ ン が含ま れ ま す。
こ の フ ァ イ ルを使用す る と 、 Tcl ス ク リ プ ト を変更 し な く て も デザ イ ン と そのオプシ ョ ン を変更で
き ます。
次は、 こ の Tcl ス ク リ プ ト を呼び出す コ マ ン ド ラ イ ン の例です。 こ れは、 第 3 章 「 ソ フ ト ウ ェ ア
ツール フ ロ ー」 に説明 さ れ る よ う にパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト のルー ト
フ ォ ルダか ら 起動 さ れます。
xtclsh .\Tools\xpartition.tcl .\Tools\data.tcl
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
81
第 5 章 : コ マン ド ラ イ ン スク リ プ ト
data.tcl のフ ォ ーマ ッ ト
data.tcl フ ァ イ ルは、 3 つの主なセ ク シ ョ ンに分割 さ れ ます。 data.tcl では、 リ ス ト ま たはア レ イ 宣
言の外側で コ メ ン ト を記述す る のに # 記号が使用 さ れます。 リ ス ト お よ びア レ イ の メ ンバーは、 削
除す る か、 リ ス ト やア レ イ の外側に コ メ ン ト と し て記述 し て、 無視 さ れ る よ う に し て く だ さ い。
Color2 サンプル デザ イ ンには、 複数バージ ョ ンのデー タ フ ァ イ ルが含まれます。 こ れ ら は、 前述
の xtclsh コ マ ン ド と 同 じ よ う に使用で き ます。 こ れ ら のデー タ フ ァ イ ルは、 リ フ ァ レ ン ス と し て含
まれ、 必要に応 じ て修正す る こ と がで き ます。
•
data.tcl - 合成お よ び イ ンプ リ メ ン テーシ ョ ン を実行 し ます。 ス ク リ プ ト フ ロ ーを最初か ら 記
述す る 場合に使用 し ます。
•
data_synth.tcl - 合成のみを実行 し ます。コ マ ン ド ラ イ ンか ら 合成を実行 し 、イ ンプ リ メ ン テー
シ ョ ンは PlanAhead ソ フ ト ウ ェ ア を使用する 場合に便利です。
•
data_impl.tcl - イ ンプ リ メ ン テーシ ョ ンのみを実行 し ます。 合成が既に実行 さ れていて も 、 タ
イ ミ ン グ制約や物理制約の調整な ど、 イ ンプ リ メ ン テーシ ョ ンに少 し 変更が必要な場合な ど に
便利です。
セ ク シ ョ ン 1 : プ ロ ジ ェ ク ト オプ シ ョ ンの設定
セ ク シ ョ ン 1 : こ のセ ク シ ョ ン では、 環境変数、 パーツ、 制約フ ァ イ ル、 パーテ ィ シ ョ ンお よ び リ
コ ン フ ィ ギ ャ ブル モジ ュ ールな ど を含む変数を設定で き ます。
# 1:environment variables for all configurations
set ::env(XIL_TIMING_ALLOW_IMPOSSIBLE) 1
# 2:part definition
set PART xc5vlx50t-3-ff1136
# 3:constraints file
set UCF ../../Source/UCF/top_ml505.ucf
# 4:Partition names
# These names must match the actual instance names in the design
set TOP_PART
/top
set RED_PART
${TOP_PART}/reconfig_red
set GREEN_PART ${TOP_PART}/reconfig_green
set BLUE_PART
${TOP_PART}/reconfig_blue
# 5:RM names
set RED_FAST
set RED_SLOW
set RED_BB
set GREEN_FAST
set GREEN_SLOW
set GREEN_BB
set BLUE_FAST
set BLUE_SLOW
set BLUE_BB
set STATIC
82
Red_Fast
Red_Slow
Red_Blank
Green_Fast
Green_Slow
Green_Blank
Blue_Fast
Blue_Slow
Blue_Blank
Static
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
data.tcl のフ ォ ーマ ッ ト
# 1:environment variables for all configurations
次の フ ォーマ ッ ト を使用 し 、 イ ンプ リ メ ン テーシ ョ ンに必要な環境変数を定義 し ます。 こ れ ら
の変数はすべての コ ン フ ィ ギ ュ レーシ ョ ン で使用 さ れます。
set ::env(VARIABLE) value
# 2:part definition
イ ンプ リ メ ン テーシ ョ ンで タ ーゲ ッ ト と さ れ る パーツ を定義 し ます。
# 3:constraints file
制約フ ァ イ ルを指定 し ます。 こ れは、 すべての コ ン フ ィ ギ ュ レーシ ョ ン で使用 さ れます。
# 4:Partition names
こ れ ら の名前は、 デザ イ ンの実際の イ ン ス タ ン ス名 と 一致す る 必要があ り ます。 デザ イ ンのす
べてのパーテ ィ シ ョ ンは、 リ コ ン フ ィ ギ ャ ブルか ど う かに関係な く 、 こ こ で定義す る 必要があ
り ます。 こ れ ら の名前は、 HDL の イ ン ス タ ン ス名 と 一致する 必要があ り ます。
# 5:RM names
すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールを宣言 し ます。 こ れ ら は、 ボ ト ム ア ッ プ合成を実行 し
た り 、 コ ン フ ィ ギ ュ レーシ ョ ン を定義す る のに使用 さ れます。 ス タ テ ィ ッ ク は宣言す る 必要は
あ り ません。
セ ク シ ョ ン 2 : 合成のモ ジ ュ ール指定 と パーテ ィ シ ョ ン属性の定義
セ ク シ ョ ン 2 : こ のセ ク シ ョ ン では、 ど のモジ ュ ールを合成す る か定義 し 、 パーテ ィ シ ョ ンが リ コ
ン フ ィ ギ ャ ブルか ど う か を宣言 し ます。
# 6:RM list
# Each RM in the list is synthesized with bottom-up synthesis.
# You must create a directory for each of the RMs in the list
set RMs [list $RED_FAST $RED_SLOW $GREEN_FAST $GREEN_SLOW $BLUE_FAST $BLUE_SLOW $STATIC]
# 7:Partition Attributes List
##############################################################################
# Create the per-partition attributes list.This list must be called
# "PartitionAttrsList".The format is:
# set PartitionAttrsList <partitionlist>
# where
# <partitionlist> ::= { <partitionattrs> ...}
# <partitionattrs> ::= { <partitionName> <attrslist> }
# <attrslist>
::= <namevalpair> ...
# <namevalpair> ::= { <attrName> <attrValue> }
##############################################################################
set PartitionAttrsList {
{/top {Reconfigurable false}}
{/top/reconfig_red {Reconfigurable true}}
{/top/reconfig_green {Reconfigurable true}}
{/top/reconfig_blue {Reconfigurable true}}
}
# 6:RM list
# Each RM in the list is synthesized with bottom-up synthesis.
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
83
第 5 章 : コ マン ド ラ イ ン スク リ プ ト
# You must create a directory for each of the RMs in the list
ボ ト ム ア ッ プ合成を実行す る 必要のあ る リ コ ン フ ィ ギ ャ ブル モジ ュ ールを指定 し ます。 合成
は、 指定順に実行 さ れます。 必要なデ ィ レ ク ト リ 構造については、 後のセ ク シ ョ ン で説明 さ れ
ます。
# 7:Partition Attributes List
パーテ ィ シ ョ ンが リ コ ン フ ィ ギ ャ ブルか ど う か指定で き ます。 3 つの リ コ ン フ ィ ギ ャ ブル パー
テ ィ シ ョ ン n では Reconfigurable が true に設定 さ れてい ますが、 top には何 も 設定 さ れていな
いので、 デフ ォ ル ト の false にな り ます。
セ ク シ ョ ン 3 : コ ン フ ィ ギ ュ レーシ ョ ンの定義
セ ク シ ョ ン 3 : こ のセ ク シ ョ ン では、 各 コ ン フ ィ ギ ュ レーシ ョ ンの詳細 と その イ ン プ リ メ ン ト 順序
を定義 し ます。
# 8:Configuration Information
##############################################################################
# Create the per-configuration variables.The format is:
#
set CONFIG1DATA <ConfigList>
#
set CONFIG2DATA <ConfigList>
#
...
#
set ALL_CFGS [list $CONFIG1DATA $CONFIG2DATA ...]
# where
#
<ConfigList>
::= { <ConfigNamePair> <Settings> }
#
<ConfigNamePair>
::= { 'ConfigName' <Name> }
#
<Settings>
::= { 'Settings' <SettingsList> }
#
<SettingsList>
::= <PartSettingsList> ...
#
<PartSettingsList> ::= <partitionName> <namevalpair> ...
##############################################################################
# Configuration FastConfig settings.
# Everything is implemented; there is no import location
set CONFIG_FastConfig {
{ConfigName FastConfig}
{Settings
{/top{State implement}}
{/top/reconfig_red
{State implement}{NetlistDir Red_Fast}{ModName Red_Fast}}
{/top/reconfig_green {State implement}{NetlistDir Green_Fast}{ModName Green_Fast}}
{/top/reconfig_blue {State implement}{NetlistDir Blue_Fast}{ModName Blue_Fast}}
}
}
# Configuration SlowConfig settings.
# Static is imported from the FastConfig
set CONFIG_SlowConfig {
{ConfigName SlowConfig}
{Settings
{/top{State import} {ImportLocation ../XFastConfig}}
{/top/reconfig_red
{State implement}{NetlistDir Red_Slow}{ModName Red_Slow}}
{/top/reconfig_green {State implement}{NetlistDir Green_Slow}{ModName Green_Slow} }
{/top/reconfig_blue {State implement}{NetlistDir Blue_Slow}{ModName Blue_Slow}}
}
}
84
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
data.tcl のフ ォ ーマ ッ ト
# Configuration FSFConfig settings.
# All 4 partitions are imported.
set CONFIG_FSFConfig {
{ConfigName FSFConfig}
{Settings
{/top{State import} {ImportLocation ../XFastConfig} }
{/top/reconfig_red {State import}{ImportLocation ../XFastConfig}{NetlistDir Red_Fast}
{ModName Red_Fast}}
{/top/reconfig_green {State import}{ImportLocation ../XFastConfig}{NetlistDir
Green_Fast} {ModName Green_Fast}}
{/top/reconfig_blue {State import}{ImportLocation ../XSlowConfig}{NetlistDir
Blue_Slow} {ModName Blue_Slow}}
}
}
# Configuration BlankConfig settings.
set CONFIG_BlankConfig {
{ConfigName BlankConfig}
{Settings
{/top{State import} {ImportLocation ../XFastConfig} }
{/top/reconfig_red {State implement}{NetlistDir Red_Blank}{ModName Red_Blank}}
{/top/reconfig_green {State implement}{NetlistDir Green_Blank}{ModName Green_Blank}}
{/top/reconfig_blue {State implement}{NetlistDir Blue_Blank}{ModName Blue_Blank}}
}
}
# 9:List of configurations in order of implementation
# finally, build the list of all the configuration data.
# This list will drive the implementation of all configurations,
# in the order they are listed
set ALL_CFGS [list $CONFIG_FastConfig $CONFIG_SlowConfig $CONFIG_FSFConfig
$CONFIG_BlankConfig]
#set ALL_CFGS [list $CONFIG_BlankConfig]
# 8. コ ン フ ィ ギ ュ レーシ ョ ン情報
こ のセ ク シ ョ ンは次を含め、 各 コ ン フ ィ ギ ュ レーシ ョ ン を定義 し ます。
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ールに含まれ る も の
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ールを イ ン ポー ト す る か イ ンプ リ メ ン ト す る か
•
ど こ か ら イ ン ポー ト す る か
フ ォーマ ッ ト は次の と お り です。
set CONFIG_<config_name> {
{ConfigName <config_name>}
{Settings
{<partition_name>} {State <"implement"|"import">} > {ImportLocation
<directory to import from> } {NetlistDir <directory where RM netlist is
located>} {ModName <name of netlist file>}
}
}
ImportLocation は、 そのパーテ ィ シ ョ ンの State が import に設定 さ れてい る 場合にのみ必要で
す。 NetlistDir は、 合成が Tcl ス ク リ プ ト の外で実行 さ れた場合にのみ ModName と 異な り ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
85
第 5 章 : コ マン ド ラ イ ン スク リ プ ト
最初の コ ン フ ィ ギ ュ レ ーシ ョ ン では、 イ ン ポー ト す る プ ロ モー ト 済みの イ メ ージが ま だないので、
すべてのパーテ ィ シ ョ ンが イ ンプ リ メ ン ト さ れます。 イ ンプ リ メ ン テーシ ョ ンが終了す る と 、 すべ
ての コ ン フ ィ ギ ュ レーシ ョ ン が X<config_name> にエ ク ス ポー ト さ れ ます。 こ れは、 ほかの コ ン
フ ィ ギ ュ レーシ ョ ンの イ ン ポー ト デ ィ レ ク ト リ に も 使用で き ます。
# 9:All configurations with implementation order
# This list drives the implementation of all configurations,
# in the order they are listed
こ の リ ス ト の順序は重要です。 パーテ ィ シ ョ ンは、 最初の イ ンプ リ メ ン テーシ ョ ンが終わ る ま で イ
ン ポー ト で き ません。
セ ク シ ョ ン 4 : イ ン プ リ メ ン テーシ ョ ン オプ シ ョ ン
セ ク シ ョ ン 4 : こ のセ ク シ ョ ン では、 イ ンプ リ メ ン テーシ ョ ン オプシ ョ ン を変更す る 変数を設定で
き ます。
10:Implementation options
# set the optional implementation data flags.
# The format of the optional data is:
# RUN_RM_SYNTH=NO if the design has no modules to be synthesized bottom-up
# NGDBUILD_TOP=<top_path> is path to pre-existing top module for Ngdbuild
# NGDBUILD_SEARCH=<search_path ...> a string containing search path directories
# NGDBUILD_OPTS=<ngdbuild_command_line_options> optional cmd line options for Ngdbuild
# RUN_MAP=NO if you do not want to run Map
# MAP_OPTS=<map_command_line_options> optional command line options for Map
# RUN_PAR=NO if you do not want to run PAR
# PAR_OPTS=<par_command_line_options> optional command line options for Par
# RUN_BITGEN=NO if you do not want to generate bitstreams
array set IMPLEMENTATION_DATA { \
RUN_RM_SYNTH NO \
}
変数は、 次の通 り です。
•
SYNTH_TOOL xst/synplify_pro
ボ ト ム ア ッ プ合成を実行す る 際に ど の合成ツールを使用す る か指定 し ます。 こ の場合、 該当す
る 合成プ ロ ジ ェ ク ト が Synth デ ィ レ ク ト リ に必要です。
•
RUN_RM_SYNTH YES/NO
リ コ ン フ ィ ギ ャ ブル モジ ュ ール リ ス ト のすべてのモジ ュ ールでボ ト ム ア ッ プ合成を実行す る
か ど う か設定 し ます。最初の イ ンプ リ メ ン テーシ ョ ン では Yes にす る 必要があ り 、HDL が変更
さ れ る ま で NO に変更す る 必要があ り ます。 デフ ォ ル ト は YES です。
•
NGDBUILD_TOP <path_to_top_level_netlist>
ス タ テ ィ ッ ク ロ ジ ッ ク が既に合成 さ れてい る 場合は、リ コ ン フ ィ ギ ャ ブル モジ ュ ールを使用 し
て合成を実行す る よ り も 、こ の変数を使用 し てパ ス を指定 し ます。こ の変数は、RUN_RM_SYNTH
が NO に設定 さ れ る 場合、 ま たは ス タ テ ィ ッ ク が リ コ ン フ ィ ギ ャ ブル モジ ュ ール リ ス ト に含ま
れない場合に設定す る 必要があ り ます。
•
NGDBUILD_SEARCH <search_directories_for_NGDBUILD>
NGDBuild のマ ク ロ 検索パ ス が コ ア ネ ッ ト リ ス ト のあ る デ ィ レ ク ト リ を指定す る よ う に設定
し ます。 スペース で区切っ て { } で囲めば、 複数のデ ィ レ ク ト リ を指定で き ます。 UNIX タ イ
86
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
推奨フ ロー
プの ス ラ ッ シ ュ (/) を、 Tcl 命名規則に従い、 Windows と Linux の両方で使用す る 必要があ り
ます。
•
RUN_NGDBUILD YES/NO
NGDBuild をすべての イ ンプ リ メ ン テーシ ョ ンで実行する か ど う か制御 し ます。
•
RUN_MAP YES/NO
MAP をすべての イ ンプ リ メ ン テーシ ョ ンで実行す る か ど う か制御 し ます。
•
RUN_PAR YES/NO
PAR をすべての イ ンプ リ メ ン テーシ ョ ンで実行する か ど う か制御 し ます。
•
RUN_BITGEN YES/NO
BitGen をすべての イ ンプ リ メ ン テーシ ョ ンで実行す る か ど う か制御 し ます。
各 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス に も 、 それぞれカ ス タ マ イ ズ さ れた コ マ ン ド ラ イ ン オプシ ョ
ンがあ り ます。現在の ソ フ ト ウ ェ アでは、カ ス タ マ イ ズ さ れたオプシ ョ ンは、すべての コ ン フ ィ ギ ュ
レーシ ョ ン に対 し て設定 さ れ ます。 コ マ ン ド ラ イ ン ツールを カ ス タ マ イ ズす る には、 次の 3 つの
変数を使用 し ます。 3 つすべての変数のデフ ォ ル ト では、 デフ ォ ル ト の イ ンプ リ メ ン テーシ ョ ン オ
プシ ョ ンが使用 さ れます。使用可能な コ マ ン ド ラ イ ン オプシ ョ ンの詳細は、『 コ マ ン ド ラ イ ン ツー
ル ユーザー ガ イ ド 』 (UG628) を参照 し て く だ さ い。
•
NGDBUILD_OPTS <ngdbuild_options>
オプシ ョ ンの NGDBuild コ マ ン ド ラ イ ン オプシ ョ ン
•
MAP_OPTS <map_options>
オプシ ョ ンの MAP コ マ ン ド ラ イ ン オプシ ョ ン
•
PAR_OPTS <par_options>
オプシ ョ ンの PAR コ マ ン ド ラ イ ン オプシ ョ ン
こ れ ら のオプシ ョ ンは、すべての コ ン フ ィ ギ ュ レーシ ョ ンに使用 さ れます。特定の コ ン フ ィ ギ ュ レー
シ ョ ンに対 し て別の コ マ ン ド ラ イ ン オプシ ョ ン を指定する には、–f オプシ ョ ン を使用 し て、各デ ィ
レ ク ト リ の コ マ ン ド フ ァ イ ルを選択 し ます。 次に例を示 し ます。
MAP_OPTS=<-f ./map.opt>
こ の場合、 各 イ ンプ リ メ ン テーシ ョ ンに対 し てデ ィ レ ク ト リ の map.opt フ ァ イ ルを探 し て、 フ ァ イ
ルに含まれ る オプシ ョ ン を使用 し ます。 -f オプシ ョ ンの詳細は、 『 コ マ ン ド ラ イ ン ツール ユーザー
ガ イ ド 』 (UG628) を参照 し て く だ さ い。
推奨フ ロー
現在の と こ ろ、 こ れ ら の ス ク リ プ ト では pr_verify は実行 さ れ ませんが、 今後の リ リ ース で実行 さ
れ る よ う にす る か ど う か調査中です。 こ のため、 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン前に生成 さ れ
た ビ ッ ト ス ト リ ーム を使用 し て pr_verify を実行する 必要があ り ます。
こ の手順を含めた フ ロ ーには、 次が推奨 さ れます。
1. Tcl ス ク リ プ ト を使用 し 、 bitgen も 含めた完全な フ ロ ーを実行 し ます。
2. デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンす る 前に pr_verify コ マ ン ド ラ イ ン を実行 し ます。 ロ グ
フ ァ イ ルで PASS と レ ポー ト さ れた ら 、 生成 さ れた ビ ッ ト ス ト リ ーム を使用で き ます。
pr_verify の実行の詳細については、 第 4 章の 「 コ ン フ ィ ギ ュ レーシ ョ ンの検証」 を参照 し て く だ さ
い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
87
第 5 章 : コ マン ド ラ イ ン スク リ プ ト
必要な フ ァ イル と デ ィ レ ク ト リ 構造
Tcl ス ク リ プ ト には、 独自のデ ィ レ ク ト リ が必要です。 ソ ー ス フ ァ イ ルはすべて Source デ ィ レ ク
ト リ にあ り 、 コ ン フ ィ ギ ュ レーシ ョ ンは デ ィ レ ク ト リ に イ ンプ リ メ ン ト さ れ、 ス タ テ ィ ッ ク お よ び
各 RM は Synth デ ィ レ ク ト リ で合成 さ れ、フ ロ ーを実行する ス ク リ プ ト はすべて Tools デ ィ レ ク ト
リ に保存 さ れます。 図 5-1 は、 デ ィ レ ク ト リ 構造の例を示 し てい ます。
X-Ref Target - Figure 5-1
図 5-1 : サン プル ス ク リ プ ト に必要なデ ィ レ ク ト リ 構造
こ れ ら のデ ィ レ ク ト リ の う ちの どれかがない場合、 内容が生成 さ れたか ど う かに関係な く 、 ス ク リ
プ ト がエ ラ ーにな る こ と があ り ます。
ス ク リ プ ト が実行 さ れた ら 、 コ ン フ ィ ギ ュ レーシ ョ ンのデ ィ レ ク ト リ にそれ ら を移動 し 、 イ ンプ リ
メ ン テーシ ョ ン を実行 し ます。 レ ポー ト フ ァ イ ルは、 デバ ッ グに必要です。
88
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
必要な フ ァ イル と デ ィ レ ク ト リ 構造
合成 RM デ ィ レ ク ト リ
RUN_RM_SYNTH オ プ シ ョ ン が YES に設定 さ れ る 場合、 リ ス ト の各 リ コ ン フ ィ ギ ャ ブ ル モ
ジ ュ ールのデ ィ レ ク ト リ に合成入力フ ァ イ ル (.xst お よ び .prj) が含まれてい る 必要があ り ます。
XST フ ァ イ ルには、 合成 run の コ マ ン ド ラ イ ン オプシ ョ ン が含ま れ ます。 XST コ マ ン ド ラ イ ン
オプシ ョ ンの詳細は、『XST ユーザー ガ イ ド (Virtex-6、 Spartan-6、お よ び 7 シ リ ーズ用)』 (UG687)
を参照 し て く だ さ い。
次は、 XST フ ァ イ ルの例です。
run
-ifn red.prj
-ifmt mixed
-ofn red
-ofmt NGC
-p xc5vlx50t-3-ff1136
-top red
-opt_mode Speed
-opt_level 1
-power NO
-iuc NO
-keep_hierarchy NO
-netlist_hierarchy as_optimized
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-bram_utilization_ratio 100
-dsp_utilization_ratio 100
-reduce_control_sets off
-verilog2001 YES
-fsm_extract YES
-fsm_encoding Auto
-safe_implementation No
-fsm_style lut
XST フ ァ イ ルでは、 入力フ ァ イ ル と し て適切な PRJ フ ァ イ ルが指定 さ れます。 PRJ フ ァ イ ルには、
リ コ ン フ ィ ギ ャ ブル モジ ュ ールのすべての HDL フ ァ イ ル と 、 ソ ース を コ ンパ イ ルす る ための言語
と ラ イ ブ ラ リ が指定 さ れます。 次に例を示 し ます。
verilog work "../../Source/red_fast/led_fast.v"
verilog work "../../Source/red_fast/red_fast.v"
XST お よ び PRJ フ ァ イ ル両方の例は、 『XST ユーザー ガ イ ド (Virtex-6、 Spartan-6、 お よ び 7 シ
リ ーズ用)』 (UG687) で確認で き る ほか、 ISE® Design Suite か ら も 生成 さ れます。
こ の例の場合、必要なデ ィ レ ク ト リ は、Red_Fast、Red_Slow、Red_Blank、Green_Fast、Green_Slow、
Green_Blank、 Blue_Fast、 Blue_Slow、 Blue_Blank、 お よ び Static です。 NGDBUILD_TOP 変数
が使用 さ れ、$STATIC が リ コ ン フ ィ ギ ャ ブル モジ ュ ールの リ ス ト か ら 削除 さ れ る 場合、/Static デ ィ
レ ク ト リ は必要あ り ません。
RUN_RM_SYNTH オプシ ョ ンが NO に設定 さ れ る 場合、各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールのデ ィ
レ ク ト リ に各モジ ュ ールのネ ッ ト リ ス ト が必要です。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
89
第 5 章 : コ マン ド ラ イ ン スク リ プ ト
コ ン フ ィ ギ ュ レーシ ョ ン デ ィ レ ク ト リ
こ れ ら のデ ィ レ ク ト リ には特定の内容は必要あ り ませんが、 デ ィ レ ク ト リ は イ ンプ リ メ ン テーシ ョ
ン が実行 さ れ る ために作成す る 必要があ り ます。 上記の例の場合は、 CfgFast、 CfgSlow、 CfgFSF
お よ び CfgBlank デ ィ レ ク ト リ です。
エ ク スポー ト デ ィ レ ク ト リ
エ ク ス ポー ト デ ィ レ ク ト リ は、 ス ク リ プ ト で作成 さ れ、 完了 し た イ ンプ リ メ ン テーシ ョ ン を含む コ
ン フ ィ ギ ュ レーシ ョ ン が含ま れ ます。 名前は、 コ ン フ ィ ギ ュ レーシ ョ ン名 (X<config_name>) に
基づいて命名 さ れます。 こ の例では、 XCfgFast、 XCfgSlow、 XCfgFSF、 XCfgBlank にな り ます。
こ れ ら のデ ィ レ ク ト リ の フ ァ イ ルは、 ス ク リ プ ト が実行 さ れ る たびに上書 き さ れます。 解析ま たは
比較の実行結果を保存す る 場合は、 別の新 し いデ ィ レ ク ト リ に コ ピー し てお き ます。
90
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第6章
FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
こ の章では、 パーシ ャ ル ビ ッ ト フ ァ イ ルを使用 し て FPGA デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンす
る 際のシ ス テ ム デザ イ ン に関す る 注意事項 と 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用す る
FPGA のアーキ テ ク チ ャ 機能について説明 し ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン のほ と ん ど の側面が標準の フル コ ン フ ィ ギ ュ レーシ ョ ン と
同 じ なので、 こ のセ ク シ ョ ンではパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンにのみ存在す る 側面につい
て説明 し ます。
SelectMAP、 シ リ アル、 JTAG、 ま たは ICAP (Internal Configuration Access Port) の コ ン フ ィ ギ ュ
レーシ ョ ン ポー ト どれで も パーシ ャ ル ビ ッ ト ス ト リ ーム を読み込むのに使用で き ます。
SelectMAP ま たは Serial モー ド を使用 し てパーシ ャ ル ビ ッ ト フ ァ イ ルを読み込むには、 最初のデ
バ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの後に使用で き る よ う 、 こ れ ら の ピ ン を予約 し てお く 必要があ り ま
す。 こ れには、 UCF 制約の CONFIG_MODE (幅は 16 か 32 を選択する ためのみに必要) と bitgen
-g persist オプシ ョ ン を使用 し ます。
パーシ ャ ル ビ ッ ト ス ト リ ーム には、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン に必要なすべての コ ン
フ ィ ギ ュ レーシ ョ ン コ マ ン ド と デー タ が含ま れ ます。 コ ン フ ィ ギ ュ レーシ ョ ン フ レーム のア ド レ
ス指定情報はパーシ ャ ル ビ ッ ト ス ト リ ームに含まれ る ので、パーシ ャ ル ビ ッ ト ス ト リ ーム を FPGA
に読み込むのに、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの物理的な位置を知っ てお く 必要はあ り ません。
パーシ ャ ル ビ ッ ト ス ト リ ームは、 FPGA デバ イ ス の間違っ たパーツ には送信で き ません。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン コ ン ト ロ ー ラ は、 不揮発性 メ モ リ か ら パーシ ャ ル ビ ッ ト ス
ト リ ーム を取 り 出 し 、 コ ン フ ィ ギ ュ レーシ ョ ン ポー ト へそれを駆動 し ます。 こ のパーシ ャ ル リ コ
ン フ ィ ギ ュ レーシ ョ ン制御 ロ ジ ッ ク は、外部デバ イ ス (プ ロ セ ッ サな ど ) か リ コ ン フ ィ ギ ュ レーシ ョ
ンす る FPGA デバ イ ス の フ ァ ブ リ ッ ク のいずれかに配置で き ま す。 ユーザーのデザ イ ン し た内部
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン コ ン ト ロ ー ラ は、 パーシ ャ ル ビ ッ ト ス ト リ ーム を ICAP イ
ン タ ーフ ェ イ ス を介 し て読み込みます。 内部パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン制御回路は、 ス
タ テ ィ ッ ク デザ イ ンのほかの ロ ジ ッ ク と 同様、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス を
使用 し て割 り 込みな し に動作 し ます。
内部 コ ン フ ィ ギ ュ レ ー シ ョ ン に は、 カ ス タ ム ス テ ー ト マ シ ン か MicroBlaze™ プ ロ セ ッ サ や
PowerPC® 405 プ ロ セ ッ サ (PPC405) な ど のエンベデ ッ ド プ ロ セ ッ サのいずれか を含め る こ と がで
き ます。
ザ イ リ ン ク ス では、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン のデバ ッ グ を し やす く す る た
めに、 iMPACT™ ツールで JTAG ポー ト を介 し て FPGA デバ イ ス に フル ビ ッ ト ス ト リ ームお よ び
パーシ ャ ル ビ ッ ト ス ト リ ーム を読み込む こ と がで き る よ う に し てい ます。
ビ ッ ト ス ト リ ームの コ ン フ ィ ギ ュ レーシ ョ ン ポー ト への読み込みについては、次を参照 し て く だ さ
い。
•
『Virtex-4 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG071)
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
91
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
•
『Virtex-5 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG191)
•
『Virtex-6 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG360)
コ ン フ ィ ギ ュ レーシ ョ ン モー ド
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンは、 次の コ ン フ ィ ギ ュ レーシ ョ ン モー ド でサポー ト さ れて
い ます。
•
ICAP
ユーザー コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ンには最適な イ ン タ ーフ ェ イ ス です。ICAP コ
ン ト ロ ー ラ の イ ン ス タ ン シエーシ ョ ン と ICAP イ ン タ ーフ ェ イ ス を駆動す る ロ ジ ッ ク が必要に
な り ます。
•
JTAG
素早いテ ス ト やデバ ッ グに最適な イ ン タ ーフ ェ イ ス です。 JTAG をサポー ト す る ザ イ リ ン ク ス
コ ン フ ィ ギ ュ レーシ ョ ン ケーブルを使用 し 、 iMPACT ま たは ChipScope Analyzer か ら 駆動で
き ます。
•
Slave SelectMAP ま たは Slave Serial
フル コ ン フ ィ ギ ュ レーシ ョ ンお よ びパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を同 じ イ ン タ ー
フ ェ イ ス で実行す る のに最適な イ ン タ ーフ ェ イ ス です。
マ ス タ モー ド は、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を一掃する IPROG のため、 直接はサポー ト さ れ
ません。
92
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
フ ル ビ ッ ト フ ァ イルのダウン ロー ド
フル ビ ッ ト フ ァ イルのダウン ロー ド
デジ タ ル シ ス テ ムの FPGA デバ イ ス は、 フル ビ ッ ト フ ァ イ ルを PROM ま たはマ イ ク ロ プ ロ セ ッ
サに よ る 汎用 メ モ リ 空間か ら 直接ダ ウ ン ロ ー ド し て、 パ ワ ー オ ン リ セ ッ ト 後に コ ン フ ィ ギ ュ レー
シ ョ ン さ れ ま す。 フル ビ ッ ト フ ァ イ ルには、 FPGA デバ イ ス を リ セ ッ ト し 、 完全なデザ イ ン で コ
ン フ ィ ギ ュ レーシ ョ ン し 、 そのビ ッ ト フ ァ イ ルが破損 し ていないか ど う か を検証す る ために必要な
情報がすべて含まれます。 図 6-1 は、 こ のプ ロ セ ス を示 し てい ます。
X-Ref Target - Figure 6-1
Partial Configuration Bit File
Config. Data
Check Sum
Configuration Mode
Start
Vcc Rise
Vcc
Stable
Power-on
Reset
FPGA
Header
Download Full
Bit File
User Mode
DONE
Asserted
X12031
図 6-1 : フル ビ ッ ト フ ァ イルを使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
最初の コ ン フ ィ ギ ュ レ ーシ ョ ン が完了 し て検証 さ れ る と 、 FPGA デバ イ ス がユーザー モー ド にな
り 、 ダ ウ ン ロ ー ド し たデザ イ ンが動作 し 始め ます。 ビ ッ ト フ ァ イ ルの破損が検出 さ れ る と 、 DONE
信号がアサー ト にな ら ず、 FPGA デバ イ ス も ユーザー モー ド にな ら ず、 デザ イ ンが動作 し 始め る こ
と はあ り ません。
パーシ ャル ビ ッ ト フ ァ イルのダウン ロー ド
部分的に リ コ ン フ ィ ギ ュ レーシ ョ ン さ れた FPGA デバ イ ス は、 パーシ ャ ル ビ ッ ト フ ァ イ ルが読み
込まれてい る 間、 ユーザー モー ド にな り ます。 こ れに よ り 、 リ コ ン フ ィ ギ ャ ブル部分が変更 さ れて
い る 間、 リ コ ン フ ィ ギ ュ レーシ ョ ン さ れない FPGA ロ ジ ッ ク 部分は動作 し 続け る こ と がで き ます。
図 6-2 は、 こ のプ ロ セ ス を示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
93
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
X-Ref Target - Figure 6-2
Partial Configuration Bit File
FPGA
Config. Data
Configuration Mode
Start
Vcc Rise
Initial Configuration
User Mode
Done
Asserted
Download
Partial Bit File
X12032
図 6-2 : パーシ ャル ビ ッ ト フ ァ イルを使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャ ル ビ ッ ト フ ァ イ ルには、 ヘ ッ ダがな く 、 FPGA デバ イ ス を ユーザー モー ド にす る ス タ ー
ト ア ッ プ シーケ ン ス も あ り ません。 ビ ッ ト フ ァ イ ルには、 基本的に フ レーム ア ド レ ス と コ ン フ ィ
ギ ュ レーシ ョ ン デー タ 、 最終的なチ ェ ッ ク サム値のみが含ま れます。 パーシ ャ ル ビ ッ ト フ ァ イ ル
の情報が専用モー ド ま たは ICAP を使用 し てすべて FPGA デバ イ ス に送信 さ れ る 場合、完了を示す
外部 DONE ピ ンはアサー ト さ れません。
コ ン フ ィ ギ ュ レーシ ョ ンが終了 し た と き にデー タ が送信 さ れたか ど う かは、 ユーザーがモニ タ する
必要があ り ます。 パーシ ャ ル ビ ッ ト フ ァ イ ルの終わ り には、 ビ ッ ト フ ァ イ ルが完全に送信 さ れ こ
と を コ ン フ ィ ギ ュ レーシ ョ ン エ ン ジ ン に知 ら せ る DESYNCH ワ ー ド (0000000D) が含ま れ ま す。
NO OP コ マ ン ド のパデ ィ ン グ後に こ の ワー ド を含め る と 、 DESYNCH に到達 し た後、 すべての コ
ン フ ィ ギ ュ レーシ ョ ン デー タ が既にデバ イ ス を介 し て タ ーゲ ッ ト フ レーム に送信 さ れた こ と を確
認で き ます。完全なパーシ ャ ル ビ ッ ト フ ァ イ ルが コ ン フ ィ ギ ュ レーシ ョ ン ポー ト に送信 さ れ次第、
リ コ ン フ ィ ギ ュ レーシ ョ ン領域を ア ク テ ィ ブな使用のために解放 し てお く こ と をお勧め し ます。
FPGA デバイ ス を コ ン フ ィ ギ ュ レーシ ョ ンする ためのシス テム デザイ ン
パーシ ャ ル ビ ッ ト フ ァ イ ルは フル ビ ッ ト フ ァ イ ル と 同 じ 方法で FPGA デバ イ ス にダ ウ ン ロ ー ド
で き ます。 ど のパーシ ャ ル ビ ッ ト フ ァ イ ルを ダ ウ ン ロ ー ド す る かは外部マ イ ク ロ プ ロ セ ッ サで決
定 さ れ ま す。 外部マ ク ロ プ ロ セ ッ サは、 外部の メ モ リ 空間にあ り 、 パーシ ャ ル ビ ッ ト フ ァ イ ルを
JTAG、SelectMAP ま たはシ リ アル イ ン タ ーフ ェ イ ス な ど の標準的な FPGA コ ン フ ィ ギ ュ レーシ ョ
ン ポー ト に指定 し ます。 FPGA デバ イ ス では、 受信を指定す る 特定の命令がな く て も 、 パーシ ャ ル
ビ ッ ト フ ァ イ ルが正 し く 処理 さ れます。
通常は、 フ ル ビ ッ ト フ ァ イ ルを ダ ウ ン ロ ー ド す る 前に FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン イ ン タ ー
フ ェ イ ス の INIT ま たは PROG 信号を アサー ト し てお き ます。 ただ し 、 パーシ ャ ル ビ ッ ト フ ァ イ
ルを ダ ウ ン ロ ー ド す る 前は、 パーシ ャ ル ビ ッ ト フ ァ イ ルではな く 、 フル ビ ッ ト フ ァ イ ルの送信が
指定 さ れてい る のでアサー ト し ないで く だ さ い。
イ ネーブル信号のホール ド お よ び ク ロ ッ ク のデ ィ ス エーブルな ど、 パーシ ャ ル ビ ッ ト フ ァ イ ルが
送信 さ れ る こ と を作業中デザ イ ン に知 ら せ る 動作は、 専用の FPGA コ ン フ ィ ギ ュ レーシ ョ ン ピ ン
94
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
FPGA デバイ ス を コ ン フ ィ ギ ュ レーシ ョ ンする ためのシ ス テム デザイ ン
を使用す る のではな く 、 デザ イ ン内で指定する 必要があ り ます。 図 6-3 は、 マ イ ク ロ プ ロ セ ッ サを
使用 し た コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス を示 し てい ます。
X-Ref Target - Figure 6-3
full
configuration
RM A1
config.
RM A2
config.
RM A3
config.
Off-chip memory or System ACE
ICAP
uP
FPGA
Self-reconfiguring
FPGA
uP
RP A
RP A
JTAG
port
X12033
図 6-3 : マ イ ク ロ プ ロ セ ッ サを使用 し た コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン では、 標準的な コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス
だけでな く 、 Internal Configuration Access Port (ICAP) に よ る コ ン フ ィ ギ ュ レーシ ョ ン も サポー ト
さ れ ます。 ICAP プ ロ ト コ ルは SelectMAP と 同 じ です。 詳細は、 該当す る FPGA デバ イ ス の コ ン
フ ィ ギ ュ レ ー シ ョ ン ユーザー ガ イ ド を 参照 し て く だ さ い。 ICAP ラ イ ブ ラ リ プ リ ミ テ ィ ブは、
FPGA デザ イ ンの HDL コ ー ド で イ ン ス タ ン シエー ト で き る ので、 コ ン フ ィ ギ ュ レーシ ョ ン ポー ト
に送信 さ れ る 前に、 パーシ ャ ル ビ ッ ト フ ァ イ ルの解析 と 制御が実行で き ます。 パーシ ャ ル ビ ッ ト
フ ァ イ ルは汎用 I/O ま たはギガ ビ ッ ト ト ラ ン シーバを介 し て FPGA デバ イ ス にダ ウ ン ロ ー ド で き 、
FPGA フ ァ ブ リ ッ ク の ICAP に配線で き ます。
ICAP には、暗号化 さ れた Virtex-6 のパーシ ャ ル ビ ッ ト フ ァ イ ルのパーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ンの場合は、 8 ビ ッ ト バス のみを使用する 必要があ り ます。 暗号化が使用 さ れ る 場合、 外部 コ
ン フ ィ ギ ュ レーシ ョ ン ポー ト を介 し て リ コ ン フ ィ ギ ュ レーシ ョ ンはで き ません。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
95
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャル ビ ッ ト フ ァ イルのイ ン テグ リ テ ィ
フル ビ ッ ト フ ァ イ ル と 比べ る と 、 パーシ ャ ル ビ ッ ト フ ァ イ ルのエ ラ ー検出 と 復元には独自の要件
があ り ま す。 フ ル ビ ッ ト フ ァ イ ルが FPGA デバ イ ス に読み込 ま れ る 際にエ ラ ーが検出 さ れ る と 、
FPGA デバ イ ス がユーザー モー ド にな る こ と はあ り ま せん。 エ ラ ーは、 破損デザ イ ン が コ ン フ ィ
ギ ュ レーシ ョ ン メ モ リ に読み込まれ、 特定信号がエ ラ ー状態を示すためにアサー ト さ れ る と 、 検出
さ れます。 FPGA デバ イ ス はユーザー モー ド にはな ら ないので、 破損デザ イ ンがア ク テ ィ ブにな る
こ と はあ り ません。 設計者は、 エ ラ ーが検出 さ れた場合は、 異な る ビ ッ ト フ ァ イ ルを ダ ウ ン ロ ー ド
す る な ど、 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーか ら 回復す る ためのシ ス テ ム ビヘ イ ビ ア を決め ます。
パーシ ャ ル ビ ッ ト フ ァ イ ルのダ ウ ン ロ ー ド では、 エ ラ ー検出 と 復元のために こ の手法は使用で き
ません。パーシ ャ ル ビ ッ ト フ ァ イ ルが読み込まれ る 際、FPGA デバ イ スは定義どお り 既にユーザー
モー ド にな っ てい ます。 コ ン フ ィ ギ ュ レーシ ョ ン回路ではビ ッ ト フ ァ イ ルが読み込まれた後にのみ
エ ラ ー検出がサポー ト さ れ る ので、 破損パーシ ャ ル ビ ッ ト フ ァ イ ルがア ク テ ィ ブにな る こ と があ
り 、 長時間動作 し た ま ま に し てお く と 、 FPGA デバ イ ス にダ メ ージ を与え る こ と も あ り ます。
CRC エ ラ ーがパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン中に検出 さ れ る と 、 FPGA の INIT_B ピ ンが
アサー ト さ れます ( こ の場合、 INIT_B は CRC エ ラ ーを示すために Low にな っ ていす)。 シ ス テ ム
が最初の コ ン フ ィ ギ ュ レーシ ョ ン中に CRC エ ラ ーの INIT_B を モニ タ し た場合は、 パーシ ャ ル リ
コ ン フ ィ ギ ュ レーシ ョ ン中の CRC エ ラ ーが同 じ 反応を引き 起 こ す こ と に注意 し て く だ さ い。FPGA
内か ら の CRC エ ラ ーがあ る か ど う か を検出す る には、 ICAP ブ ロ ッ ク を介 し て CRC ス テー タ ス を
モニ タ し ます。 ス テー タ ス レ ジ ス タ (STAT) は、 CRC_ERROR フ ラ グ ( ビ ッ ト 0) を アサー ト す る
こ と でパーシ ャ ル ビ ッ ト フ ァ イ ルに CRC エ ラ ーがあ る こ と を示 し ます。
考慮す る 必要のあ る パーシ ャ ル ビ ッ ト フ ァ イ ルのエ ラ ーには、 デー タ エ ラ ー と ア ド レ ス エ ラ ーの
2 つがあ り ます (パーシ ャ ル ビ ッ ト フ ァ イ ルは基本的にア ド レ ス と デー タ の情報です)。
デー タ 部分にエ ラ ーがあ る 場合は、 簡単に復元で き ます。 新 し いパーシ ャ ル ビ ッ ト フ ァ イ ル (空白
のパーシ ャ ル ビ ッ ト フ ァ イ ルで も ) を読み込んで、 破損を修復 し ます。
パーシ ャ ル ビ ッ ト フ ァ イ ルのア ド レ ス部分にエ ラ ーがあ る 場合は、 簡単には復元で き ま せん。 破
損が FPGA の ス タ テ ィ ッ ク 部分を変更 し て し ま う 可能性があ り ます。 こ の場合、 安全に復元す る に
は、 新 し い フル ビ ッ ト フ ァ イ ルを ダ ウ ン ロ ー ド し て、 ス タ テ ィ ッ ク ロ ジ ッ ク の ス テー ト を確定す
る し か方法はあ り ませんが、 FPGA デバ イ ス全体を リ セ ッ ト する 必要があ り ます。
多 く のシ ス テ ムは複雑な復元 メ カ ニズ ム を必要 と し ません。 こ れは、 FPGA デバ イ ス全体の リ セ ッ
ト が重要ではなか っ た り 、 パーシ ャ ル ビ ッ ト フ ァ イ ルが ロ ーカルに保存 さ れ る か ら です。 こ の場
合、 ビ ッ ト フ ァ イ ルの破損の可能性はそれほ ど あ り ません。 パーシ ャ ル ビ ッ ト フ ァ イ ルを ラ ジオ
リ ン ク に送信す る よ う な、 ビ ッ ト フ ァ イ ルが破損 し て し ま う 危険性のあ る シ ス テ ムには、 問題を軽
減す る た めのデザ イ ン 回路 を 含め る 必要が あ り ま す。 こ の場合、 パーシ ャ ル ビ ッ ト フ ァ イ ルが
ICAP に読み込 ま れてデバ イ ス が部分的に リ コ ン フ ィ ギ ュ レ ーシ ョ ン さ れ る 直前に、 フ ァ イ ル を
FPGA フ ァ ブ リ ッ ク で ロ ーカルに処理す る 方法があ り ます。
FPGA デザ イ ンの ス タ テ ィ ッ ク ロ ジ ッ ク には、 パーシ ャ ル ビ ッ ト フ ァ イ ルが ICAP に送信 さ れ る
前に解析す る 回路を含め る こ と がで き ま す。 エ ラ ーが検出 さ れ る と 、 パーシ ャ ル リ コ ン フ ィ ギ ュ
レーシ ョ ン が停止 し 再試行 さ れ る か、 既知の問題のないパーシ ャ ル ビ ッ ト フ ァ イ ルが代わ り に読
み込まれます。 図 6-4 は、 こ のプ ロ セ ス を示 し てい ます。
96
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーシ ャ ル ビ ッ ト フ ァ イルのイ ン テグ リ テ ィ
X-Ref Target - Figure 6-4
FPGA
Corruption
Buffer
CRC
Verify
Host
Bit Files
ICAP
X12034
図 6-4 : パーシ ャル ビ ッ ト フ ァ イルのエ ラ ー検出
パーシ ャ ル ビ ッ ト フ ァ イ ルには、 イ ン テ グ リ テ ィ をチ ェ ッ ク する ために使用で き る CRC 情報が含
まれます。 ま たは、 ユーザーがカ ス タ ムの CRC 情報を生成 し てパーシ ャ ル ビ ッ ト フ ァ イ ル と 共に
送信す る こ と も で き ます。 こ の方法は、 第 2 章 「よ く 使用 さ れ る アプ リ ケーシ ョ ン」 に説明 さ れ る
「非対称鍵暗号化方式」 のアプ リ ケーシ ョ ン と 類似 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
97
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
パーシ ャル ビ ッ ト ス ト リ ームの CRC チ ェ ッ ク
パーシ ャ ル ビ ッ ト ス ト リ ームはア ク テ ィ ブ デザ イ ンに読み込まれた り 、 ビル ト イ ン CRC チ ェ ッ ク
がビ ッ ト ス ト リ ームの最後ま で実行 さ れなか っ た り す る ため、ビ ッ ト ス ト リ ーム デー タ が FPGA に
読み込ま れ る 前にそれを確認す る CRC チ ェ ッ カーを イ ン プ リ メ ン ト す る こ と をお勧め し ます。 こ
の問題の完全な ソ リ ュ ーシ ョ ン には、 ソ フ ト ウ ェ ア ソ リ ュ ーシ ョ ン と ハー ド ウ ェ ア ソ リ ュ ーシ ョ
ンの両方が必要です。 ソ フ ト ウ ェ ア ソ リ ュ ーシ ョ ンでは、 ブ ロ ッ ク ま たはデー タ フ レームの CRC
値が計算 さ れ、 ビ ッ ト ス ト リ ームにその CRC 値が挿入 さ れます。 ハー ド ウ ェ ア ソ リ ュ ーシ ョ ン で
は、 CRC 値が計算 し 直 さ れ、 ビ ッ ト ス ト リ ームに埋め込まれた ソ フ ト ウ ェ ア値 と 比較 さ れます。
こ の ソ リ ュ ーシ ョ ンは、格納 さ れた ビ ッ ト フ ァ イ ルの イ ン テ グ リ テ ィ に潜在的な リ ス ク があ る 場合
にのみ必要です。 た と えば、 パーシ ャ ル ビ ッ ト フ ァ イ ルのシ ス テ ムへの リ モー ト ア ッ プ ロ ー ド や
放射線ア ッ プセ ッ ト にな り やすい宇宙用アプ リ ケーシ ョ ン な ど で必要にな り ます。
こ れ ら の ソ リ ュ ーシ ョ ンは、 次の図で示 さ れてい ます。
X-Ref Target - Figure 6-5
Software Solution
Original Partial
Bit File
Bit File split
into Sections
CRC generated
for each Section
Partial Bit File
reassembled w/CRC
Hardware Solution
ERROR
DONE
NO
Pass?
BRAM
Packets enter
FPGA
Config Data
stored w/o CRC
YES
ICAP
CRC calculated from
BRAM, check vs. Packet
Shift Data
to ICAP
X12035
図 6-5 : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザイ ンの CRC チ ェ ッ ク
こ の図の上半分は、 ソ フ ト ウ ェ ア ソ リ ュ ーシ ョ ンの概念を示 し てい ます。 こ れは、 ス ク リ プ ト を使
用 し て イ ン プ リ メ ン ト で き ま す。 ま た、 将来の ソ フ ト ウ ェ ア リ リ ー ス に含 ま れ る BitGen で も ソ
リ ュ ーシ ョ ン を提供す る 予定です。
こ の図の下半分は、 ハー ド ウ ェ ア ソ リ ュ ーシ ョ ン の概念を示 し てい ま す。 将来の ソ フ ト ウ ェ ア リ
リ ース では、 BitGen の ソ リ ュ ーシ ョ ン と 連動す る よ う な リ フ ァ レ ン ス デザ イ ン /IP コ ア を提供す る
予定です。
こ れ と 同 じ よ う な ソ リ ュ ーシ ョ ン を使用 し て CRC エ ラ ーが検出 さ れた場合、 デー タ を再送信 し て
問題を修正す る 方法はユーザー自身で見つけ る 必要があ り ます。 デー タ 破損は破損デー タ が読み込
ま れ る 前にわか る ので、 ス タ テ ィ ッ ク ロ ジ ッ ク を リ コ ン フ ィ ギ ュ レ ーシ ョ ンす る 必要はあ り ま せ
ん。
98
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ン フ レーム
コ ン フ ィ ギ ュ レーシ ョ ン フ レーム
Virtex デバ イ ス内のユーザー プ ロ グ ラ マブル機能は、電源投入時に コ ン フ ィ ギ ュ レーシ ョ ン さ れ る
必要のあ る 揮発性 メ モ リ セルで制御 さ れます。 こ れ ら の メ モ リ セルは、 「 コ ン フ ィ ギ ュ レーシ ョ ン
メ モ リ 」 と 総称 さ れ、 LUT 式、 信号配線、 IOB 電圧規格、 お よ びその他デザ イ ン のすべての側面
を定義 し ます。
Virtex アーキ テ ク チ ャ の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ は、デバ イ ス の周囲に タ イ ル状に並んだ フ
レームに含まれます。 こ れ ら の フ レームは、 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ 空間で最 も
小 さ な ア ド レ ス指定可能なセグ メ ン ト なので、すべての動作が コ ン フ ィ ギ ュ レーシ ョ ン フ レーム全
体に影響 し ます。 各デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン フ レーム数は、 該当す る FPGA デバ イ ス
フ ァ ミ リ の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド (Virtex-4 の場合は表 7-1、 Virtex-5 の場合は
表 6-1、 Virtex-6 の場合は表 6-22) を参照 し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル フ レームは、 こ れ ら の コ ン フ ィ ギ ュ レーシ ョ ン フ レーム上に構築 さ れ、 パー
シ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を実行す る 最小の構築ブ ロ ッ ク です。
•
Virtex-6 の基礎領域は高 さ 40 CLB X 幅 1 CLB
•
Virtex-5 の基礎領域は高 さ 20 CLB X 幅 1 CLB
•
Virtex-4 の基礎領域は高 さ 16 CLB X 幅 1 CLB
ブ ロ ッ ク RAM、 IOB、 I/O エ レ メ ン ト (ILOGIC、 OLOGIC、 IODELAY、 DSP48) な ど の別のエ レ
メ ン ト タ イ プ に も 、 同様の基礎領域が あ り ま す。 こ れ ら の基礎領域の サ イ ズ を 検証す る に は、
PlanAhead™ ソ フ ト ウ ェ アの フ ロ アプ ラ ン機能を使用 し て く だ さ い。
PlanAhead のマニ ュ アルの 「フ レーム」 お よ び上記の 「 リ コ ン フ ィ ギ ャ ブル フ レーム」 は、 デバ イ
ス の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド の 「 コ ン フ ィ ギ ュ レーシ ョ ン フ レーム」 と は同 じ 意
味で使用 さ れてい ません。 フ レームは、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの [PR Statistics] タ
ブに示 さ れ る よ う に、 最小の リ コ ン フ ィ ギ ャ ブル構築ブ ロ ッ ク であ り 、 こ れ よ り 小 さ く 分割はで き
ません。 1 つの リ コ ン フ ィ ギ ャ ブル フ レーム よ り も 小 さ いエ リ ア グループ を選択 し た場合で も 、 フ
レーム全体が リ コ ン フ ィ ギ ュ レーシ ョ ン さ れます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに対応する Pblock を描画す る と 、 そのパーテ ィ シ ョ ンの詳細
が [Pblock Properties] ビ ュ ーに表示 さ れます。[Statistics] タ ブには、その Pblock に含まれ る フ レー
ム (領域) 数 と リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの ビ ッ ト ス ト リ ーム サ イ ズの概算が表示 さ れま
す。 Pblock のサ イ ズ を変更す る と 、 こ の情報 も それに合わせて変更 さ れます。
コ ン フ ィ ギ ュ レーシ ョ ン時間
コ ン フ ィ ギ ュ レーシ ョ ンの速度は、 パーシ ャ ル ビ ッ ト フ ァ イ ル と コ ン フ ィ ギ ュ レーシ ョ ン ポー ト
のバン ド 幅に直接関連 し ます。 表 6-1 は、 Virtex アーキ テ ク チ ャ の コ ン フ ィ ギ ュ レーシ ョ ン ポー ト
のバン ド 幅を示 し てい ます。
表 6-1 : Virtex アーキテ ク チ ャの コ ン フ ィ ギ ュ レーシ ョ ン ポー ト の最大バン ド 幅
コ ン フ ィ ギュ
レーシ ョ ン モー ド
最大ク ロ ッ ク レー ト
デー タ 幅
最大バン ド 幅
ICAP
100 MHz
32 ビ ッ ト
3.2 Gbps
SelectMAP モー ド
100 MHz
32 ビ ッ ト
3.2 Gbps
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
99
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
表 6-1 : Virtex アーキテ ク チ ャの コ ン フ ィ ギ ュ レーシ ョ ン ポー ト の最大バン ド 幅
コ ン フ ィ ギュ
レーシ ョ ン モー ド
最大ク ロ ッ ク レー ト
デー タ 幅
最大バン ド 幅
シ リ アル モー ド
100 MHz
1 ビッ ト
100 Mbps
JTAG
66 MHz
1 ビッ ト
66 Mbps
PlanAhead の [PR Statistics] タ ブに レ ポー ト さ れ る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのビ ッ ト ス
ト リ ーム のサ イ ズは、 作成 さ れ る パーシ ャ ル ビ ッ ト フ ァ イ ルのサ イ ズの正確な概算です。 こ の数
値はバ イ ト で表示 さ れ る ので、 ビ ッ ト ス ト リ ームのサ イ ズ を ビ ッ ト で算出する 場合は、 こ れを 8 倍
に し ます。
例 : Virtex-5 デバ イ ス の小 さ いパーシ ャ ル ビ ッ ト フ ァ イ ルには、 200 ス ラ イ ス に ま たが る 領域が含
まれ、 こ の領域は リ コ ン フ ィ ギ ャ ブル フ レーム 5 個 (幅 5 CLB X 高 さ 20 CLB = 100 CLB) が含ま
れ る よ う に描画 さ れてい ます。 コ ン フ ィ ギ ュ レーシ ョ ン時間は、 PlanAhead ソ フ ト ウ ェ アで表示 さ
れ る ビ ッ ト ス ト リ ーム サ イ ズ (29,520 バ イ ト ま たは 236,160 ビ ッ ト ) を使用 し て、 RBT (rawbits)
フ ァ イ ルが生成 さ れ る 前に概算で き ま す。 SelectMAP モー ド ま たは ICAP を使用 し た場合、 こ の
パーシ ャ ル ビ ッ ト フ ァ イ ルは次の時間で読み込む こ と がで き ます。
236,160 ビ ッ ト / 3,200,000,000 bps = 0.0000738 秒
ま たは約 73.8 マ イ ク ロ 秒パーシ ャ ル ビ ッ ト フ ァ イ ルのサ イ ズはフ レーム数 と 共に増加す る ので、
コ ン フ ィ ギ ュ レーシ ョ ン時間はかな り 直線的に上が り ますが、 フ レームの位置お よ び内容に よ っ て
少 し ずつ異な り ます。 ま た、最後の フ レームが読み込まれた後に少量のオーバーヘ ッ ド も あ り ます。
ビ ッ ト ス ト リ ームの正確な長 さ は、 BitGen で -b オプシ ョ ン を使用する と 、 RBT フ ァ イ ルに表示 さ
れます。 こ の数値 と バン ド 幅を使用 し て、 コ ン フ ィ ギ ュ レーシ ョ ン時間の合計を計算 し ます。 上記
の例で作成 さ れた ビ ッ ト ス ト リ ーム のヘ ッ ダは、 次の よ う な RBT ヘ ッ ダにな り ます。 実際の コ ン
フ ィ ギ ュ レーシ ョ ン時間は、 約 75.6 マ イ ク ロ 秒です。
Xilinx ASCII Bitstream
Created by Bitstream L.46
Design name: FFF_routed.ncd;UserID=0xFFFFFFFF
Architecture: virtex5
Part:
5vlx50tff1136
Date:
Mon Feb 14 14:00:59 2011
Bits:
242016
11111111111111111111111111111111
コ ン フ ィ ギ ュ レーシ ョ ンのデバ ッ グ
ICAP イ ン タ ーフ ェ イ ス は、 JTAG や Slave SelectMAP な ど のほかの コ ン フ ィ ギ ュ レーシ ョ ン手段
が使用 さ れ る 場合で も 、 コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス をモニ タ する ために使用で き ます。 実際
に、コ ン フ ィ ギ ュ レーシ ョ ンの ス テー タ ス は読み出 し 命令がな く て も ICAP の O ポー と か ら 自動的
に出力 さ れます。
ICAP ブ ロ ッ ク の O ポー と は 32 ビ ッ ト バ ス ですが、 最下位バ イ ト のみが使用 さ れます。 下位バ イ
ト のマ ッ プは、 次の よ う にな り ます。
100
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンのデバ ッ グ
表 6-2 : ICAP の O ポー ト のビ ッ ト
ビ ッ ト 番号
ス テー タ ス ビ ッ ト
O[7]
CFGERR_B
説明
コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ー ( ア ク テ ィ ブ Low)
0 = コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーが発生
1 = コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーな し
O[6]
DALIGN
同期ワー ド の受信 ( ア ク テ ィ ブ High)
0 = 同期ワー ド の受信な し
1 = イ ン タ ーフ ェ イ ス ロ ジ ッ ク で同期ワー ド の受信
あり
O[5]
RIP
リ ー ド バ ッ ク を実行中 (ア ク テ ィ ブ High)
0 = 処理中の リ ー ド バ ッ ク な し
1 = リ ー ド バ ッ ク を処理中
O[4]
IN_ABORT_B
ABORT を実行中 (ア ク テ ィ ブ Low)
0 = 停止を処理中
1 = 処理中の停止な し
O[3:0]
1
予約済み
こ のバ イ ト の最上位ニブルが ス テー タ ス を レ ポー ト し ま す。 こ れ ら の ス テー タ ス ビ ッ ト は、 同期
ワー ド が受信 さ れたか、 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーが発生 さ れたかを示 し ます。 次の表は、 こ
れ ら の状況に対す る 値を示 し てい ます。
表 6-3 : ICAP 同期ビ ッ ト
O[7:0]
CFGERR
同期ワー ド
9F
同期な し
CFGERR な し
DF
同期あ り
CFGERR な し
5F
同期あ り
CFGERR
1F
同期な し
CFGERR
図 6-6 は、 フル コ ン フ ィ ギ ュ レーシ ョ ンの終了後、 CRC エ ラ ーを含むパーシ ャ ル リ コ ン フ ィ ギ ュ
レーシ ョ ンが実行 さ れ、最後に問題のないパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンが実行 さ れた と こ
ろ を示 し てい ま す。 上記の表 と 下記の説明か ら 、 ICAP の O ポー ト を使用 し て コ ン フ ィ ギ ュ レ ー
シ ョ ン プ ロ セ ス を監視す る 方法がわか り ます。 CRC エ ラ ーが発生 し た場合は、 こ れ ら の信号を コ
ン フ ィ ギ ュ レーシ ョ ン ス テー ト マシ ン で使用 し て、 エ ラ ーか ら 回復す る こ と がで き ます。 こ れ ら
の信号は、ChipScope で も デバ ッ グ目的で コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーを検出す る ために使用で
き ます。 こ の情報を使用す る と 、 ChipScope で も パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの さ ま ざ ま
なポ イ ン ト を確認で き ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
101
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
X-Ref Target - Figure 6-6
図 6-6 : パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンの ChipScope 表示
ChipScope で表示 さ れ る マーカーはそれぞれ次を示 し てい ます。
•
1st_done
最初の フル ビ ッ ト ス ト リ ームの コ ン フ ィ ギ ュ レーシ ョ ンが終了 し た こ と を示 し ます。DONE ピ
ン (波形の done_pad) は High にな り ます。
•
cfgerr
パーシ ャ ル ビ ッ ト ス ト リ ームの読み込み中に CRC エ ラ ーが検出 さ れた こ と を示 し ます。 ス
テー タ ス は O[31:0] (波形の icap_o_top[31:0]) で確認で き ます。
•
Icap_o_top[31:0] は 0x9F か ら 開始 し ます。
•
SYNC ワ ー ド を確認する と 、 Icap_o_top[31:0] は 0xDF に変わ り ます。
•
CRC エ ラ ーを検出す る と 、 Icap_o_top[31:0] は 1 サ イ ク ル間 0x5F にな っ た あ と 、 0x1F
に切 り 替わ り ます。
•
•
INIT_B ピ ンは Low にな り ます (波形の init_pad)。
RCRC
パーシ ャ ル ビ ッ ト ス ト リ ームが再び読み込まれた こ と を示 し ます。RCRC コ マ ン ド は cfgerr ス
テー タ ス を リ セ ッ ト し 、 INIT_B ピ ン (波形の init_pad) のプルダ ウ ン を削除 し ます。
•
•
SYNC ワ ー ド が確認 さ れ る と 、 Icap_o_top[31:0] は 0x1F か ら 0x5F に変更 さ れます。
•
RCRC コ マ ン ド が受信 さ れ る と 、 Icap_o_top[31:0] は 0x5F か ら 0xDF に変更 さ れます。
pr_done
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンが問題な く 終了 し た こ と を示 し ます。
•
102
DESYNC コ マ ン ド が受信 さ れ、 コ ン フ ィ ギ ュ レーシ ョ ン
Icap_o_top[31:0] は 0xDF か ら 0x9F に変更 さ れます。
japan.xilinx.com
エ ラ ーが検出 さ れない場合、
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
コ ン フ ィ ギ ュ レーシ ョ ンのデバ ッ グ
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンではパーシ ャ ル ビ ッ ト フ ァ イ ルすべてが読み込まれ る ま で
CRC が実行 さ れないので、 破損デー タ が既に FPGA に読み込まれて し ま っ てい る 可能性があ る こ
と に注意 し て く だ さ い。 破損がア ド レ ス ビ ッ ト で発生 し てい る 場合は、 ス タ テ ィ ッ ク ロ ジ ッ ク も
破損 し てい る 可能性が あ り ま す。 ス テー タ ス は INIT_B コ ン フ ィ ギ ュ レ ーシ ョ ン レ ジ ス タ ビ ッ ト
で示 さ れ ま す。 高い信頼度のシ ス テ ム が必要な場合は、 パーシ ャ ル ビ ッ ト ス ト リ ーム を コ ン フ ィ
ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス に送信す る 前に CRC チ ェ ッ ク を必ず実行 し て く だ さ い。 読み込
み前にパーシ ャ ル ビ ッ ト ス ト リ ームで CRC チ ェ ッ ク を実行す る 方法については、 こ の章の 「パー
シ ャ ル ビ ッ ト ス ト リ ームの CRC チ ェ ッ ク 」 セ ク シ ョ ン を参照 し て く だ さ い。
CRC エ ラ ーが発生 し た ら 、 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス はデフ ォ ル ト でデバ イ ス の
フル リ コ ン フ ィ ギ ュ レーシ ョ ン を命令 し よ う と し ます。 こ れは、 通常は推奨 さ れません。 こ れを避
け る には、 第 3 章の 「ビ ッ ト フ ァ イ ルの生成」 の方法に従っ て く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
103
第 6 章 : FPGA デバイ スの コ ン フ ィ ギ ュ レーシ ョ ン
104
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
第7章
デザイ ンの注意事項
こ の章では、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン用のデザ イ ン要件お よ びザ イ リ ン ク ス FPGA デ
ザ イ ン ソ フ ト ウ ェ ア ツール内のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン機能について説明 し ます。®
ザ イ リ ン ク ス の FPGA デバ イ ス のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン機能を利用す る には、 ま
ずデザ イ ン仕様を よ く 解析 し 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン に関す る 要件、 特
徴、 制限な ど を考慮す る 必要があ り ま す。 こ れに よ り 、 デザ イ ン プ ロ セ スお よ びデバ ッ グ プ ロ セ
ス の両方が簡素化 さ れ、 潜在的な問題を回避で き ます。
デザイ ン階層
良いデザ イ ン階層手法を使用す る こ と で、FPGA デザ イ ンにパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン
を実行す る 際の複雑 さ や困難な点を軽減で き ます。 明確なデザ イ ン イ ン ス タ ン ス階層に よ り 、 物理
制約お よ び タ イ ミ ン グ制約がシ ンプルにな り ます。 ス タ テ ィ ッ ク と リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間
のバ ウ ン ダ リ の信号に レ ジ ス タ を付け る と 、 タ イ ミ ン グ ク ロ ージ ャ が容易にな り ま す。 ロ ジ ッ ク
は、 同 じ 階層レベルにグループご と に ま と め る 必要があ り ます。
こ れ ら は、 よ く あ る デザ イ ン手法ですが、 標準の FPGA デザ イ ン では使用 さ れない こ と が多々あ り
ます。 部分的に リ コ ン フ ィ ギ ャ ブルなデザ イ ン では、 こ れ ら のデザ イ ン規則に完全に従 う 必要はあ
り ませんが、 規則に従わない こ と で悪影響の出 る こ と も あ り ます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ンは便利なデザ イ ン手法ですが、 デザ イ ンが複雑にな る ため、 特にハー ド ウ ェ アでデバ ッ グす
る 場合に問題 と な る こ と も あ り ます。
デザ イ ン階層の商才については、 次を参照 し て く だ さ い。
•
『Repeatable Results with Design Preservation』 (WP362)
•
『階層デザ イ ン手法ガ イ ド 』 (UG748)
リ コ ン フ ィ ギ ャ ブル モ ジ ュ ール内のデザイ ン エ レ メ ン ト
すべての ロ ジ ッ ク が リ コ ン フ ィ ギ ュ レーシ ョ ン で き る わけではあ り ません。 グ ロ ーバル ロ ジ ッ ク お
よ び ク ロ ッ ク リ ソ ース は、 リ コ ン フ ィ ギ ュ レーシ ョ ン中 も 動作可能な状態に し てお く だけでな く 、
フル デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンの終わ り に起 こ る 初期化シーケ ン ス の影響を受け る よ う に、
ス タ テ ィ ッ ク 領域に配置す る 必要があ り ます。 ス タ テ ィ ッ ク ロ ジ ッ ク に配置す る 必要のあ る ロ ジ ッ
ク は次の と お り です。
•
ク ロ ッ ク 修正ブ ロ ッ ク (PLL、 PMCD、 DCM)
•
一部の ク ロ ッ ク バ ッ フ ァ (BUFG)
BUFR は、 こ の章の 「 ク ロ ッ ク 規則」 セ ク シ ョ ンで説明 さ れ る よ う に、 制限はあ り ますが、 リ
コ ン フ ィ ギ ャ ブル モジ ュ ールに配置で き ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
105
第 7 章 : デザイ ンの注意事項
•
ザ イ リ ン ク ス では、デバ イ ス特有のブ ロ ッ ク は ス タ テ ィ ッ ク ロ ジ ッ ク に配置す る こ と をお勧め
し てい ます。 こ れ ら のエ レ メ ン ト は リ コ ン フ ィ ギ ュ レーシ ョ ン後 も 問題な く 動作す る 可能性は
あ り ま すが、 シ リ コ ン テ ス ト は実行 さ れて い ま せん。 こ れ ら のエ レ メ ン ト に含 ま れ る のは、
BSCAN、 CAPTURE、 DCIRESET、 FRAME_ECC、 ICAP、 KEY_CLEAR、 STARTUP、 お
よ び USR_ACCESS です。
ロ ジ ッ ク のパ ッ ク
一緒にパ ッ ク す る 必要の ロ ジ ッ ク は、 ス タ テ ィ ッ ク ま たは リ コ ン フ ィ ギ ャ ブルに関係な く 、 同 じ グ
ループに配置す る 必要があ り ます。 た と えば、 I/O レ ジ ス タ は I/O ポー ト と 一緒のグループに し ま
す。 パーテ ィ シ ョ ン バ ウ ン ダ リ は、 最適化の障害にな り ます。 プ ロ キ シ ロ ジ ッ ク の挿入に よ り 、 不
適切な結果にな っ た り 、 達成で き ない配線にな っ た り す る ので、 階層バ ウ ン ダ リ を選択す る 際には
注意が必要です。
リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールの I/O
デバ イ ス ピ ンは リ コ ン フ ィ ギ ャ ブル モジ ュ ール内に配置で き る ので、 リ コ ン フ ィ ギ ュ レーシ ョ ン
で き ま す。 リ コ ン フ ィ ギ ャ ブル モジ ュ ールには、 内部 ロ ジ ッ ク をパ ッ ケージ ピ ン に接続す る のに
必要な I/O 回路 (IBUF お よ び OBUF な ど ) が必ず含まれ、 そのポー ト は名前別に ス タ テ ィ ッ ク ロ
ジ ッ ク にのみ接続 さ れてい る 必要があ り ます。
つま り 、 I/O 機能にはモジ ュ ール内にのみ制約を付け る 必要があ り ますが、 完全なデザ イ ンのポー
ト リ ス ト は最上位レベルのデザ イ ン記述に残っ た ま ま にな り ます。サブモジ ュ ール I/O のほかの要
件は、 次の と お り です。
•
•
HDL
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに含まれ る 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールには、同
じ セ ッ ト のモジ ュ ール ポー ト が必要です。
•
外部ポー ト 宣言は、 すべて最上位レベルで作成 さ れ る 必要があ り ます。
•
自動 IOB 挿入は、 最上位レベルの合成ではオン、 モジ ュ ール レベルの合成ではオ フ に し
ます。
•
合成ツールでは、 サブモジ ュ ールの ピ ンの宣言が別の方法で処理 さ れます。 XST お よ び
Synplify の例は、 こ の後のサブセ ク シ ョ ンに記述 し てい ます。
UCF
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ールに配置 さ れ る すべての I/O には、 ロ ケーシ ョ ン制約が必要
です。 ロ ケーシ ョ ン制約は、 さ ま ざ ま なモジ ュ ール間で一貫性す る よ う に、 最上位レベル
の UCF に記述する 必要があ り ますが、 必要であれば、 サブモジ ュ ールの UCF に記述す る
こ と も で き ます。
•
た と えば、 PlanAhead で リ コ ン フ ィ ギ ャ ブル モジ ュ ールを フ ロ アプ ラ ン し て、 リ コ ン フ ィ
ギ ャ ブル パーテ ィ シ ョ ン内の 1 つの リ コ ン フ ィ ギ ャ ブル モジ ュ ールの I/O の位置を変更
し た場合、その リ コ ン フ ィ ギ ャ ブル モジ ュ ール ( ア ク テ ィ ブ リ コ ン フ ィ ギ ャ ブル モジ ュ ー
ル) のみの位置が UCF で変更 さ れ ま す。 こ の後、 その リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ
ンのそれ以外の リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべてで、その I/O に新 し い位置へ制約を
付け る 必要があ り ます。
•
リ コ ン フ ィ ギ ャ ブル領域には、 IOB サ イ ト を含む AREA_GROUP RANGE 制約 と 、 必要
に応 じ て ILOGIC ま たは OLOGIC な ど のほかの タ イ プの制約を含め る 必要があ り ます。
次の コ ー ド 例では、 port_in ポー ト と port_out ポー ト が最上位 レ ベルか ら リ コ ン フ ィ ギ ャ ブル モ
ジ ュ ールの I/O ロ ジ ッ ク へ接続 さ れ、 clk、 reset、 data_in、 data_out ポー ト が最上位 レ ベルの I/O
106
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
デザイ ン階層
ロ ジ ッ ク に接続 さ れてい ま す。 ス タ テ ィ ッ ク か ら サブモジ ュ ールを イ ン ス タ ン シエー ト す る には、
port_in お よ び port_out への リ フ ァ レ ン ス を含め る 必要があ り 、 サブモジ ュ ールには該当ポー ト へ
の I/O ロ ジ ッ ク の イ ン ス タ ン シエーシ ョ ン を含め る 必要があ り ます。
•
XST
•
XST では、 BUFFER_TYPE 属性を使用 し て I/O バ ッ フ ァ を挿入する か、 挿入 し ないか を
指定で き ます。 XST を使用す る のに推奨 さ れ る フ ロ ーでは、 合成ツールで最上位レベルに
I/O を挿入 し (デフ ォ ル ト )、 こ の属性を使用 し て、 最上位レベルで I/O バ ッ フ ァ を受信 し
ない こ と を I/O に示 し ま す。 こ の属性は最上位 レ ベル ポー ト の定義でポー ト に適用 し ま
す。 IBUF お よ び OBUF な ど の I/O コ ン ポーネ ン ト は、 サブモジ ュ ールの HDL で イ ン ス
タ ン シエー ト す る 必要があ り ます。
次の コ ー ド は、 XST の Verilog お よ び VHDL の例です。
//XST Verilog example
//top level HDL
module top (clk, reset, data_in, data_out, port_in, port_out);
input clk, reset, data_in
(* buffer_type = “none” *) input port_in;
output data_out
(* buffer_type = “none” *) output port_out;
...
--XST VHDL example
–-top level HDL
...
entity top is
port(
clk
: in std_logic;
reset
: in std_logic;
data_in : in std_logic;
data_out : out std_logic;
port_in : in std_logic;
port_out : out std_logic
);
attribute buffer_type: string;
attribute buffer_type of port_in : signal is "none";
attribute buffer_type of port_out : signal is "none";
end my_rm;
...
•
Synplicity
•
Synplicity では、 こ の機能が syn_black_box お よ び black_box_pad_pin 制約を使用 し てサ
ポー ト さ れます。 こ こ での方法は異な り 、 すべてのポー ト は最上位レベルに リ ス ト さ れた
ま ま ですが、Synplicity にはブ ラ ッ ク ボ ッ ク ス モジ ュ ールの定義で I/O バ ッ フ ァ がサブモ
ジ ュ ール ( ま だ最上位レベルの HDL にあ り ) で検出 さ れた こ と が知 ら さ れます。XST の場
合 と 同様、 リ コ ン フ ィ ギ ャ ブル I/O ロ ジ ッ ク は各 リ コ ン フ ィ ギ ャ ブル モジ ュ ールで イ ン ス
タ ン シエー ト さ れ る 必要があ り ま す。 次の コ ー ド 例は、 Synplicity の Verilog フ ァ イ ル と
VHDL フ ァ イ ルを それぞれ示 し てい ます。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
107
第 7 章 : デザイ ンの注意事項
//Synplicity Verilog example
//reconfigurable module declaration within Top level HDL
module my_rm (clk, reset, data_in, data_out, port_in, port_out)
/*synthesis syn_black_box black_box_pad_pin="port_in, port_out"*/;
input clk, reset, data_in;
input port_in;
output data_out;
output port_out;
endmodule
--Synplicity VHDL example
–-reconfigurable module entity declaration within Top level HDL
...
entity my_rm is
port(
clk
: in std_logic;
reset
: in std_logic;
data_in : in std_logic;
data_out : out std_logic;
port_in : in std_logic;
port_out : out std_logic
);
attribute syn_black_box : boolean;
attribute syn_black_box of my_rm: component is true;
attribute black_box_pad_pin : string;
attribute black_box_pad_pin of my_rm: component is "port_in,
port_out";
end my_rm;
...
--Synplicity VHDL example
--reconfigurable module entity declaration within Top level HDL
...
entity my_rm is
port(
clk
: in std_logic;
reset
: in std_logic;
data_in
: in std_logic;
data_out : out std_logic;
port_in
: in std_logic;
port_out : out std_logic
);
attribute
attribute
attribute
attribute
syn_black_box : boolean;
syn_black_box of my_rm: component is true;
black_box_pad_pin : string;
black_box_pad_pin of my_rm: component is "port_in, port_out";
end my_rm;
...
108
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
デザイ ン階層
IOB での I/O レ ジ ス タ のパ ッ ク
入力お よ び出力レ ジ ス タ は、 で き る だけ関連す る 入力ま たは出力バ ッ フ ァ と 同 じ パーテ ィ シ ョ ンに
含め る こ と をお勧め し ます。 こ れに よ り 、 レ ジ ス タ が I/O ロ ジ ッ ク に接続 さ れ る と 、 イ ンプ リ メ ン
テーシ ョ ン ツールで認識 さ れ る よ う にな り ます。 レ ジ ス タ と 関連バ ッ フ ァ 間にパーテ ィ シ ョ ン バ
ウ ン ダ リ があ る と 、 イ ン プ リ メ ン テーシ ョ ン ツールではパーテ ィ シ ョ ン バ ウ ン ダ リ を超え る 場合
認識 さ れないので、 I/O ロ ジ ッ ク に レ ジ ス タ が正 し く 配置 さ れません。
正 し く 配置 さ れない場合、 次の規則に従っ てい る と 、 イ ンプ リ メ ン テーシ ョ ン ツールで こ の問題が
処理 さ れます。
•
レ ジ ス タ には、 UCF 制約の IOB=FORCE を指定す る 必要があ り ます。 こ れに よ り 、 パーテ ィ
シ ョ ン バ ウ ン ダ リ を介 し て レ ジ ス タ が I/O バ ッ フ ァ に接続 さ れてい る こ と が ツールで認識 さ
れ、 I/O ロ ジ ッ ク の レ ジ ス タ (ILOGIC/OLOGIC) を配置で き る よ う にな り ます。 IOB=FORCE
を使用す る と 、 レ ジ ス タ が I/O ロ ジ ッ ク に配置で き な い場合に イ ン プ リ メ ン テーシ ョ ン でエ
ラ ーにな り ます。 こ れは、 レ ジ ス タ が I/O ロ ジ ッ ク に配置 さ れ る 必要のあ る 場合 ( レ ジ ス タ の
ク ロ ッ ク が BUFIO か ら 供給 さ れ る 場合や イ ン タ ーフ ェ イ ス の タ イ ミ ン グが固定遅延を必要 と
す る 場合な ど ) に必要な機能です。 こ の よ う な場合、 map -pr b オプシ ョ ン を使用 し て も フ ラ ッ
ト フ ロ ーの場合やバ ッ フ ァ と レ ジ ス タ が同 じ パーテ ィ シ ョ ンにあ る 場合 と 違い、 I/O ロ ジ ッ ク
に レ ジ ス タ が配置 さ れません。
•
IOB=FORCE
制約はレ ジ ス タ の イ ン ス タ ン ス名にする 必要があ り ます
(INST
"rp_module/out1_ff" IOB=FORCE;)。 こ の制約は レ ジ ス タ の出力ま たは入力ネ ッ ト には適用 し
ないで く だ さ い。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの AREA_GROUP 制約には、入力/出力レ ジ ス タ が配置 さ
れ る I/O ロ ジ ッ ク を含め る 必要があ り ます。 た と えば、 レ ジ ス タ に接続 さ れ る I/O バ ッ フ ァ に
関連す る ILOGIC/OLOGIC を含む RANGE 値を必ず設定する 必要があ り ます。 I/O ロ ジ ッ ク
サ イ ト が リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの AREA_GROUP には属 さ ない場合、 ツールで
はそのサ イ ト を使用で き ない よ う にな り ます ( ま たはパーシ ャ ル ビ ッ ト ス ト リ ームにそのサ イ
ト が含まれません)。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの出力ポー ト には PARTITION_PIN_DIRECT_ROUTE
制約が設定 さ れ、 バ ッ フ ァ と レ ジ ス タ 間にプ ロ キ シ ロ ジ ッ ク が挿入 さ れない よ う にな り ます (
こ れに よ り 、 レ ジ ス タ が I/O ロ ジ ッ ク にパ ッ ク さ れ る の を回避で き ます)。 ま た、 こ れに よ り 、
こ の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に関連す る すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ール
に同 じ IOB=FORCE 制約が設定 さ れ、 こ の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン のブ ラ ッ ク
ボ ッ ク ス リ コ ン フ ィ ギ ャ ブル モジ ュ ールの生成機能がオ フ にな り ます。
デザイ ン イ ン ス タ ン スの階層
最 も 簡潔なのは、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を最上位レベル モジ ュ ールに イ ン ス タ ン シ
エー ト す る 方法です。各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンはそれぞれ 1 つの イ ン ス タ ン ス に対応
し てい る 必要があ り ます。 イ ン ス タ ン ス には、 それが関連付け ら れた複数のモジ ュ ールが含まれま
す。
リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールのサブ モ ジ ュ ール
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの ロ ジ ッ ク はすべて同 じ デ ィ レ ク ト リ に保存 さ れ る 必要が あ り ま
す。 リ コ ン フ ィ ギ ャ ブル モジ ュ ールにサブモジ ュ ール ネ ッ ト リ ス ト フ ァ イ ルが必要な場合、 それ
ら の フ ァ イ ルがルー ト の リ コ ン フ ィ ギ ャ ブル モジ ュ ール ネ ッ ト リ ス ト と 同 じ ロ ーカル フ ォ ルダに
ない と 、 PlanAhead™ ソ フ ト ウ ェ ア で読み込 ま れ ま せん。 PlanAhead では、 各 コ ン フ ィ ギ ュ レ ー
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
109
第 7 章 : デザイ ンの注意事項
シ ョ ン を制約付け し 、 イ ンプ リ メ ン ト す る ために、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべての内容が
必要にな り ます。
ほかのネ ッ ト リ ス ト ( た と えば、 IP コ ア ネ ッ ト リ ス ト ) を ほかのデ ィ レ ク ト リ か ら 統合す る 必要の
あ る 場合は、 ngcbuild ユーテ ィ リ テ ィ を使用す る と 、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールをパーシ ャ ル
リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト で簡単に参照 さ れ る よ う に 1 つのネ ッ ト リ ス ト に ま と め
る こ と がで き ます。 NGCBuild では、 EDIF や NGC ソ ース フ ァ イ ルが ngdbuild で有効なオプシ ョ
ン セ ッ ト (-sd お よ び -uc) と 共に読み込ま れ、 1 つの制約がア ノ テー ト さ れた NGC フ ァ イ ルが出
力 さ れます。
110
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
ク ロ ッ ク規則
ク ロ ッ ク規則
こ のセ ク シ ョ ン では、 グ ロ ーバル ク ロ ッ ク と リ ージ ョ ナル ク ロ ッ ク の規則について、 それぞれ説
明 し ます。
グ ローバル ク ロ ッ ク
特定の リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に含ま れ る リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべての ク
ロ ッ ク 情報は最初の イ ンプ リ メ ン テーシ ョ ン段階ではわか ら ないので、パーシ ャ ル リ コ ン フ ィ ギ ュ
レーシ ョ ン ツールではその リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのパーテ ィ シ ョ ン ピ ン を駆動す る
各 BUFG 出力を AREA GROUP で囲んだすべての ク ロ ッ ク 領域にあ ら か じ め配線 (前配線) し ま
す。 つ ま り 、 こ れ ら の ク ロ ッ ク 領域の ク ロ ッ ク ス パ イ ンは、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
がその領域に ロ ー ド を持つか ど う かに関係な く 、 ス タ テ ィ ッ ク ロ ジ ッ ク では使用で き ない可能性が
あ り ます。
図 7-1 の例では、 配置前に icap_clk が X0Y1、 X0Y2、 X0Y3 と い う ク ロ ッ ク 領域に配線 さ れてい
る ので、 ス タ テ ィ ッ ク ロ ジ ッ ク はその領域のそれ以外の ク ロ ッ ク スパ イ ン を使用で き ます。
X-Ref Target - Figure 7-1
図 7-1 : グローバル ク ロ ッ ク から リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンへの前配線
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン を駆動する グ ロ ーバル ク ロ ッ ク 数が多い場合は、完全な ク ロ ッ
ク 領域を囲むエ リ ア グループ を作成 し て、 ス タ テ ィ ッ ク ロ ジ ッ ク を配置配線 し やす く し て く だ さ
い。 各領域の ク ロ ッ ク スパ イ ンの数については、 http://japan.xilinx.com/support/documentation か
ら タ ーゲ ッ ト デバ イ ス のユーザー ガ イ ド を参照 し て く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
111
第 7 章 : デザイ ンの注意事項
リ ージ ョ ナル ク ロ ッ ク
パーテ ィ シ ョ ン ピ ン を駆動す る ス タ テ ィ ッ ク ロ ジ ッ ク の BUFR には、 プ ロ キ シ ロ ジ ッ ク が挿入 さ
れ ます。 こ の ロ ジ ッ ク は、 ス タ テ ィ ッ ク ロ ジ ッ ク か ら リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン ま での
その他すべてのネ ッ ト の場合 と 同 じ よ う に、 異な る コ ン フ ィ ギ ュ レーシ ョ ン間の定留点を保証す る
ために必要です。 プ ロ キ シ ロ ジ ッ ク は リ ージ ョ ナル ク ロ ッ ク に遅延を追加 し ます。 こ のため、 タ イ
ミ ン グに悪影響が出 る こ と があ り ます。
タ イ ミ ン グ の悪化を防 ぐ には、 BUFR と それ ら の ロ ー ド すべてが、 ス タ テ ィ ッ ク で も リ コ ン フ ィ
ギ ャ ブルで も 同 じ パーテ ィ シ ョ ン内にな る よ う に制約を付けて く だ さ い。 こ れに よ り 、 リ ージ ョ ナ
ル ク ロ ッ ク の ロ ー ド 間の ス キ ュ ーを最小限に抑え る こ と がで き 、 タ イ ミ ン グ を満たす可能性が上が
り ます。
リ ージ ョ ナル ク ロ ッ ク には、 3 つのサポー ト さ れ る Virtex® アーキテ ク チ ャ それぞれで異な る 制限
があ り ます。
•
Virtex-4
リ ージ ョ ナル ク ロ ッ ク にはプ ロ キ シ ロ ジ ッ ク は挿入 さ れず、 リ ージ ョ ナル ク ロ ッ ク スパ イ ン
は前配線 さ れます。 スパ イ ンは、 その ク ロ ッ ク スパ イ ン を必要 と す る 各 ク ロ ッ ク 領域へ前配線
さ れます。 た と えば、 リ ージ ョ ナル ク ロ ッ ク が 2 つの ク ロ ッ ク 領域部分を含む リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ンのポー ト を駆動す る 場合、 リ ージ ョ ナル ク ロ ッ ク スパ イ ンは両方の ク
ロ ッ ク 領域でその リ ージ ョ ナル ク ロ ッ ク 用に予約 さ れます。各 ク ロ ッ ク 領域で使用で き る リ ー
ジ ョ ナル ク ロ ッ ク スパ イ ンは 2 つだけなので、 リ ージ ョ ナル ク ロ ッ ク で駆動 さ れ る リ コ ン
フ ィ ギ ャ ブル パーテ ィ シ ョ ンの領域がで き る だけ ク ロ ッ ク 領域のバ ウ ン ダ リ に対応す る よ う
に し て く だ さ い。ま た、BUFR は特定の BUFR 位置に指定 さ れ る よ う に制約を付けて く だ さ い。
リ ージ ョ ナル ク ロ ッ ク の制限については、 『Virtex-4 FPGA ユーザー ガ イ ド 』 (UG070) の 「 ク
ロ ッ ク リ ソ ース」 の章を参照 し て く だ さ い。
•
Virtex-5
プ ロ キ シ ロ ジ ッ ク は ス タ テ ィ ッ ク と リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン間の リ ージ ョ ナル ク
ロ ッ ク に挿入 さ れます。プ ロ キ シ ロ ジ ッ ク は リ ージ ョ ナル ク ロ ッ ク に遅延を追加 し ます。 こ の
ため、 タ イ ミ ン グに悪影響が出 る こ と があ り ます。 タ イ ミ ン グの悪化を防ぐ には、 BUFR と そ
れ ら の ロ ー ド すべてが、 ス タ テ ィ ッ ク で も リ コ ン フ ィ ギ ャ ブルで も 同 じ パーテ ィ シ ョ ン内にな
る よ う に制約を付けて く だ さ い。 こ れに よ り 、 リ ージ ョ ナル ク ロ ッ ク の ロ ー ド 間の ス キ ュ ーを
最小限に抑え る こ と がで き 、 タ イ ミ ン グ を満たす可能性が上が り ます。 ま た、 BUFR は特定の
BUFR 位置に指定 さ れ る よ う に制約を付けて く だ さ い。その他すべての リ ージ ョ ナル ク ロ ッ ク
の制限が適用 さ れます。リ ージ ョ ナル ク ロ ッ ク の制限については、『Virtex-5 FPGA ユーザー ガ
イ ド 』 (UG190) の 「 ク ロ ッ ク リ ソ ース」 の章を参照 し て く だ さ い。
•
Virtex-6
リ ージ ョ ナル ク ロ ッ ク にはプ ロ キ シ ロ ジ ッ ク は挿入 さ れず、 リ ージ ョ ナル ク ロ ッ ク スパ イ ン
は前配線 さ れます。 スパ イ ンは、 その ク ロ ッ ク スパ イ ン を必要 と す る 各 ク ロ ッ ク 領域へ前配線
さ れます。 た と えば、 リ ージ ョ ナル ク ロ ッ ク が 2 つの ク ロ ッ ク 領域部分を含む リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ンのポー ト を駆動す る 場合、 リ ージ ョ ナル ク ロ ッ ク スパ イ ンは両方の ク
ロ ッ ク 領域でその リ ージ ョ ナル ク ロ ッ ク 用に予約 さ れます。
Virtex-6 は、 同 じ ク ロ ッ ク 領域内に複数の BUFR 列を持つ最初のアーキ テ ク チ ャ です。 パー
シ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンでは、1 つの ク ロ ッ ク 領域内で使用 さ れ る すべての BUFR が
同 じ パーテ ィ シ ョ ンに含まれ る 必要があ り ます。た と えば、外部の BUFR が内部 BUFR と 同 じ
ク ロ ッ ク 領域で使用 さ れ る 場合、 ど ち ら も ス タ テ ィ ッ ク 内に含まれ る か、 同 じ リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ン内に含まれてい る 必要があ り ます。リ ージ ョ ナル ク ロ ッ ク の制限について
は、 『Virtex-6 FPGA ク ロ ッ ク リ ソ ース ユーザー ガ イ ド 』 (UG362) を参照 し て く だ さ い。
112
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
ア ク テ ィ ブ Low の リ セ ッ ト と ク ロ ッ ク イ ネーブル
ア ク テ ィ ブ Low の リ セ ッ ト と ク ロ ッ ク イ ネーブル
ザ イ リ ン ク ス FPGA アーキ テ ク チ ャ には、 制御信号 ( リ セ ッ ト ま たは ク ロ ッ ク イ ネーブル) に ロ ー
カル イ ンバー タ ーがあ り ません。
次は、 リ セ ッ ト を例に説明 し てい ますが、 ク ロ ッ ク イ ネーブルで も 同 じ です。
デザ イ ンでア ク テ ィ ブ Low の リ セ ッ ト が使用 さ れ る 場合、信号を反転 さ せ る のに LUT を使用す る
必要があ り ます。 すべてのア ク テ ィ ブ Low の リ セ ッ ト を使用す る パーテ ィ シ ョ ン のないデザ イ ン
では、 複数の LUT が推論 さ れ ま すが、 こ れ ら は 1 つの LUT に ま と めて、 I/O エ レ メ ン ト へプ ッ
シ ュ す る こ と がで き ます (LUT は削除 さ れ ます)。 high と low の両方を使用す る パーテ ィ シ ョ ンの
ないデザ イ ンでは、 LUT イ ンバー タ ーをデザ イ ンに残っ た 1 つの LUT に ま と め る こ と がで き ます
が、配線お よ び リ セ ッ ト ネ ッ ト の タ イ ミ ン グにはあ ま り 影響 し ません (LUT の出力はグ ロ ーバル リ
ソ ース に置いた ま ま にで き ます)。 ただ し 、 パーテ ィ シ ョ ンにア ク テ ィ ブ Low の リ セ ッ ト を使用す
る デザ イ ンの場合、 統合 も 分割 も で き ないパーテ ィ シ ョ ン内部で、 推論 さ れ る イ ンバー タ ーを取得
可能です。 こ れに よ り 、 グ ロ ーバル リ ソ ース に リ セ ッ ト を置 く こ と は不可能にな る ので、 リ セ ッ ト
タ イ ミ ン グが悪 く な る こ と があ り 、 デザ イ ンが既に混線 し てい る 場合は配線問題 も 発生す る こ と が
あ り ます。
こ れ を 回 避 す る 最 適 な 方法 は、 ア ク テ ィ ブ Low の 制御信号 を 使用 し な い こ と で す が、 AXI
(Advanced eXtensible Interface) イ ン タ ーフ ェ イ ス を含む IP コ ア を使用する 場合な ど、 それが無理
な こ と も あ り ます。 こ う い っ た場合は、 ア ク テ ィ ブ Low の リ セ ッ ト を最上位レベルの信号に割 り
当て、 その新 し い信号をデザ イ ンの ど こ かで使用 し ます。
例:
reset_n <= !reset;
すべての場合に reset_n 信号を使用 し ます。 信号ま たはポー ト に !reset は割 り 当てないで く だ さ い。
こ の結果、 LU T はデザ イ ン全体の リ セ ッ ト ネ ッ ト 用にのみ推論 さ れ る ので、 デザ イ ンのパフ ォー
マ ン ス にはあ ま り 影響 し ません。
デ カ ッ プ リ ング機能
リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク は FPGA デバ イ ス の動作中に変更で き る ので、 リ コ ン フ ィ ギ ャ ブル
モジ ュ ールの出力に接続 さ れ る ス タ テ ィ ッ ク ロ ジ ッ ク は、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン
中の リ コ ン フ ィ ギ ャ ブル モジ ュ ールか ら のデー タ を無視す る 必要があ り ます。 リ コ ン フ ィ ギ ャ ブル
モジ ュ ールは、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンが完了 し て リ コ ン フ ィ ギ ュ レーシ ョ ン さ れた
ロ ジ ッ ク が リ セ ッ ト さ れ る ま で、 有効なデー タ を出力 し ません。 こ の問題を回避す る のに よ く 使用
さ れ る のは、 リ コ ン フ ィ ギ ャ ブル モ ジ ュ ールか ら のすべての出力信号 ( イ ン タ ー フ ェ イ ス の ス タ
テ ィ ッ ク 側) に レ ジ ス タ を付け る 方法です。 イ ネーブル信号を使用す る と 、 完全に リ コ ン フ ィ ギ ュ
レーシ ョ ン さ れ る ま で ロ ジ ッ ク を隔離で き ます。
ス タ テ ィ ッ ク 部分には、 デー タ お よ び イ ン タ ーフ ェ イ ス管理に必要な ロ ジ ッ ク が含まれてい る 必要
があ り 、 ハン ド シ ェ ー ク や イ ン タ ーフ ェ イ ス デ ィ ス エーブル (バ ス構造で無効な ト ラ ンザ ク シ ョ ン
を回避す る ために必要な場合あ り ) な ど の機能を イ ンプ リ メ ン ト で き ます。 パーシ ャ ル リ コ ン フ ィ
ギ ュ レ ーシ ョ ン モジ ュ ールのダ ウ ン タ イ ム パ フ ォ ーマ ン ス の影響 ( リ コ ン フ ィ ギ ュ レ ーシ ョ ン中
ま たは リ コ ン フ ィ ギ ュ レーシ ョ ン後のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン モジ ュ ールに含ま れ
る 共通 リ ソ ース の使用不能状態) について考慮す る 際に も 便利です。
リ コ ン フ ィ ギ ュ レーシ ョ ンが終了 し た ら 、 リ コ ン フ ィ ギ ュ レーシ ョ ン済みの ロ ジ ッ ク の ロ ーカル リ
セ ッ ト を アサー ト し 、 問題のない既知の開始ス テー ト にな る よ う にする 必要があ り ます。 フル デバ
イ ス コ ン フ ィ ギ ュ レーシ ョ ン と 異な り 、 ロ ジ ッ ク を初期ス テー ト に強制的に指定す る GSR ( グ ロ ー
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
113
第 7 章 : デザイ ンの注意事項
バル セ ッ ト リ セ ッ ト ) や GTS ( グ ロ ーバル ト ラ イ ス テー ト ) な ど の専用フ ァ ン ク シ ョ ンはあ り ませ
ん。 リ コ ン フ ィ ギ ュ レーシ ョ ン フ レームの周囲の ロ ジ ッ ク は リ コ ン フ ィ ギ ュ レーシ ョ ン中に動作す
る ので、 新規 ロ ジ ッ ク が使用のために解除 さ れていて も 、 ス テー ト や動作は予測で き ません。 こ れ
は汎用フ ァ ブ リ ッ ク ロ ジ ッ ク と 同様、 I/O ロ ジ ッ ク に も 該当 し ます。
デザイ ンの リ ビ ジ ョ ン チ ェ ッ ク
第 6 章 「FPGA デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン」 の説明の よ う に、 パーシ ャ ル ビ ッ ト ス ト リ ー
ムには、 プ ロ グ ラ ム情報 と その他の情報が少 し 含まれます。 ビ ッ ト ス ト リ ームの タ ーゲ ッ ト ロ ケー
シ ョ ンは指定す る 必要はあ り ま せんが ( ダ イ ロ ケーシ ョ ン はそれが ビ ッ ト フ ァ イ ルの一部で あ る
こ と を指定す る と 決定 さ れ ます)、 ハー ド ウ ェ アでは こ のパーシ ャ ル ビ ッ ト ス ト リ ーム と 現在動作
中のデザ イ ン と の互換性についてはチ ェ ッ ク さ れ ま せん。 パーシ ャ ル ビ ッ ト ス ト リ ーム を リ コ ン
フ ィ ギ ャ ブル モジ ュ ールの異な る リ ビ ジ ョ ン を使用 し て イ ン プ リ メ ン ト さ れなか っ た ス タ テ ィ ッ
ク デザ イ ンに読み込む と 、 予測不可能な動作にな る こ と があ り ます。
パーシ ャ ル ビ ッ ト ス ト リ ームには、 特定のデザ イ ン、 リ ビ ジ ョ ンお よ びモジ ュ ールな ど を示す独自
の識別子を先頭に付け てお く こ と をお勧め し ま す。 識別子は コ ン フ ィ ギ ュ レ ーシ ョ ン コ ン ト ロ ー
ラ ーで認識 さ れ、 そのパーシ ャ ル ビ ッ ト ス ト リ ーム と 既存デザ イ ン と の互換性が確認 さ れます。 不
一致が検出 さ れ る と 、互換性のない ビ ッ ト ス ト リ ームは コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ ーに読み込
ま れ る 前 に 拒否 さ れ ま す。 こ の 機能 は 必ずデ ザ イ ン に 含 め る 必要 が あ り 、 『PRC/EPRC: Data
Integrity and Security Controller for Partial Reconfiguration』 (XAPP887) で説明 さ れ る よ う に、 暗
号解読 と CRC チ ェ ッ ク と 連動 し ます。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バウン ダ リ の定義
パーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン は、 フ レ ーム ご と に実行 さ れ ま す。 こ のため、 パーシ ャ ル
ビ ッ ト フ ァ イ ルが作成 さ れ る 場合は、 それっ ぞれ別の数の コ ン フ ィ ギ ュ レーシ ョ ン フ レーム が使
用 さ れます。 パーテ ィ シ ョ ンの物理領域が定義 さ れ る と 、 PlanAhead ソ フ ト ウ ェ アでは消費 さ れ る
リ コ ン フ ィ ギ ャ ブ ル 領 域 数 と 対 応 す る ビ ッ ト ス ト リ ー ム 容 量 の 概 算 が レ ポ ー ト さ れ ま す。
PlanAhead の概算は、 2 ~ 3 % の誤差内で計算 さ れます。
パーテ ィ シ ョ ン バ ウ ン ダ リ は、 リ コ ン フ ィ ギ ャ ブル フ レーム バ ウ ン ダ リ と 揃え る 必要はあ り ませ
んが、 揃っ てい る 場合は最 も 効率的な配置配線結果にな り ます。 ス タ テ ィ ッ ク ロ ジ ッ ク は次の条件
下にあ る 限 り 、 リ コ ン フ ィ ギ ュ レーシ ョ ン さ れ る フ レーム内に含め る こ と がで き ます。
•
Pblock で定義 さ れ る エ リ ア グループの外部にあ る (LOC 制約で内部に強制的に指定 さ れない
場合)、 お よ び
•
ブ ロ ッ ク RAM、 分散 (LUT) RAM ま たは SRL な ど のダ イ ナ ミ ッ ク エ レ メ ン ト を含ま ない場
合
ス タ テ ィ ッ ク ロ ジ ッ ク が リ コ ン フ ィ ギ ュ レーシ ョ ン さ れた フ レーム内に配置 さ れ、 その ス タ テ ィ ッ
ク ロ ジ ッ ク の機能はその ま ま記述 し 直 さ れ、 グ リ ッ チがない こ と が保証 さ れてい る 場合
T や L 型な ど の規格外の形のパーテ ィ シ ョ ンは、 使用で き ますが、 お勧め し ません。 こ れは、 配線
リ ソ ース は こ れ ら の領域内に完全に含まれ る 必要があ り 、 こ の よ う な形の領域には配置配線 し に く
いか ら です。 パーテ ィ シ ョ ンのバ ウ ン ダ リ 同士の接着 も 可能ですが、 お勧め し ません。 こ れは、 分
離す る こ と で、潜在的な配線の制限に関す る 問題を回避で き る こ と があ る か ら です。リ コ ン フ ィ ギ ャ
ブル パーテ ィ シ ョ ン のネ ス ト や重複 (パーテ ィ シ ョ ン内のパーテ ィ シ ョ ン ) はで き ません。 デザ イ
ン ルール チ ェ ッ ク ([Tools] → [Run DRC]) を実行す る と 、 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン
プ ロ ジ ェ ク ト のパーテ ィ シ ョ ンお よ び設定に問題がないか ど う か確認で き ます。
114
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
プ ロキシ ロ ジ ッ ク
作成 さ れ る パーシ ャ ル ビ ッ ト フ ァ イ ルは、ユーザーの設定 し た AREA_GROUP RANGE 制約に基
づいてい ます。 で き る だけ小 さ い容量の ビ ッ ト フ ァ イ ルを生成する には、 複雑な構造やエ ラ ーを避
け、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン の リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべてに存在す る エ レ
メ ン ト に対 し てのみ AREA_GROUP RANGE 制約を定義 し ま す。 PlanAhead を使用す る 場合は、
[Pblock Properties] → [General] で 不必要 な エ レ メ ン ト タ イ プ を オ フ に し ま す (67 ペー ジ の
図 4-18)。
各物理的 リ コ ン フ ィ ギ ャ ブル フ レーム に含め る こ と ので き る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン
は 1 つだけです。
リ コ ン フ ィ ギ ャ ブル フ レームは リ コ ン フ ィ ギ ュ レーシ ョ ン可能な最小サ イ ズの物理領域で、複数の
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンか ら の ロ ジ ッ ク は含め る こ と がで き ません。複数の リ コ ン フ ィ
ギ ャ ブル パーテ ィ シ ョ ン か ら の ロ ジ ッ ク が含ま れ る と 、 不正な リ コ ン フ ィ ギ ャ ブル モジ ュ ールか
ら の情報で領域が リ コ ン フ ィ ギ ュ レーシ ョ ン さ れて し ま う ので、 競合が発生 し ます。 ソ フ ト ウ ェ ア
は、 こ の よ う な潜在的な問題を回避す る よ う に設計 さ れてい ます。
プ ロキシ ロ ジ ッ ク
パーテ ィ シ ョ ン ピ ンは ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク 間の イ ン タ ーフ ェ イ ス と
し て定義 さ れます。こ の定義に必要な特定の ロ ジ ッ ク ま たは タ グはあ り ません。こ れ ら は ソ フ ト ウ ェ
アで自動的に処理 さ れます。 ほ と ん ど の場合、 こ の ノ ー ド を表すために、 こ の イ ン タ ーフ ェ イ ス ポ
イ ン ト に LUT1 が挿入 さ れます。 こ の LUT は ス タ テ ィ ッ ク ロ ジ ッ ク の階層レベルにあ る ので、 す
べての コ ン フ ィ ギ ュ レーシ ョ ンで同 じ 論理お よ び物理 ロ ケーシ ョ ンにあ り ます。 物理 ロ ケーシ ョ ン
自体は接続 さ れ る リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン内にあ る ので、 リ コ ン フ ィ ギ ュ レーシ ョ ン で
は リ コ ン フ ィ ギ ャ ブル モジ ュ ール内部の ロ ジ ッ ク が こ の既知の イ ン タ ーフ ェ イ ス ポ イ ン ト に接続
さ れます。
第 3 章の 「制約」 に示す と お り 、 プ ロ キ シ ロ ジ ッ ク には UCF で制約 を 付け る こ と がで き ま す。
pr2ucf ユーテ ィ リ テ ィ を使用す る と 、 イ ンプ リ メ ン ト さ れた コ ン フ ィ ギ ュ レーシ ョ ンか ら のプ ロ キ
シ ロ ジ ッ ク すべての制約を生成で き ま す。 プ ロ キ シ ロ ジ ッ ク の ロ ケーシ ョ ン制約を指定す る 必要
はあ り ません。 こ のセ ク シ ョ ンには、 個々のお よ びグループのパーテ ィ シ ョ ン ピ ンの タ イ ミ ン グ制
約を設定す る ための情報 も 含まれます。
制御 さ れた配線
接続には、1 つのデザ イ ン エ レ メ ン ト か ら 別のデザ イ ン エ レ メ ン ト ま での特別な配線 リ ソ ース を必
要 と す る も のがあ り ま す。 パーテ ィ シ ョ ン バ ウ ン ダ リ が こ の接続に ま たが る 場合に、 プ ロ キ シ ロ
ジ ッ ク がそのパス に挿入 さ れ る と エ ラ ーが発生 し ます。 こ の よ う な場合、 イ ンプ リ メ ン テーシ ョ ン
ツ ール に プ ロ キ シ ロ ジ ッ ク の 挿入 を 実行 し な い よ う に 指示す る 必要 が あ り ま す。 こ れ に は、
PARTITION_PIN_DIRECT_ROUTE と い う UCF 制約を該当する 配線のパーテ ィ シ ョ ン ピ ンに適
用 し ます。 次は、 そのエ ラ ー メ ッ セージ と UCF 構文の例です。
ERROR:NgdBuild:1319 - Detected a controlled route on Partition Pin
'aurora_201_i.TX_CLK_OUT'.The connection between GTP_DUAL pin
'aurora_201_i/aurora_mod_i/GTP_DUAL_INST.TXOUTCLK0' in Partition
'/fpga_chip_top/aurora_201_i' and
DCM_ADV pin 'aurora_201_clk_mod_i/clock_divider_i.CLKIN' in Partition
'/fpga_chip_top' should reside within the same Partition.If this is
not possible, create the following constraint and run pr_verify to
validate that this route is the same in each configuration:
PIN aurora_201_i.TX_CLK_OUT PARTITION_PIN_DIRECT_ROUTE = TRUE;
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
115
第 7 章 : デザイ ンの注意事項
メ ッ セージに記述 さ れ る よ う に、 制御 さ れた完全な配線 ( ソ ース エ レ メ ン ト と デス テ ィ ネーシ ョ ン
エ レ メ ン ト のペア ) は、 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ール内にない と 、 ワ イ ヤが混線する こ と があ
り ます。 こ のため、 制御 さ れた配線はブ ラ ッ ク ボ ッ ク ス の リ コ ン フ ィ ギ ャ ブル モジ ュ ールには使
用で き ません。
ブラ ッ ク ボッ クス
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ アでは、 ブ ラ ッ ク ボ ッ ク ス を リ コ ン フ ィ ギ ャ ブ
ル モジ ュ ール と し て イ ンプ リ メ ン ト で き ます。 こ れは、 フル コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト フ ァ
イ ルの容量を削減す る 効率的な方法で、最初の コ ン フ ィ ギ ュ レーシ ョ ン時間 も 削減で き ます。ブ ラ ッ
ク ボ ッ ク ス のパーテ ィ シ ョ ン を作成する には、ネ ッ ト リ ス ト フ ァ イ ルを関連付けせずに リ コ ン フ ィ
ギ ャ ブル モジ ュ ールを作成 し ます。 PlanAhead には、 こ の ソ ース がブ ラ ッ ク ボ ッ ク ス モジ ュ ール
と し て表示 さ れます。
ブ ラ ッ ク ボ ッ ク ス に論理記述で制約が付け ら れたユーザー ロ ジ ッ ク が含ま れな く て も 、 物理領域
は完全に空ではあ り ま せん。 上記の 「プ ロ キ シ ロ ジ ッ ク 」 セ ク シ ョ ン に示す よ う に、 LUT1 は各
パーテ ィ シ ョ ン ピ ン ご と に イ ン タ ーフ ェ イ ス と し て リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンへ挿入 さ
れ ます。 こ れ ら のプ ロ キ シ LUT は リ コ ン フ ィ ギ ャ ブル領域内にあ る 必要があ る ので、 領域外の接
続 と 共にブ ラ ッ ク ボ ッ ク ス に表示 さ れます。
BitGen の圧縮機能 を使用する と (-g compress)、ビ ッ ト フ ァ イ ルの容量を削減で き る こ と があ り ま
す。 こ のオプシ ョ ンは反復す る コ ン フ ィ ギ ュ レーシ ョ ン フ レーム構造を検索 し 、 ビ ッ ト フ ァ イ ル
に格納す る 必要のあ る コ ン フ ィ ギ ュ レーシ ョ ン デー タ 量を削減 し ます。 こ れに よ り 、 コ ン フ ィ ギ ュ
レーシ ョ ン時間 も 削減 さ れます。 こ の圧縮オプシ ョ ンが配線済みのパーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ン デザ イ ンに使用 さ れ る と 、 すべてのビ ッ ト フ ァ イ ル ( フルお よ びパーシ ャ ル) が圧縮 さ れた
ビ ッ ト フ ァ イ ル と し て作成 さ れ ます。 こ のオプシ ョ ンは、 ブ ラ ッ ク ボ ッ ク ス リ コ ン フ ィ ギ ャ ブル
モジ ュ ールを含むパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を構築す る 際に使用す る と 特に
有効です。
モ ジ ュ ール レ ベルの制約フ ァ イル
デザ イ ン全体に適切な制約を付け る には、 デザ イ ンの ス タ テ ィ ッ ク 部分 と リ コ ン フ ィ ギ ャ ブル部分
の両方に制約を設定す る 必要があ り ます。 こ れには、 複数の方法があ り ます。 ス タ テ ィ ッ ク ロ ジ ッ
ク は、最上位レベルのネ ッ ト リ ス ト と PlanAhead ソ フ ト ウ ェ ア ま たは Tcl ス ク リ プ ト で使用 さ れ る
メ イ ンの UCF の制約で制御 さ れ ます。 I/O ロ ケーシ ョ ン制約の よ う な、 リ コ ン フ ィ ギ ャ ブル パー
テ ィ シ ョ ン のあ ら ゆ る パ タ ーン で共有 さ れ る 制約は、 最上位レベルの UCF に含め る 必要があ り ま
す。
特定の リ コ ン フ ィ ギ ャ ブル モジ ュ ールにのみ適用 さ れ る 制約は、次の 3 つのいずれかの方法で指定
さ れ る 必要があ り ます。
•
ネ ッ ト リ ス ト の一部 と し て指定
合成ツールではデザ イ ン ネ ッ ト リ ス ト 内に制約を含め る ので、 こ れ ら の制約はその フ ァ イ ルの
残 り の内容 と 共に読み込まれます。
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ール ネ ッ ト リ ス ト UCF 内で指定
ネ ッ ト リ ス ト を リ コ ン フ ィ ギ ャ ブル モジ ュ ール と し て PlanAhead に読み込む際に、 UCF を指
定す る こ と がで き ます (図 7-2)。こ の UCF の制約はモジ ュ ール レベルを対象 と す る ので、 リ コ
ン フ ィ ギ ャ ブル モジ ュ ール内の イ ン ス タ ン スへの リ フ ァ レ ン スは イ ン ス タ ン スへの フル階層
パス にで き ません。
116
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ
X-Ref Target - Figure 7-2
図 7-2 : RM ネ ッ ト リ ス ト と 共に指定する UCF フ ァ イル
•
ngcbuild を使用 し て リ コ ン フ ィ ギ ャ ブル モジ ュ ール ネ ッ ト リ ス ト と 統合する UCF 内で指定
NGCBuild を コ マ ン ド ラ イ ンで実行す る と 、 ネ ッ ト リ ス ト と 制約を統合で き ます。 詳細は、
105 ページの 「デザ イ ン階層」 を参照 し て く だ さ い。
こ の方法は、 1 つのネ ッ ト リ ス ト に UCF か ら の情報を含め る ために使用で き ます。 こ の UCF
の制約 も モジ ュ ール レベルを対象 と する ので、リ コ ン フ ィ ギ ャ ブル モジ ュ ール内の イ ン ス タ ン
スへの リ フ ァ レ ン スは イ ン ス タ ン スへの フル階層パ ス にで き ません。
イ ン プ リ メ ン テーシ ョ ン ス ト ラ テ ジ
FPGA デザ イ ン を最適化す る 際には、 ト レ ー ド オ フ があ り ま す。 パーシ ャ ル リ コ ン フ ィ ギ ュ レ ー
シ ョ ン も 同様です。 パーテ ィ シ ョ ンは最適化に対す る 障害であ り 、 リ コ ン フ ィ ギ ャ ブル フ レームに
は特定の レ イ ア ウ ト 制約が必要 と さ れます。 リ コ ン フ ィ ギ ャ ブル デザ イ ン を構築する には、 余分な
コ ス ト がかか り ます。 タ イ ミ ン グお よ びエ リ アのニーズに対す る 追加オーバーヘ ッ ド は、 デザ イ ン
に よ っ て異な り ます。 影響を最小限に抑え る には、 こ のガ イ ド で説明 さ れ る デザ イ ンの注意事項に
従 う よ う に し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル デザ イ ンの コ ン フ ィ ギ ュ レーシ ョ ン を構築す る 際は、 イ ンプ リ メ ン テーシ ョ ン
に選択す る 最初の コ ン フ ィ ギ ュ レーシ ョ ン を最 も 困難な コ ン フ ィ ギ ュ レーシ ョ ン に し て く だ さ い。
各 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン の リ コ ン フ ィ ギ ャ ブル モジ ュ ールで選択 し た物理領域に適
切な リ ソ ース (特にブ ロ ッ ク RAM、 DSP48、 I/O な ど の リ ソ ース ) が必ず含まれ る よ う に し 、 各 リ
コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンで一番要求の多い リ コ ン フ ィ ギ ャ ブル モジ ュ ールを選択 し ます。
次に続 く コ ン フ ィ ギ ュ レーシ ョ ン の リ コ ン フ ィ ギ ャ ブル モジ ュ ールすべてがそれ よ り も 小型か遅
い場合、 それ ら の要求が満た し やす く な り ます。 すべての リ コ ン フ ィ ギ ャ ブル モジ ュ ールのニーズ
を満たすために、 タ イ ミ ン グ バジ ェ ッ ト を作成す る 必要があ り ます。
イ ン プ リ メ ン テーシ ョ ン中の配置配線問題の回避方法については、 第 3 章の 「配置配線問題のデ
バ ッ グ」 を参照 し て く だ さ い。
シ ミ ュ レーシ ョ ン と 検証
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン の コ ン フ ィ ギ ュ レーシ ョ ンは、 それ自体で完全な
デザ イ ンです。 標準的なシ ミ ュ レーシ ョ ン、 タ イ ミ ン グ解析、 検証方法のすべてがパーシ ャ ル リ コ
ン フ ィ ギ ュ レーシ ョ ン デザ イ ン でサポー ト さ れ ます。 パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン自体
はシ ミ ュ レーシ ョ ンで き ません。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
117
第 7 章 : デザイ ンの注意事項
高速 ト ラ ン シーバの使用
ザ イ リ ン ク ス の高速 ト ラ ン シーバ (GT11、 GTP、 GTX) には、 こ れ ら の ピ ンの多 く に対す る 専用接
続があ り ます。 専用接続では、 こ れ ら の ピ ンに接続 さ れ る I/O が汎用 I/O と は別の方法で処理 さ れ
る 必要があ り ます。 ツールで直接接続を認識 さ せ る には、 ト ラ ン シーバ と 関連す る すべての I/O ロ
ジ ッ ク が同 じ パーテ ィ シ ョ ン内にな る よ う に制約を設定す る 必要があ り ます。 こ れには、 すべての
パ ッ ド 、 バ ッ フ ァ 、 ト ラ ン シーバ ロ ジ ッ ク が含まれます。
118
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
その他のザイ リ ン ク ス ツール と の連動
その他のザイ リ ン ク ス ツール と の連動
こ のセ ク シ ョ ンには、 次の内容が含まれます。
•
「ChipScope Pro と の連動」
•
「System Generator for DSP お よ び CORE Generator と の連動」
ChipScope Pro と の連動
ChipScope™ Pro Aalyzer は、 ロ ジ ッ ク アナ ラ イ ザ、 バ ス アナ ラ イ ザ、 仮想 I/O ソ フ ト ウ ェ ア コ
ア を直接デザ イ ンに挿入 し 、 エ ンベデ ッ ド ハー ド プ ロ セ ッ サお よ び ソ フ ト プ ロ セ ッ サ を含むすべ
ての内部信号ま たは ノ ー ド を表示で き ます。 デザ イ ンの計装には、 次のいずれか を使用 し ます。
•
ザ イ リ ン ク ス CORE Generator™ ソ フ ト ウ ェ ア
•
ChipScope Core Inserter
ど ち ら のツール も パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに対応 し てい ますが、 それぞれ制限があ り
ます。
ザ イ リ ン ク ス CORE Generator ソ フ ト ウ ェ ア を使用す る 場合、 ネ ッ ト リ ス ト ベー ス の コ ア を作成
し 、 デザ イ ンに イ ン ス タ ン シエー ト し ます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのバ ウ ン ダ リ が変
更 さ れない限 り 、 こ れ ら の コ ア を簡単に イ ン ス タ ン シエー ト し て、 該当のデザ イ ン部分をデバ ッ グ
で き ます。 すべての ChipScope コ アがデザ イ ンの ス タ テ ィ ッ ク 部分に配置 さ れ る 場合、 こ れは簡単
に管理で き ます。 ICON コ アは、 BUFG お よ び BSCAN エ レ メ ン ト の両方を含むので、 ス タ テ ィ ッ
ク ロ ジ ッ ク に残 し てお く 必要があ り ます。
ILA ま たは VLO コ アが リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン に イ ン ス タ ン シエー ト さ れ る 場合は、
別の方法を実行す る 必要があ り ます。 フ ロ アプ ラ ンの結合領域には、 必要なエ レ メ ン ト すべて (必
要な フ ァ ン ク シ ョ ン を構築す る のに十分なブ ロ ッ ク RAM) を含めない と 、 ChipScope コ アが イ ン
プ リ メ ン ト で き ません。 ま た、 36 ビ ッ ト 制御バス は ス タ テ ィ ッ ク 領域の ICON コ アか ら リ コ ン フ ィ
ギ ャ ブル パーテ ィ シ ョ ン のデバ ッ グ コ ア ま で接続 さ れ る 必要があ り ま す。 こ の要件のサ イ ズお よ
び物理 ロ ケーシ ョ ンの場合は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンに多大な影響を及ぼす可能性が
あ り ます。
複数領域 ( ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル) で信号をデバ ッ グす る 必要があ る 場合、デバ ッ
グはで き ま すが、 適切な信号 (デー タ 、 ト リ ガ、 ま たは制御バ ス ) が リ コ ン フ ィ ギ ャ ブル パーテ ィ
シ ョ ンか ら 最上位レベルに送信 さ れ る 必要があ り ます。 こ れには、 各 リ コ ン フ ィ ギ ャ ブル モジ ュ ー
ルご と にパーテ ィ シ ョ ン イ ン タ ーフ ェ イ ス を修正す る 必要があ り ます。 こ の ス ト ラ テジは、 CORE
Generator フ ロ ーでのみサポー ト さ れます。
ChipScope Core Inserter ソ フ ト ウ ェ アでは、 HDL ソ ース ではな く 、 ネ ッ ト リ ス ト 自体でデザ イ ン
が修正 さ れます。 こ の フ ロ ーは PlanAhead でサポー ト さ れますが、プ ロ ーブ ポ イ ン ト は ス タ テ ィ ッ
ク ロ ジ ッ ク 内の信号にのみ制限 さ れ ま す。 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの ロ ジ ッ ク にプ ロ ーブ
ポ イ ン ト を設定す る と 、 パーテ ィ シ ョ ン イ ン タ ーフ ェ イ ス が変更 さ れ る ので、 設定で き ない こ と を
示す メ ッ セージが表示 さ れます。
System Generator for DSP お よび CORE Generator と の連動
ザ イ リ ン ク ス の ア ド バ ン ス ツ ールお よ び IP ま た はサー ド パー テ ィ ソ ー ス を 使用す る 場合 も 、
ChipScope Pro ソ フ ト ウ ェ アの場合 と 同様の規則に従 う 必要があ り ます。 こ れ ら のツールはデザ イ
ン を HDL ま たはネ ッ ト リ ス ト レベルで構築お よ び変更す る ので、パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ン フ ロ ーに必要な ボ ト ム ア ッ プ合成手法 と う ま く 連動す る よ う にな っ てい ま す。 リ コ ン フ ィ
ギ ャ ブル領域の定義 ( 適切な エ レ メ ン ト が含 ま れ る よ う にす る ) と リ コ ン フ ィ ギ ャ ブル パーテ ィ
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
119
第 7 章 : デザイ ンの注意事項
シ ョ ンの タ イ ミ ン グには注意が必要ですが、 こ れ ら の一般的な要件以外は、 ど ち ら の ツール も パー
シ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン と 問題な く 連動 し ます。
ア ド バン ス ツールお よ び IP を使用 し たパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの場合は、 こ れ ら の
デザ イ ン ブ ロ ッ ク の内容に注意が必要です。 グ ロ ーバル ク ロ ッ ク ま た は ク ロ ッ ク 修正 ロ ジ ッ ク
(BUFG、 DCM、 PLL、 etc) は リ コ ン フ ィ ギ ュ レーシ ョ ン さ れ る モジ ュ ールには配置で き ません。
ブ ロ ッ ク に リ コ ン フ ィ ギ ャ ブルではないデザ イ ン エ レ メ ン ト が含まれ る 場合は、 ChipScope ICON
コ アの よ う に、 一部のブ ロ ッ ク を ス タ テ ィ ッ ク ロ ジ ッ ク に残 し てお く 必要があ り ます。
EDK と の連動
EDK で開発 し たプ ロ セ ッ サ デザ イ ンのパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーについては、
『PlanAhead ソ フ ト ウ ェ ア チ ュ ー ト リ アル : プ ロ セ ッ サ ペ リ フ ェ ラ ルのパーシ ャ ル リ コ ン フ ィ ギ ュ
レ ーシ ョ ン』 (UG744) を参照 し て く だ さ い。 こ のチ ュ ー ト リ アルは、 次のパーシ ャ ル リ コ ン フ ィ
ギ ュ レーシ ョ ンの Web サ イ ト か ら ダ ウ ン ロ ー ド で き ます。
http://japan.xilinx.com/tools/partial-reconfiguration
EDK と パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの連動の詳細 :
•
PlanAhead プ ロ ジ ェ ク ト を作成 し 、 EDK で開発 し たデザ イ ンの最上位レベル ネ ッ ト リ ス ト を
指定す る 場合、 implementation デ ィ レ ク ト リ (../implementation/top_level_filename.ngc) の
ネ ッ ト リ ス ト ではな く 、 synthesis デ ィ レ ク ト リ (../synthesis/top_level_filename.ngc) の最上位
レベル ネ ッ ト リ ス ト を指定 し ます。
リ コ ン フ ィ ギ ャ ブル モジ ュ ール と し て使用す る ネ ッ ト リ ス ト はすべて、PlanAhead の起動前に
EDK の implementation デ ィ レ ク ト リ か ら 削除 し てお く 必要があ り ます。 削除 さ れたネ ッ ト リ
ス ト は EDK の synthesis デ ィ レ ク ト リ の最上位レベル ネ ッ ト リ ス ト か ら 呼び出 さ れ る ので、
PlanAhead で こ れ ら のネ ッ ト リ ス ト をブ ラ ッ ク ボ ッ ク ス と し て処理す る か ど う かの選択がで
き る よ う にな り ます。 PlanAhead でブ ラ ッ ク ボ ッ ク ス を作成で き る よ う に し た ら 、 削除 さ れた
ネ ッ ト リ ス ト と 同 じ ポー ト 定義を使用 し て EDK の外部でネ ッ ト リ ス ト を作成 し 、 こ れ ら の
ネ ッ ト リ ス ト を PlanAhead を使用 し て新 し い リ コ ン フ ィ ギ ャ ブル モジ ュ ール と し て追加 し ま
す。
•
EDK プ ロ セ ッ サ シ ス テ ム デザ イ ンの ビ ッ ト フ ァ イ ルを生成する 場合は、 ビ ッ ト フ ァ イ ルで
Data2MEM プ ロ グ ラ ム を 実行 し 、 コ ン パ イ ル済みの ソ フ ト ウ ェ ア プ ロ グ ラ ム を 使用 し て ブ
ロ ッ ク RAM の内容 を ア ッ プデー ト す る 必要が あ り ま す。 PlanAhead 環境で実行す る 場合、
Data2MEM プ ロ グ ラ ム を直接呼び出す リ ン ク はあ り ません。 ただ し 、 BitGen の -bd オプシ ョ
ン を 使 用 す る と 、 BitGen で Data2MEM を 直接呼び出す こ と が で き ま す。 PlanAhead で
[Generate Bitstream] コ マ ン ド を実行する と 、使用可能な BitGen オプシ ョ ン を含むダ イ ア ロ グ
ボ ッ ク ス が表示 さ れます。 -bd オプシ ョ ンは、 こ の リ ス ト に表示 さ れます。 -bd オプシ ョ ンの値
フ ィ ール ド には、 EDK で生成 し た ELF フ ァ イ ルを参照 し て指定で き ます。
Data2MEM を別に実行 し な く て も 、 BitGen コ マ ン ド ラ イ ンか ら こ のオプシ ョ ン を使用す る こ
と も で き ます。 次は、 その コ マ ン ド の例です。
bitgen -bd <path_to_ELF_file>/executable.elf
120
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザイ ン チ ェ ッ ク リ ス ト
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザイ ン チ ェ ッ ク リ ス ト
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を使用す る デザ イ ンの場合は、次の項目について考慮 し て く
だ さ い。
•
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ま たは ク ロ ッ ク 修正ブ ロ ッ ク (DCM、 MMCM、 PLL) を使用 し
てい ますか。
•
•
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ お よ び ク ロ ッ ク 修正ブ ロ ッ ク は、 ス タ テ ィ ッ ク ロ ジ ッ ク で
使用す る 必要があ り ます。
-
詳細は、 こ の章の 「 リ コ ン フ ィ ギ ャ ブル モジ ュ ール内のデザ イ ン エ レ メ ン ト 」 を参照
し て く だ さ い。
-
グ ロ ーバル ク ロ ッ ク イ ンプ リ メ ン テーシ ョ ンの詳細は、 「グ ロ ーバル ク ロ ッ ク 」 を参
照 し て く だ さ い。
リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ を使用 し てい ますか。
•
リ ージ ョ ナル ク ロ ッ ク バ ッ フ ァ の要件は、 アーキ テ ク チ ャ に よ っ て異な り ます。
•
デバ イ ス機能ブ ロ ッ ク
(BSCAN、 CAPTURE、 DCIRESET、 FRAME_ECC、 ICAP、
KEY_CLEAR、 STARTUP、 USR_ACCESS) を使用 し てい ますか。
•
デバ イ ス機能ブ ロ ッ ク は、 ス タ テ ィ ッ ク ロ ジ ッ ク で使用す る こ と をお勧め し ます。
•
詳細は、 こ の章の 「 ロ ジ ッ ク のパ ッ ク 」 を参照 し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの境界に よ り 、最適化お よ びパ ッ キ ン グが制限 さ れ る
こ と があ る ので、 ク リ テ ィ カル パ ス は同 じ パーテ ィ シ ョ ン内に含め る 必要があ り ます。
-
詳細は、 こ の章の 「 ロ ジ ッ ク のパ ッ ク 」 を参照 し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル モジ ュ ールに I/O が含まれますか。
•
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの I/O の要件は さ ま ざ ま です。
-
詳細は、 こ の章の 「 リ コ ン フ ィ ギ ャ ブル モジ ュ ールの I/O」 を参照 し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル モジ ュ ールの出力にデカ ッ プ リ ン グ ロ ジ ッ ク を作成 し ま し たか。
•
リ コ ン フ ィ ギ ュ レーシ ョ ン中は、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンの出力は中間ス テー
ト にな る ので、デー タ 破損にな ら ない よ う にデカ ッ プ リ ン グ ロ ジ ッ ク を使用す る 必要があ
り ます。
•
パーテ ィ シ ョ ン / リ コ ン
ク リ テ ィ カル パ ス が同 じ パーテ ィ シ ョ ンに含ま れますか。
•
•
パーテ ィ シ ョ ンにあ る 必要
一緒にパ ッ ク さ れ る ロ ジ ッ ク はすべて同 じ リ コ ン フ ィ ギ ャ ブル
フ ィ ギ ャ ブル モジ ュ ールにあ る 必要があ り ます。
-
•
詳細は、 こ の章の 「 リ コ ン フ ィ ギ ャ ブル モジ ュ ール内のデザ イ ン エ レ メ ン ト 」 を参照
し て く だ さ い。
一緒にパ ッ ク さ れ る すべての ロ ジ ッ ク は同 じ リ コ ン フ ィ ギ ャ ブル
があ り ますか。
•
•
リ ージ ョ ナル ク ロ ッ ク の要件については、 「グ ロ ーバル ク ロ ッ ク 」 を参照 し て く だ さ
い。
詳細は、 こ の章の 「デカ ッ プ リ ン グ機能」 を参照 し て く だ さ い。
デザ イ ンに高速 ト ラ ン シーバが含まれますか。
•
高速 ト ラ ン シーバには、 特定の要件があ り ます。
-
こ の要件については、 こ の章の 「高速 ト ラ ン シーバの使用」 を参照 し て く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
121
第 7 章 : デザイ ンの注意事項
•
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンに ChipScope Pro Analyzer を使用 し てい ます
か。
•
ChipScope Pro はパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに使用で き ますが、 一部の要件を
満た し てい る 必要があ り ます。
•
詳細は、 こ の章の 「ChipScope Pro と の連動」 を参照 し て く だ さ い。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンに System Generator for DSP ま たは CORE
Generator を使用 し てい ますか。
•
System Generator と CORE Generator はパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに使用で
き ますが、 一部の要件を満た し てい る 必要があ り ます。
•
詳細は、 こ の章の 「System Generator for DSP お よ び CORE Generator と の連動」 を
参照 し て く だ さ い。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンに EDK を使用 し てい ますか。
•
EDK はパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに使用で き ますが、 一部の要件を満た し て
い る 必要があ り ます。
•
詳細は、 こ の章の 「EDK と の連動」 を参照 し て く だ さ い。
-
詳細は、 『PlanAhead ソ フ ト ウ ェ ア チ ュ ー ト リ アル : プ ロ セ ッ サ ペ リ フ ェ ラ ルのパー
シ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン』 (UG744) を参照 し て く だ さ い。
こ のチ ュ ー ト リ アルは、 次のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの Web サ イ ト か
ら ダ ウ ン ロ ー ド で き ます。 http://japan.xilinx.com/tools/partial-reconfiguration.htm
暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ルを Virtex-4 お よ び Virtex-5 デバ イ ス で使用す る 必要
があ り ますか。
•
•
-
暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ルは、 Virtex-4 お よ び Virtex-5 デバ イ ス ではサ
ポー ト さ れません。
-
詳細は、 付録 A の 「既知の制限」 を参照 し て く だ さ い。
-
Virtex-5 用に暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ルを構築す る 方法については、ザ
イ リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト 『PRC/EPRC: Data Integrity and Security
Controller for Partial Reconfiguration』 (XAPP887) を参照 し て く だ さ い。
ブ ロ ッ ク RAM の内容を ア ッ プデー ト する 必要があ り ますか。
•
パーシ ャ ル ビ ッ ト ス ト リ ームでは Data2MEM はサポー ト さ れません。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンすべてにザ イ リ ン ク ス ガ イ ド ラ イ ンに従っ たエ リ ア グ
ループが設定 さ れてい ますか。
•
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのエ リ ア グループには要件が複数あ り ます。
•
詳細は、 第 3 章の 「エ リ ア グループ制約」 を参照 し て く だ さ い。
リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのエ リ ア グループを効率的な方法で作成 し ま し たか。
•
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンはフ レーム ベース で実行 さ れ る ので、 推奨 さ れ る
作成方法を使用 し て く だ さ い。
•
詳細は、 付録 A の 「既知の制限」 を参照 し て く だ さ い。
詳細は、 こ の章の 「 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン バ ウ ン ダ リ の定義」 を参照 し
て く だ さ い。
すべての コ ン フ ィ ギ ュ レーシ ョ ンで pr_verify を実行 し ま し たか。
•
pr_verify は、すべての コ ン フ ィ ギ ュ レーシ ョ ンに一致す る イ ン ポー ト 済み リ ソ ース が含ま
れてい る こ と を確認す る ために使用 さ れます。
122
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ンのデザイ ン チ ェ ッ ク リ ス ト
•
詳細は、 第 3 章の 「pr_verify」 を参照 し て く だ さ い。
デバ イ ス特有の コ ン フ ィ ギ ュ レーシ ョ ン要件を認識 し てい ますか。
•
デバ イ ス フ ァ ミ リ にはそれぞれ独自の コ ン フ ィ ギ ュ レーシ ョ ン要件があ り ます。
-
第 6 章 「FPGA デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン」 を参照 し て く だ さ い。
-
詳細は、 該当す る デバ イ ス フ ァ ミ リ の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド を参
照 し て く だ さ い。
http://japan.xilinx.com/support/documentation/index.htm.
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
123
第 7 章 : デザイ ンの注意事項
124
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
付録 A
既知の問題 と 制限
こ の付録では、 13.1 のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ アの既知の問題お よ び制
限について リ ス ト し ます。
既知の問題
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンの既知の問題の リ ス ト については、ア ンサー 35019 を参照 し
て く だ さ い。
既知の問題には、 次の よ う な も のがあ り ます。
•
Tcl ス ク リ プ ト の スペル ミ ス が レ ポー ト さ れない
Color2 デザ イ ンに含まれ る サンプルの Tcl ス ク リ プ ト を使用す る 場合、 イ ン ス タ ン ス名 ( コ ン
フ ィ ギ ュ レーシ ョ ン、 リ コ ン フ ィ ギ ャ ブル モジ ュ ールお よ びパス な ど の名前) はユーザー デザ
イ ン を反映す る よ う に変更 し てお く 必要があ り ます。 名前の スペルが間違っ ていて も 、 間違っ
てい る こ と を示すエ ラ ー メ ッ セージは表示 さ れませんので、合成お よ び イ ンプ リ メ ン テーシ ョ
ン中に フ ァ イ ル名や設定が間違っ ていないか ど う か、 レ ポー ト フ ァ イ ルを確認 し て く だ さ い。
既知の制限
既知の制限には、 次の よ う な も のがあ り ます。
•
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ アでは Spartan® デバ イ ス フ ァ ミ リ はサ
ポー ト さ れません。
•
PlanAhead では、 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ン内でエ リ ア グループ サブモジ ュ ールは
使用で き ません。
•
暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ル (bitgen -g encrypt で生成) は、 Virtex-4 お よ び
Virtex-5 デバ イ ス では直接サポー ト さ れません。 Virtex-5 用に暗号化 さ れたパーシ ャ ル ビ ッ ト
フ ァ イ ルを構築す る 方法については、 ザ イ リ ン ク ス ア プ リ ケーシ ョ ン ノ ー ト 『PRC/EPRC:
Data Integrity and Security Controller for Partial Reconfiguration』 (XAPP887) を参照 し て く だ
さ い。
暗号化 さ れたパーシ ャ ル ビ ッ ト フ ァ イ ルは、 Virtex-6 デバ イ ス ではサポー ト さ れます。 こ の場
合、各 コ ン フ ィ ギ ュ レーシ ョ ンに対 し て同 じ NKY フ ァ イ ルを指定 し て、暗号キーの値が同 じ に
な る よ う にす る 必要があ り ます。
8 ビ ッ ト バ ス の場合にのみ、 暗号化 さ れた Virtex-6 のパーシ ャ ル ビ ッ ト フ ァ イ ルのパーシ ャ
ル リ コ ン フ ィ ギ ュ レーシ ョ ンには ICAP を使用す る 必要があ り ます。暗号化が使用 さ れ る 場合
は、 外部 コ ン フ ィ ギ ュ レーシ ョ ン ポー ト を介 し て リ コ ン フ ィ ギ ュ レーシ ョ ンはで き ません。
•
PlanAhead では、 Data2MEM プ ロ グ ラ ム を直接実行 し て、 ブ ロ ッ ク RAM の内容 (EDK プ ロ
セ ッ サ シ ス テ ム な ど ) を ア ッ プデー ト す る こ と はで き ません。 ただ し 、 BitGen コ マ ン ド を -bd
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
125
付録 A : 既知の問題 と 制限
オプシ ョ ン で実行す る と 、 ビ ッ ト ス ト リ ーム生成の一部 と し て Data2MEM を実行で き ま す。
詳細については、 第 7 章の 「EDK と の連動」 を参照 し て く だ さ い。
•
126
双方向パーテ ィ シ ョ ン ピ ンはサポー ト さ れません。ス タ テ ィ ッ ク お よ び リ コ ン フ ィ ギ ャ ブル ロ
ジ ッ ク 間の イ ン タ ーフ ェ イ ス には一方向ピ ンのみを使用す る 必要があ り ます。
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
付録 B
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン
ア ッ プグ レー ド ガ イ ド
こ の付録では、 9.2.04i モジ ュ ール デザ イ ン早期ア ク セ ス (EA) パーシ ャ ル リ コ ン フ ィ ギ ュ レー
シ ョ ンで作成 し たデザ イ ン をパーテ ィ シ ョ ン ベース の ISE® 13 にア ッ プグ レー ド す る 方法につい
て、 手順別に説明 し てい ます。
ISE 13 のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン フ ロ ーは基本的に ISE 12 のデザ イ ン フ
ロ ー と 同 じ で、 ア ッ プグ レー ド 方法 も 同 じ です。
早期ア ク セス版 と 製品版の違い
ア ッ プグ レー ド 可能なデザイ ン
Virtex®-4 お よ びそれ以降のデバ イ ス を タ ーゲ ッ ト にす る 早期ア ク セ ス (EA) デザ イ ンは、ISE 13 用
にア ッ プグ レー ド で き ます。こ の場合、ISE 13 で PlanAhead™ プ ロ ジ ェ ク ト を新規に作成す る 必要
があ り ます。 こ のプ ロ ジ ェ ク ト を作成す る には、単純に第 4 章 「PlanAhead サポー ト 」 の方法に従っ
てだ さ い。
バス マ ク ロのイ ン ス タ ン シ エーシ ョ ンの必要な し
バス マ ク ロ (BM) は必要な く な り ま し た。パーテ ィ シ ョ ン ピ ンは自動的に管理 さ れ る よ う にな っ て
い ます。 こ の自動化に伴い、 バ ス マ ク ロ の機能の一部が変更 さ れてい ます。 同期お よ び非同期のバ
ス マ ク ロ 両方が早期ア ク セ ス で使用で き ます。バ ウ ン ダ リ に レ ジ ス タ を付けて最適な階層デザ イ ン
手法に従い、 リ コ ン フ ィ ギ ャ ブル ロ ジ ッ ク をデカ ッ プ リ ン グする ためには、HDL に レ ジ ス タ を追加
し て、 同期バス マ ク ロ に含まれてい る 出力レ ジ ス タ の機能を書 き 換え る こ と がで き ます。
必ずパーテ ィ シ ョ ン バ ウ ン ダ リ に レ ジ ス タ を付け、 こ れ ら の レ ジ ス タ と 共に イ ネーブルを使用す る
よ う に し て く だ さ い。リ コ ン フ ィ ギ ュ レーシ ョ ン中の こ れ ら の領域の動作は不明なので、リ コ ン フ ィ
ギ ュ レーシ ョ ン中に ロ ジ ッ ク の出力が使用 さ れ る と 、デザ イ ンが破損 し て し ま う こ と も あ り ます。こ
のため、 イ ネーブルを使用 し てバ ウ ン ダ リ に レ ジ ス タ を付けて、 リ コ ン フ ィ ギ ュ レーシ ョ ン中は リ
コ ン フ ィ ギ ャ ブル領域をデ ィ ス エーブル し てお く 必要があ り ます。
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン特有の環境変数の廃止
早期ア ク セ ス の場合、 さ ま ざ ま な環境変数を設定する 必要があ り ま し たが、 ISE 12 か ら はその必要
はな く な っ てい ます。早期ア ク セ ス用に設定 し た環境変数はすべて設定を解除 し ておいて く だ さ い。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
127
付録 B : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ア ッ プグ レー ド ガ イ ド
MODE 制約の廃止
早期ア ク セ ス の場合、 ど のエ リ ア グループが リ コ ン フ ィ ギ ャ ブルか を ツールで指定す る 必要があ り
ま し た。 こ れは、 UCF に追加 さ れ る 専用の制約 (MODE=RECONFIG) で処理 さ れてい ま し し たが、
こ れ ら の制約は必要な く な り ま し た。こ の機能は、PlanAhead の [Set Reconfigurable] オプシ ョ ン を
使用す る と 指定で き る よ う にな り 、こ の結果、xpartition.pxml に Reconfigurable=TRUE と い う 情報
が追加 さ れ る よ う にな り ま し た。
NGDBuild -modular オプ シ ョ ンの廃止
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ン を実行 し てい る こ と を NGDBuild に伝え る 必要は
な く な っ てい ます。 こ れは、 xpartition.pxml フ ァ イ ルで処理 さ れ る よ う にな り ま し た。 詳細は、 次
のセ ク シ ョ ン を参照 し て く だ さ い。
パーテ ィ シ ョ ン情報の xpartition.pxml フ ァ イルへの保存
ISE 13 では、 PXML フ ァ イ ルでパーテ ィ シ ョ ン特有の情報が管理 さ れます。 こ の フ ァ イ ルは
xpartition.pxml と い う 名前で、こ の名前は変更で き ません。こ のフ ァ イ ルは ASCII XML 形式で、イ
ンプ リ メ ン テーシ ョ ン ご と に作成 さ れます。ほ と ん ど のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン特有
の情報 (AREA GROUP RANGE 制約用に保存 さ れ る すべての情報) は、xpartition.pxml フ ァ イ ルに
含まれます。 ツールでは自動的に xpartition.pxml フ ァ イ ルがチ ェ ッ ク さ れます。 リ コ ン フ ィ ギ ャ ブ
ル パーテ ィ シ ョ ン を含むデザ イ ンには、 xpartition.pxml フ ァ イ ルが必ず必要で、 少な く と も 1 つの
パーテ ィ シ ョ ンが定義 さ れてい る 必要があ り ます。 こ の フ ァ イ ルがない場合、 デザ イ ンは 「フ ラ ッ
ト 」 なデザ イ ン と し て処理 さ れます。
xpartition.pxml フ ァ イ ルは PlanAhead で生成 さ れ、 ユーザーは変更で き ません。 デザ イ ン を イ ンプ
リ メ ン ト す る のにザ イ リ ン ク ス HD Tcl ス ク リ プ ト を使用する 場合は、 イ ンプ リ メ ン テーシ ョ ン ス
ク リ プ ト が実行 さ れた と き に こ の フ ァ イ ルが作成 さ れます。
コ マ ン ド ラ イ ン オプ シ ョ ン は Tcl フ ローのみ
早期ア ク セ ス の場合、ツールは コ マ ン ド ラ イ ンか ら 直接実行で き ま し た。ツールは 13.1 で も コ マ ン
ド ラ イ ンか ら 実行で き ますが、 ISE 13 ツールがデザ イ ン をパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン
デザ イ ン と し て処理す る 前に、PMXL フ ァ イ ルが必要にな る 点が違い ます。 こ のため、フ ロ ーを Tcl
で ス ク リ プ ト 記述 し て、 PMXL フ ァ イ ルを生成す る 必要があ り ます。
メ モ : ザ イ リ ン ク ス HD Tcl ス ク リ プ ト を使用す る 場合、 まず run を作成する と き に [Generate
Scripts Only] オプシ ョ ン を使用 し て基本的な 「フ ラ ッ ト フ ロ ー」 の ス ク リ プ ト を複数生成 し てお く
こ と がで き ます。 リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ ンのプ ロ モー ト 、 イ ンプ リ メ ン ト 、 イ ン ポー ト
な ど の機能を実行す る ザ イ リ ン ク ス HD Tcl ス ク リ プ ト を記述する 場合は、 第 5 章 「 コ マ ン ド ラ イ
ン ス ク リ プ ト 」 を参照 し て く だ さ い。
UCF は NGDBuild でのみ必要
早期ア ク セ ス の場合、 変換 (Translate) 後イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス (MAP およびプ ロ セ ス )
に UCF が必要で し たが、 ダ ウ ン ス ト リ ーム イ ンプ リ メ ン テーシ ョ ン プ ロ セ スに必要な情報はすべ
てデザ イ ンのデータ ベース フ ァ イ ルに含まれ る よ う にな っ たので、 UCF は必要な く な り ま し た。
128
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
デザイ ンのア ッ プグレー ド
完全デザイ ンの タ イ ミ ング制約の管理
ISE 13 では完全なデザ イ ン を イ ンプ リ メ ン ト す る ので、タ イ ミ ン グ制約 と タ イ ミ ン グ バジ ェ ッ ト を
作成す る 必要があ り ます。 タ イ ミ ン グ管理については、 第 3 章 「 ソ フ ト ウ ェ ア ツール フ ロ ー」 を参
照 し て く だ さ い。
BUFR にパーテ ィ シ ョ ン ピ ンが必要 (Virtex-5)
早期ア ク セ ス の場合、 BUFR には制限が複数あ り ま し たが、 ネ ッ ト ワー ク はバス マ ク ロ を必要 と し
ませんで し た。 ISE 13 では、 ク ロ ッ ク 領域の前配線要件を満たすためにパーテ ィ シ ョ ン ピ ンが
BUFR ネ ッ ト ワ ー ク に追加 さ れてい ます。 こ れは、 Virtex-5 にのみ該当 し ます。
デザイ ンのア ッ プグ レー ド
早期ア ク セ ス デザ イ ンは、 ISE 13 用に簡単にア ッ プグ レー ド で き ます。 まず、 HDL でバス マ ク ロ
を削除ま たは置 き 換え、 該当する ネ ッ ト リ ス ト を再生成 (再合成) し ます。 ネ ッ ト リ ス ト が正 し く 設
定 さ れた ら 、ISE 13 で新 し い PlanAhead プ ロ ジ ェ ク ト を作成 し ます。9.2.04i PlanAhead のプ ロ ジ ェ
ク ト を 13.1 PlanAhead に直接ア ッ プグ レー ド は し ないで く だ さ い。
バス マ ク ロの削除
デザ イ ン を ア ッ プグ レー ド す る には、 まず HDL でバ ス マ ク ロ を削除 し ます。 バス マ ク ロ を削除す
る 方法は 2 つあ り ます。
•
•
バス マ ク ロ の イ ン ス タ ン シエーシ ョ ンの削除
•
利点 :HDL を き れいな ま ま で残せる
•
不利点 :時間がかか り すぎ る 。 ま た、 すべての イ ン ス タ ン ス に対 し て実行す る 必要があ る
バス マ ク ロ の再定義
•
利点 :大量のバ ス マ ク ロ を置換す る 最 も 速い方法
•
不利点 :バ ス マ ク ロ の イ ン ス タ ン シエーシ ョ ンがデザ イ ン中に残っ た ま ま にな る
バス マ ク ロ を削除で き ず、バ ス マ ク ロ の NMC フ ァ イ ルを削除する と 、変換 (NGDBuild) プ ロ セ ス
で次の よ う なエ ラ ー メ ッ セージが表示 さ れます。
ERROR:NgdBuild:604 - logical block 'my_RP/my_BM_GENERATE[7].my_BM'
with type 'busmacro_xc5v_async_enable' could not be resolved.A pin
name misspelling can cause this, a missing edif or ngc file, case
mismatch between the block name and the edif or ngc file name, or the
misspelling of a type name.Symbol 'busmacro_xc5v_async_enable' is
not supported in target 'virtex5'.
VHDL バス マ ク ロの削除
バス マ ク ロのイ ン ス タ ン シ エーシ ョ ンのみの削除
次の例では、 非同期バ ス マ ク ロ が使用 さ れてい ます。 こ の例では、 バス マ ク ロ の削除を簡単に説明
す る ため、バス マ ク ロ の入力を直接バ ス マ ク ロ の出力に接続 し てい ますが、 こ れは実際には必要な
く 、 1 つのネ ッ ト ワー ク でバ ス マ ク ロ 入力 と バ ス マ ク ロ 出力が置換で き ます。 逆に、 複数のバ ス マ
ク ロ には関連す る 制御 ロ ジ ッ ク が含まれ る ので、 こ れ ら のバス マ ク ロ タ イ プが保存 さ れ る には、入
力信号 と 出力信号の両方を必要です。 こ れは、 制御 ロ ジ ッ ク が 2 つの信号の イ ン タ ーフ ェ イ ス にな
る か ら です。
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
129
付録 B : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ア ッ プグ レー ド ガ イ ド
バス マ ク ロ を再定義す る 方法については、 後述 し ます。
手順 1 : すべてのバス マ ク ロから コ ンポーネ ン ト 宣言を削除 し ます。
例 – 削除す る VHDL バ ス マ ク ロ 宣言
component busmacro_xc5v_async is
port (
input0 : in std_logic;
input1 : in std_logic;
input2 : in std_logic;
input3 : in std_logic;
output0 : out std_logic;
output1 : out std_logic;
output2 : out std_logic;
output3 : out std_logic
);
end component;
手順 2 :バス マ ク ロのイ ン ス タ ン シ エーシ ョ ン を 1:1 の信号マ ッ プ代入文に置き換え ます。
例 – 古い VHDL バス マ ク ロ の イ ン ス タ ン シエーシ ョ ン
Control1_0_BM
port map (
input0 =>
input1 =>
input2 =>
input3 =>
output0 =>
output1 =>
output2 =>
output3 =>
);
: busmacro_xc5v_async
MY_ADDR_SPACE,
PLB_SAValid,
PLB_rdPrim,
PLB_wrPrim,
MY_ADDR_SPACE_pr,
PLB_SAValid_pr,
PLB_rdPrim_pr,
PLB_wrPrim_pr
例 – バス マ ク ロ の新 し い VHDL 置換文 (1:1 の代入文)
MY_ADDR_SPACE_pr <= MY_ADDR_SPACE;
PLB_SAValid_pr <= PLB_SAValid;
PLB_rdPrim_pr <= PLB_rdPrim;
PLB_wrPrim_pr <= PLB_wrPrim;
こ れは簡潔な非同期バ ス マ ク ロ ですが、バ ス マ ク ロ の置換方法をわか り やす く 示 し てい ます。バ ス
マ ク ロ には、制御 ロ ジ ッ ク 付 き のバ ス マ ク ロ お よ び同期バ ス マ ク ロ も あ り ます。こ れ ら のバス マ ク
ロ は、 レ ジ ス タ 推論 と 必要であれば制御 ロ ジ ッ ク ( イ ネーブル、 ク ロ ッ ク イ ネーブルな ど ) と 置換す
る 必要があ り ます。 次は、 制御 ロ ジ ッ ク 付 き の非同期バ ス マ ク ロ の例です。
例 – 古い VHDL バス マ ク ロ の イ ン ス タ ン シエーシ ョ ン ( イ ネーブル付 き )
Control2_0_BM : busmacro_xc5v_async_enable
port map (
input0 => Sl_addrAck_pr,
input1 => Sl_SSize_pr(0),
input2 => Sl_SSize_pr(1),
input3 => Sl_wait_pr,
enable0 => busmacro_enable,
enable1 => busmacro_enable,
enable2 => busmacro_enable,
enable3 => busmacro_enable,
output0 => Sl_addrAck,
output1 => Sl_SSize(0),
130
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
デザイ ンのア ッ プグレー ド
output2 => Sl_SSize(1),
output3 => Sl_wait
);
例 – バス マ ク ロ の新 し い VHDL 置換文 ( イ ネーブル付 き )
Sl_addrAck <= Sl_addrAck_pr and busmacro_enable;
Sl_SSize(0) <= Sl_SSize_pr(0) and busmacro_enable;
Sl_SSize(1) <= Sl_SSize_pr(1) and busmacro_enable;
Sl_wait <= Sl_wait_pr and busmacro_enable;
バス マ ク ロの再定義
バス マ ク ロ は、古いバ ス マ ク ロ と 同 じ 名前で新規に作成 し たネ ッ ト リ ス ト と 置換で き ます。 こ の方
法は、 同期バ ス マ ク ロ に推奨 さ れます。 こ れは、 同期バス マ ク ロ が ロ ジ ッ ク のデカ ッ プ リ ン グに直
接使用で き る か ら です。 ロ ジ ッ ク デザ イ ンは同 じ にな る ので、パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ
ン を再び有効にす る タ ス ク はかな り 単純化 さ れてい ます。
HDL か ら のバ ス マ ク ロ と 同 じ イ ン タ ーフ ェ イ ス でネ ッ ト リ ス ト を作成 し 、 内部代入を必要なだけ
定義 し ます。 合成中は、 I/O バ ッ フ ァ の挿入がデ ィ ス エーブルにな る よ う に し て く だ さ い ( た と えば
XST の場合、 こ のオプシ ョ ンは [Add I/O Buffers] (-iobuf) です)。
メ モ : こ れ ら の ロ ジ ッ ク モジ ュ ールは、置換 さ れたバ ス マ ク ロ が リ コ ン フ ィ ギ ャ ブル パーテ ィ シ ョ
ンの入力であ ろ う が出力であ ろ う が、 ス タ テ ィ ッ ク ロ ジ ッ ク 内にな り ます。
例 – busmacro_xc5v_async 用に再定義 さ れた VHDL バ ス マ ク ロ
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity busmacro_xc5v_async is
Port ( input0 : in
STD_LOGIC;
input1 : in
STD_LOGIC;
input2 : in
STD_LOGIC;
input2 : in
STD_LOGIC;
output0 : out STD_LOGIC;
output1 : out STD_LOGIC;
output2 : out STD_LOGIC;
output3 : out STD_LOGIC);
end busmacro_xc5v_async;
architecture Behavioral of busmacro_xc5v_async is
begin
output0 <= input0;
output1 <= input1;
output2 <= input2;
output3 <= input3;
end Behavioral;
こ の方法は、一見大変な よ う ですが、デザ イ ン全体にバス マ ク ロ が何百 も 使われてい る よ う な場合、
イ ン ス タ ン ス ご と に変更を加え る 必要がないので、 こ れが最 も 簡単で速い方法にな り ます。 こ れ ら
のバス マ ク ロ を再定義 し 始め る と 、 モジ ュ ールの問題が修正で き る ため、 変更がその タ イ プのバ ス
マ ク ロ すべて と 矛盾 し な く な り ます。 次は、 制御 ロ ジ ッ ク 付 き の非同期バ ス マ ク ロ の例です。
例 – busmacro_xc5v_async_enable 用に再定義 さ れた イ ネーブル付き VHDL バス マ ク ロ
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity busmacro_xc5v_async_enable is
Port ( input0 : in
STD_LOGIC;
input1 : in
STD_LOGIC;
input2 : in
STD_LOGIC;
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
131
付録 B : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ア ッ プグ レー ド ガ イ ド
input2 : in
STD_LOGIC;
input2 : in
STD_LOGIC;
enable1 : in
STD_LOGIC;
enable2 : in
STD_LOGIC;
enable3 : in
STD_LOGIC;
output0 : out STD_LOGIC;
output1 : out STD_LOGIC;
output2 : out STD_LOGIC;
output3 : out STD_LOGIC);
end busmacro_xc5v_async_enable;
architecture Behavioral of busmacro_xc5v_async_enable is
begin
output0 <= input0 and enable0;
output1 <= input1 and enable1;
output2 <= input2 and enable2;
output3 <= input3 and enable3;
end Behavioral;
Verilog バス マ ク ロの削除
Verilog の場合 も VHDL と 同 じ フ ロ ーにな り ますが、Verilog フ ロ ーにはモジ ュ ール宣言が含まれな
い点が異な り ます。 VHDL の フ ロ ーに従い ます。 ただ し 、 使用す る のは Verilog 構文です。
PlanAhead プ ロ ジ ェ ク ト を 13.1 で作成 し ます。
こ のプ ロ ジ ェ ク ト を作成す る には、第 4 章の 「パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン プ ロ ジ ェ ク ト
の作成」 の手順に従っ て く だ さ い。
バス マ ク ロ の再定義プ ロ セ ス を使用す る 場合、PlanAhead でプ ロ ジ ェ ク ト を作成す る 際に、バ ス マ
ク ロ 置換ネ ッ ト リ ス ト を ス タ テ ィ ッ ク ロ ジ ッ ク ソ ース と し て含め る 必要があ り ます。
ま とめ
モジ ュ ール デザ イ ン早期ア ク セ ス パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ツールを使用 し て作成お
よ び イ ンプ リ メ ン ト し たデザ イ ンは、 簡単にパーテ ィ シ ョ ン ベース の ISE 13 用デザ イ ンに変換で
き ます。 バ ス マ ク ロ は削除ま たは置換する 必要があ り 、 ロ ジ ッ ク のデカ ッ プ リ ン グ を考慮す る 必要
があ り ます。 ま た、 モジ ュ ール デザ イ ン特有のオプシ ョ ンは削除で き ます。 こ れに よ り 、 時間をか
けずに、最新のパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン ソ フ ト ウ ェ アで、デザ イ ン を イ ンプ リ メ ン ト
で き る よ う にな っ てい ます。
132
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
付録 C
その他の リ ソ ース
追加資料は、 次のザ イ リ ン ク ス Web サ イ ト を参照 し て く だ さ い。
http://japan.xilinx.com/literature
シ リ コ ン、 ソ フ ト ウ ェ ア、 IP に関する 問題を ア ンサー デー タ ベース で検索 し た り 、 テ ク ニ カル サ
ポー ト の ウ ェ ブ ケース を開 く には、 次のザ イ リ ン ク ス Web サ イ ト にア ク セ ス し て く だ さ い。
http://japan.xilinx.com/support
パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン デザ イ ンの構築に関す る その他の情報は、次を参照 し て く だ
さ い。
•
『 コ マ ン ド ラ イ ン ツール ユーザー ガ イ ド 』 (UG628) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/devref.pdf
•
『制約ガ イ ド 』 (UG625) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/cgd.pdf
•
『Differencing Method for Partial Reconfiguration』 (XAPP290) :
http://japan.xilinx.com/support/documentation/application_notes/xapp290.pdf
•
『Fast Configuration of PCI Express Technology through Partial Reconfiguration』 (XAPP883) :
http://japan.xilinx.com/support/documentation/application_notes/xapp883_Fast_Config_PCIe.pdf
•
『階層デザ イ ン手法ガ イ ド 』 (UG748) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/Hierarchical_Design_
Methodolgy_Guide.pdf
•
『Partial Reconfiguration of Virtex FPGAs in ISE 12』 (WP374) :
http://japan.xilinx.com/support/documentation/white_papers/wp374_Partial_Reconfig_Virtex_
FPGAs.pdf
•
『PlanAhead ソ フ ト ウ ェ アチ ュ ー ト リ アル : プ ロ セ ッ サペ リ フ ェ ラ ルのパーシ ャ ル リ コ ン フ ィ
ギ ュ レーシ ョ ン』 (UG744) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/PlanAhead_Tutorial_R
econfigurable_Peripheral.pdf
•
『PlanAhead ユーザー ガ イ ド 』 (UG632) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/PlanAhead_UserGuide.pdf
•
『PRC/EPRC: Data Integrity and Security Controller for Partial Reconfiguration』 (XAPP887) :
http://japan.xilinx.com/support/documentation/application_notes/xapp887_PRC_EPRC.pdf
•
『PlanAhead ソ フ ト ウ ェ アチ ュ ー ト リ アル : パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン フ ロ ーの概
要』 (UG743) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/PlanAhead_Tutorial_P
artial_Reconfiguration.pdf
パーシ ャル リ コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日
japan.xilinx.com
133
付録 C : その他の リ ソ ース
•
『Repeatable Results with Design Preservation』 (WP362) :
http://japan.xilinx.com/support/documentation/white_papers/wp362.pdf
•
『Virtex-6 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG360) :
http://japan.xilinx.com/support/documentation/user_guides.htm
•
『Virtex-5 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG191) :
http://japan.xilinx.com/support/documentation/user_guides.htm
•
『Virtex-4 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG071) :
http://japan.xilinx.com/support/documentation/user_guides.htm
134
•
『XST ユーザーガ イ ド (Virtex-4、 Virtex-5、 Spartan-3 お よ び CPLD デバ イ ス用)』 (UG627) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/xst.pdf
•
『XST ユーザーガ イ ド (VVirtex-6、 Spartan-6 お よ び 7 シ リ ーズ デバ イ ス用)』 (UG687) :
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx13_1/xst_v6s6.pdf
japan.xilinx.com
パーシ ャル リ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド
UG702 (v13.1) 2011 年 3 月 1 日