AR# 10019

12.1 制約- PERIOD 制約のデザインへの適用方法

説明

PERIOD 制約をデザインに適用するにはどうしたらよいですか。

ソリューション


基本的な周期の仕様



図 1 - 基本的な周期の仕様
図 1 - 基本的な周期の仕様




PERIOD 制約は同期エレメント間のパスのみに適用されます。同期エレメントには、フリップフロップ、ラッチ、同期 RAM (パッドは同期エレメントではありません) があります。 UCF の例は次のとおりです。



NET CLK PERIOD = 20 ns;



タイミング レポートでの制約例 :

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

Timing constraint: NET "CLK" PERIOD = 20 nS HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected.

Minimum period is 3.109ns.

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



タイミング制約の詳細は、タイミング制約ユーザー ガイドを参照してください。
http://japan.xilinx.com/support/documentation/sw_manuals/xilinx12_1/ug612.pdf



TIMESPEC キーワードを使用した PERIOD 制約

図 2 - TIMESPEC キーワードを使用した PERIOD 制約
図 2 - TIMESPEC キーワードを使用した PERIOD 制約


TIMESPEC キーワードを使用し、PERIOD 制約を書くこともできます。(クロック記述にはこちらの方法をお勧めします。) 次の例では、TNM でユーザー定義グループが作成され、TIMESPEC でそのグループのタイミング仕様が定義されます。

メモ : TIMESPEC の名前は ''TS'' で始まる必要があります。

NET CLK TNM = SYSCLK;

TIMESPEC TS_SYSCLK = PERIOD SYSCLK 20;

タイミング レポートでの制約例:

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

Timing constraint: TS_SYSCLK = PERIOD TIMEGRP "SYSCLK" 20 nS HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected.

Minimum period is 3.109ns.

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

デューティ サイクルと PERIOD 制約

図 3 - デューティ サイクルと PERIOD 制約
図 3 - デューティ サイクルと PERIOD 制約


元の PERIOD 制約と25% デューティ サイクルの PERIOD 制約

例 1

UCF の例 :

NET CLK PERIOD = 20 HIGH 5;

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

Timing constraint: NET "CLK" PERIOD = 20 nS HIGH 5 nS ;

1 item analyzed, 0 timing errors detected.

Minimum period is 3.109ns.

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

例 1

UCF の使用;

NET CLK TNM = SYSCLK;

TIMESPEC TS_SYSCLK = PERIOD SYSCLK 20 LOW 5;

タイミング レポートでの制約例 :

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

Timing constraint: TS_SYSCLK = PERIOD TIMEGRP "SYSCLK" 20 nS LOW 5 nS ;

1 item analyzed, 0 timing errors detected.

Minimum period is 3.109ns.

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

立ち上がり/立ち下がりエッジのクロック

図 4 - 立ち上がり/立ち下がりエッジのクロック
図 4 - 立ち上がり/立ち下がりエッジのクロック


UCF の例 :

NET CLK PERIOD = 20 ns;

タイミング レポートでの制約例 :

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

Timing constraint: NET "CLK" PERIOD = 20 nS HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected.

Minimum period is 6.218ns.

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

Slack:

6.891ns path $Net00004_ to DATA_OUT relative to

3.106ns total path delay

0.003ns clock skew

10.000ns delay constraint (two-phase clock)

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

メモ :

1. 最小周期は 2 倍です (以前は 3.109 ns)。

2. クロック周期に割り当てられた時間は半分に分割されました。

3. "two-phase clock" は自動的に認識されたことを示します。

DLL CLK0 と周期

図 5 - DLL CLK0 と周期
図 5 - DLL CLK0 と周期


UCF の例 :

NET "CLKIN" TNM_NET = "CLKIN";

TIMESPEC "TS_CLKIN" = PERIOD "CLKIN" 20 ns HIGH 50 %;

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

Timing constraint: TS_CLK0 = PERIOD TIMEGRP "clk0" TS_CLKIN * 1.000000 HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected. (0 setup errors, 0 hold errors)

Minimum period is 1.296ns.

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

Slack: 18.704ns (requirement - (data path - clock skew))

Source: ff_clk01 (FF)

Destination: ff2_clk01 (FF)

Requirement: 20.000ns

Data Path Delay: 1.296ns (Levels of Logic = 0)

Clock Skew: 0.000ns

Source Clock: clk0_bufg rising at 0.000ns

Destination Clock: clk0_bufg rising at 20.000ns

PERIOD は DLL クロック出力に渡されています。

DLL CLK2X と周期

図 6 - DLL CLK2X と周期
図 6 - DLL CLK2X と周期


UCF の例 :

NET "CLKIN" TNM_NET = "CLKIN";

TIMESPEC "TS_CLKIN" = PERIOD "CLKIN" 20 ns HIGH 50 %;

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

Timing constraint: TS_clk2x_dll = PERIOD TIMEGRP "clk2x_dll" TS_clkin / 2.000000 HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected. (0 setup errors, 0 hold errors)

Minimum period is 1.304ns.

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

Slack: 8.696ns (requirement - (data path - clock skew))

Source: ff_clk01 (FF)

Destination: ff2_clk01 (FF)

Requirement: 10.000ns

Data Path Delay: 1.304ns (Levels of Logic = 0)

Clock Skew: 0.000ns

Source Clock: clk2x_dll_bufg rising at 0.000ns

Destination Clock: clk2x_dll_bufg rising at 10.000ns

PERIOD は DLL クロック出力に渡されて半分に分割されています。

CLKDV と周期

図 7 - DLL CLKDV と周期
図 7 - DLL CLKDV と周期


UCF の例 :

INST MYDLL CLKDV_DIVIDE = 2.5;

NET "CLKIN" TNM_NET = "CLKIN";

TIMESPEC "TS_CLKIN" = PERIOD "CLKIN" 20 ns HIGH 50 %;

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

Timing constraint: TS_clkdv_dll = PERIOD TIMEGRP "clkdv_dll" TS_clkin * 2.500000 HIGH 50.000 % ;

1 item analyzed, 0 timing errors detected. (0 setup errors, 0 hold errors)

Minimum period is 1.304ns.

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

Slack: 48.696ns (requirement - (data path - clock skew))

Source: ff_clk01 (FF)

Destination: ff2_clk01 (FF)

Requirement: 50.000ns

Data Path Delay: 1.304ns (Levels of Logic = 0)

Clock Skew: 0.000ns

Source Clock: clkdv_dll_bufg rising at 0.000ns

Destination Clock: clkdv_dll_bufg rising at 50.000ns

メモ : DLL は BUFG を介して CLK0 または CLK2X から供給されています。
AR# 10019
日付 01/24/2013
ステータス アクティブ
種類 一般
ツール 詳細 概略