MIG 7系列DDR3 / DDR2 - 如何运行仿真,显示温度监控电路根据温度变化更新Phaser_IN分接头

描述

MIG 7系列DDR3 / DDR2设计从v1.7开始,包括一个温度监控系统,可以在DQ读取窗口中保持读取DQS的中心温度变化。有关详细信息,请参阅(Xilinx答复51687) 。默认情况下,示例设计仿真禁用tempmon块的使用。此答复记录显示如何启用块并加载XADC输入文件以在仿真中查看过程。

注意:此答复记录是Xilinx MIG解决方案中心(Xilinx答复34243)的一部分 。 Xilinx MIG解决方案中心可用于解决与MIG相关的所有问题。无论您是使用MIG开始新设计还是对问题进行故障排除,都可以使用MIG解决方案中心来指导您获取正确的信息。

查看点按更新所做的更改如下:

1.创建XADC文本输入文件以更改仿真中的温度。有关信息,请参阅“XADC用户指南”。这是一个示例:
时间温度
00000 85
84000 0

2.设置wave.do.感兴趣的信号是:
添加波-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
添加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
添加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
添加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
添加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配置寄存器
.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:序列寄存器
.INIT_48(16'h0100),//音序器通道选择
.INIT_49(16'h0000),//音序器通道选择
.INIT_4A(16'h0000),//音序器平均选择
.INIT_4B(16'h0000),//音序器平均选择
.INIT_4C(16'h0000),//序列发生器双极选择
.INIT_4D(16'h0000),//序列发生器双极选择
.INIT_4E(16'h0000),// Sequencer Acq时间选择
.INIT_4F(16'h0000),// Sequencer Acq时间选择
// INIT_50 - INIT_58,INIT5C:报警限制寄存器
.INIT_50(16'hb5ed),//温度报警触发器
.INIT_51(16'h57e4),// Vccint警报上限
.INIT_52(16'ha147),// Vccaux警报上限
.INIT_53(16'hca33),//温度警报OT上限
.INIT_54(16'ha93a),//温度报警复位
.INIT_55(16'h52c6),// Vccint警报下限
.INIT_56(16'h9555),// Vccaux警报下限
.INIT_57(16'hae4e),//温度报警OT复位
.INIT_58(16'h5999),// VBRAM警报上限
.INIT_5C(16'h5111),// VBRAM警报下限
//仿真属性:为proepr仿真行为设置
.SIM_DEVICE(“7SERIES”),//选择目标器件(值)
.SIM_MONITOR_FILE( “TEMP.TXT”)

4.更新user_design / rtl / core_name.v toforce tempmon以在仿真中运行。以下是第518行的示例:
localparam TEMP_MON_EN =“ON”; //(SIMULATION ==“FALSE”)? “开关”;

5.运行仿真。您将从温度监控电路中看到,在两个周期内将分接变换命令发送到PHY,并且这些变化将反映在其他两个周期中,用于总的排气周期。以下是一个示例屏幕截图:

52523_sim.JPG
52523_sim.JPG
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 12:54:54 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它