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

MIG v3.6-v3.61 、Virtex-6 DDR3 - マルチコントローラー VHDL デザインで RDIMM をターゲットにしているとシミュレーションでデータ エラーが発生する

説明

MIG v3.6-v3.61 マルチコントローラー DDR3 SDRAM VHDL デザインで、コントローラーの 1 つが RDIMM をターゲットにしていると、コンフィギュレーションによってはデータ エラーが発生します。

これらのデータ エラーは CAS レイテンシの値が低い、または周波数が低いコンフィギュレーションで見られます。

これは、sim_tb_top モジュールの if-else 文が間違っているために発生しています。

この問題は、Verilog デザイン、シングル コントローラー VHDL デザイン、RDIMM をターゲットにしていないマルチ コントローラー VHDL デザインでは見られません。

ソリューション


間違った if-else 文が sim_tb_top.vhd テストベンチ モジュール内の特定のパイプライン ロジックにあります。

2 番目のコントローラーが RDIMM をターゲットとしているマルチコントローラー デザインにおける誤りの例です。

 既存コード : 


process(c1_ddr3_ck_p_sdram(0))
begin
if(rising_edge(c1_ddr3_ck_p_sdram(0))) then
if ( c1_ddr3_reset_n = '0' ) then
c1_ddr3_ras_n_r <= '1';
c1_ddr3_cas_n_r <= '1';
c1_ddr3_we_n_r <= '1';
c1_ddr3_cs_n_r <= (others => '1');
c1_ddr3_odt_r <= (others => '0');
end if;
else
c1_ddr3_addr_r <= c1_ddr3_addr_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_ba_r <= c1_ddr3_ba_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_ras_n_r <= c1_ddr3_ras_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_cas_n_r <= c1_ddr3_cas_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_we_n_r <= c1_ddr3_we_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_cs_n_r <= c1_ddr3_cs_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_odt_r <= c1_ddr3_odt_sdram after (SYSCLK_f0_PERIOD/2);
end if;
end process;


これを次のように修正する必要があります。

修正後のコード :

process(c1_ddr3_ck_p_sdram(0))
begin
if(rising_edge(c1_ddr3_ck_p_sdram(0))) then
if ( c1_ddr3_reset_n = '0' ) then
c1_ddr3_ras_n_r <= '1';
c1_ddr3_cas_n_r <= '1';
c1_ddr3_we_n_r <= '1';
c1_ddr3_cs_n_r <= (others => '1');
c1_ddr3_odt_r <= (others => '0');
else
c1_ddr3_addr_r <= c1_ddr3_addr_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_ba_r <= c1_ddr3_ba_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_ras_n_r <= c1_ddr3_ras_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_cas_n_r <= c1_ddr3_cas_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_we_n_r <= c1_ddr3_we_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_cs_n_r <= c1_ddr3_cs_n_sdram after (SYSCLK_f0_PERIOD/2);
c1_ddr3_odt_r <= c1_ddr3_odt_sdram after (SYSCLK_f0_PERIOD/2);
end if;
end if;
end process;



注記 :このアンサーは、2 番目のコントローラーが RDIMM をターゲットとしているマルチコントローラー デザイン向けのものです。

最初のコントローラーで RDIMM をターゲットとしているデザイン、または複数の RDIMM をターゲットとしているデザインでは、パイプライン ロジック内の if-else 文を修正する必要があります。

この問題は、ISE Design Suite 13.1 MIG v3.7 リリースで修正されています。

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

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

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
37173 MIG v3.6 - ISE Design Suite 12.3 でのリリース ノートおよび既知の問題 N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
38951 MIG v3.61 - ISE Design Suite 12.4 ~ 14.2 でのリリース ノートおよび既知の問題 N/A N/A
37173 MIG v3.6 - ISE Design Suite 12.3 でのリリース ノートおよび既知の問題 N/A N/A
AR# 37861
日付 08/20/2014
ステータス アクティブ
種類 既知の問題
デバイス 詳細 概略
IP
このページをブックマークに追加