BEL/LOC 制約 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2022-06-01
Version
2022.1 日本語

複雑な構造では、RLOC に加えて BEL または LOC 制約を指定する必要がある場合があります。BEL 制約は、LUT をレジスタと揃えるなど、RPM セット内のセルを揃えるのに使用します。LOC 制約は、RPM セットはデバイス内の特定のサイトに配置されるので、通常は使用されません。BEL または LOC 制約を指定する必要がある場合は、これらの制約のソースを混合しないようにすることが重要です。すべての BEL/LOC 制約を RTL または XDC のいずれかのみで指定し、両方を組み合わせて使用しないでください。次に、RTL で BEL 制約を指定する例を示します。

Verilog ファイル:


(*BEL="H6LUT",RLOC="X0Y0"*) LUT6 S0_LUTH (...); 
(*BEL="G6LUT",RLOC="X0Y0"*) LUT6 S0_LUTG (...); 
(*BEL="F6LUT",RLOC="X0Y0"*) LUT4 S0_LUTF (...); 
(*BEL="E5LUT",RLOC="X0Y0"*) LUT4 S0_LUTE (...); 
(*BEL="D6LUT",RLOC="X0Y0"*) LUT6 S0_LUTD (...); 
(*BEL="C6LUT",RLOC="X0Y0"*) LUT6 S0_LUTC (...); 
(*BEL="B6LUT",RLOC="X0Y0"*) LUT4 S0_LUTB (...); 
(*BEL="A5LUT",RLOC="X0Y0"*) LUT4 S0_LUTA (...);

(*BEL="CARRY8",RLOC="X0Y0"*) CARRY8#(.CARRY_TYPE("DUAL_CY4")) S0_CARRY8(...);
 
(*BEL="HFF2",RLOC="X0Y0"*) FD FD_out5 (...);
(*BEL="GFF2",RLOC="X0Y0"*) FD FD_out4 (...);
(*BEL="FFF2",RLOC="X0Y0"*) FD FD_out3 (...);
(*BEL="DFF2",RLOC="X0Y0"*) FD FD_out2 (...);
(*BEL="CFF2",RLOC="X0Y0"*) FD FD_out1 (...);
(*BEL="BFF2",RLOC="X0Y0"*) FD FD_out0 (...);
注記: コマンドをシンプルにするため、INIT 文字列は省略されています。

次のコマンド例では、RPM は RTL で定義されていますが、BEL 制約は XDC で指定されています。

Verilog ファイル:

(*RLOC="X0Y0"*) LUT6 S0_LUTH (...);
(*RLOC="X0Y0"*) LUT6 S0_LUTG (...);
(*RLOC="X0Y0"*) LUT4 S0_LUTF (...);
(*RLOC="X0Y0"*) LUT4 S0_LUTE (...);
(*RLOC="X0Y0"*) LUT6 S0_LUTD (...);
(*RLOC="X0Y0"*) LUT6 S0_LUTC (...);
(*RLOC="X0Y0"*) LUT4 S0_LUTB (...);
(*RLOC="X0Y0"*) LUT4 S0_LUTA (...);

(*RLOC="X0Y0"*) CARRY8#(.CARRY_TYPE("DUAL_CY4")) S0_CARRY8(...);
 
(*RLOC="X0Y0"*) FD FD_out5 (...);
(*RLOC="X0Y0"*) FD FD_out4 (...);
(*RLOC="X0Y0"*) FD FD_out3 (...);
(*RLOC="X0Y0"*) FD FD_out2 (...);
(*RLOC="X0Y0"*) FD FD_out1 (...);
(*RLOC="X0Y0"*) FD FD_out0 (...);
注記: コマンドをシンプルにするため、INIT 文字列は省略されています。

XDC ファイル:

set_property BEL CARRY8 [get_cells S0_CARRY8] 
set_property BEL HFF2 [get_cells FD_out5] 
set_property BEL GFF2 [get_cells FD_out4] 
set_property BEL FFF2 [get_cells FD_out3] 
set_property BEL DFF2 [get_cells FD_out2] 
set_property BEL CFF2 [get_cells FD_out1] 
set_property BEL BFF2 [get_cells FD_out0] 
set_property BEL A5LUT [get_cells S0_LUTA] 
set_property BEL B6LUT [get_cells S0_LUTB] 
set_property BEL C6LUT [get_cells S0_LUTC] 
set_property BEL D6LUT [get_cells S0_LUTD] 
set_property BEL E5LUT [get_cells S0_LUTE]
set_property BEL F6LUT [get_cells S0_LUTF] 
set_property BEL G6LUT [get_cells S0_LUTG] 
set_property BEL H6LUT [get_cells S0_LUTH]