微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 用过 S,C,M 家VIP的进

用过 S,C,M 家VIP的进

时间:10-02 整理:3721RD 点击:
请教一下: S家 DW SVT VIP
C家 VIPCAT[PureSpec+Specman]:
M家 QuestaMVC
有那些好用/不好用的地方?
比方说这些指标:仿真速度,Debug 难易程度。

PureSpec VIP 里面 有定义一些所谓的 Register来控制 VIP的行为。还不太清楚其具体用法,有待后续研究。

对于 PureSpecModel 的Configuration 可以透过:
1 .denalirc
2 SOMA File
3 Model Registers
来控制整个 PursSpec AHB 的行为。

基本上PureSpec 有三种类型的 Instance ID来控制 方便 对 VIP 的Model / Memory/Register 来进行控制:
1 Model instance ID .
2 Model Memory ID .
3 Denali Control Register Array ID .
usegetID()function to get an ID .
Examples :
slave_id= ahb.getID("top.slave");// model instance id
slave_mem_id = ahb.getID("top.slave(mem)"); // model memory id
slave_den_id= ahb.getId("top.slave(den)");// model register id

Access VIP DEN_Register 的方法:
inst.rd(den_reg_id,den_reg_name,Value);
inst.wr(den_reg_id,den_reg_name,Value);
Backdoor Access Memory的方法类似:
inst.rd(mem_id,addr,Value);
inst.wr(mem_id,addr,Value);
给Memory 设定Region的方法:
inst.resetRegions;
inst.setRegion(den_id,REGION,Start_addr,End_addr);

Transaction 的Callback 可以用来做如下的事情:
1 修改Transaction 某些 Property的 内容。
2 drop掉这个Transaction
3 对 DUT / VIP 的Transaction 进行 Sync 的动作 ?
4 hookup Scoreboard。
5 Inject Error before send to physical Layer.

Memory /Register Callback :
允许我们 透过这些Callback 来 Monitor Register/ Memory Content 的变化。
Assertion Callback:
允许我们 定义Assertion Pass/ Fail的时候 埋一些 Callback的Code 进去。

对于 PureSpec VIP 的 Assertion,同样有Coverage 可以看:
在.denalirc文件内部增加:
1 AssertionCoverageFile :
2 AssertionPassMessages:
3 AssertionPassCallbacks:
4 LogUncoveredAssertions :
来把Assertion CP Dump 到一个文件里面。
最后可以用assertcov [options] input masks . 来收集Multi-Simulation 的Coverage Points。
BTW : 感觉这个方法有点太绕了, 可以Try一下开这个Coverage和关掉这个Coverage 对Simulation的影响,如果 对速度影响大的话,最好关掉。 挂上 ARM/Mentor/SNPS 这些 家的Bus AIP, 这样 收集Coverage的时候 更Unify一点。

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

网站地图

Top