2021届校招,数字IC验证面经

重大突破、往往都是始于放弃。

计划写篇文章,来记录转行求职的过程。

首先就是记录一下笔试面试中遇到的题目吧。

觉得有用的点个赞再走哇。希望能对跟我一样条件不够硬核,又想转行的同学们来说起到参考作用。


一、金升阳

此处给后来的学弟学妹们一个经验:简历不要着急投!心仪的公司也不要着急投,先拿别的公司练手!

1、给一个CMOS电路,问输出Y的表达式是什么,画波形

2、用CMOS电路搭建一个给定的表达式

3、MOS管的特性曲线相关

二、晶晨

找实习的时候,他们公司给我打过电话面,问题都比较基础,面试官人很好,会提示,一点点加深难度,最后也给了一些建议。今天做了笔试题,90分钟,手撕代码较多,觉得时间有点不够。

1、总线有106根线,其中数据线有16根,系统时钟33Mhz,求理论最高传输速度多少MB/s

2、c语言实现,定义一个int类型5行4列的数组。

3、指针操作> ,<, >=,<=,==在任何时候都能进行,对不对?错在哪

4、c语言Switch()语句,输入变量类型不能是什么?

5、一个SOC包括CPU,ROM,RAM,串口,中断服务器,看门狗。

①画出SOC框图 ②用Verilog描绘SOC出第一层的结构,需写明信号传递方向 ③列出不少于10条test case。后面还有3问,忘记了。这个题很懵。

6、一个0101数据流,检测序列01101,当出现时,输出1,否则输出0。画出状态机,Verilog实现这个状态机的功能。

7、在给定的时序图上画出setup time和hold time

8、Verilog实现异步D触发器

9、用握手的方法消除两极寄存器的跨时钟域传输,手撕Verilog

10、用sv实现,在task中同时运行三个已经定义的进程,其中任何一个进程结束时,打印DONE并退出task,分别用fork-join,fork-joinany,fork-joinnone实现

三、海光科技

这个简直太倒霉了,我刚做完单选题,一个28个,做完检查一下,检查完了后准备做后面的多选题,点了个提交。我以为只是提交单选题,结果给我交卷了。。。。。。

1、flash cache DRAM SDRAM谁速度快,谁容量大

2,逻辑表达式的化简

3,如果出现保持时间违例,修改哪些内容可以优化?

4,逻辑门电路,画波形

5,uvm验证环境中,负责给设计发送数据的组件是?

其他的忘记了。都挺简单。

10.9更:真是着实搞笑,当时我只做了选择题就交卷了,后来给HR发了好几个信息说明情况,都一直没有回信。后来这个公司去电子科大校招了,我等外校人员又无法入内。30号我在恩施大峡谷的悬崖上,收到他们的邮件,说我笔试通过,约我今天面试。。。。。。心情复杂。网上查到这家公司的薪资都是16薪。

四、峰岹科技笔试

1,概念解释,什么叫建立时间,保持时间,传输延时,在图上画出来。

2,一位和多位异步数据,如何进行同步?

3,什么是亚稳态?如何防止出现亚稳态?

4,解释补码,热独码,格雷纳

5,画出一个门控时钟电路,并解释其功能,以上25分

6,化简逻辑表达式,10分

7,给逻辑电路,画波形,10分

8,序列检测1011011,手撕verilog,15分

9,手撕verilog25分,

实现一个7位计数器,完成以下要求

①,异步复位

②,有计数器置数功能,输入置数信号使能,计数器值为给定输入值

③,首先从0加到100,再减到0,一直重复

④,产生占空比百分之80的pwm信号。

还有两个题不记得了,都非常简单。

我想说一下这个公司,据说是国内电机驱动芯片独角兽公司,公司规模150人左右,没有单独的数字验证岗,只有数字设计,模拟设计,版图设计。芯片岗一共招聘15人,三个岗位各招5人,硕士年薪32万。还有硬件设计,电机等岗位,成都就电子科大一站,参与招聘共50人左右,硬件岗就我室友一个人投递,offer给的19万(深圳)。


五、中兴面试

第一次面试,有点紧张,

主要三个问题,

1,让我介绍一下路科验证的验证结构,我当时有点懵,顿时想不起environment这个单词,最后反应过来uvm验证框架。从tb到driver,sequence等,tlm端口等,都详细讲了一遍。

2,给我一个功能模块,如何去开展验证?

我说要先分析拆解功能点,制定验证计划,搭建验证平台,编写测试序列,最后让功能覆盖率收敛。

3,讲一讲我要验证的功能点。

我感觉有点不好,第一因为有点紧张,第二我原想面试官会考察sv和uvm的细节知识,但是他问的都很笼统,而且显然有很多人也是只做过路科的这个项目,感觉面试官对我的兴趣度并不高。

