16

story · 2022年09月08日 · 北京市

为什么验证无法完全地层次化分而治之?

现代芯片研发流程是一个非常复杂的过程,所以不可避免会分成

市场调研->方案架构制定->RTL开发验证->后端物理实现等等。

分解

其中验证又分为

设计冒烟验证->模块验证->集成验证->FPGA测试等。

稍微复杂点的IP也没办法由一个人完成验证,一些特性验证或者模块的验证必须要被分解成子特性/子模块。

分解之后,不同的特性或者子模块交由合适的验证工程师和工具去做验证交付。

全局视野

但是,事情远没有那么简单。我们必须始终牢记,团队中应该有人具有全局视野,了解各种问题产生的根源,以及从系统配合的角度提出一个最佳的问题解决方案。

特性和模块划分需要最小化对于这个全局视野的需求,即做到高内聚低耦合

每当发现模块之间具有比较强相关的耦合性,一定要在各个阶段仔细地检视,以明确各个模块所承担的功能以及相应验证的测试点和checker。

另外,还需要在集成验证环境中对于这种模块间交互的地方分解相应的测试点进行重点测试。

对于该特性的设计验证而言,只有其中每一个环节中的人都知晓整个环路中一切,才能完全地保证芯片RTL的高质量冻结。

模块的设计验证不要去依赖架构师,他的时间是有限的,不可能面面俱到。作为验证工程师,最好能通过自身排除掉所有的风险点。如果存在自己无法确认,或者真的只能依赖其他模块设计验证保证的内容,一定要有书面描述澄清,责任清晰。

除了了解某个特性在模块之间如何交互之外,每个环节中的人(设计、验证、项目经理)还需要了解一些工具,例如UVM、SVA和FPV等等。只有对工具有比较清晰的认识,才知道这个特性的最佳验证交付手段。

熟悉工具

让一个只熟悉UVM的验证工程师使用Formal去sign off某个模块是一个风险非常高,并且效率很低的事情。

现代芯片研发流程如此复杂,没有各类工具寸步难行,熟练地使用工具,事半功倍。

作者: 验证哥布林
来源: 芯片验证工程师

推荐阅读

更多数字IC设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。
推荐阅读
关注数
12313
内容数
219
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息