微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > xilinx DDR3仿真求教 ERROR: Load Mode Failure. All banks must be Precharged.

xilinx DDR3仿真求教 ERROR: Load Mode Failure. All banks must be Precharged.

时间:10-02 整理:3721RD 点击:
最近学习MIG,仿真DDR3 已经在testbench里 将控制器于ddr3 model连接  但是仿真时出现以下情况
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39669621.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000020 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39670157.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000021 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39670693.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000022 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39671229.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000023 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39671765.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000024 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39672301.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000025 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39672837.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000026 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39673373.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000027 data = xx
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39673909.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000020 data = a7
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39674445.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000021 data = a6
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39674981.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000022 data = a5
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39675517.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000023 data = a4
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39676053.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000024 data = a3
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39676589.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000025 data = a2
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39677125.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000026 data = a1
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.data_task: at time 39677661.0 ps INFO: WRITE @ DQS= bank = 0 row = 0001 col = 00000027 data = a0
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.main: at time 39678733.0 ps INFO: Sync On Die Termination Rtt_NOM =          0 Ohm
tb.mem_rnk[0].gen_mem[0].u_comp_ddr3.cmd_task: at time 39699101.0 ps ERROR: Load Mode Failure.  All banks must be Precharged.[/code]


以下是操作控制器的简单代码

  1. always @(posedge ui_clk)
  2.       begin
  3.           if(init_calib_complete) begin
  4.           cnt<=cnt+1'b1;
  5.                if(cnt==4'b0101) begin
  6.                  cnt<=4'b0;
  7.               //   sig<=1'b1;
  8.                  end
  9.           end
  10.          
  11.       end
  12.               
  13.   always @(posedge ui_clk)
  14.       begin
  15.       if( app_rdy &!sig) begin
  16.             app_en<=1'b1;
  17.             app_cmd<=3'b0;
  18.             app_wdf_wren<=1'b1;
  19.             app_wdf_end<=1'b1;
  20.             app_wdf_mask<=0;
  21.             app_wdf_data<={8'ha0,8'ha1,8'ha2,8'ha3,8'ha4,8'ha5,8'ha6,8'ha7};
  22.             app_addr<={3'b000,15'b0,1'b1,10'b100000};  
  23.             sig<=1'b1;            
  24.        end              
  25.       end

  26.    always @(posedge ui_clk)
  27.         begin
  28.             if(sig)begin
  29.             app_en<=1'b0;
  30.             app_wdf_wren<=1'b0;
  31.             app_wdf_end<=1'b0;
  32.             app_addr<=app_addr+8;
  33.             sig<=1'b0;
  34.             end
  35.         end
  36.    

复制代码

ERROR: Load Mode Failure.  All banks must be Precharged.[/code]     就是这个错误,而且不知道为什么 对地址写数据,先写的是XX  然后才是正确的

检查时钟。



   Load Mode Failure.  All banks must be Precharged.[/code]

请问这个也是时钟错误引起的么?  sys_clk  给的 900m左右  ref_clk给的200m

系统时钟怎么会900M?你弄错了吧。参考时钟200M是正确的。 Load Mode Failure.  All banks must be Precharged.[/code]----这个错误我没遇到过,基本可以确定是你弄错了时钟引起的。如果弄好时钟还有这个错误,说明你对引脚的操作没有符合数据手册给出的时序。首先必须等初始化完成信号拉起才能进行其他操作。不能上来就输入数据。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top