AR# 43107

|

7 Series Integrated Block Wrapper for PCI Express - UCF でブロック RAM の LOC 制約が見つからない

説明


問題のあったバージョン : v1.1
修正されたバージョンやその他の既知の問題は、(ザイリンクス アンサー 40469) を参照してください。

次のコア コンフィギュレーションで UCF ファイルに必要なブロック RAM の LOC 制約が生成されず、タイミングの問題が発生します。
  • x8 gen 1 および x4 gen 2、MPS が 256 バイトまで 、パフォーマンス レベルが [Good] または [High]、および MPS が 512 バイト、パフォーマンス レベルが [Good]
  • x8 gen 2、x8 gen 1、および x4 gen 2、MPS が 512 バイト、パフォーマンス レベルが [High]

パフォーマンス レベル [Good] または [High] は、CORE Generator のカスタマイズ ウィンドウの 4 ページ目にある [BRAM Configuration Options] の下で選択します。

MPS は Maximum Payload Size (最大ペイロード サイズ) の略です。これも 4 ページ目の [Device Capabilities Register] の下で選択します。

メモ : [バージョン] 列は、問題が最初に発生したバージョンがリストされます。問題はそれより以前のバージョンでも発生していた可能性はありますが、以前のバージョンではそれを検証するテストは実行されていませんでした。

ソリューション


ブロック RAM の正しい制約を入手するには、使用しているデバイスとブロックのブロック RAM のベース LOC 制約を判断する必要があります。これには、使用しているデバイスおよびパッケージをターゲットとした別の代替コアを生成します。この代替コアでは、x8 gen 2、MPS を 256 バイトに設定します。代替コアを生成したら、example_design ディレクトリにある UCF ファイルを開きます。

ブロック RAM の場所はデバイスおよび使用されるブロックによって異なるので、XY ロケーションの開始点が必要です。ブロック RAM インスタンス pcie_brams_tx/brams[1] の LOC 制約を使用します。

ブロック RAM が 4 つのみ使用されるコンフィギュレーション (x8 gen 1 および x4 gen 2、MPS が 256 バイトまで 、パフォーマンス レベルが [Good] または [High]、および MPS が 512 バイト、パフォーマンス レベルが [Good]) では、代替コアに生成された制約を直接既存の UCF にコピーします。参考のため、このコンフィギュレーションでは次のブロック RAM ロケーション番号を使用します。 X<a> は使用しているデバイスおよびパッケージの代替 x8 gen 2 コアからの開始 X ロケーション値、Y<b> は開始 Y ロケーション値です。

x8 gen 1 および x4 gen 2、MPS が 256 バイトまで 、パフォーマンス レベルが [Good] または [High]、および MPS が 512 バイト、パフォーマンス レベルが [Good]

pcie_brams_tx/brams[1].... X<a>Y<b>
pcie_brams_tx/brams[0] .... X<a>Y<b+1>
pcie_brams_rx/brams[1].... X<a>Y<b+3>
pcie_brams_rx/brams[0] .... X<a>Y<b+4>

x8 gen 2、x8 gen 1、および x4 gen 2、MPS が 512 バイト、パフォーマンス レベルが [High] のコアでは、ブロック RAM 制約が 8 つ必要なので、作成する必要があります。

代替コアの UCF にある *pcie_brams_tx/brams[1] ブロック RAM インスタンスの制約を使用し、次のアルゴリズムを適用して残りのブロック RAM の配置を決定します。ここで再び、 X<a> は使用しているデバイスおよびパッケージの代替 x8 gen 2 コアからの開始 X ロケーション値、Y<b> は開始 Y ロケーション値です。

x8 gen 2、x8 gen 1、および x4 gen 2、MPS が 512 バイト、パフォーマンス レベルが [High]

pcie_brams_tx/brams[3] .... X<a>Y<b>
pcie_brams_tx/brams[2] .... X<a>Y<b+1>
pcie_brams_tx/brams[1] .... X<a>Y<b+2>
pcie_brams_tx/brams[0] .... X<a>Y<b+3>
pcie_brams_rx/brams[3] .... X<a>Y<b+4>
pcie_brams_rx/brams[2] .... X<a>Y<b+5>
pcie_brams_rx/brams[1] .... X<a>Y<b+6>
pcie_brams_rx/brams[0] .... X<a+1>Y<b+5>

上記は、Integrated Block X0Y0 および X0Y1 をターゲットとする 485T 以外のすべてのデバイスに適用されます。X0Y0 および X0Y1 をターゲットとする 485T では、次を使用します。
pcie_brams_rx/brams[0] X 制約が +1 でなく -1 であることに注意してください。

