AR# 3753

12.1 制約 - UCF から PCF への変換例 (PERIOD、FROM:TO、LOCs、RPMs)

説明

このアンサーは、いくつかの一般的なユーザー制約ファイル (UCF) ファイルど同等の物理的制約ファイル (PCF) の構文を説明していますが、すべての網羅するリストではありません。

COMP (CLB や IOB) や BEL (フリップフロップ、LUT、TBUF など) の名前が必要なので、数多くの制約を PCF で最初から作成するのは手間がかかります。MAP_REPORT_DETAIL 環境変数が「TRUE」に設定されている場合は、この情報はマップ レポート (.mrp) から取得できます。

「_COMP」という文字列は COMP 名が必要であることを示し、「_BEL」は BEL 名が必要であることを示します (実際の名前を調べるには MRP ファイルを表示する必要があります)。

メモ : IOB COMP には常にパッド ネットと同じ名前です (BLKNM コンポーネントを追加しない限り)。フリップフロップ BEL には Q 出力のネットと同じ名前です。たとえば、UCF OFFSET 制約の場合 :

NET "myinput" OFFSET = IN 55 AFTER "clk";

ネット「myinput」および「clk」は入力信号およびクロック信号のパッド ネットの名前です。IOB COMP 名はパッド ネット名と同じなので、同等の PCF 構文は次のようになります。

COMP "mynet" OFFSET = IN 55 nS AFTER COMP "clk";

詳細は、(ザイリンクス アンサー 2449)(ザイリンクス アンサー 6662)、および (ザイリンクス アンサー 3416) を参照してください。

ソリューション

タイミング制約

==================



PERIOD

------------------------------------

例 #1 : (簡単な方法を使用)

UCF: NET "clk" PERIOD = 30 low 12;

PCF: NET "clk" PERIOD = 30 nS LOW 12 nS;



例 #2 : (もう 1 つ方法を使用)

UCF: TIMESPEC TS01 = PERIOD mygroup 30;

PCF: TS01 = PERIOD TIMEGRP "mygroup" 30 nS HIGH 50.000 % ;


(メモ : 「mygroup」は TNM であらかじめ定義しておく必要があります。)



OFFSET

------------------------------------

UCF: NET "myinputnet" OFFSET = IN 55 AFTER "clk";

PCF: COMP "myinputnet" OFFSET = IN 55 nS AFTER COMP "clk";


(メモ : IN/BEFORE、OUT/AFTER、および OUT/BEFORE も同様です。)



TNM/TIMEGRP

------------------------------------

例 #1 : (TNM を使用)

UCF: INST "myinst" TNM = "A";

PCF: TIMEGRP "A" = BEL "**myinst_BEL**"; ##find BEL name



例 #2 : (TIMEGRP を使用)

UCF: TIMEGRP "A" = FFS("myflop_output_net");

PCF: TIMEGRP "A" = BEL "myflop_output_net";



TIMESPEC (あらかじめ定義されたグループを使用)

--------------------------------------------------------------------

UCF: TIMESPEC TS01 = FROM PADS TO FFS 50;

PCF: TIMEGRP "PADS" = PADS("*");

: TIMEGRP "FFS" = FFS("*");

: TS01=MAXDELAY FROM TIMEGRP "PADS" TO TIMEGRP "FFS" 50 nS;



TIMESPEC (ユーザー定義されたグループを使用)

--------------------------------------------------------------------

例 #1 : (ユーザー定義されたグループを 2 つ使用)

UCF: TIMESPEC TS01 = FROM "A" TO "B" 50;

PCF: TS01=MAXDELAY FROM TIMEGRP "A" TO TIMEGRP "B" 50 nS;



例 #2 : (ユーザー定義されたグループを 1 つ、あらかじめ定義されたグループを 1 つ使用)

UCF: TIMESPEC TS01 = FROM "A" TO FFS(S) 50;

PCF: TIMEGRP "FFS(S)" = BEL "S" ;

: TS01=MAXDELAY FROM TIMEGRP "A" TO TIMEGRP "FFS(S)" 50 nS;


(メモ : 「A」および「B」は TNM/TIMEGRP であらかじめ定義しておく必要があります。)



TIG (ネット)

---------------------------

例 #1 : (ネットを使用)

UCF: NET "mynet" TIG;

