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# 16112

LogiCORE SPI-4.2 (POS-PHY L4) - SPI-4.2 (PL4) スタティック アライメント クロック (RDClk) に適切な DCM 位相シフト値

説明

SPI-4.2 (PL4) コアでは、RDClk DCM を使用して内部 RDClk をシフトし、RDClk のエッジが IOB DDR フリップフロップのデータ アイ (RDat/RCtl) の中央に揃うようにします。SPI-4.2 のような高速ソース同期信号をサンプリングするには、内部クロックを微細にシフト (約 50ps ごと) できることが重要です。 スタティック アライメント システムでは、DCM の出力位相オフセット (位相シフト値で指定) はシステムの重要な部分であり、また PCB を正確な遅延で LVDS データ バスのすべての差動ペアに対してインピーダンスを一致させて設計することが重要です。

ターゲット システムのシステム マージンを最大にしてさまざまな電圧、温度、プロセス (複数のチップ) で動作するように、最適な DCM 設定 (PHASE_SHIFT) を決定する必要があります。最適な DCM 位相シフト設定を判断するためにシステムをテストすると、UI (ユニット インターバルまたはビット タイム) に基づくシステム マージンのベンチマークとすることができるという利点もあります。 システム マージンは、次のように定義されます。

System Margin (ps) = UI(ps) * (working phase shift range/128)

このアンサーでは、システムの理想的な位相シフト値を検出する方法を説明しています。

ソリューション

すべてのハードウェア プラットフォームで有効な単一の位相シフト値はありません。また、位相シフト値を経験に基づいて決定することはお勧めしません。Clock-to-data 位相関係だけでなく、パッケージのフライト タイム (パッケージ スキュー) やクロック配線遅延 (内部からデバイスまで) などの要因もサンプリング ポイント (IOB 内) でのクロックとデータの関係に影響するため、特性化するのは困難です。

ハードウェアの統合およびデバッグ時に、位相シフトの設定を徹底的に調査することをお勧めします。 SPI-4.2 の制約ファイルに含まれる位相シフト設定はプレースホルダであり、ザイリンクス SPI-4.2 ハードウェア プラットフォームで正常に機能します。このデフォルト設定は、DESKEW ADJUST 属性の変更などに対応するため、SPI-4.2 のリリースによって異なります。

システム テストの際に位相シフト設定を詳細に調べてください。正の位相シフト値 (0 ~ 255) のみを使用し、180 度のクロック オフセットに対応するようテスト範囲を 128 以上にしてください。これは、128 の位相シフトをテストする必要があるということではありません。インクリメント量 4 (52、56、60 など) は DCM の 1 タップに対応するため、適切なステップ サイズであると言えます。また、位相シフトの動作範囲外をテストする必要はありません。

位相シフトの動作範囲の上限および下限付近では、システムの動作が大幅に変化します。8 位相シフト設定以内で、エラーがない状態からエラーが発生する状態 (またはフレーム同期をはずれる (SnkOof)) に変わることがあります。複数のボードでステップ サイズ 2 で動作範囲の上限および下限を確認することにより、位相シフトの一般的な動作範囲をより正確に知ることができます。動作範囲が判断できたら、最大位相シフト値と最小位相シフト値の平均をデフォルトとします。製品テスト時にコーナー ケースの動作条件を調べて、位相シフト設定を調整する必要があるかどうかを判断することをお勧めします。

PAR を複数回実行する代わりに、FPGA Editor を使用して必要なテスト ファイルのセットを生成できます。位相シフト設定のみが異なるデザイン ファイルでテストを実行すると、テスト結果に影響するほかの要素を排除できます。FPGA Editor の操作をスクリプトに記述すると、この特性化の時間を短縮できます。下記に示すサンプル スクリプトは、実際のインスタンス名に合わせて変更する必要があります。 たとえば、RDClk DCM のインスタンス名が制約ファイルの RDClk DCM に対する LOC 制約で使用されている名前と同じ場合は、DCM に FIXED 制約を設定してください。

INST "<core_name>_pl4_snk_top0/U0/clk0/rdclk_dcm0" CLKOUT_PHASE_SHIFT = FIXED;

INST "<core_name>_pl4_snk_top0/U0/clk0/rdclk_dcm0" PHASE_SHIFT = 25;

Virtex-6 デバイスの場合 :

INST "pl4_snk_clk0/mmcm0" CLKOUT0_PHASE=90;

このスクリプトを使用するには、Static Alignment を含む完全に配線済みの SPI-4.2 コアが必要です。Sink コアでは、DCM を使用して位相シフトを実行する必要があります。このバージョンのスクリプトでは、IDELAY タップのシフトはサポートされていません。そのため、Sink のクロック オプションにはリージョナル クロックではなくグローバル クロックを使用してください。次は、SPI-4.2 の XCO ファイルに記述されているはずです。

CSET sink_clock_distribution=Global_Clock

これらのスクリプトは Xilinx SPI-4.2 コアの v9.3 を使用して記述されており、PC、UNIX、Linux システムでサポートされます。このスクリプトはカスタム デザイン用や以前のコア バージョン用に簡単に変更できます。詳細は、Perl スクリプトのコメントを参照してください。このスクリプトは、ザイリンクス ISE デザイン ツールに含まれる Perl 実行ファイルを使用しています。

