AR# 67219

2016.1 以前の Vivado で作成されたデザインでは DIFF_TERM 属性が一貫して正しく適用されないため、属性の DRC やレポートで正しいステータスが反映されないことがある

説明

2016.1 以前の Vivado を使用して生成された UltraScale および UltraScale+ デザインでは、DIFF_TERM 属性のレポートやチェック (TRUE として属性が HDL で定義されている場合に有効なバンク電圧が使用されるようにするため) が適切に行われません。

このようなデザインの場合、DIFF_TERM が HDL で TRUE に設定されていると、IBUFDS または IOBUFDS インスタンスによって内部終端がイネーブルにされますが、属性のデザイン ルール チェックはトリガーされず、また内部終端の存在もデザインやレポートで示されません。 

LVDS 入力の 1.8V HP バンクまたは 2.5V HR バンク (UltraScale の場合のみ) 内にデザインがある場合は、問題が生じることはなく、属性の存在がツールで検出不可能でも、終端がイネーブルにされたデザインは機能します。

ソリューション

DIFF_TERM が HDL で TRUE に設定されていると、IBUFDS または IOBUFDS インスタンスによって内部終端がイネーブルにされますが、属性のデザイン ルール チェック (DRC) はいずれもトリガーされず、また内部終端の存在もデザインやレポートで示されません。 

DRC が実行されないと、DIFF_TERM がイネーブルにされた LVDS 入力が、サポートされていない電圧のバンク内に存在できるようになります。イネーブルにされた DIFF_TERM がバンク内にあっても、入力電圧がデータシートの Vin (I/O バンクに対する I/O 入力電圧) 仕様を違反していなければ、破損することはありません。

通常、DIFF_TERM はデザイン制約ファイル (XDC) で適用されるため、問題はありません。しかし、属性が HDL で定義されている場合は、予期しないモードでデザインが動作することがあります。

 

  • DIFF_TERM が HDL でのみ TRUE として定義されている場合、LVDS 入力の 1.8V HP バンクまたは 2.5V HR バンク (UltraScale の場合のみ) では問題が発生することはなく、プロパティ チェックまたは I/O レポートを介して属性の存在がツールで検出不可能でも、終端がイネーブルにされたデザインは機能します。外部および内部の両方に終端が存在するデザインは、2 回終端される可能性があります。
    このシナリオでは、データシートの Vin が確認された場合、信頼性における懸念事項はありません。
    強力なレシーバーのパフォーマンスおよびドライバーのマージンのため、機能が大幅に影響を受けることはないはずですが、希望の DIFF_TERM ステータスを XDC ファイルで適用してデザインを再インプリメントすることが推奨されます。
  • DIFF_TERM が HDL でのみ TRUE として定義されていても、LVDS (1.8V HP バンクまたは 2.5V HR バンク (UltraScale の場合のみ)) との互換性のない電圧のバンク内に入力がある場合、DIFF_TERM 属性の希望の状態を XDC に適用することが推奨されます。
    既にインプリメントされているデザインは機能するはずであり、データシートの Vin 仕様に従っている場合は信頼性における懸念事項はありません。
    考えられる結果として、次の 2 つがあります。
    1. 外部および内部の両方に終端が存在するデザインは、2 回終端される可能性があります。このシナリオでは、データシートの Vin が確認された場合、信頼性における懸念事項はありません。
      強力なレシーバーのパフォーマンスおよびドライバーのマージンのため、機能が大幅に影響を受けることはないはずですが、希望の DIFF_TERM ステータスを XDC ファイルで適用してデザインを再インプリメントすることが推奨されます。

       

       

    2. 終端が内部にのみ存在していても、サポートされていない電圧のバンク内にあるデザインでは、データシートの Vin に従っている場合は信頼性が侵害されることはないはずです。
      このシナリオのインターフェイスでは、機能に対する破損や低下が徐々に現れることはないはずですが、将来のデザインではこの状態を修正することが推奨されます。
  • DIFF_TERM が HDL で FALSE に設定されている場合、問題は発生せず、レポートおよびインプリメント済みデザインでは DIFF_TERM の状態が正確に反映されます。
  • DIFF_TERM が XDC ファイルで定義されている場合 (HDL でも定義されていても)、XDC 制約では属性のステータスが正確に反映され、DIFF_TERM に関するすべての関連 DRC がデザインに適用されます。

メモリ インターフェイス IP などのいくつかの IP コアでは、HDL を使用して DIFF_TERM を適切に定義するため、最も完全なデザインを作成するようにする無難な方法は、XDC ファイルですべての LVDS および DIFF_SSTL 入力の属性をイネーブルにすることです。

 

記述のとおり、XDC ファイルを介して DIFF_TERM を定義すると、インプリメンテーション ツールが正しく動作し、HDL で設定されている属性が上書きされるようになります。

内部差動終端を希望しない場合は、次を使用します。

set_property DIFF_TERM_ADV TERM_NONE [get_ports LVDS_P_PORTNAME]

内部 100 オーム差動終端を希望する場合は、次を使用します。

set_property DIFF_TERM_ADV TERM_100 [get_ports LVDS_P_PORTNAME]
AR# 67219
日付 07/04/2016
ステータス アクティブ
種類 一般
デバイス 詳細 概略