六、科道芯国面试

公司规模比较小,在天府软件园里边。面试官是老学长,比较亲切,谈起他研究生期间的事情,还让我充满敬佩,半路出家,门门课都接近满分,电子信息,做过嵌入式,还懂我电气老本行,最后还做起了ic验证,我跨专业来的简历上的东西他都懂,着实让我压力极大。但面试体验良好。

1,画验证结构框图。并大致讲解一下。

2,sequence启动的条件,我只回答了一个需要挂载但sqr上,可以用宏uvm do on。

3,还问了些项目的事情。这个面试官着实博学。

面了40多分钟,就叫我回去等通知了。

(9月12更新)这家公司14年就上市了,16年停止上市,注册资金6000万。

七、倍昊科技(武汉)

注册资金2000万,说在香港日本美国等地都有分公司,硅谷团队坐镇什么的,说的挺唬人的。公司官网设计的不够大气,武汉研发团队有30多人,规模比较小。这家公司先电话面,然后今天又让我做了笔试题。

面试问题:

1、介绍SPI

2、如何通过VCS查看波形

可以用Verdi和DVE查看波形,需要编译产生kdb和fsdb文件。

3、代码覆盖率

代码覆盖率包括:路径覆盖率、翻转覆盖率、分支覆盖率、状态机覆盖率。

笔试题:卷子我还留着,有兴趣的可以找我要。

(9.14二面,超小的研发团队,不过小公司也有小公司的优势吧。)

后续:问我工资,我要13k,13*13。后面就没联系了。。。。

八、瑞芯微笔试

1、用MOS管画出或非门。

2、用与非门搭建非门、与门、或门

3、给出8bit信号传输的SPI时序,如果slave端现在不能用与主机相同的SCLK,用一个内部SPI_CLK_I问

(1)SPI_CLK_I能否对SPI信号直接采样,为什么

(2)SPI_CLK_I与SCLK满足什么关系才能正常使用

这个题用过SPI就该会,但是时序图没有给出CSN、SLCK、setup、hold on具体的时序关系,我认为不能推出二者定量的关系,只能给出SPI_CLK_I应该满足大致的时钟范围。因为slave时钟不仅要满足简单的按照8bit信号,还要满足与CSN之间的时序关系。或者这个题有其他思路的同学,欢迎留言。

4、忘记了

5、用MOS管搭一个与非门

6、(1)AB=a1*b1+a2*b2+a3*b3+a4*b4ai/bi都是8bit,用电路实现这个功能。

(2)AB计算结果为多少bit,为什么 (3)忘了

7、给出电路图,(1)求时钟最大频率(结合setup time去算)

(2)判断有无hold on time为例

(3)如果要提高时钟频率,有什么办法

8、(1)异步复位、同步释放是什么,为什么要这么做

(2)动态功耗和静态功耗包括哪些

9、四个小题,选一做。我选了个APB协议,画状态机、时序图、介绍功能。

九、展锐

展锐笔试很简单,面试体验良好,后面会有什么进展,就看造化了。

1、我还没说,直接问,你的多通道数据整形器学的怎么样了?

极其尴尬,可想而知路科的影响力已经多大了。我说,我就讲讲我做的功能测试点吧,先分析DUT的设计,然后拆解要检测到的功能点,blabla,然后功能覆盖率到了92,翻转覆盖率80左右,还有个80多,其他的几个都90多。

2、你的验证框架是完整的吧?

3、你的环境有几个agent。 6个

4、讲讲你的整形器agent有哪些东西,各是什么功能。 driver mon sqr

5、用过virtual sequence吧?它跟sequence的区别

①本质区别就是vsq不会连接到具体的agent里面的sqr,它是通过start连接到vsqr。

②vsq在top test中创建,作用是完成具体的测试行为。分为以下两种方法:

· 对于rgm的操作。直接在vsq中对rgm进行操作,来进行寄存器测试配置,由rgm来修改期望值,然后update。也可以把这些对寄存器的测试操作封装成一个更小的seq,然后不经过rgm,直接发送给reg.sqr。

