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

MIG 7 Series DDR3/DDR2 - 温度モニター回路で温度の変動に基づいて Phaser_IN タップがアップデートされることをシミュレーションする方法

説明


MIG 7 Series v1.7 から、DDR3/DDR2 デザインに、温度が変動しても読み出し DQS が DQ 読み出しウィンドウの中央に保持されるようにする温度モニター システムが含まれています。詳細は、(ザイリンクス アンサー 51687) を参照してください。デフォルトでは、サンプル デザインのシミュレーションで tempmon ブロックの使用がディスエーブルになっています。このアンサーでは、ブロックをイネーブルにし、XADC 入力ファイルを読み込んでシミュレーションでプロセスを表示する方法を示します。

注記 : このアンサーはザイリンクス MIG ソリューション センター (ザイリンクス アンサー 34243) の一部です。ザイリンクス MIG ソリューション センターは、MIG に関する質問を解決するのに役立つ情報を掲載しています。MIG を含むデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション


タップのアップデートを表示するための変更は、次のとおりです。

1. シミュレーションで温度を変動させる XADC テキスト入力ファイルを作成します。XADC のユーザー ガイドを参照してください。次に例を示します。
TIME Temp
00000 85
84000 0

2. wave.do を設定します。確認する信号は、次のとおりです。
add wave -noupdate /sim_tb_top/u_ip_top/u_mig_7series_v1_7/u_mig_7series_v1_7_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_mc_phy_wrapper/u_ddr_mc_phy/ddr_phy_4lanes_0/u_ddr_phy_4lanes/ddr_byte_lane_A/ddr_byte_lane_A/phaser_in_gen/phaser_in/PHASER_IN_INST/COUNTERREADVAL
add wave -noupdate /sim_tb_top/u_ip_top/u_mig_7series_v1_7/u_mig_7series_v1_7_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_calib_top/tempmon_sample_en
add wave -noupdate /sim_tb_top/u_ip_top/u_mig_7series_v1_7/u_mig_7series_v1_7_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_calib_top/clk
add wave -noupdate /sim_tb_top/u_ip_top/u_mig_7series_v1_7/u_mig_7series_v1_7_memc_ui_top_std/mem_intfc0/mc0/mc_ref_zq_wip
add wave -noupdate /sim_tb_top/u_ip_top/u_mig_7series_v1_7/u_mig_7series_v1_7_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_calib_top/tempmon_sel_pi_incdec_r

3. user_design/rtl/clocking/mig_<>_tempmon.v モジュールの XADC ブロックのインスタンシエーションに、このファイルを指定する SIM_MONITOR_FILE パラメーターを追加します。次に例を示します。

XADC #(
// INIT_40 - INIT_42: XADC configuration registers
.INIT_40(16'h8000), // config reg 0
.INIT_41(16'h3f0f), // config reg 1
.INIT_42(16'h0400), // config reg 2
// INIT_48 - INIT_4F: Sequence Registers
.INIT_48(16'h0100), // Sequencer channel selection
.INIT_49(16'h0000), // Sequencer channel selection
.INIT_4A(16'h0000), // Sequencer Average selection
.INIT_4B(16'h0000), // Sequencer Average selection
.INIT_4C(16'h0000), // Sequencer Bipolar selection
.INIT_4D(16'h0000), // Sequencer Bipolar selection
.INIT_4E(16'h0000), // Sequencer Acq time selection
.INIT_4F(16'h0000), // Sequencer Acq time selection
// INIT_50 - INIT_58, INIT5C: Alarm Limit Registers
.INIT_50(16'hb5ed), // Temp alarm trigger
.INIT_51(16'h57e4), // Vccint upper alarm limit
.INIT_52(16'ha147), // Vccaux upper alarm limit
.INIT_53(16'hca33), // Temp alarm OT upper
.INIT_54(16'ha93a), // Temp alarm reset
.INIT_55(16'h52c6), // Vccint lower alarm limit
.INIT_56(16'h9555), // Vccaux lower alarm limit
.INIT_57(16'hae4e), // Temp alarm OT reset
.INIT_58(16'h5999), // VBRAM upper alarm limit
.INIT_5C(16'h5111), // VBRAM lower alarm limit
// Simulation attributes: Set for proepr simulation behavior
.SIM_DEVICE("7SERIES"), // Select target device (values)
.SIM_MONITOR_FILE("temp.txt")
)

4. user_design/rtl/core_name.v を、シミュレーションで tempmon が強制的に実行されるように変更します。次に 518 行目の例を示します。
localparam TEMP_MON_EN = "ON"; //(SIMULATION == "FALSE") ? "ON" : "OFF";

5. シミュレーションを実行します。温度モニター回路から 2 サイクルで PHY にタップ変更コマンドが送信され、変更が 2 サイクルで反映されるのがわかります (合計 4 サイクル)。次に、スクリーンショットの例を示します。
52523_sim.JPG
52523_sim.JPG

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

関連アンサー レコード

AR# 52523
日付 10/22/2012
ステータス アクティブ
種類 ソリューション センター
デバイス
  • Artix-7
  • Kintex-7
  • Virtex-7
IP
  • MIG 7 Series
このページをブックマークに追加