pcie_brams_tx/brams[3] .... X<a>Y<b>
pcie_brams_tx/brams[2] .... X<a>Y<b+1>
pcie_brams_tx/brams[1] .... X<a>Y<b+2>
pcie_brams_tx/brams[0] .... X<a>Y<b+3>
pcie_brams_rx/brams[3] .... X<a>Y<b+4>
pcie_brams_rx/brams[2] .... X<a>Y<b+5>
pcie_brams_rx/brams[1] .... X<a>Y<b+6>
pcie_brams_rx/brams[0] .... X<a-1>Y<b+5>



例 1 : xc7k325t-fbg676FPGA をターゲットとし、Integrated Block X0Y0 を使用する MPS が 256 バイトの x8 gen 1 デザイン

  1. xc7k325t-fbg676 のブロック X0Y0 をターゲットとする MPS が 256 バイトの x8 gen 2 デザインを生成します。
  2. UCF を開き、ブロック RAM ロケーション制約をコピーします。
  3. x8 gen 1 コアを生成し、手順 2 でコピーした制約を UCF に貼り付けます。

例 2 : xc7k325t-fbg676 をターゲットとし、Integrated Block X0Y0 を使用する、MPS が 512 バイトでパフォーマンス レベルが [High] の x8 gen 2 デザインのブロック RAM 制約このコンフィギュレーションでは、8 つのブロック RAM が必要です。

  1. xc7k325t-fbg676 デバイスの Integrated Block X0Y0 をターゲットとする MPS が 256 バイトの x8 gen 2 デザインを生成します。
  2. UCF ファイルを開いてブロック RAM のロケーション制約を見つけます。ここでは、読みやすくするため制約を短縮していますが、UCF ファイルでは完全なインスタンス パスを使用する必要があります。
    INST ".../pcie_bram_top/pcie_brams_rx/brams[0].ram/..." LOC = RAMB36_X4Y34 ;
    INST ".../pcie_bram_top/pcie_brams_rx/brams[1].ram/..." LOC = RAMB36_X4Y33 ;
    INST ".../pcie_bram_top/pcie_brams_tx/brams[0].ram/..." LOC = RAMB36_X4Y31 ;
    INST ".../pcie_bram_top/pcie_brams_tx/brams[1].ram/..." LOC = RAMB36_X4Y30 ;
  3. pcie_brams_tx/brams[1] の制約をベースとして新しい制約を作成します。8 つのブロック RAM が必要な場合、このベース制約を pcie_brams_tx/brams[3] に使用します。制約は次のようになります。
    INST ".../pcie_bram_top/pcie_brams_tx/brams[3].ram/..." LOC = RAMB36_X4Y30 ;
    INST ".../pcie_bram_top/pcie_brams_tx/brams[2].ram/..." LOC = RAMB36_X4Y31 ;
    INST ".../pcie_bram_top/pcie_brams_tx/brams[1].ram/..." LOC = RAMB36_X4Y32 ;
    INST ".../pcie_bram_top/pcie_brams_tx/brams[0].ram/..." LOC = RAMB36_X4Y33 ;
    INST ".../pcie_bram_top/pcie_brams_rx/brams[3].ram/..." LOC = RAMB36_X4Y34 ;
    INST ".../pcie_bram_top/pcie_brams_rx/brams[2].ram/..." LOC = RAMB36_X4Y35 ;
    INST ".../pcie_bram_top/pcie_brams_rx/brams[1].ram/..." LOC = RAMB36_X4Y36 ;
    INST ".../pcie_bram_top/pcie_brams_rx/brams[0].ram/..." LOC = RAMB36_X5Y35 ;

上記の手順で質問がある場合や問題が発生した場合は、ウェブケースを開いてザイリンクス テクニカル サポートまでご連絡ください。その際、この (ザイリンクス アンサー 43107) を記述してください。使用するコアの XCO ファイルも添付してください。XCO ファイルは、CORE Generator ツールでコアを生成すると作成されるファイルで、プロジェクト ディレクトリに <name of core>.xco という名前で保存されています。


改訂履歴

2011/12/06 - アンサー 40469 に修正バージョン情報を追加
2011/07/14 - 初版

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
40469 7 Series Integrated Block for PCI Express - Vivado 2012.4 および ISE 14.7 までのすべてのバージョンに対するリリース ノートおよび既知の問題 N/A N/A
AR# 43107
日付 05/20/2012
ステータス アクティブ
種類 既知の問題
People Also Viewed