SYNOPSYS DDR VIP use note
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.svi svt_ddr2_catalog.svi
2.timescle
timescale设定不会影响到DDR3的,但是DDR2必须要把timescale设定成1ps/1fs, 不然很多timming完全不对。如我原本验ddr3的时候timescale就是1ns/1ps,DDR3都能正常工作;但到DDR2时,在read时,DQS每次toggle的时间都是预期时间的1000倍,感觉他是用绝对时间去tigger dqs,而不是以clk edge。
(v2016.06在他的env pkg里面加了timescale,但是dqs/dq的问题还存在)
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)去关掉他
(DDR2 checker还有问题,2016.03有很多protocl明明正确却被误报ERROR的情况; 在2016.06很多已经修正,但write_recovery的decoding好像有点问题)
(未完……)
SYNOPSYS DDR VIP use note相关推荐
- Synopsys AXI VIP delay相关信号配置
Data before addr(写数据先于写地址)配置 总结 对于一笔transaction,写数据先于写地址发送的配置流程为: 配置data_before_valid为1 配置reference_ ...
- Synopsys AXI VIP wstrb相关
使用AXI VIP发送transaction的时候,发现transaction的每个beat的wstrb按照右对齐的方式设置(data同样也是按照右对齐的方式设置),而不需要按照axi协议规定的方式设 ...
- Synopsys验证VIP学习笔记(6)检查和打印信息控制
文章目录 禁用特定的协议检查 禁用Monitor的协议检查 禁用消息打印 UVM的打印信息控制方法 在使用VIP时,出于对仿真性能和环境效率的考虑,可以关闭VIP中的一些检查和打印信息.当然,屏蔽的前 ...
- 如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)
如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1) 文档内容 用途 适用范围 详细信息 情况1. 修改公网对应的主机名 情况2. 只修改公网 IP或者VIP, 但 ...
- CentOS7 NTP server + keepalived
NTP安装 yum -y install ntp systemctl enable ntpd 首先同步一次时间 ntpdate time.windows.com ntp配置(Host1 Host2) ...
- ffmpeg+qsv / vaapi
一.略图 如下图,i925是最地层的驱动,如果没有它,甚至无法显示桌面,因此他是kernel自带的.而VAAPi inter Drive,libVA API,Media SDK libray是需要用户 ...
- 验证工程师,掌握Cortex-M3 MCU芯片验证真的太太太……重要啦!
找工作的时候,你是不是也希望能够掌握公司的核心技术?成为不可或缺的人才?那你需要掌握的技能必须要足够多,对于芯片行业来说,技术决定了一切.今天我们来聊一聊芯片验证工程师的必备技能:Cortex-M3 ...
- 自学IC验证,转行芯片验证,需要自学什么内容,怎么去学习?材料研究生转行
都2023年了,还想着自学IC验证,靠着简单项目做下,入职IC验证的可能性不能说没有,只能说5%: 2年前,可能你会个AHB.APB协议还能混混面试,但是现在2023年,跟你一起卷的人,AHB.APB ...
- SYNOPSYS VCS Makefile文件编写与研究
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明: ma ...
- Script:Collect vip resource Diagnostic Information
以下脚本可以用于收集 Oracle RAC中vip 资源或其他CRS resource的诊断信息: action plan:./runcluvfy.sh stage -post crsinst -n ...
最新文章
- ECCV 2020最佳论文讲了啥?作者为ImageNet一作、李飞飞高徒邓嘉
- Caffe学习系列(20):用训练好的caffemodel来进行分类
- 重庆计算机二本专业有哪些专业,重庆高考计算机类分数线
- php 系统平均负载,Linux_解析Linux系统的平均负载概念,一、什么是系统平均负载(Load a - phpStudy...
- luogu P1659 养猪 dp 好理解
- iphone个系列尺寸_最值得入手的4款iPhone,都是内行人的最爱,拿出去有面子
- android 遮罩 进度条,bootstrap创建带遮罩层的进度条
- 从 C# 1.0 到 C# 9.0,历代 C# 语言特性一览
- 亿级流量系统架构之如何支撑百亿级数据的存储与计算【转载 石杉的架构笔记】-1...
- How to Install Ruby on Rails on CentOS 6
- 疲劳检测(Fatigue Detection Algorithm)
- windows 8.1 关机
- 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个
- 2016年中考计算机考试模拟试题,2016年计算机三级考试模拟试题(含答案)
- 迪士尼的漫威宇宙第四阶段计划出炉
- 学习UI设计,哪些软件是必学的
- C语言指针详解——入门C语言指针,初级指针使用。
- 怎么用手机修改服务器的网关,网关,详细教您手机怎么改网关和IP
- java后台查询手机号码归属地
- 短距离无线通讯-NFC