2021届数字芯片求职经验

HR面这类的就不记录了,只写一写技术面、主管面的经验。
欢迎关注个人公众号摸鱼范式

vivo提前批

岗位信息

投递岗位:芯片验证工程师

一共两面,一面技术面,二面HR面

技术面

  • 首先介绍教育经历和项目经历
  • 聊项目,会扣得比较细,根据项目提问题
  • 你的加速器有哪些模块?是并行的嘛?
  • 你的项目中使用了m3软核,你能解释一下m3启动流程吗?我回答说我不了解
  • 你用过axi嘛,axi的特点有哪些,size信号是做什么用的?
  • 解释一下CNN的典型层,我项目里有相关的
  • uvm有什么特点
  • fork-join,fork-join_any,fork-join_none的区别,如果fork-join_none里面是a和b,后面再跟个c,他们的启动顺序是?如果想让c最后启动怎么做?我说的是加一个#0
  • 启动sequence有几种方法
  • vritual sequence如何工作?
  • tlm接口有哪几种?实现tlm通信要做哪些工作?
  • 你的参考模型是c吗?还是sv写的?
  • 覆盖率有哪几种?代码覆盖率和功能覆盖率如何收集?
  • phase有哪些?
  • component和object的区别?
  • new和create的区别是?
  • 如何关闭随机约束?

结果

收到感谢信

乐鑫提前批

岗位信息

投递岗位:数字IC验证工程师

一共两面,技术面,HR面

技术面

  • 自我介绍,教育背景,项目经历
  • 你在项目中担任的角色和承担的任务是什么
  • UVM有什么优点
  • 工厂机制的好处是什么?
  • 通过工厂进行覆盖有什么要求?
  • vritual function/task的作用是什么?这属于oop的什么特性?
  • 用任意语言找出100以内的质数
  • 在sv或者v中产生一个100Mhz的时钟
  • 域的自动化有什么好处?
  • 如何启动test?
  • config db有什么参数?
  • 如果环境中有两个config db set,哪个有效?
  • 你遇到问题的时候是如何一步步解决的
  • rand bit data[100],如何约束它随意一位是1,剩下的都是0?
  • 除了培训班和实验室项目,你为了进入IC行业还做了什么自主学习?

结果

收到offercall

卓胜微

岗位信息

投递岗位:数字验证工程师

邮箱投递,等待面试中

汇顶科技提前批

岗位信息

投递岗位:数字验证工程师

内推,提前批简历未通过筛选,等待正式批笔试

大疆正式批

岗位信息

数字IC工程师

官网投递,等待笔试

oppo提前批

岗位信息

数字验证工程师

官网投递

面试

一面

和了解到的其他人比起来,我的面试官问的问题有点水,问了一堆设计的问题,说应届生不咋懂UVM,最后我建议他以后多问问验证的问题。。。。。

  • UVM环境组件有哪些
  • interface怎么传递到环境当中
  • 动态数组和队列有什么区别,队列能通过索引取值吗
  • always @ *的作用是什么
  • 分支不写全会发生什么
  • 什么是阻塞赋值和非阻塞赋值
  • 描述一下AXI的特点,以及一个写事务的过程
  • 用AXI,起始地址0x00,突发长度4,每周期发32bit,地址怎么变化
  • 时序路径有哪几种
  • 什么是建立时间和保持时间

二面

  • 自我介绍
  • 你在搭建UVM环境的时候从拿到任务到完成环境是一个怎样的流程?
  1. 分析spec
  2. 提取功能点
  3. 根据接口时序,规划drv的tranction内容
  4. 根据spec编写参考模型
  5. 完成验证环境组件编码
  6. 根据spec编写对应的sequence,testcase,定义功能覆盖率
  • 你有遇到设计出现bug吗
  • 如何处理bug
  • 如何和设计人员协同解决bug
  • 如何保证你的参考模型就是对的?
  • 你的设计中有跨时钟域的内容吗,你是如何处理的,处理跨时钟域有哪些方法?
  • 验证环境是你独立完成的吗
  • 你是如何定义功能覆盖率的?考虑了哪些点
  • 分支覆盖率属于什么覆盖率?
  • 代码覆盖率达不到100%,你是如何分析的
  • 对于内部数据的肯定会出现一些地方翻转覆盖率达不到100%,你是如何考虑的,会care吗
  • 设计内部有很多模块,你们有做小模块的验证吗?
  • 系统级联后出现过什么问题?
  • 详细讲一讲你的另一个项目
  • 你的简历上看起来设计验证各占一半,你的倾向是设计还是验证?
  • 你的职业规划是怎么样的?