DCM または MMCM 位相シフト設定が異なる複数の BIT ファイルを生成するには、次の手順に従います。

1. Virtex-5 デバイスおよびそれ以前のデバイスの場合、次のサイトから spi42_make_shift_v3.zip をダウンロードします。

http://www.xilinx.com/txpatches/pub/swhelp/coregen/spi42_make_shift_v3.zip

Virtex-6 デバイス コアの場合、次のサイトから spi42_make_shift_virtex6.zip をダウンロードします。

http://www.xilinx.com/txpatches/pub/swhelp/coregen/spi42_make_shift_virtex6.zip

2. 空のディレクトリで ZIP ファイルを解凍します。この ZIP には次が含まれます。

a. readme.txt - 「はじめにお読みください」の文書

b. make_shift_v3.pl or make_shift_virtex6.pl - 主な実行スクリプト (Pearl スクリプト)

c. fe_template_v3.scr or fe_template_virtex6.scr - FPGA_EDITOR に必要なテンプレート スクリプト

d. bitgen.ut - 空白の bitgen オプション ファイルBitGen オプションを使用しない場合でも、空の bitgen.ut が必要です。

3. SPI4.2 デザイン ファイルを上記ディレクトリにコピーします。必要なファイルは次のとおりです。

a. Routed.ncd - 配線済みデザイン ファイル (名前は routed.ncd である必要あり)

b. Mapped.pcf - PCF 制約ファイル (名前は mapped.pcf である必要あり)

c. Bitgen.ut - デザイン bitgen.ut ファイル。このファイルがない場合は、ZIP に含まれる空の bitgen.ut を使用すること。

4. 手順 2 および 3 に示すファイルをすべて含むディレクトリで make_shift_v2.pl を実行します。 スクリプトは、ザイリンクス ISE デザイン ツールを実行するよう設定された環境で、コマンド ラインから実行する必要があります。

Command_prompt> xilperl make_shift_v3.pl

スクリプトを実行すると、次の情報を入力するよう指示されます。

- すべての NCD、PCF、BGN ファイルを保持するかどうか。Y または y と入力すると、すべての反復ファイル (32 個の NCD、PCF、BGN、および DRC) がディレクトリに保存されます。N または n と入力すると、BIT ファイルのみが保持されます。問題があったり、デバッグにシフトされた NCD ファイルが必要でない限り、n を入力することをお勧めします。

- make_shift_v3.pl のみ : コアを生成したときに使用したコンポーネント名。SPI-4.2 コアを生成したときに使用した名前と同じである必要があります。コンポーネント名は、SPI-4.2 の XCO ファイルに記述されています。

(例 : CSET component_name=pl4_v9_3)

メモ : 間違った情報を入力すると、次のようなエラー メッセージが表示されます。

"ERROR:FPGAEditor:29 - Cannot find a component name ? "

エラー メッセージが表示されても NCD ファイルおよび BIT ファイルは生成されますが、すべての BIT ファイルでオリジナルの位相シフト値が使用されます。つまり、生成された BIT ファイルの位相シフト値は適切なものではありませんので、正しい情報を入力してください。

このスクリプトは、BitGen をコマンド ライン モードで実行します。BitGen が実行される際、次の警告メッセージが表示されます。

"WARNING:PhysDesignRules:367 - The signal <pl4_v9_3_vir5_static_pl4_snk_top0/U0/io0/buffer_data/Ctl0/OB> is incomplete. The signal does not drive any load pins in the design.

WARNING:PhysDesignRules:1416 - Dangling pins on block:<pl4_v9_3_vir5_static_pl4_snk_top0/U0/io0/chan13/U1_ML_IODELAY>:<IODELAY_IODELAY>. With IDELAY_TYPE programming FIXED or DEFAULT any active input pins INC RST CE and C are not used and will be ignored."

スクリプトは、FPGA Editor をコマンド ライン モードで実行する際に使用される modified.scr ファイルを出力します。このファイルでは、SPI-4.2 コアに含まれる DCM のインスタンス名に入力したコンポーネント名が追加されています。クリプトはまた、すべての NCD ファイルに対して BitGen を実行するので、システムによっては約 60 分かかります。

スクリプトの実行が完了すると、位相シフト値がファイル名で示された複数の BIT ファイルが生成されているはずです。 これらの BIT ファイルを、さまざまなボード上のシステムで試してください。ファイルが機能しない場合は、数秒内に DIP4 エラーが示されます。機能する BIT ファイルは、DIP4 エラーなしで何時間も実行できます。位相シフト値の動作範囲を判断し、その中央部の値を使用することが重要です。適切な値を選択することでのみ、さまざまな電源、電圧、および温度でコアが正しく機能することを確実にすることができます。

改訂履歴

2006 年 08 月 23 日 - 初期リリース

2009 年 10 月 21 日 - "v3" および Virtex-6 スクリプトを更新

AR# 16112
日付 05/03/2010
ステータス アクティブ
種類 一般
このページをブックマークに追加