备战秋招-面经篇
欢迎关注个人公众号摸鱼范式
- ASIC工程师面试经验分享
- 数字芯片设计工程师面试经验(实习加校招)
- 2020校招芯片设计工程师面经
- 2019数字IC求职笔记(涵盖十余家国内一流IC公司)
- 数字IC验证面试经验及面试题总结(2017年)
- 有关笔试准备:
- 1. 信号的跨时钟域同步。包括单比特和多比特,对于单比特自然用两级寄存器同步最为方便。对于多比特,常考察异步FIFO以及握手方法。要理解亚稳态的概念以及避免亚稳态的方法。
- 2. 说到亚稳态,就不得不说setup time 和 hold time。一定要掌握两种时钟约束和分析时钟约束的方法。清楚四种路径(输入到输出,输入到寄存器,寄存器到寄存器,寄存器到输出),并能找到关键路径。会计算最高的工作频率。
- 3. 分析和修复setup time validation(降低时钟频率,组合逻辑优化或拆分,提高工作电压) 和 hold time validation(插入buffer,更难修复)
- 4. 能用verilog描述常用的电路结构,如:D触发器,计数器,分频(奇数倍分频,偶数倍分频,小数分频(如1.5倍)),同步FIFO,异步FIFO,序列检测器(FSM实现)
- 5. 用verilog描述给出的代码或者伪代码
- 6. 找出verilog代码中的错误,如信号未进行跨时钟域同步,无else分支会产生不期望的锁存器等等。
- 7. 阻塞,非阻塞赋值
- 8. sv基础,包括@signal触发和wait(signal)的区别,事件触发,队列操作,task同步调度(fork ...join,fork ...join_any,fork ...join_none的用法差异)
- 9. 掌握一些常用的协议,如I2C(能够根据提示用verilog实现),SRAM协,AMBA(AHB),AXI
- 10. 异步复位在使用时应当注意什么?异步复位,同步释放
- 11. 请画出异步复位同步释放的电路结构:
- 12. 在验证环境中,C如何access和dut中寄存器,是如何联系的?Verilog 提供VPI接口,可以将DUT的层次结构开放给外部的C/C++代码,而systemverilog提供了更好的接口:DPI.
- 13. 掌握一些常用的低功耗方法,如clock gating(能画出电路结构图),了解DVFS,多阈值电压技术,多电压技术
- 14. 组合逻辑输出需经过寄存器过滤毛刺
- 数字IC验证面试题:
- 1. 先简单谈谈你现在在做的工作。
- 2. 请谈谈你在学校的学习和项目。
- 3. 请谈谈你对UVM验证方法学的理解。
- 4. 请谈谈UVM组件的关系。
- 5. 举例谈谈UVM组件中的一些常用方法。
- 6. 请谈谈virtual sequencer与sequencer的区别,以及为什么要用virtual sequencer?
- 7. 为什么会有sequence,sequencer,以及driver,为什么要分开实现?这样做有什么好处?
- 8. 你写过assertion吗?assertion分为哪几种?简单描述下assertion的用法。
- 9. 请描述一下你所验过的模块的功能。
- 10. 你对fifo熟悉吗?谈谈如何判断fifo的空满状态?
- 11. fifo有同步的和异步的,它们有什么区别?
- 12. 对于异步fifo,如何处理空满时的同步问题?还可以采用什么方法?
- 13. 请谈谈验证的思想,验证人员和设计人员思考问题的差异。
- 14. 你们项目中都会考虑哪些coverage?
- 15. coverage一般不会直接达到100%,当你发现有condition未cover到的时候你该怎么做?
- 16.为什么要尽量避免绝对路径的使用?如何避免?
- 17. 如何在driver中使用interface?为什么?
- 18. 你了解UVM的callback机制吗?
- 18. OVM和UVM有什么区别?
- 19. UVM各component之间是如何组织运行的,是串行的还是并行的?如果串行的,请问是通过什么机制实现各组件之间的运行调度的?
- 20. 对一个加密模块和解密模块进行验证,如果数据先进行加密紧接着进行解密,如果发现输入数据与输出数据相同,能不能说明这两个加解密模块功能姐没有问题?为什么?
- 21. 在对一个模块仿真的时候发现:如果输入是一个地址addr,发现dut的输出是一个相同的地址addr,但是参考模型的输出是addr1.请分析可能是什么问题导致的?你会怎么去解决?
- 有关笔试准备:
- 2020校招数字芯片验证岗面经
ASIC工程师面试经验分享
来自牛客网网友ece511授权转发
https://www.nowcoder.com/discuss/351612
本人专业电子信息工程,暑期在上海某外企做fpga相关的实习,9月开始投简历,主要找ASIC/FPGA 设计验证相关的岗。投了N家公司,挂了N个笔试,最后拿到某私募、商汤自动驾驶、百度、寒武纪和华为海思的offer。
由于距离面试过去也有段时间了,面经就靠回忆+脑补了~
商汤(一共4面,全程微信语音)- FPGA自动驾驶优化验证
商汤我是7月底投的简历,岗位是FPGA自动驾驶优化验证,然后面试一共有4轮还是5轮,时间跨度比较大。
第一轮就比较基础,问的问题主要是C++和FPGA的基础知识。我印象里有问C++的引用,强制转换、static 关键字。FPGA方面的话问了非阻塞阻塞赋值,还有FPGA内部的结构(内部有哪些基本单元)。最后问了下项目,问对DNN、CNN了解多少,给一个module怎么让他的frequency跑得更快、throughput更大之类的问题。第一轮结束后一礼拜后收到第二轮面试。
第二轮面试是这个FPGA team的manager面,问的题以项目为主,然后面试体验很差。自我介绍完让我说下近期实习的项目,之后问了下看我简历有AHB 相关经历,问了下AHB的基本时序,还有arbiter怎么做的。面试过程中比较闷吧,我只能用这个词来形容了,就是毫无互动可言。这轮面试结束后,商汤HR说要安排第三轮交叉面,然后等了2-3周,总之流程走的很慢。
第三轮面试还是以简历为主,看我最近和之前有做Ethernet MAC的东西,问了下项目的细节,然后还问会不会DDR。这轮面完就很玄学了,我去问HR什么时候能给结果,然后HR一直不回消息。直到10月中旬,也就是这轮面试(八月底)过去差不多两个月,HR微信找我说要安排终面。
第四面应该是boss面或者总监面了,然后主要是聊项目,这个其实和第二轮和第三轮的面试细节很重叠了,面完最后就说会给offer。
百度(一共3面,全程微信)- 芯片验证
百度是9月底还是10月初投的简历,本来我想投芯片架构岗,但是一看下面的JD,要28nm相关的流片经历,只能说劝退了。最后投了芯片验证,base可选北京或者上海。
简历投完HR就电话联系我,然后本来说安排skype面试,最后还是改用微信语音~
第一轮面试的话感觉质量很高了,这个面试官小哥问的很细然后cover的点也很多,差不多聊了有50分钟。上来先是抓着SV和UVM的基础知识问。基础知识问完,就开始问近期项目。主要是问我的一个Ethernet 项目的验证平台搭建细节,比如有问如果发过来的包有丢包或者乱序,我应该在之前的基础上怎么改来验证。
第二轮细节我有点记不太清了,不过也没什么花样,问了基础知识+简历。基础知识问了知不知道rand和randc,然后会不会constrained random verification。之后问了一个题,怎么在一个class里不用randc实现产生100个不同的数字功能(就每次instantiate这个class的时候,里面有一个member的值都不重复,直到例化了100次才会重复)。
第三轮面试是一个女主管,这个行业女性还算比较少,所以我印象很深刻。一般面到这轮都不会问基础知识了,所以全程聊项目,聊完就说前面两轮的面试官对我印象很好,然后问我对百度的看法之类的,还有之后的规划什么的。这轮结束没多久就给了offer。
寒武纪(一共3面)- 芯片验证
寒武纪是暑期实习期间投的提前批,然后莫名其妙把我从提前批调剂到普通批,之后一直等了很久。大概9月底HR电话找我说来面试。
第一轮是微信视频面试,也是一直问Systemverilog的基础知识。先问知不知道多态,然后问overload和override,再问虚函数。之后说base handler 指向一个 子类实体行不行,反过来行不行,如果不行该怎么操作。这个其实只要看下SV的虚函数和dynamic cast就答得上来。
第二轮是电面,先是问项目,这个和之前所有面试都差不多,所以说对简历上每一个项目还是要比较熟的。之后给了一个时序,两个信号,一个信号来了之后,之后那个信号隔多少个cycle(这个数字我记不太清)会被置位,问你怎么验证。这个我说SVA很好处理这种问题,他后面就问应该把assertion放在验证平台的哪部分,然后interface为什么要声明成virtual的。
第三轮是HR面,问的题很憨憨,就是问学习习惯,本科和研究生学习过程有什么不同,在公司碰到问题怎么解决之类的。总之就是这种很匪夷所思的behavioral question。面完没多久就给了offer。
华为海思(一共3面)- 芯片
战狼的面试我印象海思很深刻的,我从投简历到拿到面试也等了很久,大概是大家都拿到offer后我才开始面试的,9月底左右吧。
第一轮是做个笔试,印象中好像全是选择题,没什么难度,都是基础题。做完笔试后还要做个性格测评,不要乱选就能过。
笔试结束后很快就有通知面试,华为全程是用wemeeting这个平台,和zoom长得很像的一个软件。
第一轮面试我印象还是很深刻的,一个看起来很年轻的小哥,头上有肉眼可见的白发,看来战狼对内还是重拳出击啊😅。问了一些computer architecture的基础知识,比如为什么经典CPU用5级流水线,里面有什么类型的hazard,怎么解决的。之后问了setup time和hold time还有CDC,这两个我不想吐槽了,基本上每个公司都问,太憨憨了。之后说是今年华为面试改版了什么的,要增加笔试,两个题说是二选一,第一个是用基础门电路搭建一个64bit full adder,然后后续还有改怎么优化。第二个题是用verilog 写一个round robin arbiter,也是很基础的题。我最后嫌写代码麻烦就给他搭了一个full adder。
第二轮面试等了差不多2周吧,是海思昇腾芯片的一个manager面的,气场很足。上来先是要我自我介绍,然后问对处理器的memory和cache了解多少。之后问了下memory hierarcy和cache coherence。出了一个题,就是两个processor每个各有一个cache,然后有一串读写操作,问你根据MESI,每个cache的state。之后笔试要我写了个二分频代码,并画电路,这个没什么好说,太基础了。
第三轮应该也是大领导,上来聊简历,聊完就问一些BQ。先是问为什么要来海思,还有说外界说华为加班很严重,你怎么看。这个没什么好说的,瞎比扯就行了。
第三轮面试结束后,等了很久,一直在录用排序,最后没有任何通知莫名其妙发了个offer到邮箱。过了4天左右才有HR来联系我,问我签约不签约的事。
整个秋招主要就这些面试,基本上是有给面试的都有offer。除了上面说的以外,我还投了比特大陆,思科,AMD,NV之类的公司,但是他们笔试太诡异了,就是芯片从前端的一直问到后端,我只能说我知识储备有限,做不来好吧。总结下就是,这个行业工资虽然不如CS,但是这几年靠着特朗普的助攻和国家的扶持,还是不错了,我说的这些公司大体上都能开到28W-35W之间的薪酬😃。欢迎大家来转EE(ASIC/FPGA),一起当硅农😉
在面经下的问答
问:请问楼主面华为的具体是什么岗位啊,芯片岗怎么要问这么多的计算机原理的知识?
答:华为投的是海思的芯片大类,HR说进去随便挑,不过谁知道呢😂。然后芯片岗的话,其实如果只做验证,你不太需要关系计算机架构的东西,学SV和UVM就行。如果是做设计,因为很多岗都是CPU/GPU Design或者SoC Design,所以问一些处理器相关的知识还是很常见的
数字芯片设计工程师面试经验(实习加校招)
来自牛客网网友低调的dongker授权转发
https://www.nowcoder.com/discuss/355476
基本信息:本科哈工大硕士清华亚琛双学位,预计2020年七月毕业,做了半年多FPGA的项目,从事行业是数字芯片设计。
腾讯实习(量子实验室)
腾讯报了提前批,开始报了C++的后台开发,但是和面试官聊明显不太对口,并且自己没有任何准备。但是聊的很开心,面试官对我能力也认可,之后就说为我推荐匹配度高的其他部门。
过了两周不到被发起面试,也不知道基础研究是做什么的,但是面试过程中知道是量子实验室中的,然后可能需要我做一些FPGA的开发验证,所以一面问题主要是verilog的语言基础,比如阻塞赋值非阻塞赋值,然后还有外部时钟和内部时钟接口处如何统一,还有针对我的课题提问了较多。一面是两个人,应该是总监和一个技术小哥,后来得知小哥是组里唯一的硕士。一面效果很好,问我什么时候入职,有说有笑。
二面也是技术面,问我的都是围绕简历展开的,很简单。
三面是HR,突如其来没有预约晚上九点开始面试,之后聊了四十分钟,最后我问她能否被录取,她说不能告诉我,但是说了一句“我认为你是一个很优秀的人”。
后来煎熬了好久等offer,在4.1号收到offer call,还是很开心的。
以上是我在当时去实习之前写的,之后去了具体工作内容就是在腾讯量子实验室做电子学测控系统部分,导师和同事人都很好,工作氛围轻松,腾讯对待实习生一视同仁,经常团建。但是做的具体内容不是很喜欢,所以后来也不想留在腾讯。
华为实习
春招那个时候也过了华为的通用软件开发岗,当时面试过程还是很简单的,都是聊项目聊人生,但是我后来不想做软开或者算法这个行业了,就拒绝了这个实习offer。
华为海思秋招面经
在腾讯实习之后还是学到了很多东西的,因为去腾讯实习之前我只做了三个月FPGA,或者说只学了三个月,基本上什么都不会,可能愿意要我主要看学历吧,所以我也很感谢腾讯,实习之后对于我后续的课题进展也很有帮助(我是我们实验室唯一一个做FPGA的,其他人是光学)。华为面试我参加的是深圳的优招提前批,很早,面试问题如下图所示:
当时优招因为只有C9和留学生,加上我觉得问我的问题我大多也都回答上了,不太确定的问题我也表现出了我的学习能力(逃),尤其二面的面试官对我好像也非常满意。后来在面试结束之后也有四个部门七八个人给我打电话,让我选择他们的部门,因为我报的大部门是海思,所以下面的小部门有图灵,海思研究部,海思网络芯片,海思拉法尔部门(这个好像很多人没听过),这些部门都有找过我,有hr还告诉我说我面试表现评分第一,所以我觉得我有15级的希望。再后来就有一个海思hr和我确定意向部门,因为图灵的联系我很多还有一个十九级的小领导给我打了好多次电话,所以我就选择了图灵。此外,这个海思hr还问我意向薪资,我说15级,她在电话里明确说了两次根据你的面试表现15级完全没问题,所以我当时基本就想去海思图灵做数字芯片设计了,但是搞笑的是在后来签两方的时候,给的只是十四级,然后给我讲情怀加技术平台加未来潜力balabala,更搞笑的是我一些在优招中挂掉或者笔试没有被筛选通过的同学在秋招正式批的时候拿了15级,这让我很无奈,后续也有一些人给我打电话,但我最终选择了放弃。
寒武纪
寒武纪面的是媒体部门的数字芯片设计,一面技术面,根据项目进行扩展,对我做的课题的难度表示了不屑,但考虑到都是我自己做的觉得学习能力是OK的。二面是总监面,因为要做无人驾驶或者图像方向的,所以问了问我本科的毕设,主要是C++的数字图像处理内容,面的时间很短,但是我后来和总监又交流过,人很nice。三面hr面,犹豫hr小姐姐太忙总是鸽我,我就在打完球回寝室晚上十点半直接给她打了电话,说:我们现在开始面试吧。她表示她是第一次被要求面试,但聊得很好。再后来在三方下来之后又和总监聊了半个多小时,他是从华为工作十四年跳槽来的,很了解海思,给我夸了好久海思,同时也很客观的对比了寒武纪,然后对我提出的问题非常耐心并且贴心的解答,对我提出的条件也都予以了满足,觉得这个部门的leader真的很棒,对寒武纪这个部门很有憧憬,所以最后我也选择了寒武纪,在上海张江,如果有想合租的小伙伴可以一起(男生)。
vivo
面得芯片规划工程师,因为错过了提前批就随便报了香港那一批,没想到还是给我面试了,然后给我offershow上好像最高的offer,但是由于第一年成立我不是很了解,所以后来没有去。
其他还面了旷视和英伟达,旷视战线拖得有点长,我就没有继续面了,然后英伟达一面一个小时还是很有难度的,这两家公司面试难度相当,感觉应该也不错。
还面了一家家乡企业,长光卫星,做商业遥感小卫星,说给我博士待遇27w,在长春的确不错,后来还是选择了寒武纪。
2020校招芯片设计工程师面经
来自牛客网网友毕业过过过授权转发
https://www.nowcoder.com/discuss/356113
先说一下自己的情况,本人985本211硕,硕士期间从研一下学期开始做了一年半的FPGA,主要是无线通信方向的。暑假在华为北研所数通实习了两个月,也是做FPGA,但后来由于不太想留在北京就没转正。8月中旬就开始投简历了,一共投了十几家,其中有些没收到面试,有些我后来懒得面了,所以我实际面的只有寒武纪,akuna capital,百度,华为,英伟达,OPPO这6家,最后拿了华为,英伟达,OPPO的offer。
寒武纪(芯片设计)一面挂
这是我面的第一家,还没什么经验,一面就挂了。一面是电话面,先问了我做的项目的情况,又问了建立时间,保持时间概念,芯片低功耗设计有哪些方法,怎样增大系统的吞吐率等等,总共半小时,有些问题回答不完整,然后第二天就挂了。
akuna capital(FPGA开发)二面挂
这是个规模200人左右的跨国金融科技公司,做量化交易高频交易之类的,需要FPGA做加速。总部在芝加哥,上海有分部,其中只有六七个做FPGA的,笔试倒不难,但面试全程英语。一面是电话面,问了下项目,还有最常见的FPGA面试题,比如单比特跨时钟,多比特跨时钟,异步FIFO结构,亚稳态,建立时间,保持时间什么的,我用英语勉强表达了出来,总共半小时。二面用zoom远程面,一上来就让搭电路,用二选一选择器搭与门,或门,非门,异或门,花了我挺长时间。然后又问怎样实现将一个数x乘以124倍最快最省资源,我是说先向左移7位再减去左移2位,他问为什么,我没说出来,再加上用英语确实很捉急,就挂了。
百度(芯片验证)三面挂
现场面,去了写做了个笔试,内容是Verilog,SV,UVM,脚本语言之类的。然后一面问了项目,看我答的比较扎实就过了。二面问了SV的一些语法,多态,虚函数,约束之类的,还问了怎样设计一个约束,不使用randc产生1~1000内的1000个随机数,每次值都不相同,由于我只在暑期实习时用过一个月的SV,不太熟,所以只给了个大致思路,不过最后还是过了。三面电话面,问了项目,毕设,对百度的看法,自身的优缺点,我觉得我答的还可以,但后来就一直没消息了,可能成备胎了吧。
华为(海思数字芯片)拿了offer
一面介绍项目,面试官看我有华为实习经历就主要问了在华为做的项目,然后出了个题,两组数a和b,每组有64个值,用最大速度的设计方法找到对应相乘的最大值,即a[0]*b[0],a[1]*b[1],...,a[63]*b[63]的最大值,并写出Verilog代码。我说先例化64个乘法器同时算出乘积,再用32个比较器判断每两个乘积的最大值,再两两比较判断上一轮比较完后的最大值,以此类推。面试官说还有更快的方法,但我没想出来,就让我按我的想法写了。二面面试官是从我实习的部门转到海思的,跟我一见如故,聊聊项目和人生就过了。三面也是问了项目,遇到的困难和职业规划。
英伟达(FPGA/Emu)拿了offer
这家笔试是我见过的最难的,10个题我也就写了一半,好在有面试。一面电话面,问项目和基本的FPGA知识,还是建立时间保持时间跨时钟那一套,半小时。二面视频面,五个人车轮战,面了4个小时,面完我直接瘫了。第一小时先一起问项目,问的非常细,后面就每人问几十分钟,问了同步异步复位,异步FIFO结构,vivado里时钟约束怎么写,怎样在一个时钟周期内算出输入32bit里有几个1,大部分还是以前问过的。顺便说下,英伟达15天年假,3个月陪产假,不加班,买股票打折,真的很香啊。
OPPO(芯片设计)拿了offer
都是现场面。一面问项目,还看了笔试题的结果,没怎么问问题。二面面试官是我本科学校校友,见到我很亲切,聊了人生就过了。三面hr面,问了对OPPO的看法,遇到过的最痛苦的事,期望薪资,反正回答时三观正常一点应该就没问题。
后面还有高通、海康的面试,我嫌麻烦就没面了。英伟达和OPPO给的薪资差不多,最后我去了海思,因为给了sp,待遇高出了一个档次,而且平台好,也最有利于个人发展。我感觉芯片行业是很缺人的,尤其是验证岗,只要懂一点UVM就很吃香,但现在所有人都去搞CS搞算法,有点不理解。
最后放一个收藏了很久的面试总结文章,写的很全面,很有参考价值
https://blog.csdn.net/abcdef123456gg/article/details/100071642
2019数字IC求职笔记(涵盖十余家国内一流IC公司)
感谢知乎网友
铠袖一触
的授权转发
原文链接:https://zhuanlan.zhihu.com/p/61843109
老子在《道德经》里讲“天之道,损有余而补不足。人之道则不然,损不足以奉有余”。所以想找到“好”工作最最核心的东西其实不在于就业行情,不在于就业人数,而在于你自己。希望还没有毕业的师弟师妹能努力争取更多的学习机会,跳出“找工作”这三个字去探索更多的东西,毕竟找一份薪水不错的对口工作并不是我们唯一的目的,拥有更多人生的选择机会才是。下面是我在求职过程中的一些经验和感受,期望能帮到你们。
1.方向选择:适合自己最重要
整个IC行业分的是非常细的,而我们求职时的职位主要包括模拟IC,数字IC前端,数字IC验证,DFT,数字IC后端,ESD,封装,可靠性测试等等,而你必须在研二开始之前搞清楚你喜欢做什么,最起码不排斥,不然IC研发这东西时间久了可能会演变成一个体力活儿,很排斥的话后面做起来会很痛苦。比如我本科就发现自己由于智商受限根本搞不懂模拟,所以果断避开模拟,研一下就选择做数字IC后端。总之一句话,选择有时候比努力更重要。
2.工作地点:需要权衡
整个IC行业分布比较集中的就是上海,去一线的话首推魔都!其次北京or深圳半斤八两,但一线房价逆天,生活成本较高。二线里面西安、苏州、成都都是可选的对象,房价苏州>成都>西安,但也基本都可以接受,所以这个看offer的质量和离家远近的情况,根据自己意愿选择,能给出的意见不多。
3.薪水待遇:辩证看待
大家可以在微信小程序offershow上自行搜索,一般sp会比均价高2~3k,ssp高3~5k
越高的肯定越累,资本主义的本质是剥削:P选择原则上遵循大厂优先,独角兽优先,能学到更多东西的公司优先。因为自己第一工作地上海,第二是西安,所以可能上海的公司面的多一些,以下都是已拿到的offer,薪资数据各个公众号和网上也都有,大体都比较准确。这里推荐一个微信小程序offershow,上面有大部分公司的薪水爆料情况,相对比较准确,可作为求职参考。
4.面试经历及公司分析
华为
菊厂向来是应届生最爱,所以多说一点。因为暑假在菊厂实习过,所以讲一下实习面试的经过。五月份投的简历,其实自己当时是一直留在实验室并没有想出去的,但鬼使神差的有师兄说华为有实习可以投,自己就随便投了一下,然后一周后就收到了面试通知。
面试一共分为两面,一面技术面,基本就问在实验室里做的项目,自己遇到的问题,解决的办法,还有一些基本的概念理解。当时因为提前也没怎么准备而且是处女面,有几个问题答的不好,但基本做的的东西都说清楚了,面我的面试官人很nice,后来知道他是我们部门的主管,后面充分感受到遇到一个好的主管是多么的重要!二面boss综合面,基本就是问一些基本情况,包括有无男女朋友,选择工作地的原因,平时爱好之类的。Anyway,面试的时候自信点,可以聊,但别扯太远。面试前好好温习一下自己做过的项目,包括遇到的问题,如何解决的,自己在做项目时的亮点等等。哦,对了,海思没有笔试。
offer发放速度很快,面试后第三天就收到短信说让去签约,当时自己还是有点慌的,因为还没有和导师商量出去实习的事,心里很没底,去了之后和HR说明了情况,HR人也很nice说先签后再和导师商量,如果导师不放人合同自动作废就好。嗯,后面还是成功出来实习了,实习工资待遇就很不错,反正两个月赚够了研三的学费还学到了很多东西,稳赚不赔。
刚进去给我们配了导师,有任何不懂的问题都可以随时请教。交代了两个月的工作任务,做一个以前做过的项目,相当于新员工入职后的培训虚拟LAB。说实话工作量还是很大的,因为一般新员工基本要做四个月到半年,而我们只有两个月,所以加班比较多。整个海思加班确实也不少,但感觉真的能学到很多东西,最先进的工艺,相当规范完备的流程,海思是国内顶级的fabless不吹不黑。华为的培训体系也很完善,包括线上的培训和导师答疑,内网上有各种大神写的技术贴,比书上写的精彩的多。两个月时间不长但真的学到了在学校半年都学不到的东西。
实习转正的比例很大,所以建议有条件的同学能实习一定要实习!我走之前主管找我谈话甚至问过我如果有女朋想来的话他也可以帮忙招进来,虽然后面因为工作地的原因最终没有选择华为,但两个月的经历给我的秋招带来很大优势。至于坊间传说的加班也不吹不黑,确实比较多,还有月末周六,但我觉得这个看个人选择吧,我是觉得刚毕业还是要多学点东西,不然等着到40岁了再加班?当然婚后后可能会有工作和生活平衡的问题,后面觉得不适合自己的可以选择跳或转行,华为辛苦五到八年后跳个外企或国企养老妥妥的!至于华为秋招的定薪和工作地确实是个谜(也是我拒掉华为的原因),HR对工作地的协调操作到现在我也没看懂,但对于华为我只有感激。总结起来就是华为还是非常适合刚毕业的同学去的,虽然加班较多,但公司平台没问题,管理规范,且确实能学到很多东西,这个对三五年后个人的职业发展都是很有好处的。
兆芯
兆芯是上海国资委控股的合资公司,主要做国产X86,CPU,GPU的,国家需要保持X86的开发能力,所以你懂的。国企的外表+外企的风格,整体氛围不错,有很多从华为跳过来的工程师(海思真的是为国内整个IC业培养了一大批工程师,面试的好几个主管都在华为待过,真正的IC民工生产机!),加班不多。
九月中旬面试,面试分为两面,没有笔试。一面电话面,聊项目,因为华为实习完自己终于有时间总结了做过的项目,所以直接开讲,一个项目讲了30分钟,讲完问了几个项目上的问题技术面就OK了。这里建议大家把自己做过的项目总结为一个word文档或PPT,包括项目内容介绍,遇到的问题,解决的方法和最后的思考,面试的时候直接从头讲到尾,项目不在于多而在于精,一到两个项目足已。二面现场面,兆芯让我觉得亮眼的一点是二面不光聊了技术,还聊了项目管理和人员管理方面的问题,让我介绍我是怎么带本科生毕设的,这么管理是处于什么考量。在华为实习期间觉得华为内部有哪些可以改进的方面。回答的时候注意逻辑性和条理性,这是我面的公司里唯一提到管理方法的公司,水平确实比较高,会跳出研发这个小圈子,寻找能站在外围看项目,看公司发展的员工,很有意思也很有水平,总体来说聊得很不错,面完隔天就发了offer。优点是国企的稳定和相对轻松,缺点和优点一样。
全志科技
全志这个公司还是挺有自己的一些特色的,编解码芯片做的挺成功,上市公司,但近几年好像进入了低谷期。宣讲完了有笔试,试题包括专业知识和智力题,大多是选择题,相对都比较简单。隔天面试,面试分为两面,一面技术面,又是一顿讲,讲完问了在华为实习的感受,实话实说:苦逼而充实。然后直接HR二面,问了工作选择和自己的喜好,HR是学心理学的,天南海北聊了好多和专业完全不相关的东西,能看透很多东西,和聪明人聊天的愉悦感真的比拿到offer还开心!给了我很多建议,很nice的良心HR!整个笔试和技术面都比较平和,和兆易创新差不多(但兆易没有笔试且不再单独说了)。面完直接发offer,后面给了ssp,可以看出今年也是很希望能招到不错的新人。虽然最后没去但还是很感谢HR!
寒武纪
寒武纪今年来的特别早,也是我拿到的第一个提前批offer,先做线上笔试,笔试题还可以不算简单也不算难。然后电话面,电话面的很细,先讲项目然后会根据项目中的各个步骤针对性的提问,涉及后端基本的知识点,也涉及工艺中的概念。后端面试还会问到前端的东西,比如DC,各种文件的定义和包涵的内容,整个flow过程需要规避的风险和关注的点,总体来说问的很细。因为面的比较早,有些问题确实还没想过答的也不好,但记录了不少原先被忽略的问题。这里建议你们面试时要及时记录没有想过的问题,下来自己好好想想,有些问题本来不是很难,只是你做的时候可能忽略了。这样到后面才能越面越好。因为是提前批所以等了好久才收到offer,开始价格和去年持平,后面发现今年普涨又开始加钱,但还是拒掉了。不过站在AI风口的寒武纪还是很值得加入的,稳稳的独角兽!
格科微电子
主要做摄像头的,出货量在亿级别,做模拟同学的好选择,数字这边因为团队不是很大,所以也拒掉了。笔试+面试(技术面和HR面),没有特别要说的,推荐做模拟的同学重点关注一下。
比特大陆
比特大陆作为一个成立5年的公司,2017年全国IC公司营收排名直接从十名开外干到第二,2018年第四,让全世界见识到什么叫真正的资本力量和资本泡沫!作为区块链巨头,占据矿机芯片70%+市场份额,是台积电的大客户之一。
线上笔试+两次电话面试。面试还是讲项目然后问一些基本的问题,比如STA 方面的一些东西,闩锁效应,什么是OCV/AOCV,解释AOCV原理。面完后三四天发了sp,但考虑到矿机芯片活力有限,上海子公司成立时间较短等原因也拒掉了。但比特币我个人认为还是会有其存在的价值的,凡事都有周期,比特大陆已经在港股提交IPO,融资准备子弹转向AI,来对冲硬分叉和比特币大跌带来的风险。也是我看好的AI公司之一。适合有工作经验,技术成型的人跳槽过去赚钱。
Cadence&AMD
都是美帝老牌科技公司,人性化&福利待遇&规章制度都堪称完备,两家公司从面试官到HR人都很nice,AMD面试官和HR声音一样甜了解一下,这也从侧面反映出外企确实很适合女生啊,师妹们可以重点留意一下。
都有笔试,Cadence的还是英文笔试题,做的我一脸懵逼,最好准备一下英文自我介绍,当然技术面还是说中文。但Cadence作为EDA厂商有一个问题就是把流程分的太细了,EDA软件测试岗的每一步都会分给不同的人做,这样感觉会对未来的发展有一些的限制。AMD flow相当完备,有个笑话是说AMD flow追求的终极目标是点一下按钮数据就可以拿去流片了。会和外籍员工一起开会,有机会去国外出差,这都非常吸引我,上海研发中心2000人的规模也很大,待遇在外企里也是最好的,听说朝九晚六,作为IC民工,这样的良心东家不好找了!女生们可以重点关注起来!但发offer节奏有点慢,口头offer到正式的三方offer我等了一个月左右,因为要申报到北美走流程。虽然最后都拒掉了,但希望两家外企越来越好,毕竟美帝良心企是日后很多人不错的选择。
大疆
大疆也是我最终选择的签约东家,无论从公司、产品、待遇福利方面都很吸引我,全球无人机领域的战斗机。分笔试+面试
笔试就很难,性格测更难,很多人都挂在性格测上,大疆的性格测确实是我做过的最难的,其中包括性格测试(如对加班的看法,和同事意见不合怎么办,业余时间的爱好等),逻辑题,小学奥数题,图形题,有关大疆产品的题。反正很多,我一个人做的时间很紧,如果分数不够挂了就基本丧失了面试机会,很无奈。所以做之前还是先好好准备下,个人感觉大疆要的是比较激进的人,答题的时候不要太中庸,要aggressive一些。
面试分为两面,全是技术面,一面讲项目,基本都是问项目里的问题,也问了一些基本的概念,比如double pattern,OCV,setup和hold定义和违例修改方法等等。二面拿着成绩单问学过的课程,工艺,封装,流程,其中穿插着项目和基本概念,让画出与门的管级电路图和版图,计算setup和hold违例时间,还有一些前端的东西,比如DC具体是做什么,为什么要设置sdc,其内容和设置依据。怎么快速在一串二进制数字中找出几个1,最快的方法是什么。还有一些数学上的问题,比如二分法,插值法,最后问了对大疆的了解。整个面试过程问的很细,都是沿着一个方向一直问下去,直到不会再换个方向问。Offer发放速度比较快,面完第三天发口头offer,又过了不到一周发三方正式offer。
5.关于心态和运气
心态:找工作很像谈恋爱,充满各种玄学,最重要的是做好自己然后保持耐心。很多人工作找到一半会感到焦虑,其实没必要,工作是双向选择,那些不认可你的地方,就算勉强去了也不一定适合你。求职的时候不要总觉得自己有求于人就矮半头,企业招聘是在人才市场上融资,你需要做的是像投资人一样去审视这家公司值不值得你投资,不适合就不要硬上,否则赔的终究是你,更不要因此否定自己。
运气:说到运气推荐一部电影《赛末点》(match point),这部片子很好的演绎了有时候运气可以改变一个人的人生走向。不可否认运气在找工作的过程中也占有一定比例,比如你碰到一个和你聊得很好的面试官,再比如技术面的问题你刚好之前准备过。但在找工作这件事上运气成分可能只占10%吧,80%都取决于你的实力,所谓尽人事听天命,还有10%是玄学就让他随风去吧。
6.写在最后
找工作比较看重的几个点:
- 实习经历和对口的项目经验。所以大家研究生期间多向这个方向靠拢;
- 好的简历。简历要好好写,写自己能讲清楚的项目,最多写三个,写太多也没时间讲,别给自己挖坑;
- 多参加笔试面试可以积攒经验,记录问题,找到自己的不足。
总结:2018无疑是中国IC崛起元年,期间发生的很多事,导致IC人才市场出现明显供需不平衡问题,进而形成卖方市场和市场溢价,但这并不意味着躺着就能很好的吃到那部分市场溢价,大家平时还是要多努力,毕竟人不能完全依靠市场。
关于求职前方向选择的问题
其实我们职业生涯的绝大部分问题,都可以归结为以下三个点。你拥有什么?你想要什么?你愿意为此放弃什么?这三件事你想清楚了,绝大部分问题的答案都会变得明了,这三件事你没想明白,你就会陷入什么都想要的死局。
首先说你有什么,很多人会问某个方向怎么样,好不好找工作,这个问题其实很难回答,因为决定你今后发展和起步的因素实在是太多了,你学校的平台(清北很多工科硕士都转金融互联网了,但很多双非院校金融专业的研究生却都找不到好工作),你自身的实力(同等学校相同专业的学生可能薪水从5K-25k呈正态分布),甚至是你的运气(18年中兴被制裁导致整个IC行业集体涨薪)
接下来是你想要什么,即你先要搞清楚自己到底适合什么想做什么。有的人就是没办法坐在电脑前码代码,喜欢出去乱跑和人打交道且有推销的天赋,那就趁早去做销售和市场,不读硕士也罢,因为一个工科硕士文凭真的对销售能力的提升很有限,浪费时间做了一堆使你痛苦万分的事情不说,硕士毕业你跟人家做了三年销售的本科生比,你有啥优势?年龄吗?所以在这里我是不太推荐硕士一毕业就去做销售的,尤其是在自身优势不明显的情况下,因为其门槛相对于研发而言较低,硕士毕业对公司整体的运营模式又没有工作了三年的本科生熟悉,当然我觉得做产品是可以尝试的,前提是你有天赋和兴趣。而有的人就是喜欢搞研究,那就多学技术读个研和博,当然这个前提是非常喜欢且很擅长,在当前天朝这个大环境下,对科研人员尤其是博士生确实不太友好。还有的想转CS那就趁早学起来,不要老刷知乎求方法论,那没啥卵用,重要的是实践起来,但有一点,你必须结合自身情况认真考虑转CS的难度,如果自己coding很强那没啥犹豫的,赶紧转!如果coding一般没啥天赋,准备零基础开搞还是慎重吧,这年头EE也还行,搞到中上毕业进个大厂比起码农也不会差太远,三年前谁能料到2018 IC界出了大事集体涨薪而互联网经历寒冬开始裁员了呢?
而放弃什么,就是指你要付出的代价和你丧失的机会成本。比如你做研发为了尽快提升自己的技术能力放弃了轻松的外企选择了苦逼的华为,比如你本科毕业为了尽早成为销售精英放弃了读研等等。因为并不是所有人都适合做研发或销售,这是需要你自己权衡的,没人能真正了解你的内心,你的性格和你自认为最为合理的生活方式。这些都是你愿意放弃什么。
古人说人心不足蛇吞象,人不可能什么都要的。其实所有的不幸往往都来自于你什么都想要,却什么都不肯付出,还总觉得有办法可以一劳永逸。人一定要学会舍得之道吧,没有舍,绝对没有得。
希望学弟学妹们都能保持清醒的头脑并在将来找到满意的工作吧!
数字IC验证面试经验及面试题总结(2017年)
转载自知乎用户大雄
地址:https://zhuanlan.zhihu.com/p/29642469
经历了一个月的兵荒马乱,总算找到了自己相对比较满意的工作。现在终于静下来,希望对这个九月做个总结,同时希望自己的经验给下一届找工作的学弟学妹们一些参考。
进入八月,作为一名学酥,当找工作这件大事咄咄袭来的时候,坦白讲,我是很心虚的。但是该准备的还是得准备。因为在西安一家外企实习,白天上班,没有太多时间复习,所以在找工作前夕基本都是下班后就去图书馆自习,然后周末也是,简直出去嗨的心情都没有。但复习还是些许盲目的,你永远不会知道面试官抛出来的会是什么样的问题。但经历了无数的笔试面试之后,发现数字IC的笔试面试还是有很对共通之处和规律可循的。期望我的经验能让你少走些弯路,当然不走点弯路是不可能的。
有关笔试准备:
数字IC验证的笔试往往和数字IC设计做的是同一套笔试题,所以相比有数字设计经验的同学,做验证同学的在笔试环节还是有很大劣势的,但也并不是不可弥补。笔试题一般侧重基础,但基本都跟数字IC设计中最常用的方法和思想有关,最常考的有:
1. 信号的跨时钟域同步。包括单比特和多比特,对于单比特自然用两级寄存器同步最为方便。对于多比特,常考察异步FIFO以及握手方法。要理解亚稳态的概念以及避免亚稳态的方法。
2. 说到亚稳态,就不得不说setup time 和 hold time。一定要掌握两种时钟约束和分析时钟约束的方法。清楚四种路径(输入到输出,输入到寄存器,寄存器到寄存器,寄存器到输出),并能找到关键路径。会计算最高的工作频率。
3. 分析和修复setup time validation(降低时钟频率,组合逻辑优化或拆分,提高工作电压) 和 hold time validation(插入buffer,更难修复)
4. 能用verilog描述常用的电路结构,如:D触发器,计数器,分频(奇数倍分频,偶数倍分频,小数分频(如1.5倍)),同步FIFO,异步FIFO,序列检测器(FSM实现)
5. 用verilog描述给出的代码或者伪代码
6. 找出verilog代码中的错误,如信号未进行跨时钟域同步,无else分支会产生不期望的锁存器等等。
7. 阻塞,非阻塞赋值
8. sv基础,包括@signal触发和wait(signal)的区别,事件触发,队列操作,task同步调度(fork ...join,fork ...join_any,fork ...join_none的用法差异)
9. 掌握一些常用的协议,如I2C(能够根据提示用verilog实现),SRAM协,AMBA(AHB),AXI
10. 异步复位在使用时应当注意什么?异步复位,同步释放
11. 请画出异步复位同步释放的电路结构:
12. 在验证环境中,C如何access和dut中寄存器,是如何联系的?Verilog 提供VPI接口,可以将DUT的层次结构开放给外部的C/C++代码,而systemverilog提供了更好的接口:DPI.
13. 掌握一些常用的低功耗方法,如clock gating(能画出电路结构图),了解DVFS,多阈值电压技术,多电压技术
14. 组合逻辑输出需经过寄存器过滤毛刺
.......
数字IC验证面试题:
面试准备:
面试之前充分准备自我介绍,针对外企可以准备一份英文自我介绍,最好能够用英文介绍自己做过的项目或课题。然后最重要的是充分准备好你简历所写的内容,写在简历上的东西一定是你吃透了的。如果有项目的话最好把项目各方面可能会被问到的问题想到。另外一个容易被忽视的是,好多人对选择工作城市的理由上准备很不充分,我自己就因为这个吃了很多亏。要能够给出很合理且具有说服力的理由让面试官相信你确实想要去那座城市工作和生活,表现出自己的诚意。不然就会让面试官怀疑你只是在收割offer.
技术面:如果你有项目经历的话,面试官最关心的是你对自己做过的项目有没有吃透。所以面试前的准备就显得很重要,当然,这是建立在你扎实的项目经历之上的。当然,有些面试官如果对你的项目经历不感兴趣,他/她可能会问你一些基础知识。比如我就遇到过不懂验证的面试官,当场出一两个基础题(比如COMS相关,10进制计数器电路结构,只用两输入与非门实现两输入或门等等)。大多数技术面的时候最后面试官一般会问你还有什么问题,面试前最好有所准备,准备一些有关职业发展,工作岗位等问题。一般在技术面时不要提及薪资待遇,因为这是HR负责的部分。
HR面:HR面一般在技术面通过之后,这个时候就可以细致地了解薪资福利等方方面面的问题啦,包括吃,住,行等问题都可以提问。
1. 先简单谈谈你现在在做的工作。
2. 请谈谈你在学校的学习和项目。
3. 请谈谈你对UVM验证方法学的理解。
- UVM验证方法学是基于systemverilog语言形成的一个高效的验证方法。它的主要特点是提高了代码的复用性,使得验证人员能通过代码移植复用修改快速搭建验证平台,从而将主要精力放在具体测试用例的编写上。另一方面,UVM封装了很多好用的方法,这使得验证人员不必过多关注底层实现,而且减少了验证平台的调试时间。
4. 请谈谈UVM组件的关系。
5. 举例谈谈UVM组件中的一些常用方法。
6. 请谈谈virtual sequencer与sequencer的区别,以及为什么要用virtual sequencer?
- 如果只有一个驱动端agent,显然是不需要使用virtual sequencer的。
- 如果有多个驱动端agent,但是多个激励之间并无协调关系,virtual sequencer 也并无必要。
- 如果有多个驱动端agent,而且多个激励之间存在协调关系,那么virtual sequencer就很有必要了。这个时候环境中需要包含一个甚至多个virtual sequencer了。
- virtual sequence 和virtual sequencer的“virtual”有何含义呢?
- Virtual sequencer 有三个属性:
- Virtual sequencer控制其他的sequencer
- Virtual sequencer并不和任何driver相连
- Virtual sequencer本身并不处理item
- Virtual sequencer 有三个属性:
- 并不像正常的sequencer那样,将sequence item 通过sequencer port传递给driver。Virtual sequencer通过一个指向subsequencer目标的句柄来指定sequencer。这里的subsequencer就是和driver相连接的真实sequencer。所谓的virtual就是指真正的sequence并不是在Virtual sequencer里产生和传递的。一个virtual sequencer可以通过它的subsequencer产生许多种不同类型的tranction。而virtual sequencer的作用就是在协调不同的subsequencer中sequence的执行秩序了。
7. 为什么会有sequence,sequencer,以及driver,为什么要分开实现?这样做有什么好处?
最初的验证平台,只需要driver即可,为什么还需要sequence机制?
- 如果事务在driver里定义,会产生一个问题。比如事务种类繁多,岂不是每次启动一个事务,都要修改driver的main_phase代码部分。
- 如果定义多个driver,那么会把UVM树形结构搞的乱七八糟。所以,要从driver里剥离事务产生(具体包括事务定义、事务产生的步骤)的代码部分。driver只负责事务驱动即可。
- 补充一句,验证的case_list,是用sequence机制去实现的;并保证了UVM树形结构的单一性、统一性。使得可维护的能力大大加强。
上述解释,也是sequence和sequence_item不属于uvm_componet的原因。case相关的代码改动,都在sequence和sequence_item里实现。
8. 你写过assertion吗?assertion分为哪几种?简单描述下assertion的用法。
- Systemverilog断言属于验证方法中的一种,断言(assertions)就是对设计属性(property行为)的描述,如果一个属性不是我们期望的那样,那么断言就会失败。assertions与verilog相比,verilog是一种过程性语言。它的设计目的是硬件描述,它可以很好的控制时序,但是描述复杂的时序关系,代码较为冗长,assertions是一种描述性语言,设计目的为仿真验证,可以有很多内嵌的函数来测试特定的时序关系和自动收集覆盖率数据。
- SVA分为并发断言和即时断言两种。并发断言是基于时钟周期的,在时钟边沿计算表达式,它可以放在模块(module),接口(interface),或程序块(program)的定义中,以关键词“property”来定义,可以在静态验证工具和动态验证工具中使用。即时断言是基于事件的变化,表达式的计算像verilog中的组合逻辑赋值一样,是立即被求值的,与时序无关,必须放在过程块中定义。
并发assertions:
property a2b_p; //描述属性
@(posedge sclk) $rose(a) |->[2:4] $rose(b);
endproperty
a2b_a: assert property(a2b_p); //assert property SVA的关键字表示并发断言
a2b_c: cover property(a2b_p); //覆盖语句
9. 请描述一下你所验过的模块的功能。
10. 你对fifo熟悉吗?谈谈如何判断fifo的空满状态?
- 严格的空满判断: w_ptr==r_ptr且读写回环标志位相同时为空, w_ptr==r_ptr且读写回环标志位不同时为满。这在同步fifo中一般没什么问题,但是在异步fifo中一般要做悲观的空满判断,以免在fifo空时读获fifo满时写。
- 保守的空满判断:方向标志与门限。设定了FIFO容量的75%作为上限,设定FIFO容量的25%为下限。当方向标志超过门限便输出满/空标志,其实这时输出空满标志FIFO并不一定真的空/满。
11. fifo有同步的和异步的,它们有什么区别?
- 同步fifo读写时钟相同,异步fifo读写采用不同的时钟。
12. 对于异步fifo,如何处理空满时的同步问题?还可以采用什么方法?
- 读写指针转化为格雷码后再进行同步。
13. 请谈谈验证的思想,验证人员和设计人员思考问题的差异。
- 验证永远是不充分的,永远是没有最好的,用一个同事的话说,如果非要给验证订一个期限的话,我希望是一万年。
目前通用的做法是看coverage.
- .看design spec
- 了解相关协议
- 编写test plan及verification spec
- 搭建验证平台
- 依据testplan创建测试用例testcases
- 仿真和debug,包括环境和design的bug,花费时间最多。工具是VCS/verdi,debug的手段主要有:查看log,看波形
- regression 和覆盖率
- code review
14. 你们项目中都会考虑哪些coverage?
- Line coverage, condition coverage,branch coverage, toggle coverage, statement coverage(FSM)
15. coverage一般不会直接达到100%,当你发现有condition未cover到的时候你该怎么做?
- 编写定向测试用例(direct case)
16.为什么要尽量避免绝对路径的使用?如何避免?
- 绝对路径的使用大大减弱了验证平台的可移植性。避免的方法是使用宏和interface.
17. 如何在driver中使用interface?为什么?
- 由于driver是类,而在类中不允许直接使用interface,所以在类中使用的是virtual interface。然后再top_tb中通过uvm_config_db#(virtual)::set()…的方式将if set到driver 的vif.
18. 你了解UVM的callback机制吗?
- callback机制最大的用处就是提高验证平台可重用性。它通过将两个项目不同的地方使用callback函数来做,而把相同的部分写成一个完整的env,这样重用时,只要改变相关的callback函数,env可以实现完全的重用。
- 此外,callback还用于构建异常的测试用例,通过factory机制的重载也可以实现这一点。
18. OVM和UVM有什么区别?
- UVM = OVM + VMM(RAL)?
- OVM没有寄存器解决方案,也有factory机制,然而cadance推出RGM之后补上了这一短板,但使用RGM需要额外下载,没有成为OVM的一部分。OVM现在已经停止更新。
- UVM几乎完全继承 OVM,同时又采纳了synopsysVMM中的RAL寄存器解决方案,同时吸收了VMM的一些优秀的实现方式。又mentor和candence2008年联合发布。
19. UVM各component之间是如何组织运行的,是串行的还是并行的?如果串行的,请问是通过什么机制实现各组件之间的运行调度的?
- 关于UVM的运行机制,学过UVM的应该都很清楚了,无非是各组件之间的关系,以及Phase机制等等。UVM其实质是软件,而软件本质上都是顺序运行的,dut硬件是并行运行的。关于各组件之间的运行调度,仅仅从《UVM实战》这本书上是得不到答案的,时候我有翻看了SV绿皮书,感觉从中找到了答案。测试平台的调度是通过事件触发驱动的(如@,->event)
20. 对一个加密模块和解密模块进行验证,如果数据先进行加密紧接着进行解密,如果发现输入数据与输出数据相同,能不能说明这两个加解密模块功能姐没有问题?为什么?
- 看到这道题,当时的反应就是应该首先分别对加密模块进行验证,如果没有问题,再一起进行验证。但是面试官对这个问题貌似并不满意,问我为什么直接验就不行呢?我当时一下子也说不出原因。
21. 在对一个模块仿真的时候发现:如果输入是一个地址addr,发现dut的输出是一个相同的地址addr,但是参考模型的输出是addr1.请分析可能是什么问题导致的?你会怎么去解决?
- 我首先想到的是,要么dut设计出错,要么参考模型出错。首先需要根据spec的定义检查我们的参考模型有没有问题,如果没有问题,通过仿真对设计进行debug,找designer确认问题和修复。但是面试官依然不满意,她最后指出,我有没有考虑到可能通过配置寄存器让dut工作在不同模式,是不是dut工作在bypass模式,而参考模型工作在其他模式?当时就得自己怎么就没想到呢?有点自惭形秽,可事后细想,发现她的提问方式本身就有问题,提问时没有给出足够多的信息和引导,答不上来也是在情理之中。下来和也参加面试的同学讨论的时候发现,几乎所有人都被问到了同样的问题。
........
以上就是我能想到的经验分享啦,纯属个人意见(如有遗漏,后续还会补充),如有不妥之处欢迎批评指正,也希望各路高手能够加以补充。
2020校招数字芯片验证岗面经
感谢好友
cuddly
的面经分享
背景介绍:
本科二本通信专业,硕士985集成电路专业,但是实验室非IC方向,同门偏电化学方向,自己的课题偏嵌入式方向,自学验证+路科V2验证课程,学习时间半年,验证项目经历是V2课程实验。秋招从八月份开始投递简历,一共投了近三十家,投递岗位方向均是数字验证,面了10家左右,最终收获四家offer。
面试情况:
禾赛科技
第一家面试企业,主要做激光雷达,工作地点上海,创业公司,薪资不错,电话面试主要问了组合逻辑与时序逻辑,同步异步,状态机,uvm寄存器等问题,偏基础,但是自己准备不足,一面挂。以下是朋友面试禾赛时的问题:部分问题比较偏,也是因为朋友简历有相关内容。
由此,我发现我的基础薄弱,所以我根据面试情况狂补了基础,事实证明确实有效。主要是看腾讯课堂视频:数字IC与FPGA面试笔试讲解,这个博主同系列有好几个视频,可以用来看看考点,补基础。
中兴提前批
八月初投递的,提前批当时免笔试,直接面试,电话技术面是一个做后端的人面试,主要问了:同步与异步的区别以及用哪个更好,数字IC的整个流程,你所了解的EDA工具,时序分析,建立时间与保持时间以及谈谈工作地点等等。后来等到九月正式批直接发放offer。签约时给的后端岗,谈薪资时,我想高一些,所以现场又问了一些你对后端的了解,最终地点与薪资比较满意,但我最终还是拒了。
智原微电子
这是一家台企,主要工作地点苏州。面试时间八月底,电话面试官是他们数字组的验证经理,大概面了40分钟,除了前面提到的那些数字集成电路的基本知识以外,被问到:验证计划包括哪些,sv的rand与randc,面向对象编程,uvm的phase机制,uvm_config,sequence与sequencer,virtual sequence等等。面试过程中遇到不太会的,面试官还会主动讲解,面试官比较nice。九月上旬拿到offer.
普瑞集成电路,豪威,兆芯
这三家放一起说,感觉面的还行,不知道咋凉了。普瑞南京的台企,电话面试,两个面试官一人一句面了一个小时。把简历写的全文了,包括问了绿皮书所有代码是否都跑过。豪威:上海的外企,在实验室桌子上趴着睡觉时,打电话过来面试,两个人面了40分钟,主要围绕SV与UVM。兆芯:上海的国企,QQ视频面试半个小时,主要围绕SV与UVM。这三个均是技术面完就凉了,自我感觉大部分问题都答出来了,可能是一些关键问题上答得不好。
复旦微
现场笔试,笔试完当晚面试。面试官很nice,聊的很开心,但是个人综合能力太差,遂凉了。现场给出一个时序路径图分析,写SV代码,手写递归等等,还聊到个人兴趣爱好,包括如何了解到复旦微。
华为
从去年秋招开始,华为芯片岗与逻辑岗增加笔试,面试需要手写代码,代码不过,面试over。一面:面试官给出一段序列,用状态机做序列检测,聊了下验证项目的整体结构,边写边画,并说明每部分怎么做、干什么,讲覆盖率有哪些,怎样才算验证工作完成,验证人员的基本要素。二面:手写回答一个问题,讲实验室课题的项目。三面:聊地点,期望薪资,做设计还是验证(华为统一为数字方向)。没有到第三面的直接凉,基本三面完了就泡到资源池,等待开奖。最终拿到offer。
兆易创新
现场笔试完,隔一天后现场面试。笔试设计验证一套试卷,验证题只有一两道,给出一段SV代码写出执行结果,SV的基本语法。由于上过V2课程,这部分对于我比较简单。技术面:讲了验证项目的框架结构,怎么做覆盖率,写一个断言例子等。HR面:聊工作地点意向,职业规划,面了哪些公司,结果如何(我就说了两家大公司和两家小公司,说拿了两个offer,一个没有不是有点惨吗)。最终选择地点工作西安,十天后电话通知给的SP,性价比极高。
寒武纪
正式批面试时,我已经签了三方半个月了,整体状态全无,凉。主要围绕SV与UVM,重点是面向对象编程的三要素,怎样才算验证完备,一个系统验证需要考虑哪些问题。
以下是我朋友的寒武纪提前批技术面问题:
- test plan内容?
- scoreboard
- reference model
- 数字IC设计流程
- 你在项目中遇到的困难?
- 断言的概念:断言是设计的属性的描述。
- 回归测试的概念(因为目前在做)
- 异步fifo的异步时钟是怎么处理的?
- phase机制(主要包括哪些phase?)
- factory机制
总结
最终个人想去大公司,选择华为,论性价比兆易创新不错,想留西安的同学可以关注一下。每次面试完我都会在本子上记下面试中的问题,然后复习一遍,我推荐大家也这样做。因为很多时候面试问题会重复,这样做也可以查漏补缺。对于非科班的,个人觉得不管你是不是做芯片的,是不是相关专业的,你想应聘这个岗位,那你需要对这个岗位做适当了解,所需技能不一定要精通,但你得了解,这样让面试官知道,你要做这个岗位,做了哪些准备工作,在短时间内学到了什么程度,潜力如何。机会永远是留给有准备的人。