微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > SYNOPSYS DDR VIP use note

SYNOPSYS DDR VIP use note

时间:10-02 整理:3721RD 点击:
Based on version-2016.03/2016.06
(DDR2 looks like not stable & flexiable.。 2016.03 DDR2 VIP发现了很多bug,特别是一些AC timing和protocol的ERROR误报,所以项目进行到一半还好出了2016.06版)
1.vip路径问题
每一次generate vip,新产生的DDR_VIP的file里面其实有根据当前时刻产生VIP的根路径。如果安装VIP的根路径的变了,要么重新产生VIP,要么简单一点的方法就是去改产生的VIP里某些问题对根路径的指定。主要是改以下两个file:
.../include/sverilog/svt_source_defines.svi
.../include/sverilog/svt_ddr3_catalog.svisvt_ddr2_catalog.svi
2.timescle(v2016.06没有再去看DDR2的这个问题有没有修掉)
timescale设定不会影响到DDR3的,但是DDR2必须要把timescale设定成1ps/1fs, 不然很多timming完全不对。如我原本验ddr3的时候timescale就是1ns/1ps,DDR3都能正常工作;但到DDR2时,在read时,DQS每次toggle的时间都是预期时间的1000倍,感觉他是用绝对时间去tigger dqs,而不是以clk edge。
3.interface

  • DDR2的if和DDR3的if不太一样,而且有点问题,我自己有做修改:1.CK_n在intf里面自己接了~CK,所以不用连DDR_PHY的CKn
  • DDR2内部的DM_O,DQS_O,DQSn_O default value没有给“z”态,我自己手动把他赋初态“z”,否则,不管是DDR还是PHY,后期去trigger的时候就一直是“x”。(果然在v2016.06进行了修正)
  • DDR2在burst write的时候,似乎必须要去认dqs从z变0的preamble,所以DQS如果在没有txn的时候是0,DDR2 VIP就没办法认到write的起始,所以DQS在没有valid的时候必须要一直为“z”,但DDR3没有这个问题(v2016.06没有再去看DDR2的这个问题有没有修掉)
4.catalog
目前DDR2的catalog比较少DDR2-1066不支持。catalog里面配置了所有的AC timing parameter,所以对testbench来讲,应该做脚本把不同的catalog中的ac timing抽取出来去constraint SDCTRL和PHY的配置。
catalog名字的意义:(ex:jedec_ddr3_512M_x16_800D_3_04)
ddr type: ddr3
ddr size: 512Mb
ddr ORG(DQ bits): 16bit
speed bin: 800D
tCH(avg):3040ps
5.checkers
vip的check分了两类:1类是和spec强相关的,必须要遵守的比较属于interface protocol的check;1类是比较属于ac timming之类的check。
对于第1类,上层是无法控制的,错了就直接报UVM_ERROR,memory也会访问失败。第2类是可以 通过svt_ddr_configuration::enable_checks去控制,default是1。
针对ac timming check 的error, 可以分别去控制每一个check的开关。
比如jedec_ddr3_512M_x16_800D_3_04的tCH(avg)=3040ps,但实际PHY产生的可能是2500ps,这时就会报tch_abs_timings_check error。其实这并不是一个真正的错误,只不过是PHY产生的clock和catalog定的不一样而已,实际是在合理范围内的。解决方法是env.memory_agent.monitor.checks.tch_abs_timings_check.set_is_enabled(0)去关掉他
(未完……)

谢谢小编

lZ哪家公司的,开始用synopsys的ddr model,据说刚出来不久,用的还比较少。业界多用denali。

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

网站地图

Top