ip地址过滤怎么设置:功能验证方法学探讨

来源:百度文库 编辑:中财网 时间:2024/04/28 16:56:10

半导体工艺节点不断向更小尺寸演进以及SoC设计越来越复杂给设计验证带来了更大挑战。由于实现验证几乎占去了整个芯片设计工作的2/3,验证实际上已经能成为IC设计中继功耗问题后的又一个难题。随着芯片设计复杂度不断提升,传统的验证过程需要革新,所以新的技术得到了开发:测试平台自动化、基于断言的验证、基于覆盖率的验证等从此便诞生了。为帮助工程师解决IC芯片设计中的验证难题,我们在电子工程专辑网站开设了《功能验证方法学探讨》专题讨论,特别邀请了Mentor Graphics公司资深产品专员罗开杰先生担任论坛嘉宾,与广大IC设计工程师共同探讨。在此,我们将一些精彩观点摘出,希望工程师朋友们能够从中受益!



学好验证方法学需要具备哪些专业知识?

在国内没有很多人是专职做验证的,大部分都是既做设计也做验证。一般只有大公司才会设计、验证完全分离,有些小公司都不怎么做验证。很多网友对于如何学好验证方法学感到一头雾水,有网友表示“在这个专业里混了一年了,还是找不着北!”专家指出:目前真正做验证的有两部分人,一种是软件工程师,他们是纯做软件,所以他们会注重系统级或架构级的验证。另外一种就从设计转过来的。这些人对硬件比较熟,他们注重对Block和System Level的验证。做验证需要一些验证基本理论,关键是要对Spec很熟。验证有一本入门级教材《Writing Testbench》,会对初学者有些帮助。



为何不考虑统一硬件仿真的标准?

有网友提出:“不知道现在是验证方法上没有突破还是验证速度上无法满足要求?如果暂时是验证速度无法赶上设计规模的提高,有没有考虑统一硬件仿真的标准?现在DSP加速和FPGA仿真对功能验证还是有所帮助,而功能仿真是很多公司最为关注的。”

对此,专家表示:目前虽然验证方法学上有突破,但还是无法满足设计需求。 大家都在推自己的验证方法学,希望它成为业界的标准。验证方法学成为标准是好事,所有的源代码公开,而且整个方法学跟工具没有任何联系,在重新选择工具时验证环境就不会有大的变化。而且其它的提供IP的厂商也会在这个共用的平台上,这样就进入到一个良性循环。目前来讲,每家都有自己的硬件仿真过程,但没有一个标准出来。 DSP和FPGA仿真对功能仿真很有帮助,但它不能代替功能仿真,两种的侧重点不一样。虽然速度上去了,但Debug是个大问题。功能仿真是个过程,语言和方法学都可能成为标准,但功能仿真却不会。就像整个ASIC的过程一样,并没有什么标准,没有人规定这个时候需要干什么,大家都按照这个规则走,只是每个阶段可以选择不同的工具,这样就无所谓标准了。



OVM、AVM相对于VMM的特色(除开源外)

对于扑面而来的VMM、URM、OVM等等种种验证方法学,很多工程师一时难以消化,感到迷惑。有网友提出希望专家解答一下OVM、AVM相对于VMM的特色。

专家指出:1、OVM除了源代码开放外,支持Questa、Modelsim、NCsim;同时支持Mentor和Cadence的验证平台。而且所有Class都会交给Accellera,可以免费下载。2、AVM不仅提供SystemVerilog(SV)的实现方式,同时也提供SystemC(SC)的实现。除此,它还对所有验证组件还提供基于Module和基于Class的两种解决方案。3、OVM所有的Class都是通过Mentor的AVM和Cadence的URM验证过的。此外,相对来说AVM比较简单,对照源代码和实用指南,然后上机把实用指南中的例子运行一下,就可以上手了!




高级验证方法学与传统方法的区别

高级验证方法学与传统方法的区别在于:

1、 可重用性:由于高级验证方法学是基于SV和SC语言的。语言的特性决定它们是面向对象的编程,这样基于类的继承就可以大规模提高可重用性。

2、 事务级建模: 工程师在验证的过程中要不断提高编写验证平台的抽象层次,这样一方面可以提高可重用性,因为层次越高,与设计的关系越来越薄。另外事务级建模也能提高验证的速度,因为在事务级传播的是事务,事务包含更多的信息量。而且由于事务级的动态属性,它需要的Memory也比静态要少。

3、 提高验证质量和缩短验证时间:由于采用了一些新的验证技术,比如CDV(Coverage Driven Verification)和CRV(Constrained Random Verification),它可以大幅度提高验证的质量并缩短总的验证时间。



功能点定义标准或者规范

对于一个功能验证来说,定义的功能点越全面,那么验证想要达到的效果就越好,一般来说这个过程完全取决于工程师的经验,现在有没有更好的方法有效地定义功能点呢?该从哪些方面去考虑这个问题?对此,专家指出,当前由于由覆盖率导向的验证方法学的出现,可以根据覆盖率的变化去动态修改random的约束因子来达到增加覆盖率。另外,基于断言的验证也能加速该过程,对于标准的器件可以采用VIP,对于非标的我们可以用在我们需要的地方,比如总线,RAM、FIFO等地方放入断言,然后利用工具来判断写的断言的密度是否合适。



SVA和PSL的区别

PSL和SVA都是Accellera组织的标准语言。它们都是基于Cycle的白盒测试,它们也可以在Block level和System level使用,还可以同时在静态和动态验证中使用。

对于二者的区别,专家指出:SVA植根于SV中,SVA包括很多SV的语法、表达式等,它可以直接写入SV语言中,也可以通过注解的方式和bind的方式放在HDL语言中;但PSL是单独的一种语言,所以它不能直接写入SV语言中,可以通过注解的方式和bind的方式放在HDL语言中。SVA适合从软件工程师和硬件工程师从block到系统级,特别是那些喜欢单一语言环境的用户,而使用SystemC的客户比较喜欢用PSL。工程师可以根据自己项目的情况、语言的学习曲线以及未来语言的发展等来进行选择