AR# 35115

Spartan-6 FPGA Integrated Block Wrapper v1.4 for PCI Express - メモリ書き込みをいくつか送信するとペイロードが破損する

説明

既知の問題 : v1.4、v1.3、v1.2、v1.1

大きな値のメモリ書き込みトランザクションをいくつか送信した後、書き込みペイロードが破損する可能性があります。この問題は VHDL バージョンのラッパー ファイルでのみ発生します。

ソリューション

これは VHDL バージョンのラッパ ソース ファイルでの既知の問題で、v1.4 リリースで修正される予定です。Verilog ラッパ ソース ファイルを使用した場合は、この問題は発生しません。統合ブロックにインターフェイスしている送信 BRAM へのアドレス化が間違っているのがこの問題の原因です。この問題は、source ディレクトリにある pcie_bram_top_s6.vhd モジュールの CALC_TX_COLS および CALC_RX_COLSファンクションを変更すると修正することができます。

変更前の CALC_TX_COLS 関数:

-- Determine number of BRAM columns from total bytes
if (BYTES_TX <= 2048) then COLS_TX := 1;
elsif (BYTES_TX <= 4096) then COLS_TX := 2;
else COLS_TX := 4; -- BYTES_TX <= 8192
end if;

変更後 :

-- Determine number of BRAM columns from total bytes
if (BYTES_TX <= 2048) then COLS_TX := 1;
elsif (BYTES_TX <= 4096) then COLS_TX := 2;
elsif (BYTES_TX <= 8192) then COLS_TX := 4;
else COLS_TX := 9;
end if;

変更前の CALC_RX_COLS 関数 :

-- Determine number of BRAM columns from total RAM size
if (LIMIT <= 512) then COLS_RX := 1;
elsif (LIMIT <= 1024) then COLS_RX := 2;
else COLS_RX := 4; -- LIMIT <= 2048
end if;

変更後 :

-- Determine number of BRAM columns from total RAM size
if (LIMIT <= 512) then COLS_RX := 1;
elsif (LIMIT <= 1024) then COLS_RX := 2;
elsif (LIMIT <= 2048) then COLS_RX := 4;
else COLS_RX := 9;
end if;

改訂履歴 :
10/26/2010 - ISE 12.3 および v1.4 用にアップデート
04/23/2010 - ISE v12.1 および v1.3 用にアップデート
4/7/2010 - 初期リリース

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

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
35180 Spartan-6 - 12.4 ソフトウェアの Spartan-6 FPGA に関する既知の問題 N/A N/A
AR# 35115
日付 05/19/2012
ステータス アクティブ
種類 リリース ノート
デバイス
IP