• 入行数字IC验证后会做些什么?需要哪些必备技能?


    想必大家眼中的验证工程师就是整天对着电脑敲代码,这是大家对这个岗位的固定印象。其实真实情况并不是这样,那么入行数字IC验证后会做些什么?需要哪些必备技能?下面就一起来了解一下吧。

    什么是IC验证工程师?

    回答这个问题之前,需要先来梳理一下芯片诞生的过程。芯片的诞生大致可以分为:设计环节→制造环节→封测环节。

    验证是贯穿于芯片设计整个流程的,从芯片设计的最初环节开始,到代码实现,再到流片前及流片后。验证工程师的工作就是要在产品投入生产前将产品的潜在缺陷尽可能找出来,进行层层自测和验证活动。绝对算得上是实力“责任”担当。

    验证工程师的必备技能?

    这里罗列的是数字IC验证工程师需要具备的技能,是要用所有“资源”点
    在这里插入图片描述

    · 理论知识
    说起理论知识,数电知识是做数字芯片的基石,也是很多同学入行学习的第一本书,一定是需要先掌握的。可以理解为自带的被动技能。

    · 语言类
    先来看Q技能,语言。
    验证工程师们需要使用各种验证语言去搭建验证环境。常用的验证语言有C、C++和StemVerilog。验证岗位对Verilog语言的要求是能够看懂、能够理解的程度,并不需要像设计岗位那样精通。
    System Verilog就属于验证工程师的核心技能了,随着设计越来越复杂,为了更方便例化模块,所以SV语言也是越来越流行。

    · 工具类
    再来看W技能,验证工具。UVM是现在主流的验证方法学,同样属于验证工程师必备的核心技能。当验证环境和测试用例都搭建好后,就需要进行仿真和debug了。EDA仿真工具,不同公司使用的工具软件不同,但大都是三巨头家的(Synopsys、Cadence、Mentor)。掌握并熟练使用这些EDA工具,能够很大程度上提升仿真和debug效率。

    · 环境类
    接下来是E技能,环境。EDA工具基本都提供的是Linux版本,芯片设计公司提供的开发环境也都是Linux。所以需要熟练掌握Linux环境下的常用命令和操作。
    处理文本需要使用到编辑器,比如VIM,所以对于编辑器同样要做到熟练使用。

    · 协议类
    除了验证的一些基本技术之外。IP中还会使用到很多协议,所以验证工程师还需要了解各种通用协议。

    如果说前面的技能都属于基础的话,协议就属于进阶类型的技能了,可以直接理解为大招。

    · 综合能力
    这类综合能力在一众技能中算是平A。作为验证工程师,有很大一部分的工作时间都是在读文档,而文档全都是英文,所以英语的读写能力是非常重要的。沟通、学习和团队能力就不必多说了,这是任何岗位都需要具备的基础能力。

    在这里插入图片描述

    芯片验证流程

    1.芯片规格
    根据市场产品需求,规定芯片需要达到的功能和性能产品和架构师根据客户提出的规格spec,商定出具体设计解决方案和实现的架构,划分出各个模块的文档。

    2.测试点分解
    根据spec文档,分解出具体的测试点,可以分为场景类、功能类、性能类等等,分解的颗粒度尽量细致,直到完备无漏,一个测试点被一个case覆盖的原则分解。

    3.验证方案
    整个芯片的验证方案一般由验证负责人规划,将设计分成多个子系统,再将子系统分成多个模块:
    具体验证策略
    EDA工具和IT资源
    项目进度安排
    未覆盖的功能,风险评估

    4.验证计划
    定制验证策略,评估验证计划,细化testbench搭建、debug、case开发等时间,大概分为:
    spec阅读和测试点分解时间
    开发环境和调试冒烟测试时间
    开发case,完成全部case时间
    回归测试和验证报告的时间

    5.搭建验证平台
    一般由激励生成器、驱动器、采样器、参考模型和计分板组成,从简单的功能开始,测试可以通过验证环境之后,再扩展其他功能,经常遇到编译报错、语法错误、预期错误,需要逐一解决
    分析报错是由验证环境引起的,还是设计代码错误造成的。

    6.测试用例开发
    冒烟测试:基本的寄存器读写测试,确保数据流已通
    直接用例:根据spec中program流程配置的典型测试
    随机用例:用于变量随机,覆盖更多边界,注重约束条件的配置
    增补用例:以提高覆盖测试点为目标,增补相应的测试用例

    7.回归测试
    基本功能回归:基本功能与基本场景覆盖
    高级功能回归:高级功能和边界测试覆盖
    覆盖率收集回归:高级功能测试完成之后,开始收集覆盖率

    8.覆盖率分析
    行覆盖率
    条件覆盖率
    跳转覆盖率
    分支覆盖率
    断言覆盖率
    状态机覆盖率
    功能覆盖率

    9.验证报告
    应用场景验证
    模块复用说明
    覆盖率分析
    风险评估
    待改进方案

    10.后仿
    慢慢跑着就行了,基本signoff了。

    验证工程师工作环境与福利

    验证工程师的工作环境就比较简单,大多数时间就是待在办公室里面,面对电脑进行工作。一般配备两台电脑,一台台式机用来工作,一台笔记本用来看资料、处理邮件、文案处理等。
    他们有完善的薪酬福利保障和定制化的职业发展路径。

    验证工程师的工作强度还算可以,项目启动的时候相对轻松一些,越接近deadline,就会更忙,加班也是常事。当然,工作的强度还是依所在公司的性质来看,一般外企比较轻松,国内的公司就要辛苦很多。

    验证工程师总的来说还算比较稳定,因为个人原因被裁员的概率很小,大多数情况都是公司的战略调整或者业务亏损,才会裁员。裁员也不要慌,大多数公司都提供不错的经济补偿,而且从现在的行情来看,很快就能找到新的工作。拿一笔可观的遣散费,立马去新公司上班,也算一种IC行业“福利”。

    验证在整个芯片设计过程中是至关重要的,作为兼备硬件和软件的验证岗来说,门槛相对没有那么高,薪资待遇也非常可观。入行之后的进步空间和学习上限仍然很充足技术、管理、转岗都是可以选择的道路,自然不必担心长期的职业发展。

    了解更多内容,记得关注IC修真院哦!

  • 相关阅读:
    zookeeper集群搭建
    android log能在release包里面打印吗
    桶排序以及排序内容大总结
    Django批量插入数据及分页器
    HTTP 消息头
    Java新手小白入门篇 API -Socket网络编程
    Java | 生产者和消费者模型
    JD(按关键字搜索商品)API接口
    MATLAB程序设计课后作业三、四
    汇编语言——王爽
  • 原文地址:https://blog.csdn.net/coachip/article/details/126939084