· 在vsq中对更小的seq用宏`uvm_run_on_with(),挂载到对应sqr,且在具体的seq的task body中,调用uvm do with将对具体的seq item进行赋值,发送。

6、有哪些内容可以进行随机化?

我感觉这个问题要结合验证功能点去回答,体现出你的思路,为什么这个东西要让它随机。

7、你的验证框架有没有完成数据比对的功能?如果有,是怎么实现的?

这就是在scoreboard里面编写的数据比对的task来实现的。其实在v seq中也编写了一个数据比对的function,这个function可以直接在top v seq中使用,有时候也非常好用。但面试官主要想问的应该是scoreboard。就给他讲scoreboard的结构,ref model,信号从哪里获取等。

8、如果我的ref model产生数据是实时的,但是dut产生数据是有延时的,如何去做比较?

这个问题我首先想到的就是用一个FIFO先把数据存起来,再去比较。(不知是否正确)

9、(既然我提到了FIFO)如何用SV去实现一个FIFO

最简单就是用个mailbox,或者队列。然后我说还可以用通信管道tlm fifo,我想到就说了,但这么说好像有点跑题。

10、如何去判断验证充分了

还是要从验证流程去分析,在验证计划没问题,功能点拆分没问题的情况下,看功能覆盖率和代码覆盖率。

十、长虹笔试+面试

长虹研发中心大楼挺气派的,环境很不错。

1、写一个随机数,将它约束在1/3/5/7/9里面。然后把这个约束改为带权值的约束

2、讲讲你的项目,哪些是你做的,你做了哪些测试

这种问题都要结合验证的流程来回答,先分析DUT,再分模块描述需要做哪些检测,为什么要做这些检查。

3、m_sequencer和p_sequencer的区别

前者是uvm_sequencer类型的句柄,即父类句柄指向子类对象,不能正常访问该对象里面只属于子类的部分,要用动态转化为响应的子类句柄才型。后者就是子类句柄。

我还讲了一下p_sequencer具体怎么用

4、手撕自动售货机Verilog代码,笔试40分钟,包含3道编程题,还有其他的小题

5、讲讲fork-join/join_any/join_none的区别

6、如果有一个寄存器,他的值会影响另一个寄存器的值,要怎么去验?

根据设计spec来验啊,可以在scoreboard里面写一个check,从monitor读到写这个寄存器的时候,再从DUT里面去取信号,观察另一个寄存器有没有变化。

7、描述SPI时序

8、写一个assertion,来检查APB的一个时序。就是看你会不会是不是自己真正做过

9、你对代码风格有什么见解

十一、海思

1、除了MCDF,还有其他的项目吗?

2、什么是建立保持时间?如果路径上逻辑块较多,则可能造成哪种违例?setup违例

3、如何检查RTL代码有没有建立保持时间违例?

4、三种fork块的区别

5、手撕序列检查器,我写了状态机,然后问除了状态机,还有什么其他的实现办法?

这个我不知道,希望有会这题的大神不吝赐教!

6、你的平台中有数据对比吧?讲讲你是怎么做数据对比的?

7、两种monitor有啥区别?

这个是master和slave端monitor的区别,没啥区别啊,不都是捕捉数据吗。。

还问了有一些啥不记得了。。。体验不好,转行来的着实很多东西不懂,这人家一问就知道。

十二、旋智科技

自称是从仙童独立出来的团队。

上午去市区面试,然后又急匆匆赶回来参加这个公司的面试。往返4个小时的通勤,脑子昏昏的,难以集中精力去思考,连三分频电路都想了半天。面试过程比较搞笑,主要是我被自己逗到了,可能面试官也觉得很无可奈何,怎么HR给我找了个这样的人来面。。跟面试官聊了差不多一个多小时吧,腾讯会议垃圾信号,不是他卡就是我卡,十分尴尬。

这家公司也是很早就投了简历,上周的时候做了他们的笔试题,120分钟,最长笔试没有之一。做完整个人都不好了,压根都没做完。后来居然还收到了面试通知,告诉我笔试通过了,这是令我始料未及的。需要笔试试卷的可以私聊哦。

1、讲讲你的数据整形器的验证项目。

2、如何去验一个SPI协议。

3、手撕三分频电路。

4、随便给你一个时序,让你写个assertion去检查一下。

5、UVM寄存器模型里面有哪些东西。

有寄存器,和map。

6、讲一下UVM中class的层次结构。(我???UVM里面这么多的class,上哪讲去。。)

7、就讲一下寄存器继承于谁。(extends uvm_reg,属于object)

8、讲一下用寄存器模型的测试中从test到到DUT的全流程。

就在sequence的body函数里,直接对寄存器中的期望值进行write操作,就能通过adapter中的reg2bus,将reg层的transaction转换为bus层的transaction,发送给reg的agent里面的sqr,再送到dri,最后送到DUT。

9、adapter你是怎么做的?adapter是怎么把寄存器模型和agent连起来的?

当时真的是云里雾里,这个答错了,还硬是忘记了agent中有个sqr,尴尬了好一会猛地想起来,连忙纠正。。。实际上就是通过map将adapter和sqr联系起来的,要在adapter中实现reg2bus和bus2reg两个函数,实现不同层次transaction的类型转换,其中reg侧的transaction形式是UVM内定好的。

必须吐槽一下,今天突然收到二面通知,笔试体验差,一面体验也差,居然还二面。结果二面体验更差。以一段我与面试官的对话来让大家感受一下吧:

面试官:你的开关频率是多少?
我:10k到20k


“为什么取这个区间?”
“开关频率的选取要根据系统的特性来,我的被控对象是电磁铁就是电感加电阻,他两端的电压正反向变换的时候电流会有纹波但最后会稳定再一个平均值。(开关频率太低会导致纹波太大没发稳定电流,频率太高会导致损耗太大)。。”

此时被强行打断,括号内为我还没来得及说出来的内容。

面试官:“别跟我扯电感的特性,我问你为什么要选择10k到20k这个区间”

我:“我这不是正在跟您讲嘛,频率太低会让纹波太大没法控制。。”
再次被打断。
“你别跟我说这些,我就问你为什么要选这个20k,别说频率太低,就问你为什么不选100k,5Mhz的频率。”

我:“频率太高一是器件达不到,二是损耗太大。(你直接问为什么不用更高的频率嘛,既然问频率选择范围,那必然有最大最小值啊,还不乐意听)”

沟通不顺畅是这次二面的最直接感受,后面我也生气了,面试官也生气了。挂就挂了吧,就算过了面试,来了这家公司,工资虽然高,但是跟上司没法好好交流,也是特别十分煎熬的事情。也是我能力不足吧,一是不能很好的理解面试官想问的问题,二是表达能力欠佳。

最后面试官不想聊了,说你还有什么问题吗?我早就不想聊了,说,你们流片一次大概得花多少钱。他说这我哪知道。那就这样吧。

十三、盛科网络(笔试+技术面)

1、看图找规律的题。2、一个水壶24升,三个瓶子8升,5升,13升。问如何把24升水分成相同的三份。

3、面试官问:①现在是1点整,下一次时针和分钟相遇的时候是什么时刻?

②两个锅,同时煎两块并,煎一面花一分钟,每个饼要煎两面。一共有51块饼,最快多长时间煎好?

4、讲一讲agent的两种工作模式。(passive和active)

5、phase机制里面,有哪些是task?task和function的区别?

6、讲一讲objection机制?如果不raise会怎样?能不能打印?

这个地方我回答错了,我当时只记得objection中是有一个计数器的,计数器为0时会结束run phase,raise objection则会让计数器加1,drop会减1。在仿真最开始时刻要raise,否则会结束仿真,因此我一般将raise写在最前面。如果在raise之前插入`uvm_info这种不耗时的消息打印,并不会影响raise操作,但如果在raise前加一行#1ps,则不行了,仿真会在0时刻之后结束。objection机制经常考。

