首页 > 数字IC面经合集
头像
贝塔啊
编辑于 2020-08-08 07:12
+ 关注

数字IC面经合集

欢迎关注公众号 摸鱼范式

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的,其他人是光学)。华为面试我参加的是深圳的优招提前批,很早,面试问题如下图所示:

img

当时优招因为只有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

汇顶科技数字设计验证面经

https://www.nowcoder.com/discuss/277417

一共三轮面试,一轮专业面,二轮HR面,三轮综合面

一轮主要是针对简历上的问题开始问,简历上的东西一定要非常清楚。
先是自我介绍,然后开始问你项目上的项目,问我的包括框图还有每个模块之间的信号等,问的非常细。问到我的问题有异步电路的处理,包括单bit和多bit,还让我画了DMUX的结构;问了项目中用到的spyglass软件,如何检测自己的异步信号得到了正确的处理;问了AMBA协议,URAT协议的作用;问了异步FIFO地址同步问题;问了关于SRAM读写问题。最后问我有没有接触过乘法器和触发器,我说没有面试官让我自己设计一个除法器,我就自己瞎说了一通最后也没答出来。主要还是针对简历上的问

二面是HR面,没有问技术问题主要是对工作地的选择,手里有没有offer还有自己一些有的没的,几乎不刷人

三面是综合面,应该是一个大佬主要是问了自己实验室的项目,一直在聊我的实验室项目然后问我为什么要转到数字IC,还问了几个基础的问题,建立时间和保持时间,还有一个很简单的什么问题忘记了。。反正问的不深,主要可能看你的思维能力,但是也是最玄学的一面。。。

一面是最难的,最后一面是最玄学的。。

AI芯片面试总结

基础书籍有哪些?重点章节以及概念?

计算机体系结构---量化研究方法;

计算机组成与设计---软硬件接口;

deep learning 深度学习;

python;

CMOS数字集成电路

面试中可能会遇到的知识点

建立保持时间 / 亚稳态如何产生及解决 / 竞争冒险产生及解决 / 低功耗设计 / 时钟歪斜和抖动 及产生原因 / 同步异步的概念 / 同步复位异步复位 / 异步复位同步释放(要会写这个的verilog代码) / 布尔表达式 / 时钟2分频 3分频代码现场写 / 流水线的相关知识 / verilog实现循环右移等。

一定要熟悉数字IC设计的全套流程 。 DC综合,静态时序分析是什么,了解吗,一般做哪些约束!
写verilog时什么情况下会综合出latch来,为什么不希望有latch。

状态机 一段两段三段式状态机,并用状态机编程实现一个问题。

平头哥问了定点数与浮点数的差别及浮点数如何实现加乘。

总线相关知识,内部总线 / 系统总线 / 外部总线 / 数据地址控制总线 / AMBA总线 / 冯诺依曼结构和哈佛结构。

百度:如何实现一个排序的问题(冒泡法排序) / 建立保持时间(计算题,考虑各种延时 歪斜抖动)。
异步fifo深度计算,实现log计算;

业内哪些公司值得一去?

推荐公司:平头哥、寒武纪、地平线、大疆、华为海思、中天微、睿思芯科(初创公司,做RISC-V的,深圳),禾赛科技(做无人驾驶的,上海),小米,OPPO VIVO,海康威视;比特大陆(到时候看情况); 还有兆芯、展锐等(这两个待遇较低)

中科院体系:声学所、自动化所,计算所待遇较高;

航天体系:航天五院502 501,航天一院总体部较好;

中电系统:我知道的:南京的14所,石家庄的54所等,待遇较好;

外企包括:英伟达,英特尔,赛灵思;

区域选择:做芯片的话首选上海,其次北京,其次深圳;

面试官对AI数字岗位比较关注的点,最希望面试者具有怎样的经历?
模拟射频等底层电路知识,还是verilog的熟练程度,还是对于算法转换硬件语言的能力,亦或者是对芯片架构的理解?

最希望你做过数字相关的项目,最好是走完全部的流程,流片的那种,如果没有做过就要对相关的知识特别熟悉,了解基础知识,会写verliog,会用fpga,知道流程,了解计算机体系结构最好等等;

模拟射频不关心,但是简历上的项目一定要能讲的明明白白的,还要展现自己的学习能力,给他表现出虽然你之前没做过,但是你一旦开始弄这个,肯定比别人学的快,做的好;

除了AI芯片方向,通用处理器(X86CPU等以及GPU)发展前途如何,有哪些公司值得一去?
我觉得做服务器上的芯片应该也挺好的,未来有可能是云端存储(超级服务器)+很快的网速。

这个我就不太清楚了,龙芯,兆芯?

你转数字时最后悔没有做的事?

没有走一遍数字的流程,从写verliog开始到仿真再到综合然后门级仿真,生成版图,然后后仿真;

研究生阶段如果没有做过数字相关的项目,最好能找一个实习(平台比较大的公司,如华为)。

以下是我找工作时收藏的一些链接

低功耗设计:https://www.cnblogs.com/IClearner/p/6912455.html

Tcl和DC综合:https://www.cnblogs.com/IClearner/p/6660380.html

DC教程:https://blog.csdn.net/steven_yan_2014/article/details/43445231

IC设计中异步电路处理的若干问题:https://blog.csdn.net/wordwarwordwar/article/details/79894843

FPGA设计中时钟约束的重要性:https://blog.csdn.net/u010203275/article/details/80569502

低功耗设计的几个思路:https://blog.csdn.net/moon9999/article/details/77900306

