UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 21096

7.1i タイミング/制約 - 領域クロックを使用した Virtex-4 DDR デザインの OFFSET IN で立ち下がりエッジ グループが解析されない (WARNING:ConstraintSystem:58)

説明

キーワード : TRACE, Timing Analyzer, 7.1isp1, Rising, 立ち上がり, サービス パック

重要度 : 重要

概要 :
7.1i サービス パック 1 を使用すると、立ち上がりエッジのフリップフロップで OFFSET IN BEFORE に対して解析されるパスがありません。 Virtex-4 DDR コンポーネントで、DDR コンポーネントへ供給される領域クロックを使用した ISERDES および IFD などの立ち下がり識別子がうまく機能しません。

通常の制約設定方法は次のとおりです。

NET "Clk" TNM = CLK_GRP1;
TIMEGRP RISING_GRP = RISING RXCLK_GRP1;
TIMEGRP FALLING_GRP = FALLING RXCLK_GRP1;

OFFSET = IN 0 ns VALID 2.5 ns BEFORE "ClkIn" TIMEGRP RISING_GRP;
OFFSET = IN -2.5 ns VALID 2.5 ns BEFORE "ClkIn" TIMEGRP FALLING_GRP;

このように設定すると、立ち下がりグループで解析アイテムが 0 になります。 インプリメンテーションで、次のような警告メッセージが表示されます。

"WARNING:ConstraintSystem:58 - Constraint <TIMEGRP FALLING_GRP = FALLING TIMEGRP "CLK_GRP1";> [.\v4_ddr_opp_bufr.pcf(25)]: FALLING(TimeGrp "CLK_GRP1") does not match any design objects. One can modify the PCF to create two time groups of rising and falling registers on a BEL basis such as: TIMEGRP CLK_GRP1 = BEL "IDDR_inst1/FF0" BEL "IDDR_inst0/FF0"; TIMEGRP CLK_GRP2 = BEL "IDDR_inst1/FF1" BEL "IDDR_inst0/FF1"; OFFSET = IN 0 ns VALID 2.5 ns BEFORE COMP "ClkIn" TIMEGRP RXCLK_GRP1; OFFSET = IN -2.50 ns VALID 2.5 ns BEFORE COMP "RxClkIn" TIMEGRP RXCLK_GRP2; "

UCF 制約では、このような処理はできそうにありません。 この問題の回避策を教えてください。

ソリューション

1

この問題を回避するには、立ち上がりおよび立ち下がりキーワードを使用せずに、各フリップフロップのインスタンス名に基づいてタイミング グループを作成する必要があります。 Below is a PCF example:

**************************************************************************
//!
//! FF0 is the rising edge FF
//! FF1 is the falling edge FF
//!
**************************************************************************

TIMEGRP RXCLK_GRP1 = BEL "IDDR_inst1/FF0" BEL "IDDR_inst0/FF0";
TIMEGRP RXCLK_GRP2 = BEL "IDDR_inst1/FF1" BEL "IDDR_inst0/FF1";

OFFSET = IN 0 ns VALID 2.5 ns BEFORE COMP "RxClkIn" TIMEGRP RXCLK_GRP1;
OFFSET = IN -2.5 ns VALID 2.5 ns BEFORE COMP "RxClkIn" TIMEGRP RXCLK_GRP2;
Below is a UCF example:

**************************************************************************
//!
//! FF0 is the rising edge FF
//! FF1 is the falling edge FF
//!
**************************************************************************
INST "IDDR_inst1/FF0" TNM = RXCLK_GRP1;
INST "IDDR_inst0/FF0" TNM = RXCLK_GRP1;
INST "IDDR_inst1/FF1" TNM = RXCLK_GRP2;
INST "IDDR_inst0/FF1" TNM = RXCLK_GRP2;

OFFSET = IN 0 ns VALID 2.5 ns BEFORE "RxClkIn" TIMEGRP RXCLK_GRP1;
OFFSET = IN -2.5 ns VALID 2.5 ns BEFORE "RxClkIn" TIMEGRP RXCLK_GRP2;

2

DDR の ISERDES を使用している場合は、HIGH および LOW キーワードを使用してこの問題を回避できます。 HIGH または LOW は、最初のパルスが High か Low かを表します。

例 :

NET "Clk" TNM = CLK_GRP1;
TIMESPEC "TS_CLK1" = PERIOD 20 ns HIGH;

# 立ち上がりエッジと立ち下がりエッジのフリップフロップに制約を 1 つ設定します。

OFFSET = IN 2.5 ns VALID 2.5 ns BEFORE "ClkIn" TIMEGRP CLK_GRP1 LOW;

PERIOD 制約に HIGH キーワードを使用し、OFFSET 制約に LOW キーワードを使用すると、立ち下がりエッジのクロック周期が考慮されるよう、立ち下がりエッジのフリップフロップのクロック到着時間がリセットされます。
AR# 21096
日付 01/18/2010
ステータス アーカイブ
種類 一般
このページをブックマークに追加