• 検索結果がありません。

LOCK_PINS はセル プ ロ パテ ィ で、 論理 LUT 入力 (I0、I1、I2、…) と LUT 物理入力ピ ン (A6、A5、A4、…) のマ ッ プ

を指定 し ます。

通常、 タ イ ミ ン グ ク リ テ ィ カルな LUT 入力を高速の A6 お よ び A5 物理 LUT 入力にマ ッ プす る ために使用 さ れます。

LOCK_PINS 制約の例 1

次の例では、I1 を A6 に、I0 を A5 にマ ッ プ し てい ます (デフ ォ ル ト のマ ッ プ を ス ワ ッ プ)。

% set myLUT2 [get_cells u0/u1/i_365]

% set_property LOCK_PINS {I0:A5 I1:A6} $myLUT2

# Which you can verify by typing the following line in the Tcl Console:

% get_property LOCK_PINS $myLUT2

LOCK_PINS 制約の例 2

次の例では、LUT6 の I0 を A6 にマ ッ プ し てい ます。I1 ~ I5 のマ ッ プは固定 さ れません。

I/O 制約

I/O 制約は次の も のに設定 し ます。

• ポー ト

• ポー ト に接続 さ れてい る セル 一般的な制約は、 次の と お り です。

• I/O 規格

• I/O ロ ケーシ ョ ン

Vivado Design Suite では、ISE® Design Suite の I/O 制約の多 く がサポー ト さ れてい ます。 次の I/O プ ロ パテ ィ の リ ス ト には、 すべてのプ ロ パテ ィ が含まれてい る わけではあ り ません。

° I/O プ ロ パテ ィ の完全 リ ス ト 、I/O ポー ト や I/O セルのプ ロ パテ ィ の詳細、 コ ー ド の構文例は、 『Vivado

Design Suite プ ロ パテ ィ リ フ ァ レ ン ス ガ イ ド 』 (UG912) [参照11] を参照 し て く だ さ い。

注記:特に指定 さ れていない限 り 、 すべてのプ ロ パテ ィ はポー ト オブジ ェ ク ト に適用 さ れます。

° こ れ ら のプ ロ パテ ィ の適用方法な ど については、 『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) の [参照13] な ど、 デバ イ ス の SelectIO の資料を参照 し て く だ さ い。

DRIVE

出力バ ッ フ ァ ーの駆動電流を mA で指定 し ます。 一部の I/O 規格でのみ使用可能です。

IOSTANDARD

I/O 規格を設定 し ます。

SLEW

デバ イ ス出力の スルー レー ト (遷移レー ト) を設定 し ます。

IN_TERM

入力ポー ト の入力終端抵抗の コ ン フ ィ ギ ュ レーシ ョ ン を設定 し ます。

DIFF_TERM

IBUFDS_DIFF_OUT な ど のプ リ ミ テ ィ ブに対 し て 100 オームの差動終端のオン/オ フ を切 り 替え ます。

KEEPER

ト ラ イ ス テー ト 出力ま たは双方向ポー ト に ウ ィ ー ク ド ラ イ バーを適用 し 、 駆動 さ れていない場合に値を保持 し ます。

DCI_CASCADE

マ ス タ ーお よ びス レーブバン ク のセ ッ ト を定義 し ます。DCI 基準電圧は、 マ ス タ ーバン ク か ら ス レーブに チ ェーン接続 さ れます。DCI_CASACDE は IOBANK オブジ ェ ク ト に設定 さ れます。

INTERNAL_VREF

I/O バン ク の Vref ピ ン を解放 し 、 代わ り に内部で生成 さ れた Vref を使用 し ます。INTERNAL_VREF は IOBANK

オブジ ェ ク ト に設定 さ れます。

IODELAY_GROUP

IDELAY お よ び IODELAY セルのセ ッ ト を IDELAYCTRL と グループに し 、 デザ イ ンの IDELAYCTRL が自動的に 複製お よ び配置 さ れ る よ う に し ます。