verilog二分频代码&verilog三分频代码:https://blog.csdn.net/hanghang121/article/details/20073985

建立时间和保持时间概念:https://blog.csdn.net/wordwarwordwar/article/details/80160755

复位最佳方式:异步复位,同步释放:https://blog.csdn.net/frank_wff/article/details/43226507

随笔分类 - 数字IC(前端)/逻辑设计技巧:https://www.cnblogs.com/IClearner/category/971863.html

IC设计流程:https://blog.csdn.net/Burning_blade/article/details/81148352

计算机组成原理——总线的基本概念:https://blog.csdn.net/dala_da/article/details/78650035

计算机体系结构期末复习题:https://blog.csdn.net/igiphons/article/details/5650136

计算机体系结构:https://blog.csdn.net/he582754810/article/details/77862078

cordic算法详解:https://blog.csdn.net/u010712012/article/details/77755567

ARM获得PC指针为何PC=PC+8:https://blog.csdn.net/sddzycnqjn/article/details/7691534

MIPS 五级流水线:https://blog.csdn.net/EckoTan/article/details/46533843?utm_source=blogxgwz3

《大话处理器》连载——微架构(4) 史上最经典的5级流水线:

https://blog.csdn.net/muxiqingyang/article/details/6661417?utm_source=blogxgwz0

Verilog基础知识7(FIFO深度计算):https://blog.csdn.net/times_poem/article/details/51917648

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.写在最后

找工作比较看重的几个点:

  1. 实习经历和对口的项目经验。所以大家研究生期间多向这个方向靠拢;
  2. 好的简历。简历要好好写,写自己能讲清楚的项目,最多写三个,写太多也没时间讲,别给自己挖坑;
  3. 多参加笔试面试可以积攒经验,记录问题,找到自己的不足。

总结: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封装了很多好用的方法,这使得验证人员不必过多关注底层实现,而且减少了验证平台的调试时间。

    1. 请谈谈UVM组件的关系。
    2. 举例谈谈UVM组件中的一些常用方法
    3. 请谈谈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
  • 并不像正常的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的执行秩序了。

    1. 为什么会有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里实现。

  1. 你写过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); //覆盖语句
  1. 请描述一下你所验过的模块的功能。

  2. 你对fifo熟悉吗?谈谈如何判断fifo的空满状态

  • 严格的空满判断: w_ptr==r_ptr且读写回环标志位相同时为空, w_ptr==r_ptr且读写回环标志位不同时为满。这在同步fifo中一般没什么问题,但是在异步fifo中一般要做悲观的空满判断,以免在fifo空时读获fifo满时写。

  • 保守的空满判断:方向标志与门限。设定了FIFO容量的75%作为上限,设定FIFO容量的25%为下限。当方向标志超过门限便输出满/空标志,其实这时输出空满标志FIFO并不一定真的空/满。

    1. fifo有同步的和异步的,它们有什么区别?
  • 同步fifo读写时钟相同,异步fifo读写采用不同的时钟。

    1. 对于异步fifo,如何处理空满时的同步问题?还可以采用什么方法?
  • 读写指针转化为格雷码后再进行同步。

    1. 请谈谈验证的思想,验证人员和设计人员思考问题的差异。
  • 验证永远是不充分的,永远是没有最好的,用一个同事的话说,如果非要给验证订一个期限的话,我希望是一万年。

目前通用的做法是看coverage.

  • .看design spec

  • 了解相关协议

  • 编写test plan及verification spec

  • 搭建验证平台

  • 依据testplan创建测试用例testcases

  • 仿真和debug,包括环境和design的bug,花费时间最多。工具是VCS/verdi,debug的手段主要有:查看log,看波形

  • regression 和覆盖率

  • code review

    1. 你们项目中都会考虑哪些coverage?
  • Line coverage, condition coverage,branch coverage, toggle coverage, statement coverage(FSM)

    1. coverage一般不会直接达到100%,当你发现有condition未cover到的时候你该怎么做?
  • 编写定向测试用例(direct case)

    16.为什么要尽量避免绝对路径的使用?如何避免?

  • 绝对路径的使用大大减弱了验证平台的可移植性。避免的方法是使用宏和interface.

    1. 如何在driver中使用interface?为什么?
  • 由于driver是类,而在类中不允许直接使用interface,所以在类中使用的是virtual interface。然后再top_tb中通过uvm_config_db#(virtual)::set()…的方式将if set到driver 的vif.

    1. 你了解UVM的callback机制吗?
  • callback机制最大的用处就是提高验证平台可重用性。它通过将两个项目不同的地方使用callback函数来做,而把相同的部分写成一个完整的env,这样重用时,只要改变相关的callback函数,env可以实现完全的重用。

  • 此外,callback还用于构建异常的测试用例,通过factory机制的重载也可以实现这一点。

    1. OVM和UVM有什么区别?
  • UVM = OVM + VMM(RAL)?

  • OVM没有寄存器解决方案,也有factory机制,然而cadance推出RGM之后补上了这一短板,但使用RGM需要额外下载,没有成为OVM的一部分。OVM现在已经停止更新。

  • UVM几乎完全继承 OVM,同时又采纳了synopsysVMM中的RAL寄存器解决方案,同时吸收了VMM的一些优秀的实现方式。又mentor和candence2008年联合发布。

    1. UVM各component之间是如何组织运行的,是串行的还是并行的?如果串行的,请问是通过什么机制实现各组件之间的运行调度的?
  • 关于UVM的运行机制,学过UVM的应该都很清楚了,无非是各组件之间的关系,以及Phase机制等等。UVM其实质是软件,而软件本质上都是顺序运行的,dut硬件是并行运行的。关于各组件之间的运行调度,仅仅从《UVM实战》这本书上是得不到答案的,时候我有翻看了SV绿皮书,感觉从中找到了答案。测试平台的调度是通过事件触发驱动的(如@,->event)

    1. 对一个加密模块和解密模块进行验证,如果数据先进行加密紧接着进行解密,如果发现输入数据与输出数据相同,能不能说明这两个加解密模块功能姐没有问题?为什么?
  • 看到这道题,当时的反应就是应该首先分别对加密模块进行验证,如果没有问题,再一起进行验证。但是面试官对这个问题貌似并不满意,问我为什么直接验就不行呢?我当时一下子也说不出原因。

    1. 在对一个模块仿真的时候发现:如果输入是一个地址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,重点是面向对象编程的三要素,怎样才算验证完备,一个系统验证需要考虑哪些问题。

