前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IC验证工程师工作半年的成长和感悟

IC验证工程师工作半年的成长和感悟

作者头像
用户10108023
发布2022-10-28 16:33:30
8630
发布2022-10-28 16:33:30
举报

不二鱼

FOR YOUR DREAM

从材料转行的IC验证工程师,材料人的一束微光,欢迎关注我,与我同行,愿你所有的努力都不被辜负。

前言

嗨,好久不见,你是否还在坚持学习呢?我是不二鱼,今天又是故事分享,希望每一个分享的故事,都是激励你前进的力量。

正文开始

Hi,各位朋友,我是从材料专业社招转行到IC验证的一位攻城狮,目前工作了半年时间,这半年时间成长很多,受邀写一点工作的感受。

在我转行找到工作时,我完成数电verilog,SV,UVM的学习,学习的路老师的课程,简历上除了多路通道选择器,还有一个自己搭的验证平台验一个非常简单的模块,而且里面还有不少bug,真的很惭愧,导致后来我看到这个TB就被恶心的想吐。那时候投简历也很不顺利,投了很多家都没有回复,就是那种我给人家投了简历只显示已读,连回都不回,遇到个愿意回复我的都觉得这人好善良,最后还是很幸运遇到了现东家捞我一把,虽然当时的感激涕零随着工作的消磨逐渐变淡,但还是很感激遇到我的老大。

今年四月入职了新公司,面试的时候就聊的很清楚,因为公司和团队都是刚成立,所以这里没有培训,但是入职当天老大给我安排了python自学,没有书没有视频没有目标,但是B站资源这么多,很开心可以带薪学习,学了三天美梦就破灭了,开始进项目验证IP。按照老大的说法和我现在的感受,那个一个非常简单的模块,一个纯逻辑电路的结构再配上中断,复位,去抖一系列的辅助电路,刚入职的时候很崩溃,这个比M**F难好多啊,也没人教而且太多的概念都不清楚,那段时间大概天天加班,开始一点一点啃英文文档,去找各种解释。把设计SPEC啃得差不多之后,就开始验了,作为连Linux系统和gvim都不会用的菜逼,还是先从这么简单的东西一点一点上手,那时候我老大没骂死我算是他脾气比较好吧。友情提示:上岗之前先自学一下linux操作和gvim操作, 结合虚拟机上的项目,跑跑VCS仿真,如果有条件用verdi看一下波形,这一套顺利走下来,工作上手阶段或许不会被骂菜逼。

前面也说了我们是新公司,验证环境都是新搭建的,VCS license是现买的,testbench是刚写的脚本生成的,不保证正确,VIP是老大随手写了几个,同样不保证正确,错误是随时随地的。幸好我师傅给我演示了几遍仿真全流程,才知道怎么让VCS工作起来。最开始的testbench的更新都是我师傅做的,比如说VIP的挂载,我师傅白天挂载好了,然后调试通过了,晚上我就在看怎么挂载VIP,怎么用config_db去传递,怎么在monitor用TLM通信去广播。Testcase同样不会写,每个人都有自己写case的习惯,我师傅的写法和路老师的很不一样,我不知道哪个是主流,但是我是哪种都写不好,一天写30行代码,感觉还挺好,今天终于写出来点东西,临近下班的时候,我师傅过来给我看看今天写的代码,然后全删掉,他用了五分钟写完了,顺便给我讲解一下思路然后编译仿真通过。这种日子大概过了半个月才能独立写testcase。我师傅给我的评价是,SV和UVM基础还行,怎么写出来的代码就跟屎一样,我感觉大部分转行人都会有个类似的评价,之前大部分时间都在看视频和看代码,自己动手的机会太少,路老师把饭做好喂到嘴边,现在要自己去做饭,难度差距不可同日而语。

Case构造的差不多了,就要开始debug,一开始我对debug一窍不通,之前是全部正确的设计和验证环境,打开波形看看好像没有问题,rm也没有报错,不知道重点去看哪儿,现在错误是隐藏起来的,需要我去发现,但是我菜啊,不知道怎么去找错误。又是老大亲自教我debug,打开verdi拉出波形,找到错误定位,一条一条往下跳转,去定位到设计代码,我记得我独自找到的第一个bug是设计的位宽写错了导致最高位丢失,第一次找到bug之后给了我很大的信心,有一段时间我每天看波形debug感觉非常有成就感。

我觉得进入公司之后的真实项目经历比培训要痛苦很多,项目进度和固定的review期限,还有周报和汇报,都是一条一条红线,逼迫自己要走的快一点,至少比进度规划要快一点,但是这种情况下进步也会比培训要快很多。但是我真的不想再经历一次这种了,如果同学有条件还是去成熟的公司和团队,有固定的SOP告诉新人每一步应该怎么做,最好还有一个简单的项目熟悉一下全流程。每次都要自己去问人,脸皮厚也经不住天天被嫌弃菜。

如果没有条件先找个公司入行最重要,我遇到好几个朋友嫌弃公司小拒了offer,但是现在还没找到工作,一心去搏大公司其实没有必要。现在公司团队进行了调整,我也不知道后面我这个团队会不会被解散,解散之后是被划到别的团队去,还是怎么个情况,当然不可能被辞退,如果给我赔个N+1,我会开开心心拿着钱去下一家入职。我说这个情况是为了说明,只要有了工作经验,跳槽就不像刚转岗时候那么困难了。

最后总结一下我进入公司的学习进程,首先就是跟着项目或者培训来走,拿到设计的规格说明书,去翻阅相关的文档资料,然后根据设计功能点去划分验证功能点,写验证计划和验证方案,然后去搭验证平台,一般是大佬来负责大框架的搭建,新人负责修修补补,然后根据验证计划来写testcase,写的过程中可能发现验证计划不完善,然后反复修改。Coding完一部分case,会去跑仿真debug,同时也在写新的case,同步进行。等到写完所有case,并且初步debug没有问题了,就开始跑回归,大批量多次数的跑仿真去发现没有之前没有暴露的问题。之后去收集覆盖率看看哪儿没有验到,为什么没有验到,后面需不需要再写几个case去补充,或者让设计去做exclusive。项目之余做好自学规划,比如python是必须要掌握的,现在寄存器生成,验证平台生成,VIP生成,设计top层生成都是脚本实现的,处理复杂数据脚本的速度比手动操作快很多倍。比如C语言,后面验到子系统时C是必不可少的,开始的时候至少要看懂C和SV的交互关系吧,C的语法基础是不是需要掌握一下。路老师的课程如果没有全部学完也可以赶紧学完。有一些英文文档比如UVM user guide之类也可以上手学,还有SVA。计算机的基础课程比如计算机组成,处理器基础同样需要。可以根据项目进度自主决定先补哪一些基础,先学目前需要用到的,做好计划。

啰啰嗦嗦写了这么多,入职只是一个开始,后面的路好难走,大概前几年都是从不断学习中度过,工作之前的基础越好,工作之后的难度就越小,特别是秋招找到工作了还是要继续学习。最后说一句,工作了半年我还是觉得自己非常菜,这行要学的东西非常多,一起加油,任重而道远。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不二鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档