这家公司在学历和学校方面还是非常宽容的,主要考察两个方面:1、聪明不聪明 2、是否注重细节(基础)。

十四、新华三

新华三对我来说还是有难度哇,笔试设计验证一张卷,勉强把三个代码题写出来了。

1、编程题:用格雷码,进行两个时钟域之间的数据传输

还有一个设计类的编程题,好像是画电路实现一个功能,然后写出代码。

还有一个用SV编程的题。

2、其他的题不记得了。

印象最深刻的是,在大厅外面等待面试的学生里面,有个电子科大的妹子,应聘海康的硬件岗位,给她20万出头的年薪,她觉得太侮辱人了,就拒了。。。哪家公司赶紧拿20万来侮辱我吧~~~

#面试题目##中兴##新华三##晶晨半导体##盛科网络##海思半导体##旋智科技#
全部评论
楼主最后去哪儿了。盛科的待遇其实还不错的。
1 回复 分享
发布于 2022-02-25 17:30
感谢经验分享,我也在为转换做准备
1 回复 分享
发布于 2022-05-12 19:59
感谢楼主分享面经!!分享面经的都能拿好offer!!新年快乐呢
点赞 回复 分享
发布于 2022-02-12 01:59
海光这个题的排版😂,我同学也是做完单选直接交了
点赞 回复 分享
发布于 2022-08-12 18:25
楼主最后去哪了?
点赞 回复 分享
发布于 2023-02-11 21:12 广东
m
点赞 回复 分享
发布于 2023-08-21 21:16 浙江

相关推荐

不愿透露姓名的神秘牛友
11-07 14:34
经纬恒润 智能汽车测试工程师 基本工资 15K 硕士985
点赞 评论 收藏
分享
我是真的想做FPGA啊
给你点了个赞的打工鸭很忙碌:211也配吗?😅
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:42
芯动科技 数字IC 24*(15-16) 硕士985
点赞 评论 收藏
分享
评论
47
343
分享
牛客网
牛客企业服务