以下是我朋友的寒武纪提前批技术面问题:

  1. test plan内容?
  2. scoreboard
  3. reference model
  4. 数字IC设计流程
  5. 你在项目中遇到的困难?
  6. 断言的概念:断言是设计的属性的描述。
  7. 回归测试的概念(因为目前在做)
  8. 异步fifo的异步时钟是怎么处理的?
  9. phase机制(主要包括哪些phase?)
  10. factory机制

总结

最终个人想去大公司,选择华为,论性价比兆易创新不错,想留西安的同学可以关注一下。每次面试完我都会在本子上记下面试中的问题,然后复习一遍,我推荐大家也这样做。因为很多时候面试问题会重复,这样做也可以查漏补缺。对于非科班的,个人觉得不管你是不是做芯片的,是不是相关专业的,你想应聘这个岗位,那你需要对这个岗位做适当了解,所需技能不一定要精通,但你得了解,这样让面试官知道,你要做这个岗位,做了哪些准备工作,在短时间内学到了什么程度,潜力如何。机会永远是留给有准备的人。

UESTC_ICER

感谢网友UESTC_ICER投稿

目前投了好几家,但是正是开始面试的有3家。

中电14所

项目对口专业对口,简历关刷人很多,教研室只有两个过了简历,要求本硕985,还要求专业对口,本硕成绩都比较高。

技术面

很水,主要问问看你来南京的意愿,他们主管说看你远道而来,第一面肯定不会挂你,但是接下来是带你去下面部长面试。先做自我介绍,问了问为啥本科体育成绩那么差?有没有女朋友,属于什么性格的人。

部长面:问题差不多,问了有没有在写文章,多问了了不了解波束成形,你的雷达测向是怎么测得。

HR

填个问卷,父母单位职位,期待薪水,找工作看重的几个要素,问怎么看待华为,研究所也加班为啥选择来这里。一天面完,如果通过了,第二天就发了性格评测。

回到学校赶紧做完,感觉就是按照自己性格做的,少说话多做事,结果过来大概一个月又收到评测短信,问那边说性格测试挂了,所以重新发一次让重做一次。然后这次就很认真,找了个同学参谋一起做,结果还是挂了。。。。。。可能天生不适合体质内吧。

讲道理,如果不是性格测试,我真的还是挺想去14所的,加班没有外面公司重,给的待遇确实挺好,22W-25W+12*8K公积金+事业编+600房补+400油补。没有中年危机,除了他们不做芯片,进去应该是去做FPGA/嵌入式开发。

中兴提前批

据说今年中兴提前批比去年要求高了不少啊,我有同学报了FPGA的班面试被怼的挺惨。我们组中兴是被内推过去的,所以基本上都是第一波面试。

一面

主要就是问项目,问项目中开发工具,遇到哪些问题,你项目中ARM部分的C代码是谁写的,然后看简历我还做过后端,问了大概40-50分钟?然后说感觉我基础知识蛮扎实的。然后挂了,然后过了几分钟,又打电话过来问你的意向城市是哪里?我说优先二线城市吧,成都南京。貌似一面通过了后,会收到测评短信,目前做完评测(内容就是一些类似公务员行测题这种)。

乐鑫提前批

乐鑫感觉是我面试觉得面得难度最大的公司。

一面

牛客网视频1对1,对面是苏州的开发人员,问了项目,比较注重细节,问我怎么处理从BRAM的数据搬到DDR3里的时序,有没有考虑过AXI的高级功能,我项目比较多,应该是为了把控时间吧,就聊了两个项目,问我FFT模块里的专利创新点。我是怎么设置FFT模块为50Mhz,是怎么考虑数据量带宽的。我说,单测自己写的FFT模块的后端在tsmc180nm只能跑到50M,所以我们都是根据后端跑的频率做的DEMO,事实上DDR3的时钟有500Mhz,足够满足写入数据量的带宽。

二面:HR面

感觉乐鑫HR蛮傲气的。上来问说我成绩比较好,问我属于天赋类还是努力类。我说我是总结类,会写一些博客总结项目,然后就问有没有github项目,为什么没有把博客链接写简历上。

我简历有参加比赛,然后问为什么没有拿国奖,我说团队磨合问题吧。然后就进圈套了,你觉得是你自己的问题,还是队友问题。如果重新打那次比赛,你会怎么做。你怎么看待大公司的必要的恶?最近在看什么书,有看什么技术类的书?有没有看宣讲会,对乐鑫有什么了解和看法。未来的职业发展。然后问了我们教研室有几个过了笔试,好像就两个。

“那你们教研室通过率比较低啊”。