中兴微电子

投递信息

岗位:我记得我投的是IC验证,但是面试的是IC开发,总之中兴的招聘系统和投递方式实在太迷了,看不懂

投递方式:不知道是问卷星生效的还是官网投递生效的,迷

一面技术面

设计

  • 自我介绍,专业,学校,实验室项目,比赛经验,实习经历
  • 项目细节,负责的具体内容是哪些,你觉得哪一块最难,如何解决的
  • 项目中有遇到异步处理吗
  • 跨时钟域如何处理
  • 什么是亚稳态,为什么会产生亚稳态
  • 什么是建立时间保持时间,他们的关系是什么
  • 你的成绩如何,在班级排名多少
  • 老家哪里的
  • 你了解中兴有哪些工作地点吗
  • 你的第一意向是哪个城市

由于我明确表示了我想应聘的是验证,所以面试官跟我说如果有招聘验证工程师会把我的简历投过去,如果没有这次面试就算是技术面试,进入后续流程。

验证

之前面的设计,和HR沟通了一下转成验证的重新进行技术面试

主要还是在讲项目

  • 教育背景,项目经历,实验室工作
  • 介绍一下你的验证环境
  • 你的覆盖率是如何收集的
  • 激励是如何产生的
  • 覆盖率没收集满你是如何处理的
  • 实习主要做了什么?

还问我为什么不去中兴华为实习。大哥啊,华为一个没招,中兴我都没找到哪儿招实习了。

  • 你有在投别的公司吗
  • 你的意向有哪些公司?
  • 除了SV你有别的OOP的经验吗?

然后让我问了一些问题

  • 新人培训如何?和华为联发科差不多,导师带着做。
  • 你们这里的业务是啥?网络芯片里的流量控制方面的模块,不太懂。

联发科

投递信息

岗位:IC开发工程师

投递方式:官网投递

一面

  • 自我介绍,项目经验,实验室经验,学校背景
  • 一句基础知识都没问,全都是在聊项目,两个比赛和实验室项目问了个底朝天。简历上些什么,问什么,每一个部分都问。
  • 问了硕士毕设做什么,讲了一堆原理,然后就让我讲具体设计实现,正好我电脑上有自己写的毕设文档,直接对着讲。
  • 其中一个比赛我说我电脑上有PPT,直接让我对着PPT讲。

最后聊了一下他们的业务主要做的是手机里通信这块的,调制解调器、wifi、蓝牙这些。新人入职培训和华为差不多,设计验证综合前端后端都会cover到。

本来应该是两个面试官的,估计一个设计一个验证,但是另一个面试官没来,主要都在问项目的设计部分。

最后还问我愿不愿意做设计,我说被分到设计也没问题,但是我的意愿是验证。

联发科分为笔试、一面技术面、二面主管面。

结果

收到感谢信

海思优招

岗位信息

芯片与器件设计工程师

投递方式:官网投递

一面

  • 自我介绍
  • 你说你了解uvm,什么时候开始接触的,用了多久
  • uvm是一个类库,你能简单画一下类的继承关系吗
  • 项目中模块的结构图画一下
  • 讲解一下你的模块都是怎么工作的
  • 模块的上下游接的是什么
  • 考虑过模块的带宽问题吗,axi能满足你吗
  • 手撕代码,上升沿检测,并且讲解一下思路,我没考虑到输入可能是异步的,要打拍
  • 考虑留在实习的公司吗

二面

  • 自我介绍
  • 验证的流程
  • 验证环境的构成
  • 如何保证验证的完备性
  • 如何评价验证的完备性
  • 芯片设计的整体流程
  • 从验证的角度来说,如何检查异步问题,内部信号拉出来看,延迟驱动,想不起来了
  • 手撕代码给我改成写测试点了

一个模块,vaild会连续拉高,同时有16bit数据进来,vaild连续拉高的周期数为3-255,然后模块要把这些数据求和,但是要把最大值和最小值踢除,最后done和sum一起有效。另外不用考虑两次求和之间的间隔,假设无限长。