PCF: NET "mynet" TIG;



例 #2 : (ソース/デスティネーションを使用)

UCF: TIMESPEC TSig = FROM "A" TO "B" TIG;

PCF: PATH "FROM A TO B" = FROM TIMEGRP "A" TO TIMEGRP "B";

: PATH "FROM A TO B" TIG;


(メモ : 「A」および「B」は TNM/TIMEGRP であらかじめ定義しておく必要があります。)


このアンサーが役立ったかどうかフィードバックをお願いします。



配置制約

=====================



LOC

------------------------------------

例 #1 : (1 つのパッドにロック)

UCF: NET "myinput" LOC = P6;

PCF: COMP "myinput" LOCATE = SITE "P6" LEVEL 1;



例 #2 : (数個あるパッドのうちの 1 つのパッドにロック)

UCF: NET "myinput" LOC = P6, P7, P8;

PCF: COMP "myinput" LOCATE = SITE "P6" SITE "P7" SITE "P8"

: LEVEL 1;



例 #3 : (ある範囲の CLB にロック)

UCF: INST "myflop" LOC = CLB_R3C4:CLB_R5C5;

PCF: COMP "**myflop_COMP**" LOCATE = SITE "CLB_R3C4:CLB_R5C5"

: LEVEL 4; ##



PROHIBIT

------------------------------------

UCF: CONFIG PROHIBIT = P6;

PCF: PROHIBIT = SITE "P6";



RLOC_ORIGIN

------------------------------------

例 #1 : (RLOC プリミティブをロック)

UCF: INST "myprim" RLOC_ORIGIN = R9C8;

PCF: COMP "**myprim_COMP**" LOCATE=SITE "CLB_R11C10" LEVEL 1;


(メモ : 「myprim」に R2C2 の RLOC があることが想定されています。R2C2+R9C8 = R11C10)



例 #2 : (複数メンバーの COMP のある RLOC マクロをロック)

UCF: INST "my_macro" RLOC_ORIGIN = R9C8;

PCF: MACRO "my_macro/hset" LOCATE=SITE "CLB_R11C10" LEVEL 1;


(メモ 1 : 「my_macro」に R2C2 の RLOC があることが想定されています。R2C2+R9C8 = R11C10。通常、マクロに RLOC セットに属する複数メンバーの COMP が含まれている場合、RLOC_ORIGIN 値は最低列 (R) の値のあるエレメントの RLOC の値に追加されます。これは開始点として考慮されます。2 つ以上のエレメントに同じ列値が割り当てられていて、その値が最小である場合、列 (C) の値は開始点を決定するために使用されます。


(メモ 2 : セットの名前は「hset」であると想定されています。U_SET または HU_SET 制約を使用して名前を設定している場合は、この名前にはなりません。U_SET をエレメントに付けた場合は、「my_macro/u_set_name」を使用します。HU_SET をエレメントに付けた場合、階層であらかじめ定義されている「hu_set_name」を使用します)。



RLOC_RANGE

----------------------------------

例 #1 : (RLOC プリミティブをロック)

UCF: INST "myprim" RLOC_ORIGIN = R9C8:R11C10;

PCF: COMP "**myprim_COMP**" LOCATE=SITE "CLB_R11C10":

"CLB_R13C12" LEVEL 4;


(メモ : 「myprim」に R2C2 の RLOC があることが想定されています。R2C2+R9C8=R11C10, R2C2+R11C10=R13C12;)



例 #2 : (複数メンバーの COMP のある RLOC マクロをロック)

UCF: INST "my_macro" RLOC_ORIGIN = R9C8:R11C10;

PCF: COMPGRP "$macro_my_macro/hset" = MACRO "my_macro/hset";

: COMPGRP "$macro_my_macro/hset" LOCATE=SITE "CLB_R11C10":

"CLB_R13C12" LEVEL 4;


(メモ : RLOC_ORIGIN の例 #2 を参照してください。 また、「$macro_」という文字列がマクロ名に追加されている必要があるので注意してください。)



PCF では使用できない UCF 制約

====================================


これらは一般的な制約です (PCF に使用できない制約はほかにもあります)。


BLKNM/HBLKNM、FAST、RLOC、U_SET/HU_SET
AR# 3753
日付 12/15/2012
ステータス アクティブ
種類 一般
ツール 詳細 概略