- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于IC验证经验的总结
关于IC验证经验的总结完整的、详细的设计规范是验证工作的重要起点。
验证工作根据设计规范(Specification)进行,详细的Spec是RTL代码的编写工作的依据,也是验证工作的依据。当验证过程发现DUT的响应与testbench预计的不符时,需要根据Spec判断是DUT出现错误还是testbench出现错误。
参数化的全局定义
Register相关位及其数值的全局宏定义。reg_define.v
相关路径的全局宏定义。define_board.v
系统重要变量的显示信息。display.v
与Register相关的比较任务和报错任务。reg_cmp
时钟周期参数的定义,一般局部定义,用parameter定义。
存取波形及相应变量的数据,使用`ifdef为全局定义使用
1.波形源头文件是VCD波形,但过于庞大,可用来做功耗分析。
$dumpfile(“wave.vcd”);
$dumpvars(0, xxx);
$dump0ff;
$dumpflush;
2.SHM波形是Cadence的,可以用simvision打开。
$shm_open(“wave.shm”);
$shm_probe(xxx, “AST”);
$shm_close;
3.FSDB波形是Novas的,可以用nwave打开。
$fsdbDumpfile(“wave.fsdb”);
$fsdbDumpvars(0, xxx);
4.VPD波形是Synopsys的,可以用dve打开。
$vcdplusfile(“wave.vpd”);
$vcdpluson(0, xxx);
5.变量的存取,可以使用宏来选择变量的存取与否与存取时间使用。
`ifdef SAVE_LROUT
?????????? start_save = 1’b1;
?????????? #(10e6)??? stop_save = 1’b1;
`endif
xxx = $fopen(“xxx”, “w”);
if (start_save !stop_save)
$fwrite(xxx, “%f\n”, x);
$fclose;
测试案例,case
1.case本身尽可能模块化。`include”verify.v”
2.自动的、自检的case,自动报错,以节省测试时间。
3.覆盖率问题:覆盖率分为功能覆盖率,代码覆盖率,还有人为添加的一些覆盖点的覆盖率。它提供关于仿真的统计信息,包括所经历的结构和转移,以及如何经历。可以决定设计的哪些部分没有被仿真,以知道验证中的薄弱处。最容易实现100%的是代码覆盖率,但是如果verilog代码中使用了case的default,那就很难实现100%覆盖了。功能覆盖率就是一些函数的功能,还有状态机的状态覆盖率等等。然后还有就是验证工程师添加的覆盖点。一般验证工作完成以后要使用这些东西完成报告的。
4.主要的仿真线程常常用初始语句initial模仿,包含一系列阻塞表达式。
5.个人认为,写case本身并不是很重要,重要的是你的case里的测试点是否全面,相关的东西测的全不全。
6.case要尽量提供随机激励信号来增加验证的测试空间,这样能够使验证覆盖的功能空间最大化。这里的随机一般是约束随机,而不是一般意义上的随机一般的随机没有针对性。
7.case的编写可以分为以下三步:From specification to features, From features to testcase, From testcase to testbenches
(1)Case编写的第一步是辨别需要验证的特征(feature),不同的feature,适合的验证层次也不同,有些适合在component(unit/reusable/ASIC)级进行验证,有些则必须在system级验证。Component级的feature完全包含在待验证的component中,因此其验证与系统其他模块无关,可以独立进行。System-level features涉及系统多个单元之间的相互作用,System-level features不宜多,能够在Component-level验证的features,不要定义为System-level features。
(2)形成testcase之前,首先要对Features进行分类:
Must-have(必须的):设计为了能正常工作或满足市场需要而必须具有的功能,这是first-time success的主要内容,应在各种条件下做彻底的验证。
Should-have(应该有的):主要用于扩展设计的性能或与竞争对手相区别,只需对
您可能关注的文档
最近下载
- 2024年秋季学期新外研版(三起)英语三年级上册课件 Unit3 Part4.pptx
- 中药的性能PPT课件.ppt
- 美剧剧本绝望主妇台词本中英文对照精排版第一季第一集.pdf
- 《考研英语阅读考前60天高分.doc VIP
- 中国科学技术(大学)高等代数(线性代数与解析几何)历年考研试题.pdf
- 2021-2022年江苏苏州太仓市六年级上册期中语文试卷及答案(部编版).doc VIP
- 2024年山东省风力发电运维值班员技能竞赛理论考试题库(含答案).docx
- 绿色消费积分实施方案.docx
- 仪表说明书_RS-485光纤中继器SP433M_FW433M使用手册.pdf
- 2021-2022学年江苏苏州太仓市五年级上册语文期中试卷及答案.doc VIP
文档评论(0)