IOB

フ リ ッ プ フ ロ ッ プ を フ ァ ブ リ ッ ク ス ラ イ ス ではな く I/O ロ ジ ッ ク に配置す る よ う 試みます。 こ のプ ロ パテ ィ は、

ポー ト ではな く レ ジ ス タ に設定す る 必要があ り ます。

重要:IOB の処理方法は、ISE Design Suite と Vivado Design Suite で異な り ます。Vivado ツールでは、IOB を ポー ト お よ びポー ト に接続 さ れてい る レ ジ ス タセルの両方に設定で き ます。 ポー ト と その レ ジ ス タ に競合す る 値が設定 さ れ てい る 場合、 レ ジ ス タ に設定 さ れてい る 値が使用 さ れます。Vivado ツールで使用で き る 値は、TRUE お よ び FALSE のみです。FORCE は TRUE と し て処理 さ れ、AUTO は無視 さ れます。IOB の TRUE 設定を適用で き ない場合、ISE

と は異な り 、Vivado ツールではエ ラ ーではな く ク リ テ ィ カル警告が生成 さ れます。

IOB_TRI_REG

UltraScale+ デバ イ ス の HDIO 用で、HDIO バン ク の IOB の ト ラ イ ス テー ト 信号を駆動す る IOB フ リ ッ プ フ ロ ッ

プ を、 フ ァ ブ リ ッ ク ス ラ イ ス ではな く 、I/O ロ ジ ッ ク に配置す る よ う 試みます。 こ のプ ロ パテ ィ は、 ポー ト では な く レ ジ ス タ に設定す る 必要があ り ます。

配置制約

配置制約はセルに適用 し 、 デバ イ ス内での ロ ケーシ ョ ン を制御 し ます。Vivado IDE では、ISE Design Suite お よ び PlanAhead™ ツールの配置制約の多 く がサポー ト さ れてい ます。

LUTNM

2 つの LUT に固有の名前を指定 し 、1 つの LUT サ イ ト に配置 し ます。HLUTNM と は異な り 、LUTNM は、 異な る

階層セルに属 し てい る LUT を ま と め る ために使用で き ます。

HLUTNM

PBLOCK

論理ブ ロ ッ ク に設定 し 、 デバ イ ス の物理領域に制約 し ます。

PBLOCK は、 読み取 り 専用のセルプ ロ パテ ィ で、 セルが割 り 当て ら れてい る Pblock の名前です。 セル Pblock の メ ンバーを変更す る には、XDC Tcl コ マ ン ド add_cells_to_pblock お よ び remove_cells_from_pblock を使用 し ます。

PACKAGE_PIN

タ ーゲ ッ ト デバ イ ス パ ッ ケージの ピ ンのデザ イ ン ポー ト の ロ ケーシ ョ ン を指定 し ます。

LOC

ネ ッ ト リ ス ト の論理エ レ メ ン ト をデバ イ ス上のサ イ ト に配置 し ます。

BEL

ネ ッ ト リ ス ト の論理エ レ メ ン ト をデバ イ ス上の ス ラ イ ス内の特定の BEL に配置 し ます。

詳細は、 次を参照 し て く だ さ い。

• 第7章 「XDC の優先順位」

• 第9章 「相対配置マ ク ロ の定義」

配置 タ イ プ

次の 2 種類の配置があ り ます。

• 「固定配置」

• 「固定 さ れていない配置」

固定配置

固定配置 と は、 次のいずれかの方法でユーザーが指定 し た配置の こ と です。

• 手動配置

• XDC 制約

• メ モ リ に読み込まれたデザ イ ンのセル オブジ ェ ク ト に IS_LOC_FIXED ま たは IS_BEL_FIXED を使用 し ます。

固定 さ れていない配置

固定 さ れていない配置は、 イ ンプ リ メ ン テーシ ョ ン ツールで実行 さ れ る 配置です。 配置が固定 と 設定 さ れてい る と 、 制約が設定 さ れてい る セルは イ ンプ リ メ ン テーシ ョ ンで移動で き ません。 固定配置は、 単純な LOC ま たは BEL と し て XDC フ ァ イ ルに保存 さ れます。

