微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 咨询几个验证技术在数字设计中的问题

咨询几个验证技术在数字设计中的问题

时间:12-12 整理:3721RD 点击:
各位大牛,一直在做逻辑设计,之前的仿真验证工作比较简单,最近开始关注这块,期望在仿真阶段解决更多的问题,有几个概念性的问题向各位请教:
   1.脚本语言在实际的验证中在什吗时候用到,起什吗作用?那种语言在业界用的最多?perl?
  
   2.现在的仿真器 能否较好的支持 sv,verilog 和sc 三种语言的同时仿真?
   3.对于ovm,和vmm,如果没有大厂商的支持,选择哪个比较好?听别人说这个就是一个库,哪这个库里能否比较好的支持网络仿真,比如tcp ,udp的数据包的产生?还有amba总线,pcie总线仿真?
   4.一个典型的覆盖驱动的验证流程是怎样?能举个例子吗?或者推荐一个好的文档?
我想这个帖子或许说出了很多人心里想了解的东西。请各位大牛不吝赐教!

你这问题一下太多,又不是一两句话能回答清楚的。。所以没有人愿意回答咯。。

1. 当然用得到。验证工程师至少要会联合起来用Shell,Perl,Makefile。凡是你不想手动重复性的完成的工作都可以考虑尝试有相应的脚本来帮你自动化的实现。譬如自动调动各种EDA工具执行各种仿真流程,自动解析文件分析有用信息,自动生成code(自动联线,自动生成基本的testbench环境,批量生成有规律,结构相似的code,譬如生成Register/memory/fifo code......)。要能够最大化发挥脚本的力量,需要团队有统一的代码风格和质量。
2. 三家厂商的工具都可以。
3. 对,这就是一个库,就像C++的STL一样(SystemC也只给C++做了一个library),验证思想都是一样的。不管是VMM,OVM还是UVM,现在都可以在三家厂商的仿真器上跑。没有support就用OVM吧,以后转UVM容易些,或者直接用UVM。这些VM们,简直天生就是应网络仿真的需求而生的。产生数据包这种东西,难度都差不多的,关键是你们自己要把自己的infrastructure搞好:能复用,方便扩展支持新特性,容易控制random。多从整个芯片系统考虑,要当成IP来做,以后绝对受益无穷。
4. 覆盖率驱动,就那么回事吧,简单得说就是你要 定义好coverpoint 和 covergroup,然后跑一定量随机的case(regression),然后检查coverage,没cover到的检查一下原因,如果是随机约束的问题,你可以改改随机约束,让case能有一定的比重能hit到这个点。不建议完全依赖仿真器无限制的跑,优秀的验证工程师会用比较好的随机约束和一定量的sequences/scenarios控制好时间,在一定的时间内用最有效随机约束和sequences/scenarios达到期望的覆盖率。

水木果然有大牛!
感谢BOIS 的回复,我想,看到这个帖子的朋友都会因你的回复获益匪浅。
进一步的了解一下,期望能代表很多人的想法
1.关于代码风格和质量:
哪里可以找到描述 代码风格 经典的文章?
如何评估一个代码的质量?(个人的理解:做了一定时间的前端设计,深深的感觉代码是设计出来的,问题是前期验证出来的,在写代码前,应该可以想明白程序的资源,性能,边界情况,可扩展性)
2.“多从整个芯片系统考虑,要当成IP来做,以后绝对受益无穷”
该如何做才能做到这一点哪?(晓得这个东西也不是一句两句能说明白的,但相信大牛们的几句话,会让我们这些后来者深受启发)
3.对于仿真验证,如何调高仿真的速度和效率?
有比较好的材料对这个介绍的比较清晰吗?

见下面注释
(个人见解,不太全面。大家补充。)
1.关于代码风格和质量:
哪里可以找到描述 代码风格 经典的文章?
如何评估一个代码的质量?(个人的理解:做了一定时间的前端设计,深深的感觉代码是设计出来的,问题是前期验证出来的,在写代码前,应该可以想明白程序的资源,性能,边界情况,可扩展性)
>>推荐你用spyglass, 这个工具就是希望实现rtl signoff的。在RTL上尽量发现多的问题,包括lint, cdc(多时钟域), dft(可测试性),constraint(检查sdc),low power.
2.“多从整个芯片系统考虑,要当成IP来做,以后绝对受益无穷”
该如何做才能做到这一点哪?(晓得这个东西也不是一句两句能说明白的,但相信大牛们的几句话,会让我们这些后来者深受启发)
>>我觉得IP就是质量高的模块,验证的比较彻底。而且写代码时注意通用性,比如做异步电路同步时就会尽量用hankshake, 而不用fifo.
3.对于仿真验证,如何调高仿真的速度和效率?
>>采用crv技术,关注点在于根据covrage的反馈,调整约束,以尽快完成功能点的覆盖。如果真正要提高速度,那么直接上硬件加速器吧。可以跑到M级。(仿真器一般达到K级已经不错了,设计复杂的时候,几Hz也是有可能的)
有比较好的材料对这个介绍的比较清晰吗?

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

网站地图

Top