芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 芯片设计 > 数字IC验证

学习数字IC验证|你需要的可能是一个规划!

发布时间:2023-11-01来源:芯学长 0

学习数字IC验证不知道如何学习,盲目,没有规划,这时候最好的方式就是打开招聘软件搜索IC数字验证,你就能看到大把的招聘信息,重要的是你需要看一下能力需求。根据需求来规划自己的学习目标。接下来,芯学长跟大家一起来看看吧!

首先你要对需求有认识

我总结了一下,普遍要求如下,我主要分为语言能力、实战&工作经验、通信协议的了解程度。

数字IC验证

image

以上的内容大致总结一下:语言能力中,SV和UVM是必须要会的,而且需要用其独立搭建过验证环境,在此过程中使用了EDA和Linux。练习、实践的项目中用到了AMBA或者其它通信协议。这样就具备了基本的入门能力了。

但是事情远没有你想的那么简单,一个高薪的工作怎么会这么容易到手?在面试过程中,会被问到项目中很多有关于语法的、技术性的、逻辑上的问题,而这些才是在学习中需要被重点关注的。扎实的基本功+较强的学习理解能力,才是企业关注的重点。

其次你需要规划学习路线

如能力需求所述,SystemVerilog是必须要会的,但是如果不是科班出身,可能对于这门语言的学习是非常吃力的。这个过程中需要用到数字电路的相关知识,在这里推荐几本书,在链接中可以自己下载电子版。相互掺杂着同步看可能效率高一点(这里不会了翻一番那一本,相互翻,多看就懂了)。建议不会了也不要卡住不动,把当天规划好的都学完,可能前面不会的问题就迎刃而解了。数字电路部分不需要懂得特别多,能够理解RTL代码即可。

学习SV时,有个技巧,我喜欢到csdn上找技术性总结类的文章,将其理解、背下来(有点呆板的学习办法,但是效率真高。)然后再看书,带着死记硬背的知识来理解性的阅读书上的知识点,会发现容易了很多很多。推荐同步路科V2课程视频,消化理解SV的语法知识点。如果条件允许,非常推荐按照路桑的V2课程来学习基础知识,并按照课后的项目完成实验,基本就对SV有了一定了解了。但是学习效率有点低,我一般都时1.5倍速快速的过一遍。

在SV了解的差不多的时候可以开始UVM的学习了。而UVM是基于SV的语法结构的一门验证方法学。第一遍是学不到精髓的。在第一遍学习的时候,重点去感受uvm方法学所构建的验证环境框架是什么。第二遍看的时候,再去了解每个组件的特性并尝试自己去抄,一遍不会,敲两遍,边敲边理解。同样推荐路桑的视频和张强的《UVM实战》第二章(第二章我反复看了三遍)当有了一定理解后,再去看后面的每个章节,会容易很多,当然更深入很多。

学习UVM时,也同样有个技巧,UVM中有很多机制,当对整体有了一定的大致认识后,我还是喜欢去csdn上找一些技术性的总结类文章,仔细阅读,这些文章里很多过度语言都省略了,简明扼要,面试前我看了很多很多遍。UVM深入学习可以按照UVM不同的机制来学习。下面是我整理的一些资料:

找工作前必须看的:

UVM_知识点测试

UVM具体的机制,都是重点,都需要认真看看,肯定不全,

欢迎补充:

UVM configuration机制

sequence机制(数据激励的产生、配置方式)

sequence机制(另一个人写的,也不错)

sequence机制(《UVM实战》第六章总结)

TLM通信机制

virtual sequencer与virtual sequence

寄存器模型 Register Model

以上两部分的基础学习看书肯定是不够的,剩下的时间就主要用来实践敲代码了。我在学习的过程中很欠缺代码的练习,debug能力弱了很多。但是说实话,SV和其它编程语言还不太一样,SV的EDA工具学习起来就有门槛,没有视频没有人指导如何开始,还是很迷茫抓瞎的。而其他的语言比如python的IDE,只要环境配好了,就可以很容易的执行脚本。

所以这里推荐Windows平台下QuestaSim,熟悉起来非常快。可以针对个别的语法点,进行重点学习,学习语法特性或者机制。但是语言毕竟是工具,只有在使用时才能让你增加记忆深度。所以记不住也不要紧,忘记了知道去哪里翻资料就可以了,前提是你能够具备基础的语法知识,能够看懂大部分的语句,个别不懂是正常的。

当构建了SV和UVM知识体系后,路科的mcdf我也都练习了两遍后(很仓促,第二遍照抄,边抄边理解。第二遍默写,通篇看一遍,理解以后默写出来,加深语言和逻辑的理解)我到github上找了几个不错的项目开始学习,学习顺序是:

1、首先是通篇阅读(第一遍都不知道从哪里开始看),估计看了两三遍,各组件彼此的关系都有了一定的认知。同时,将项目中所运用到的协议都学习了一遍(了解,看到了知道什么意思,没有深入细致的学习)

2、按照自己的理解,top to down的将代码抄写了一遍,down to top的顺序又将代码照敲了一遍。我这样做主要学习基于UVM验证方法学,一个验证环境结构是怎么样的,哪些内容是通用的“套路”。可能有点笨,但是我确实理解的很快。

3、重新整体阅读,开始在EDA工具上Run,开始时肯定时一定有很多bug,可能是环境造成的,也可能是代码上的,反正有很多种可能,我前后调试了很长时间,过程中确实锻炼了自己,不仅学到了通信协议,还将对UVM的使用有了更全的基础认识。

如果需要数字IC验证项目的,可以点击留言

最后细分到每一天你应该学哪些

其实这部分挺难控制的,如果在学校里,可能还有大把机会。但是如果已经毕业了,那么日常的工作就已经很累了,很难保证学习时间和状态。我也是在fab里边工作边学习,最终走出来的,我体会过那种感受,很难坚持,真的很累。

分享一个一起入职的小伙伴的经历,也同样在fab中OP部门的工作,每天除了繁重的工作外,上下班路上还要用掉2小时,经过合理的安排时间和努力,不仅考上了在职研究生,也成功从fab最底层的OP岗位走入到上游设计相关岗位中。分享这个例子,不是想告诉你这件事有多么容易,而是想告诉你转岗就如同考研一般,拿出相同的状态和学习热情,那么一定能成功。以下是根据我的个人经历的一些建议:

1、无论多忙,保证自己的学习和休息时间。

2、找到自己的高效时间,制定to do list ,严格执行当日规划。确保每日3小时以上的学习强度,效果会更好吧。

3、聪明的学习是以构建知识网络为目标的,所以每周留出时间来审视自己本周的知识学习还有哪些漏洞,尝试做个本周的总结,如果坚持下去,相信我,面试前你会轻松很多,因为这帮你把学习的知识网络打下非常牢固的基础。

4、找到一名有经验的相关从业者,即使请吃饭有偿的请教,也是值得的。因为目标就是迈进这个行业的门槛,不惜代价,方能始终。

5、学习是很痛苦的事情,找好节奏,找好状态。时刻清醒的投入学习中,“聪明”的掌握应该知道的知识,去准备简历吧。

image

如果需要数字IC验证项目及数字IC验证资料的,可以点击留言

【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

文章评价

-   全部 0 条 我要点评

有疑惑?
在线客服帮您
029-81122100

立即咨询 >