打造IC人才
科技生态圈

数字ic验证工程师需要学什么?需要掌握哪些技能?

发布时间:2022-10-20

来源:IC修真院

数字ic验证工程师需要学习哪些知识呢?需要具备什么技能呢?近两年IC行业的薪资也是水涨船高,一些人转行验证后拿到了薪资30W+,甚至有一些能力强的人可以拿到60W+,接下来跟大家一起来看看数字ic验证工程师介绍吧!

数字ic验证工程师需要学习什么?

数字ic验证工程师需要学习哪些知识呢?

我认为可以简单分为三个阶段:输入阶段、加工阶段、输出阶段。

Step1. 输入阶段

输入阶段,照猫画虎是不可能的,我们用“照虎画猫”可能更加合适一点!按图索骥就非常好,首先了解好你要学的技能是干啥的,比如你要学数字芯片设计,你首先要知道数字芯片是啥,数字芯片设计的流程是啥,每个阶段大家都在干啥?要学习Verilog HDL,很简单,先一行行照着例子或者书上的example敲出来,然后照着视频或者userguider去编译通过,再run起来,照着能把波形dump起来,然后能正常拉出波形,当你学会改一改其中的assign语句的逻辑运算,或者是always语句的if条件,case语句的时候,那么这个时候再去纠结这些运算符是个啥意思,这时候可以考虑去查询数字逻辑的书了,如果还想再往下一点,再去查询CMOS管组成的反相器,以及与非门、或非门是什么样子。

Step2. 加工阶段

通过输入阶段初步理解了很多比较晦涩难懂的底层基础知识,再考虑从module到endmodule独立写出来一个小模块,这样你对数字芯片设计的模块的概念会越越来越熟悉,当然,testbench不能少,学着在Verilog HDL的testbench里面把激励能给进去,编译起来,run起来起来,dump波形,甚至debug起来。

这个阶段旨在把我们书本的、理论的知识变成自己能记住的知识,能运用的知识,当然,语法点很多,没有必要全部记住,但是,一定要知道这些知识点在哪儿,用的时候要去查。当然了,经常用的assign和always之类的一定要记住的,关键的一些关键词要记住的。这就是加工阶段。这个阶段可能会持续很久,你才可能会有点思路。但是,没关系,这时候,就选择一些常见的笔试面试题,看看自己有没有思路,先自己想一下,如果实在想不出来,没有思路,就先看懂别人的思路,然后不要照着抄了,开始自己按照想着那个思路去理解。比如状态机,看看是怎么按照这个状态转移图就写出三段式的代码了,三段式的结构是什么?先有一个思维定式。然后慢慢地去优化这个定式。慢慢地,去找Verilog HDL编程和实际的硬件电路对应的感觉,俗称硬件思维。

Step3. 输出阶段

输出阶段就是应用阶段,掌握的知识如果无法应用到实际中去,那就说明还没有彻底掌握。所以这个时候你需要理解数字芯片PPA的概念了,可以把你写的代码以及你对整个数字芯片的理解跟实际的数字芯片的PPA去对应了,不是简单的写代码,因为Verilog HDL很简单,比C语言还简单,一本Verilog HDL的书,你写出花儿来,也就三四百页足足的够了,要是光写语法知识,估计几十页足以,那咱们就输出一些学习成果,比如写个学习比较,Verilog HDL学习笔记,把你掌握的笔记写出来。通过输出应用阶段,这些基础知识会印刻在我们的大脑里,成为本能。当然,输出,除了写出来,还有一个特别难得的机会,就是讲出来,如果有机会分享自己的学习成果或者学习过程,这是一个非常好的过程,一定要积极应对,你准备材料的过程,你讲的过程,以及面对面人的质疑,反思的过程,都是升华。

说完学习的三个阶段,再来看看学习金字塔吧,都是成年人了,不用我说,大家都能理解是啥意思吧?

人生有三个最大错觉:她喜欢我、手机震动、我能反杀,对于0基础学数字芯片设计的同学们来说,还要加一个:这题我会!。但事实是,面对很多简单的example,很多人面临的结果是:一看就会,一练就废!所以,一定要自己练习,虚拟机安装好相应的开发环境,搞起来!

自己动手练习最起码有以下几点好处:

1.真正理解看过的书和知识

这就跟我们小时候背课文最后必须默写下一个道理,纸上得来终觉浅,需知此事要躬行。自己写出来的感觉就完全不一样了,它代表了真正的理解和深度的认知。

脑补和代码真实跑起来完全是两码事,细节是魔鬼,那些微小的细节恰恰是你以为理解其实没理解的东西。

2.增强动手能力,消除编程恐惧症

不动手练习的同学,对编辑器比如gvim或者VIM,对Linux操作系统,以及仿真验证工具VCS等等等,都会充满恐惧,大多数情况,刚开始上手都是Error频出,标点符号写错的,编译option写错的,0和O傻傻分不清的,太多低级的Error了,很多新手,遇见编译不过就慌神了,到处问,完全没有自己解决问题的能力,其实Error提示的信息大多数情况下很明确的。

3.积累module库

动手写代码还可以帮你积累自己的module库,这就跟滚雪球一样,越早启动最后滚的越大。也就是说你把常见的module都写几遍,比如FIFO,分频,倍频等等这些电路,如果都有接触,那么后面再设计整个大一点的模块,就一点都不怕了!

4.锻炼debug能力

动手编写Verilog HDL代码,最终你的Verilog HDL得跑起来吧,得看看有没有实现你的功能吧?跑起来就一定会有各种稀奇古怪的Error,编译的Error,解决完编译的Error,然后debug功能对不对,追信号,追驱动,熟悉软件的操作,又是一段修行!debug的过程真的是精华,是数字芯片设计工程师成长的利器。

数字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。作为验证工程师,有很大一部分的工作时间都是在读文档,而文档全都是英文,所以英语的读写能力是非常重要的。沟通、学习和团队能力就不必多说了,这是任何岗位都需要具备的基础能力。

以上就是给大家介绍的内容“数字ic验证工程师需要学什么?需要掌握哪些技能?”如果大家想了解更多关于数字ic验证工程师的相关知识,可以点击查看免费视频。

相关推荐:

模拟ic版图设计工程师是做什么的?前景怎么样?

数字ic后端工程师是做什么的?|岗位职责|工作内容

数字ic设计工程师是做什么的?|工作内容|岗位职责

立即下载

推荐阅读

换一换