AR# 8816

FPGA Express - 「ERROR:OldMap:56 - The LOC constraint '<pin_location>' (a IOB location) is not valid for symbol '<symbol_name>'」というエラー メッセージが表示される

説明

キーワード : MAP, ERROR, LOC, constraint, OldMap:56, OldMap, IOB, location, not, valid, Express, infer, instantiate, BUFG, IBUF, CLKIOB, GCLKIOB, 制約, ロケーション, 有効, 推論, インスタンシエート, ロック, エラー, マップ, バッファ

重要度 : 標準

概要 :
どのようなデザインでも、特定のクロックやリセット信号がグローバル バッファ上にマップされないようなリソースの必要条件と制限があります。 同様に、以前にレイアウトされた PCB によって、信号がピンにマップされるように指定してしまうこともあります。

FPGA Express では、デフォルトでファンアウトの多いクロック信号のためのグローバル バッファを推測し、CLKIOB や GCLKIOB といった専用のクロック ピンが使用可能な場合には、これらのピンを使うこともできます。 Express で信号を専用のピンにマップし、その後ユーザーが 通常の IOB ロケーションにロックすると、次のようなエラーがインプリメンテーションのマップの段階で起こります。

Virtex デバイスの場合 :

2.1i
"ERROR:xvkmm:3 - Illegal LOC on symbol "reset.PAD" (pad signal=reset) or BUFGP symbol "C41" (output signal=N13_BUFGPed), IPAD-IBUFG should only be LOCed to GCLKIOB site."

3.1i
"ERROR:MapLib:93 - Illegal LOC on symbol "clk4" (pad signal=clk4) or BUFGP symbol "C48" (output signal=clk4_BUFGPed), IPAD-IBUFG should only be LOCed to GCLKIOB site."

Virtex 以外のデバイスの場合 :

2.1i
"ERROR:OldMap:56 - The LOC constraint "P##" (a IOB location) is not valid for symbol "reset.PAD" (pad signal = reset), which is being mapped to the following site types: CLKIOB"

ソリューション

1

Foundation Standard Express 2.1i の場合、FPGA Express のユーザー インターフェイス (GUI) でデザイン制約を入力できます。 Foundation Base Express の場合、FPGA Express のシェル コマンドを使用して制約を入力できます。 この場合、ソリューション 2 を参照してください。

使用しているソフトウェア パッケージを確認するには、ライセンス ファイルを開き、次のいずれかのコードを検索してください。
FND-BSX-*** ... Base Express
FND-EXP-*** ... Standard Express

スタンドアロンの FPGA Express で合成したデザインでは制約を編集する必要があります。 FPGA Express を開くには、[スタート] → [プログラム] → [Foundation シリーズ 3.1i 日本語版] → [アクセサリ] → [FPGA Express] をクリックします。 FPGA Express で作成した既存のプロジェクトを表す EXP ファイルは、「myproj」が Foundation でのプロジェクト名の場合、myproj/myproj/myproj.exp にあります。

FPGA Express の [Chips] ウィンドウの合成したデザイン上で右クリックし、[Edit Constraints] をクリックします。 次に [Ports] タブをクリックします。 [Global Buffer] の列で、グローバル バッファにマップしない信号には [Don’t Use] をチェックします。

2

1. FPGA Express を開きます
2. プロジェクトを開きます。
3. 最適化済みのチップをハイライトします。
4. [Script] プルダウン メニューをクリックします。
5. [Export FPGA Script] をクリックし、抽出するディレクトリを指定します。
6. 抽出したディレクトリからスクリプト ファイルをノートパッドで開きます。
7. このスクリプトの current_chip <chip_name> の行の後に、つぎのコマンドを入力します。後述の例を参照してください。
set_pad_buffer "DONT USE" /<chip_name>/<clock_port>

8. 拡張子を保護するため、ファイル名の前後にクォーテーション マークをつけてからファイルを保存します。
- このファイルは <design_name>.fes という名前で保存する必要があります。
- [はい] を 2 回クリックし、保存します。

9. FPGA Express シェルを開き、このスクリプトを使用します。


10. このスクリプトのディレクトリを指定します。
cd C:/スクリプトへのパス/スクリプト ディレクトリ

11. エキスポートしたFES ファイル filename.fes を使用します。
source filename.fes

12. これで、この EDIF ネットリストにザイリンクス インプリメンテーション ツールを使用して EDIF フローを実行できます。

スクリプト例 :

open_project <path_to_project>?_<project>.exp

analyze_file -progress

create_chip -progress -name <chip_name> -target SPARTAN2 -device 2S150FG456 -speed -6 -frequency 200 -preserve <top_level>

current_chip <chip_name>

optimize_chip -name <chip_name>-Optimized -progress

export_chip

list_message

close_project

FPGA Express ではユーザーの入力した制約のエキスポートができないため、スクリプトは基本的なものになります。 GUI で入力した制約はすべてスクリプトで入力し直す必要があります。

create_chip 操作のあとに、次のようなコマンドを入力します。

current_chip <chip_name>

set_pad_buffer "DONT USE" /<chip_name>/<clock_port>

この入力が終わったら、残りのスクリプトに進んでください。

3

専用のクロックピンではなく (理由はおそらく PCB が前もってレイアウトされているため)、グローバル配線リソースを使用するための信号は、IBUF → BUFG のペアをインスタンシエーションして取得できます。 FPGA Express ではなく、Xilinx マップが信号を専用ピンにマップしないようにするために、ロケーション制約を付けることも必要になります。

次のツールを使用して、通常の IOB に信号をロックできます。

1. FPGA Express 制約 GUI
2. UCF
3. FPGA Express のコマンド ライン

UCF には次のように入力します。

net clk1 LOC = P120; (where P120 is a regular I/O pin)

FPGA Express のコマンド ラインには次のように入力します。

set_pad_loc <pin_site> /<chip_name>/<port_name>

4

Synplicity を使用の場合、Synplify ファンアウトの多い信号に対してグローバル クロック バッファを推論します。 また、UCF ファイルで LOC 制約が汎用の I/O に付けられることも原因となり、「OldMap:56」エラーが発生します。 詳細については、(ザイリンクス アンサー #4084) を参照してください。
AR# 8816
日付 08/26/2010
ステータス アーカイブ
種類 一般