配置制約の例 1

次の例では、 ブ ロ ッ ク RAM を RAMB18_X0Y10 に配置 し 、 その位置に固定 し てい ます。

% set_property LOC RAMB18_X0Y10 [get_cells u_ctrl0/ram0]

配置制約の例 2

次の例では、LUT を ス ラ イ ス の C5LUT BEL に配置 し 、 その BEL 割 り 当て を固定 し てい ます。

% set_property BEL C5LUT [get_cells u_ctrl0/lut0]

配置制約の例 3

次の例では、 入力遅延を短 く す る ため入力バ ス レ ジ ス タ を ILOGIC セルに配置 し てい ます。

% set_property IOB TRUE [get_cells mData_reg*]

配置制約の例 4

次の例では、2 つの小型の LUT を、O5 お よ び O6 出力の両方を使用す る 1 つの LUT6_2 に ま と めてい ます。

% set_property LUTNM L0 [get_cells {u_ctrl0/dmux0 u_ctrl0/dmux1}]

配置制約の例 5

次の例では、 ブ ロ ッ ク RAM の最初の列が使用 さ れない よ う に し てい ます。

% set_property PROHIBIT TRUE [get_sites {RAMB18_X0Y* RAMB36_X0Y*}]

配置制約の例 6

次の例では、 配置で ク ロ ッ ク 領域 X0Y0 が使用 さ れない よ う に し てい ます。

% set_property PROHIBIT TRUE [get_sites -of [get_clock_regions X0Y0]]

配置制約の例 7

次の例では、SLR0 が使用 さ れない よ う に し てい ます。

% set_property PROHIBIT TRUE [get_sites -of [get_slrs SLR0]]

重要:1 つのセルに BEL と LOC の両方のプ ロ パテ ィ を割 り 当て る 場合、 まず BEL を割 り 当ててか ら 、LOC を割 り 当

て る 必要があ り ます。

配線制約

配線制約はネ ッ ト オブジ ェ ク ト に適用 し 、 配線 リ ソ ース を制御 し ます。

固定配線

固定配線は、ISE の指定配線 (Directed Routing) と 同様、 配線を固定す る 機能です。 ネ ッ ト の配線 リ ソ ース の固定に は、3 つのネ ッ ト プ ロ パテ ィ が関係 し ます。表8-1 を参照 し て く だ さ い。

ネ ッ ト の配線が確実に固定 さ れ る よ う にす る には、 その配線のすべてのセルを固定 し てお く 必要があ り ます。

次に、 配線を完全に固定す る 例を示 し ます。 こ の例では、図8-1 のデザ イ ンのネ ッ ト netA (青色でハ イ ラ イ ト) の配 線を固定す る 制約を作成 し ます。

イ ンプ リ メ ン ト 済みデザ イ ン を メ モ リ に読み込む と 、 ネ ッ ト の配線情報を ク エ リ で き る よ う にな り ます。

% set net [get_nets netA]

% get_property ROUTE $net

{ CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5 FAN_BOUNCE5 { IMUX_L17 CLBLL_LL_B3 } IMUX_L11 CLBLL_LL_A4 }

表 8-1:ネ ッ ト プ ロパテ ィ

プ ロパテ ィ 機能

ROUTE 読み取 り 専用のネ ッ ト プ ロ パテ ィ

IS_ROUTE_FIXED 配線全体を固定す る よ う マー ク

FIXED_ROUTE ネ ッ ト の一部を固定配線

X-Ref Target - Figure 8-1

図 8-1:配線制約の例を示すためのシ ン プルなデザイ ン

制約を今後のために XDC フ ァ イ ルにバ ッ ク ア ノ テー ト す る には、 固定 さ れたネ ッ ト に接続 さ れてい る すべてのセル の配置 も 保持す る 必要があ り ます。 こ の情報は、[Schematic] ま たは [Device] ウ ィ ン ド ウ でセルを選択 し 、[Properties]

