固定配線は、ISE の指定配線 (Directed Routing) と同様、配線を固定する機能です。ネットの配線リソースの固定には、3 つのネット プロパティが関係します。次の表を参照してください。
プロパティ | 機能 |
---|---|
ROUTE | 読み取り専用のネット プロパティ |
IS_ROUTE_FIXED | 配線全体を固定するようマーク |
FIXED_ROUTE | ネットの一部を固定配線 |
ネットの配線が確実に固定されるようにするには、その配線のすべてのセルを固定しておく必要があります。
次に、配線を完全に固定する例を示します。この例では、前の図のデザインのネット 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 }
配線は、配線ノード名のリストで示され、ファンアウトは中かっこ ({ }) で示されます。配線を固定するには、ネットに次のプロパティを設定します。
% set_property IS_ROUTE_FIXED TRUE $net
制約を今後のために XDC ファイルにバックアノテートするには、固定されたネットに接続されているすべてのセルの配置も保持する必要があります。この情報は、[Schematic] または [Device] ウィンドウでセルを選択し、[Properties] ウィンドウの LOC/BEL プロパティ値で確認するか、または、[Tcl Console] ウィンドウでこれらの値を直接クエリできます。
% 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 Console] ウィンドウでクエリできます。
% 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) を参照してください。