e921005e-51f1-11ed-a3b6-dac502259ad0.jpg

数字验证处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。主要是对数字前端的设计做验证。

随着芯片规模不断加大,在IC设计过程中验证的复杂度也进一步加到,需要的用到的岗位人数也越来越多;很多大公司,数字前端设计工程师与验证工程师的比例已经达到1:3。

正因为芯片的高风险,才凸显了验证的重要性。在流片之前,通过验证人员的验证活动,发现所有的设计bug,这就显得特别重要。

下图是一副比较完整的芯片端到验证端流程图,大多数公司的验证流程是大同小异的,差异点在于各个流程中具体做的事情。

e921005e-51f1-11ed-a3b6-dac502259ad0.jpg

验证做任何事情都需要按照一定的流程来走,否则很容易陷入混乱之中,对刚入门的新手来说,更是如此。通用流程大致如下:

1)提取测试点,明确验什么

分析FS/浮点平台,提取芯片的规格及测试点;

分析AS/定点平台,提取测试点;

分析DS,提取测试点并识别asic与算法的不一致点。

2)制定验证方案,明确怎么验

刷新测试点列表,明确测试点的覆盖方式:功能覆盖率、代码覆盖率、直接用例;

验证环境的搭建策略,这个步骤是可以做成自动化工具的;

验证的重点难点,提前识别重难点,并制定相应的对策;

刷新用例列表,明确测试用例的方法及步骤。

3)用例执行,随机测试,发现bug

执行直接用例,发现大部分的bug;

带随机的大量测试,试图撞出bug。

4)完备性分析,确保无漏验

FA/AS完备性确认,确认FS/AS中的所有点都已纳入测试点,并确保已被覆盖,包括应用场景;

接口完备性确认,保证所有的接口时序都已覆盖,包括正常时序及异常时序;

覆盖率确认,分析所有的代码覆盖率、功能覆盖率,保证全部覆盖;

代码分析,熟练掌握电路的实现逻辑,保证所有的电路corner都已覆盖。

上述这几个步骤是一个比较规范的流程,只要每个步骤都做好,基本就能做到无漏测、零漏验。

Loading

发表回复