我写的测试点:

  1. 复位后done和sum的状态是否正常
  2. 3拍、255拍、随机拍功能是否正常,随机化数据
  3. done和sum是否在vaild拉低以后的有限拍内有效
  4. 特殊拍数,拍数
  5. 特殊数据内容,全0,全FFFF
  6. 特殊数据分布,全部相等,全部只有两个值,全部只有三个值
  7. 16bit每一bit都翻转
  8. 数据较大时的溢出检查
  9. done和sum不能再vaild有效期间进行有效
  10. 数据分布:正态分布、均匀分布
  11. vaild和data不同步的时候异常处理
  12. 数据如果在0-2或者超过255个时的异常处理
  • 这么多功能点,如何实现检查?

总结一波手撕代码的题型:

  1. 序列检测
  2. 序列生成
  3. 帧头检测,这个可以看我之前暑期实习的时候面试
  4. 红绿灯
  5. 前面提到的剔除最大最小值的累加模块
  6. 上升沿检测,记得做异步处理
  7. Round Robin仲裁器
  8. 有符号比较器
  9. 三分频
  10. 异步FIFO的关键代码

下面给一个4输入RR仲裁器的代码,核心就是使用优先级选择器

module arb_comb4
(
  input [1:0]cur_arb_id,
  input [3:0]arb_req,
  input arb_en,
  output reg [1:0]nxt_arb_id
);

always @(*)
begin
  if(arb_en)
  begin
      case(cur_arb_id)
        2'd0:
        case(1'b1)
                arb_req[1]:nxt_arb_id=2'd1;
                arb_req[2]:nxt_arb_id=2'd2;
                arb_req[3]:nxt_arb_id=2'd3;
                arb_req[0]:nxt_arb_id=2'd0;
                default:nxt_arb_id=2'd0;
        endcase
        2'd1:
        case(1'b1)
                arb_req[2]:nxt_arb_id=2'd2;
                arb_req[3]:nxt_arb_id=2'd3;
                arb_req[0]:nxt_arb_id=2'd0;
                arb_req[1]:nxt_arb_id=2'd1;
                default:nxt_arb_id=2'd1;
        endcase
        2'd2:
        case(1'b1)
                arb_req[3]:nxt_arb_id=2'd3;
                arb_req[0]:nxt_arb_id=2'd0;
                arb_req[1]:nxt_arb_id=2'd1;
                arb_req[2]:nxt_arb_id=2'd2;
                default:nxt_arb_id=2'd2;
        endcase
        2'd3:
        case(1'b1)
                arb_req[0]:nxt_arb_id=2'd0;
                arb_req[1]:nxt_arb_id=2'd1;
                arb_req[2]:nxt_arb_id=2'd2;
                arb_req[3]:nxt_arb_id=2'd3;
                default:nxt_arb_id=2'd3;
        endcase
        default:nxt_arb_id=2'd0;
      endcase
  end
  else
    nxt_arb_id=cur_arb_id;
end

endmodule
#芯片设计工程师##芯片IC验证工程师##vivo##乐鑫##华为##OPPO##MTK联发科技#
全部评论
乐鑫二面后已收到感谢信😂
2 回复
分享
发布于 2020-06-28 10:42
兄弟,卓胜微是秋招嘛
点赞 回复
分享
发布于 2020-06-21 19:36
博乐游戏
校招火热招聘中
官网直投
看得清吗,直接投到最后的邮箱就行
点赞 回复
分享
发布于 2020-06-21 22:27
请问楼主还知道哪些IC公司可以投简历吗?
点赞 回复
分享
发布于 2020-06-21 23:15
朋友,你好,我想转行到芯片行业,目前机械在读研一,想转行到芯片验证,跟您请教一下,学习的思路。非常感谢~
点赞 回复
分享
发布于 2020-07-04 10:42
为啥乐鑫数字IC设计有三面
点赞 回复
分享
发布于 2020-07-18 22:27
楼主太腻害了吧!!!可以把帖子链接放到秋招面经征集活动下面,这样就能领奖品了哦,活动详情:https://www.nowcoder.com/discuss/445458
点赞 回复
分享
发布于 2020-08-17 19:55
楼主最后去哪儿了
点赞 回复
分享
发布于 2020-10-21 10:54

相关推荐

18 123 评论
分享
牛客网
牛客企业服务