ウ ィ ン ド ウ の LOC/BEL プ ロ パテ ィ 値で確認す る か、 ま たは、Tcl コ ン ソ ールで こ れ ら の値を直接 ク エ リ で き ます。

% get_property LOC [get_cells {a0 L0 L1}]

SLICE_X0Y47 SLICE_X0Y47 SLICE_X0Y47

% get_property BEL [get_cells {a0 L0 L1}]

SLICEL.CFF SLICEL.A6LUT SLICEL.B6LUT

固定 さ れた配線は タ イ ミ ン グ ク リ テ ィ カルであ る こ と が多いので、LUT ピ ンのマ ッ プ も LUT の LOCK_PINS プ ロ パ テ ィ で指定 し 、 配線時に ピ ンが ス ワ ッ プ さ れない よ う にす る 必要があ り ます。

各論理ピ ンのサ イ ト ピ ンは、Tcl コ ン ソ ールで ク エ リ で き ます。

% get_site_pins -of [get_pins {L0/I1 L0/I0}]

SLICE_X0Y47/A4 SLICE_X0Y47/A2

% get_site_pins -of [get_pins {L1/I1 L1/I0}]

SLICE_X0Y47/B3 SLICE_X0Y47/B2

netA の配線を固定す る のに必要な完全な XDC 制約は、 次の と お り です。

set_property BEL CFF [get_cells a0]

set_property BEL A6LUT [get_cells L0]

set_property BEL B6LUT [get_cells L1]

set_property LOC SLICE_X0Y47 [get_cells {a0 L0 L1}]

set_property LOCK_PINS {I1:A4 I0:A2} [get_cells L0]

set_property LOCK_PINS {I1:A3 I0:A2} [get_cells L1]

set_property FIXED_ROUTE { CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5 FAN_BOUNCE5 { IMUX_L17 CLBLL_LL_B3 } IMUX_L11 CLBLL_LL_A4 } [get_nets netA]

XDC ではな く 、 イ ン タ ラ ク テ ィ ブな Tcl コ マ ン ド を使用 し てい る 場合、 次の よ う に、1 つの place_cell コ マ ン ド

で一度に複数の配置制約を指定で き ます。

place_cell a0 SLICE_X0Y47/CFF L0 SLICE_X0Y47/A6LUT L1 SLICE_X0Y47/B6LUT

place_cell の詳細は、『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照10] を参照 し て く だ さ い。

コ ン フ ィ ギ ュ レーシ ョ ン制約

コ ン フ ィ ギ ュ レーシ ョ ン制約は、 ビ ッ ト ス ト リ ーム生成用のグ ロ ーバル制約で、 現在のデザ イ ンに適用 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン モー ド な ど の制約が こ れに含まれます。

コ ン フ ィ ギ ュ レーシ ョ ン制約の例 1

コ ン フ ィ ギ ュ レーシ ョ ン制約の例 2

次の例は、 デバ ッ グ ビ ッ ト ス ト リ ーム をオンに し ます。

% set_property BITSTREAM.GENERAL.DEBUGBITSTREAM Yes [current_design]

コ ン フ ィ ギ ュ レーシ ョ ン制約の例 3

次の例では、CRC チ ェ ッ ク をデ ィ ス エーブルに し てい ます。

% set_property BITSTREAM.GENERAL.CRC Disable [current_design]

ビ ッ ト ス ト リ ーム生成プ ロ パテ ィ お よ び定義の リ ス ト は、 『Vivado Design Suite ユーザー ガ イ ド: プ ロ グ ラ ムお よ びデ バ ッ グ』 (UG908) [参照12] のこ のセ ク シ ョ ンを参照 し て く だ さ い。

ドキュメント内 Vivado Design Suite ユーザー ガイド: 制約の使用 (ページ 137-158)

関連したドキュメント