然后问了问期望薪水,我说VIVO东莞给了我们教研室这边offer 24W-30W,我觉得在这之间吧。然后他问你们组拿了几个VIVO的offer,我说有6,7个。

“那您忙教研室拿的OFFER挺多的嘛”。

然后我问你们今年招几个啥的,都没有靠谱的回答。

三面

感觉要跪。面试官是技术主管,肉眼可见的劳累,头发都白了。感觉他们需要对verilog非常精通的人,按他的话说需要在写代码前,电路就已经在脑子里了。

首先是自我介绍,我讲到第三个项目就被打断,然后问这个项目有传承吗,是全自己做的还是在前人基础上,我确实是自己做的,之前的师兄的毕设代码都是我弄的呢。。。。问我写过那些接口,AHB,APB,AXI,SPI,IIC。然后问我,为什么AXI比AHB块,我说数据通路读写AXI是分开的,读写效率更高,而且AXI burst传输只要配置好传输字节数,然后送起始地址,设置递增传输,剩下只要传数据进去就行了,而AHB必须读写占用同一数据通路。他说他问的是为什么更快????我不理解,读写效率更高不就数据吞吐量更高吗?至于时钟频率,那个得看工艺和具体电路实现吧。

有没有用过什么脚本语言,python,tcl。

项目还问了具体算法的实现,算法功能啥的。他也只问了3个项目,MCU的项目就没有问,可能觉得时间太长了。还问了我Verilog有几年的经验。脚本语言使用程度,我本科毕业设计是用Python写的,问写了啥。用没用过正则变换,木有。用python写的算法。

linux使用程度,后端工具都是在linux环境下使用的,还比较熟。问用什么编辑器,正常大佬们肯定都用vim啊,但我日常vim用得少,我怕他问些比较高级的用法就说用gedit。

他问,同步时钟的脉冲信号怎么检测上升沿和下降沿,画时序图给他看。视频面试交流起来太麻烦了。画好后,问如何用检测信号来还原原始的脉冲。

我提出的方案是用检测信号当D触发器的时钟,然后再做一些组合逻辑就行。他说,这个方案在同步时钟电路中是不允许这样做的,在高频下会出问题。然后问我还有没有方案,我说我想不出来了,感觉正常用时钟会延一个周期。然后他问我觉得这个理论上用电路可以实现吗?我说除非有预测电路,感觉不太可能实现吧?

他也没有回答。

还问我愿不愿意做验证,我觉得可以,问为什么,对验证有哪些看法。还有愿不愿意做流程,就是综合,DFT这块。我说DFT我没学过。

接下来我提问,问他觉得我有哪些需要改进的地方,他说感觉我经历比较丰富,前后端测试都跑过,嵌入式也搞过,通信的算法也做过,也有完整流片经历。但是问题在于需要做些总结,设计岗需要对verilog非常精通的,我这方面并不突出。(然而我这种啥都做过一些的反而在面14所和中兴的时候那边却还是觉得比较好,说基础比较扎实)。

问他有些二面就有offercall是为啥?他说应该是资源池,待定的这种,正式offer都需要三面的,一般是等别人放弃offer就会联系offercall。

然后问了问他们对新人培养啥的,一年内会有导师带,有什么问题就可以直接问他,没有系统培训,上项目练手最快。

目前状态:等待HR电话,是死是活应该一周内会有结果吧。

卓胜微电子-成都

这家算射频领域独角兽吧,数字的规模不大。今年问hr说只找5个,因为要保证1对1培养,新人有1个月虚拟Lab(前端验证综合全程不含后端)。

笔试

这家公司要现场笔试的,感觉题目量还是比较大的,难度中等吧。

主要题型有概念题,电路设计题,代码题,计算题。

概念就是基础的setuptime,holdtime。jitter,skew。异步复位同步复位解释,如何跨时钟域传多比特这种类型的。比较基础。

电路设计,用MUX搭异或门,门电路搭上升沿检测,门电路搭序列检测。

代码:序列检测,画状态机。画异步fifo结构图。

计算:FIFO最小深度计算。

附加题:每个时钟输入一个bit,检测12bit数是否能被5整除。这个我有比较好的方法来简化。

面试

面试官是从海思那边挖过来带团队的,感觉比较年轻。这边团队目前数字3个人,然后社招2个,应届5个。感觉不看重你的本科研究生成绩啥的,主要关注你的项目。对自己的项目一定要非常非常了解,问的总线相关问题很多。axi3和axi4区别。mcu里面AHB总线里hready in和out你是怎么连master和多个slave的。你的验证平台怎么搭建的,matlab的仿真算法的数据是浮点数,怎么跟你的硬件计算结果来对比。SPI时序,你的SPI后面有没有用fifo,怎么实现的状态跳转。讲详细算法如何实现,以及你的项目创新点在哪里。MCU如何仿真的,是如何用FPGA原型验证的。后端频率上不去,组合逻辑延时,你是怎么优化的。ARM的keil C代码是谁写的。你会那些脚本语言,perl会不会。Tcl脚本会不会,DC综合的脚本谁写的。

我问了以下这边验证怎么做的,这边说小模块可能会搭平台,大的系统是自己写sv来验证的。然后说会不会有专门的验证岗,设计岗,他说目前规模比较小,很多是兼职的,不是来当螺丝钉,可能验证会兼职小模块的设计,设计也会负责一部分验证,以后规模大了就可能分开了。

HR

