AR# 41653

|

MIG v3.7-v3.8 Virtex-6 DDR3 - cmd_gen.vhd のトラフィック ジェネレーターのアドレス データ マスクが一貫していない

説明

cmd_gen.vhd モジュールでアドレス データのマスクが一貫しておらず、Virtex-6 FPGA BL8 でコードの残りの部分で 2 つの異なるアドレスが使用されます。読み出し/書き込みパスのデータ ジェネレーターのインスタンシエーションが異なるため、これにより不正な比較エラーが発生します。

固定アドレスは MIG init_mem_pattern_ctr.vhd モジュールから送信されます。
fixed_addr_o <= ''00000000000000000001001000110100'';

これが cmd_gen.vhd モジュールに入力されて addr_out となり、2 箇所でマスクされます。

ELSIF ((NUM_DQ_PINS = 32) OR (NUM_DQ_PINS = 40) OR (NUM_DQ_PINS = 48) OR (NUM_DQ_PINS = 56)) THEN

IF (MEM_BURST_LEN = 8) THEN
pipe_data_in(31 DOWNTO 0) <= (addr_out(31 DOWNTO5) & ''00000'') ;
ELSE
pipe_data_in(31 DOWNTO 0) <= (addr_out(31 DOWNTO4) & ''0000'') ;
END IF;

ELSIF ((NUM_DQ_PINS = 32) OR (NUM_DQ_PINS = 40) OR (NUM_DQ_PINS = 48) OR (NUM_DQ_PINS = 56)) THEN
m_addr_o(31 DOWNTO 0) <= (addr_out(31 DOWNTO 4) &''0000'') ;

pipe_data_in は BL8 の下位 5 ビットをマスクで除外しますが、m_addr_o はバースト長にかかわらず下位 4 ビットのみをマスクで除外し、デフォルトで指定されている固定アドレスのビット 4 は 1 です。そのため、結果の値が異なるものになります。

ソリューション


上記のコード文により、固定アドレスのマスク方法が異なるため、状況によって書き込みジェネレーターの値と読み出しジェネレーターの値が異なるものになり、比較でエラーが発生します。

この問題を回避するには、init_mem_pattern_ctr.vhd モジュールを変更して、コードの残りの部分に異なるマスクが適用されているかどうかにかかわらず、アライメントされるようにする必要があります。

fixed_addr_o <= "00000000000000000001001000110100";

fixed_addr_o <= "00000000000000000001001000100100";

ほかのテストは、BL8 でアライメントされたアドレスで生成するのでうまく機能します。この問題は、ISE 13.3 のリリースで修正される予定です。

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

関連アンサー レコード

AR# 41653
日付 05/19/2012
ステータス アクティブ
種類 既知の問題
デバイス 詳細 概略
ツール
IP
People Also Viewed