在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2363|回复: 1

[求助] ddr2,由于init_done未拉高,ISE前仿真在24us停止

[复制链接]
发表于 2012-7-28 12:27:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教一个DDR2的仿真问题,非常感谢!

ISE 13.2
MIG 3.6
FPGA XC5VLX50T
DDR2: MT4HTF3264HY-667F1

ddr2_model.v 中有如下语句

                        if (!init_done) begin
                            $display ("%m: at time %t ERROR: %s Failure.  Initialization sequence is not complete.", $time, cmd_string[cmd]);
                            if (STOP_ON_ERROR) $stop(0);

完整的ACTIVATE部分如下:
ACTIVATE : begin
                        if (`BANKS == 8) begin
                            tfaw_cntr = 0;
                            for (i=0; i<`BANKS; i=i+1) begin
                                if ($time - tm_bank_activate[i] < TFAW) begin
                                    tfaw_cntr = tfaw_cntr + 1;
                                end
                            end
                            if (tfaw_cntr > 3) begin
                                $display ("%m: at time %t ERROR:  tFAW violation during %s to bank %d", $time, cmd_string[cmd], bank);
                            end
                        end

                        if (!init_done) begin
                            $display ("%m: at time %t ERROR: %s Failure.  Initialization sequence is not complete.", $time, cmd_string[cmd]);
                            if (STOP_ON_ERROR) $stop(0);
                        end else if (active_bank[bank]) begin
                            $display ("%m: at time %t ERROR: %s Failure.  Bank %d must be Precharged.", $time, cmd_string[cmd], bank);
                            if (STOP_ON_ERROR) $stop(0);
                        end else begin
                            if (addr >= 1<<ROW_BITS) begin
                                $display ("%m: at time %t WARNING: row = %h does not exist.  Maximum row = %h", $time, addr, (1<<ROW_BITS)-1);
                            end
                            if (DEBUG) $display ("%m: at time %t INFO: %s bank %d row %h", $time, cmd_string[cmd], bank, addr);
                            active_bank[bank] = 1'b1;
                            active_row[bank] = addr;
                            tm_bank_activate[bank] <= $time;
                            tm_activate <= $time;
                        end

                    end


因此,由于在Activate时,init_done仍未拉高,因此仿真停止,过程和提示信息如下:

1.用user_design/rtl 中的文件 + user_design/sim 中的文件,进行ISE仿真时,
 由于在Activate时,init_done仍未拉高,因此仿真停止,提示信息如下
  sim_tb_top.\gen_cs[0].gen[0].u_mem0 .cmd_task: at time 20718860.0 ps ERROR:
  Activate  Failure.  Initialization sequence is not complete.

2.用example_design/rtl 中的文件 + example_design/rtl 中的文件,进行ISE仿真时,出现同样的问题

仿真目录如下:

Automatic `include`

ddr2_model_parameters.vh
sim_tb_top.v

u_delay_dq - WireDelay (wiredly.v)

u_delay_dqs - WireDelay (wiredly.v)

u_delay_dqs_n - WireDelay (wiredly.v)

u_mem_controller - tt_mig_beta (tt_mig_beta.v)

u_ddr2_delay

u_ddr2_infrastructure

...

...

u_mem0 -ddr2_model (ddr2_model.v)

u_mem1 -ddr2_model (ddr2_model.v)

...


谢谢指点~
发表于 2012-7-28 20:11:33 | 显示全部楼层
xilinx生成mig核时不是有,仿真的例子,你试了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 11:39 , Processed in 0.020709 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表