hr说这边感觉招过来的全是电子科大的,面试我的leader也是成电毕业从海思挖过来的,我有挺多师兄在这边工作,所以大致情况我也有些了解。这边周末加班给钱,平时按我问在这里工作的师兄,就是996,但是其实比较弹性,如果自己的活做完了就可以先走人。一般周6要过来加班。公积金是给20% ,自己交7%。年假10+带薪工作月份/2。其他就是闲聊,问下家里情况,意向地点啥的。问薪水意向,我说跟乐鑫差不多吧。去年卓胜成都好像也是18K16这个样子,多的有1818这样子。然后说可以加微信,了解进度,大概1个多月后会有消息吧。

兼珏

百度

职位:验证工程师

投递方式:内推

一面

  • 自我介绍,学校,专业,实习内容
  • 实验室项目
  • 手撕apb driver代码,给出了时序图
  • solve before的作用,会对约束结果的概率分布产生什么影响
  • illegal bin是什么,如果触发illegal bin会有什么结果
  • rand和randc的区别是什么?
  • fpga设计中的约束有哪些?
  • 乒乓操作是什么,作用是?
  • 如果在FPGA中产生了时序违例,如何解决,如果是ASIC呢?

介绍了他们自己的昆仑芯片,对标含光。

自己准备了很多体系架构的知识,但是一点都没问到,估计面试官不怎么熟悉这方面业务。

一面是技术现场面,二面是技术视频面,一面二面一个北京一个上海,三面可能是HR或者主管综合面。

二面

  • 自我介绍,简历相关
  • 随机产生10000个不同的数(我说randc,但他说randc有限制,不能产生到10000,但是后面在vcs上实验,可以产生到65536)
  • 会C++么
  • 如何保证存储器控制模块地址映射正确性,MBIST的核心验证思想是什么
  • 为什么想要做验证

字节跳动

投递信息

岗位:架构工程师,FPGA方向

投递方式:内推

一面

  • 自我介绍,简历相关
  • 手撕代码,三分频电路
  • UVM环境结构
  • CPU测试的test plan
  • fpga的ram类型,片上有哪些资源
  • fpga中建立时间和保持时间违例应该如何解决
  • 如果功能仿真正确,而板级测试错误,可能是什么原因,如何解决
  • 是否了解PCIE协议,VIRTIO协议
  • 是否了解AXI、ACE协议
  • 是否了解TCP/IP协议,数据包内有哪些内容
  • 能否提前实习

张江房价贵不贵,住在哪儿,金桥和张江还是有一段距离的。他们的业务是在服务器中用FPGA加速。

联发科

岗位信息

联发科,芯片开发工程师

面经

一面

  • 自我介绍,简历相关
  • 为什么想要来合肥,对合肥联发科有什么了解,有没有女朋友,女朋友现在在哪里,感情如何
  • 在做I2C这种简单的协议枯燥么
  • 对着简历中的创业经历吹了快半小时比
  • 合肥联发科是联发科在国内最大的IC中心,业务范围覆盖很广,新人进去之后会有为期2个月的培训,再根据意愿和岗位需求进行分岗

二面

  • 自我介绍,简历相关
  • 怎样看待平头哥
  • 在带领团队的过程中,如何发挥“战鼓”精神
  • 为什么想来合肥
  • 为什么想从事芯片验证,对设计/验证/DFT/后端岗位的理解

健宇

晶晨半导体

第一轮面试

视频编解码组,组里7-8人,上海ic一共4,50

  • 问项目
  • 让我简单介绍ic设计流程(因为我是搞fpga的)
  • 介绍异步fifo
  • 介绍cache
  • 介绍axi
  • 有没有信号处理的经验(答:没有)
  • 你是哪里人(福建)
  • 为啥去荷兰(世界那么大,我想去瞅瞅)
  • 想回国是吧(是啊爸妈都在国内,想离家近一点)

然后告诉我之后还有好几轮

第二轮面试

视频编解码组

  • 项目
  • 异步fifo
  • 项目中有没有对面积进行优化
  • 怎么debug,用过什么仿真软件
  • 单bit信号怎么跨时钟传输,快到慢和慢到快分别怎么搞

第三轮面试

视频编解码组

  • 为啥想做ic,现在的年轻人好像更希望做软件,ai什么的
  • fpga的设计流程是啥(面试官没做过fpga,单纯只是好奇)
  • 介绍公司有几个组:wifi网口之类的数据输入输出组(主要在美国),soc组(一半美国一半上海,人比较多),视频输入输出(很大的组,上海美国都有),视频编解码组(小组,主要在美国,不想招太多人,今年最多就招一个,还和我吐槽招人太难了),想去哪个组都可以商量,没啥问题
  • 验证方案:组里有自己的很成熟的视频编解码验证平台(不是uvm),很稳,最近几年从不翻车

新司机培训计划1:视频编码里面有一个单独的模块,可以提高画面质量(但这个模块不是必须功能),会有老司机带着新司机做这个模块的设计,但这个是组里自己的培训计划,公司层面没有自己的ic培训计划

新司机培训计划2:如果觉得单独写一个模块有点困难,想先了解视频编解码,可以在新司机培训计划1前,先读公司编解码技术文档,然后老司机带着写一些新模块的文档和技术专利文档,但这个也是组里自己的培训计划

  • 现在有和别的公司在联系么(我也诚实回答有,面试官表示可以理解,他当年也是拿了不止一个offer然后选一个的)

面试没问技术问题,感觉就是在问一下情况,介绍公司,问问个人想法

最后,”聊得很愉快,小伙子,希望能和你一起工作“,感觉应该是过了

商汤科技

