AR# 52541

MIG v1.7 DDR3/DDR2 - v1.6 から v1.7 のシミュレーション時間の増加

説明


キャリブレーションの DQSFOUND 段階では、異なる DQS グループが同じ PHY_Clk にアライメントされ、読み出しコマンドに対して最適な読み出しデータ オフセット位置が検出されます。DQSFOUND キャリブレーション ロジックにより、間にギャップのある 4 つの連続読み出しが発行されます。MIG 7 Series v1.7 から、4 つの連続読み出しサイクルがもう 1 つ追加されています。このため、シミュレーション時間が長くなります。たとえば、MIG v1.6 でキャリブレーションの完了に 5 分かかっていたとすると、MIG v1.7 では 10 分かかります。

このアンサーでは、MIG v1.7 デザインでシミュレーション時間を削減する回避策を示します。これらの回避策は、MIG 7 Series v1.8 にはデフォルトで含まれるようにする予定です。

ソリューション

シミュレーション時間を短縮するには、次の手順に従います。

  1. user_design/phy/mig_7series_*_ddr_phy_dqs_found_cal.v または HR I/O のデザインでは user_design/phy/mig_7series_*_ddr_phy_dqs_found_cal_hr.v を開きます。
  2. DQSFOUND キャリブレーションで発行される連続読み出しの数を削減するローカル パラメーターを追加します。
    localparam NUM_READS = (SIM_CAL_OPTION == "NONE") ? 7 : 1;
  3. 377 行目からの always ブロックを変更して高速シミュレーション オプションが使用されるようにします。
    変更前 :
    always @(posedge clk) begin
    if (rst || (detect_rd_cnt == 'd0))
    detect_rd_cnt <= #TCQ 'd7;
    else if (detect_pi_found_dqs && (detect_rd_cnt > 'd0))
    detect_rd_cnt <= #TCQ detect_rd_cnt - 1;
    end

    変更後 :
    always @(posedge clk) begin
    if (rst || (detect_rd_cnt == 'd0))
    detect_rd_cnt <= #TCQ NUM_READS;
    else if (detect_pi_found_dqs && (detect_rd_cnt > 'd0))
    detect_rd_cnt <= #TCQ detect_rd_cnt - 1;
    end
  4. シミュレーションを再実行します。
AR# 52541
日付 10/24/2012
ステータス アクティブ
種類 一般
デバイス
IP