第一轮

  • 项目(我的研究方向是硬件数据压缩和解压缩)
  • 常规fpga问题,问fpga,bram uram
  • 高频率的pulse信号怎么传低频率
  • 神经网络里面,deploy时候参数会从浮点数转成int8,其中很多是0,如何压缩
  • 如何在压缩率和解压缩速度之间取平衡,有那些压缩方式可以用
  • 假设有一个乘法器,工作在600mhz,别的逻辑(包括bram)只能工作在250mhz,要怎么充分利用这个乘法器
  • 过程中他也给我介绍了很多fpga加速神经网络的知识,比如目前的瓶颈,fpga在什么方面合适。面试官nice,面试过程以讨论为主

NXP上海

nxp上海分为 浦西 浦东(原freescale)两块, 浦东design 50-60人 加软件共300 MPU 5nm

面浦东的ip设计验证岗位

问了很久项目。

  • 介绍一下你在项目中是如何做验证的?
  • 你是搞fpga出身的,来搞我们ic有什么准备么?
  • AXI用过么?用过。
  • AXI使用过程中有碰到过什么bug?
  • 你使用axi的接口有使用outstanding么?
  • 会不会裁员:暂时不大可能,5nm至少明年初才能第一次tapeout,如果第二次tapeout加上后续改进,需要更多时间,好几年
  • 岗位具体做什么:ip设计验证五五开,同时和soc有较多接触
  • 验证平台:uvm平台已经有了

面试官人很好,后来加了微信,聊了未来的规划。好厂,推荐去。

。+1

汇顶科技提前批

岗位信息

验证工程师

面经

项目相关的问题:

  1. 你做了哪些和uvm验证有关的项目
  2. SPI的验证环境主要是怎么搭建的
  3. APB总线端口处的transaction里面包含哪些
  4. AHB和APB的比较
  5. SPI端的vip是自己写的吗?(是)
  6. vip作为master的时候,dut如何获得配置
  7. IP和SOC的验证环境有什么区别
  8. 中断怎么验
  9. 仿真环境的打印如何实现
  10. 带CPU跑的时候CPU如何boot起来的

基础知识相关问题:

  1. uvm验证环境中用到的通信机制?(实际上想问的是config_db,但我不认为这是通信机制)
  2. sv中的通信机制,简单介绍
  3. sv中的fifo如何实现
  4. uvm中的port,export,imp
  5. C语言如果想一个信号跨模块(层次),需要将这个信号设置为什么
  6. uvm中run_phase和main_phase的关系
  7. 断言中如果两个sequence要同时开始同时结束,用什么判断
  8. 断言中信号的上升沿如何表示
  9. 断言中的$firstmatch什么意思
  10. uvm的sequence要去调用sequencer中的东西,怎么实现
  11. uvm的factory(覆盖)和callback的区别

汇顶科技提前批

岗位信息

数字验证工程师

微信投递

一共有三位分享了面经

技术面

TY

  • logic和wire、reg的区别
  • 队列、数组的常用方法
  • fork join有哪些,如果用fork join_any,往后执行怎么等待或者关闭fork里的进程
  • 项目简单问了句,几乎没怎么问
  • tlm有哪几种接口,sorceboard用什么接口
  • config_db相关,作用是什么,怎么用
  • 在哪里用config_db set virtual interface,哪里get?
  • 如果想在sequence里使用config db要注意哪些东西?
  • 如果使用tlm接口,一个类中有多个同类型的接口,需要注意什么?
  • assertion相关问题,什么是throughout?
  • 覆盖率有哪些?行覆盖率冗余是什么意思,面试官有的时候if没写else,case没写default,就会出现

兼珏

项目相关:

  • AHB的trans类型,burst类型,AHB和APB的区别,和AXI的区别
  • C语言的条件判断在x86的isa和mips的isa中分别应该怎么写,有什么需要注意的地方(延迟槽)
  • Instruction memory中如何读取hex文件,asm到hex的脚本是怎么写的

基础知识:

  • SV中logic和wire,reg的区别,logic有什么局限性
  • SV中event的用法
  • SV中queue和array的区别,如何删除一个queue
  • uvm中有哪些tlm通信方法,analysis port和nonblockng port有什么区别,anaysis_fifo
  • uvm寄存器模型,为什么内建的sequence只有0,5,A,F和random这几种,前门访问和后门访问的区别
  • 带参数的断言用过么(没用过
  • vcs编译选项,如何把多个case的coverage合并
  • default sequence用过么(没用过)
  • vir seq中包含哪些东西,怎样挂载到vir seqr中

ZH

我前面一半时间都差不多是关于项目,围绕简历上的项目去问,写的基本都会涉及,主要会关注项目职责,自己承担了哪些工作,tb架构,难点是什么,golden data 怎么来,如何去配寄存器,寄存器值采用什么方法去传递到C中,因为我有DMA的项目,所以就围绕apb ahb axi总线去问了下,三种总线的区别,优缺点,ahb axi为什么是高速总线,ahb最快几个clk就可以完成一笔command(这个我不太会…..面试官笑了笑,emmm,了解不太熟嘛)。

最后就是关于基础知识,断言断言还是断言!!!汇顶貌似特别看重断言。。。tlm port有什么各自区别,phase机制,uvm有啥通信机制(第一个想起的只有tlm,他问还有啥,就只能答了mailbox,再问的时候一脸蒙蔽….),sv怎么实现一种类似于fifo的功能,还有就是一些DPI的东西,感觉可能做系统级多??,问了不少SOC的方面。大概就是这么多吧。

ZZH

  • 自我介绍
  • 为什么突然想接触数字IC验证
  • 神经网络,用的什么开发板;项目门数,综合下来多大
  • UVM环境是师兄基础上改的吗?还是自己设计的。
  • SV队列和动态数组的区别
  • SV的并行进程用过吗?fork...join/any/none介绍一下?fork...join_any,想关掉单独的一个子进程。
  • SV的event搭环境用过吗?除了@还有别的触发方式吗?
  • 你的环境socreboard里的TLM接口用的是哪种?TLM_FIFO和scoreboard之间用什么端口。
  • analysis_port?一对多端口,命名冲突怎么解决?
  • tlm_fifo默认深度是1吗?
  • 有没有接触过UVM寄存器模型?如何和bus总线产生联系
  • CNN加速架构完整介绍一下。
  • UVM仿真脚本用的是什么?
  • VCS编译选项了解吗?
  • timescale了解吗?如果多个地方设置了timescale,以哪里的为准?
  • UVM环境testcase/每跑一个testcase都要编译吗?
  • 代码覆盖率有哪几种?
  • GVIM相关。将10-20行的字符替换;块操作;
  • 芯片验证的流程
  • 后端流程一般做什么?

本初

岗位信息

FPGA工程师

技术面

项目问的非常非常深,非常非常细,然后引申出很多基础知识

能记起来的:

  • 用的FPGA IO bank的最大速率
  • LVDS差分信号之间的电压幅度
  • 项目数据吞吐量
  • 底层嵌入式乘法器的位宽
  • 限制你项目运行速度的因素
  • 用FPGA进行完整的DPSK调制步骤和实现方法
  • 对数据处理时怎么截断的,对最终结果的影响大概有多大
  • 用到了哪些约束,具体约多少,参数,延迟时间啊,负载啊这些
  • 数据处理有一块大的组合逻辑调的ip核 用底层嵌入乘法器实现,然后输出为了时序我做成流水线了,问我 如果把组合逻辑做成流水,你打算怎么做
  • io约束是怎么定的
  • 协议的控制引脚
  • 数据传输的最大速率
  • 项目占用的逻辑资源大概有多少
  • 组合逻辑运算部分大概用几拍的时间完成,缓冲的FIFO具体多大
  • ASIC设计和FPGA设计在RTL级上的区别
  • 门控时钟怎么移植到FPGA上
  • 我有一个地方是用预置的闸门和输入信号一起控制 产生一个同步的闸门,就问我这里怎么实现的判断逻辑是什么
  • 用到的FIFO问具体的参数,多少bits*多少个数
  • 有个地方是把数据调制成DPSK的绝对码,他问我怎么写的FPGA怎么实现的,然后问我如果没有功能芯片 让你全在FPGA内部实现,你怎么写
  • 测量原理之类的也问的很细,你用的等精度测量原理 误差分析是怎么分析的,哪些参数会影响精度

面试官说汇顶的FPGA,基本就是通信和原型验证。简历上和这俩不沾边的,我估计根本不给面。标配就是通信+原型验证俩面试官

oppo提前批

岗位信息

芯片设计和芯片验证

一面

设计

  • FPGA后端流程是怎么样的
  • 介绍在公司做了什么,把自己做过的任务全部介绍了一遍,介绍的同时强调了下自己干了啥,写了啥,什么用的别人的脚本
  • 本科学的最好的课程,为什么学的好,有什么方法
  • FPGA里的时钟怎么处理
  • 综合sdc inputdelay设置的多少,uncertainy设置的多少
  • 本科觉得最难的课程,为什么难,最后考了多少分
  • 你做过除了密码相关之外的设计嘛?
  • IC的整个FLOW是怎么样的?
  • 你的毕设可重构电路介绍下,和fpga有啥区别
  • 你的几个项目大概代码量,或者等效门大概多少。
  • Setup和hold概念,以及发生了违例怎么解决,为什么这么解决
  • DE DV是怎么协同工作
  • 同步复位和异步复位,以及各自的优缺点
  • DV怎么确保验证完备
  • 跨时钟域传输,单bit和多bit信号传输怎么实现;打两拍和握手一般在什么场合下使用,为什么?
  • CPU的流水线的目的是什么,有什么弊端,怎么解决
  • 异步FIFO,格雷码判断指针空满条件,格雷码跨域传输需要做什么处理?为什么要用格雷码
  • 你整个实习经历是怎么样的?team的合作怎么协调
  • 奇数分频和偶数分频以及小数分频怎么实现的,说思路就行
  • 建立时间和保持时间。低功耗设计的方法,自己的程序中用了哪些。跨时钟域设计。异步FIFO。格雷码。快时钟到慢时钟和慢时钟到快时钟
  • 了解axi,ahb他俩的不同吗,优缺点
  • FPGA时序违例怎么办
  • 功耗是否了解过?静态功耗以及动态功耗怎么来的,怎么进行两者的低功耗?
  • 是否学习过信号处理的课程,FFT相比于DFT有什么优点?
  • 怎么减小动态功耗

验证

  • 觉得验证工程师需要具备哪些技能?
  • 你对C/C++熟悉吗?指针和引用的区别?关键字static表示什么?
  • mos管搭建与非门
  • 你的环境结构怎么样
  • DUT和refmod的输出不一致的情况,你该怎么处理?
  • 介绍SV中几种数组类型,队列和关联数组的区别,队列有什么特殊方法,队列可以通过索引获得其中的值吗
  • 仿真器用的什么?VCS。 VCS的-debug_access的lever有几个?你知道-kdb的选项作用吗?
  • reset 的去除时间和恢复时间,如何处理?综合成什么
  • Sequence和Monitor怎么联系
  • 怎么把interface传到环境里
  • 完整的芯片开发流程,验证工程师都做了哪些事情
  • 什么是建立时间和保持时间
  • SV的覆盖率种类
  • UVM用什么方式去做寄存器的读写测试?寄存器模型。有哪些具体的方法或者函数可以实现呢?
  • include和import作用是什么,有什么区别
  • 你对VERDI熟悉吗?
  • 你是怎么收集覆盖率的
  • Sequence和Driver有什么联系?
  • always@*是用来干嘛的
  • 介绍一下Virtual Sequence和Virtual Sequencer
  • 起始地址0x00,突发长度4,每周期发32bit,地址怎么变化
  • uvm_ do,uvm_ do_ with,uvm_ do_ on_ with的区别
  • 验证的完备性如何衡量?
  • AXI写的动作怎么一个流程
  • 用UVM做的具体开发项目?实习期间主要做了哪些工作?
  • 你知道什么是死锁吗?操作系统层面
  • 分支不写全会发生什么
  • 覆盖率有哪些?覆盖率达到100%是否就能收工了?
  • 你怎么理解IP验证和soc验证区别
  • 阻塞赋值和非阻塞赋值有什么区别
  • 你对APB总线的了解?
  • 什么是功能覆盖率,分支覆盖率和条件覆盖率的区别
  • AXI的Test Case怎么写的,什么是outstanding?
  • 半导体工艺
  • uvm的顶层是什么?
  • 如何检验burst?连续地址读不一定行,因为可能是分批写入的,assertion可以么
  • 介绍一下assertion
  • 时序路径有几种?
  • 如何保证Master端是按照AXI协议发送的?
  • 介绍一下如何验证一个SOC
  • Driver里面怎么写APB的驱动?
  • sv比verilog好的地方
  • 如果验证模块没有达到预期的传输速率,应该怎么办?
  • 在校期间学习了哪些课程?
  • uvm比sv好的地方
  • 你知道UVM里面,monitor和sequence是怎么联系的?sequence里面的数据是如何发送到接口的?Driver是如何获得item的?
  • 有没有跟导师进实验室做项目,做了什么?

二面

第一位

这一面我觉得偏向于综合面,主要有以下:

  • 自我介绍。
  • 介绍项目,简单介绍自己项目的算法以及这个算法能达到的一些目的。技术相关问了一些相关问题,应该因人而异。
  • 自己的未来职业生涯的规划(我回答的做技术到技术team的负责人)。
  • 如何看待自己的自学能力?(因为我在项目里介绍了学习一些工具)
  • 如何看待团队工作?
  • 请介绍自己一个团队工作的经历以及碰到的问题。
  • 如何在团队工作出现问题时进行解决协调?
  • 你有什么问题?

面试整体大概30min,氛围比较友好。

第二位

  • 项目架构介绍和问题,
  • 芯片数据传输速率和工作速率不一样怎么办
  • 想做前端、架构还是后端;
  • 项目中遇到了哪些困难
  • 面了哪些公司,拿了几个offer,你想去哪一家,为什么;
  • 项目怎么考虑PPA的;
  • 哪些方面做了功耗的优化;
  • 了不了解source clock 和capture clock,哪些地方需要考虑;
  • 职业规划是什么
  • 计算机体系结构知识,cache的一致性和流水线等
  • 介绍write back和write through的区别;
  • 手撕代码分频器,随便写了个三分频,进一步追问,三分频哪里可以改进,为什么不直接负沿打一拍
  • 了解对DFT的影响吗或者DFT相关知识
  • 怎么看待工作时间和地点
  • 你有什么问我的吗

中兴提前批

岗位信息

数字开发工程师,部门面

投稿人Michael Melkor

面经

  1. 自我介绍,介绍一下个人信息、奖学金、专利成果以及项目经历等
  2. 看你简历里Altera和Xilinx的FPGA都用过,这两家的FPGA内部结构有什么区别,用的更多的是哪种?Xilinx FPGA里都有什么资源
  3. 面试官懂高速接口,于是接下来的很多问题都与高速接口相关。首先问了在项目中是如何使用serdes高速接口的,场景、速率
  4. 简历中提到了Aurora的8B10B与64B66B,谈一谈是怎么选择使用哪一种?10G以太网使用的是哪种编码方式
  5. Xilinx GT有哪几种,分别支持什么速率范围,在哪些FPGA上有哪种GT
  6. 如何测试高速接口是好的,是符合要求的?说一下搭的板级测试环境和测试方法思路。在测试中光纤用的多长的,有没有考虑过光纤长度对接口的影响。
  7. 是否做过前向纠错,是否对serdes的预加重去加重做过配置,是否做过眼图扫描
  8. 测过的做高速率的接口速率是多少,一般是如何确定使用什么样的接口速率的
  9. NAND Flash的控制器的项目你是如何进行小组内分工的,如何规划整个项目从需求到具体设计的架构?
  10. 你的NAND Flash控制器是用的开源的还是要自己手写实现的?接口协议是什么,和另一个SSD主控项目里的Flash控制器在性能与协议上有什么区别?能不能从应用需求上说一说为什么他们采用了差别比较大的设计。
  11. NAND Flash中使用的ECC是哪种编码,具体是哪种BCH,为何选这种?
  12. 看你最后一个项目写的CPU总线接口,介绍一下这种LocalBus,以及项目中的使用场景
  13. 简历里说你在CPU总线接口这个项目里除了负责了接口模块的实现,还负责了设计整体软硬件地址映射的编址方式设计,能不能详细讲讲你的工作对于软件与硬件双方的作用和意义。

全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