首页 > 2021届数字芯片秋招记录
头像
贝塔啊
编辑于 2021-01-09 16:11
+ 关注

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

卓胜微

岗位信息

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

邮箱投递,等待面试中

汇顶科技

岗位信息

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

技术面/25min

  • inout能用logic吗,为什么
  • sequence和sequencer有什么区别?分别继承自什么类
  • 寄存器模型了解吗
  • 为什么一定要进行网表仿真,网表仿真的作用是什么
  • uvmcallback讲一下
  • 你在项目中遇到过什么问题?如何解决的?
  • IC设计的整个流程了解吗,讲一下
  • 建立时间和保持时间是什么,违例了怎么办?
  • clocking block是什么?
  • 跨时钟域怎么处理
  • 为什么想接触IC验证
  • 你对汇顶了解多少?
  • c和sv怎么交互?交互的接口叫什么?
  • 你了解ovm、vmm他们是什么吗,和uvm什么关系?
  • 用过脚本吗?

HR面/30min

  • 你人生中遇到了什么重要的事件吗,对你影响很大
  • 评价一下自己的大学生活
  • 为什么比赛不找本校的要找本科室友?
  • 你有没有什么坚持了很久的事情?
  • 你公众号有多少粉丝?为什么说以后可能会更新频率下降?
  • 你是如何看待目前华为的压力的?
  • 你有拿到其他offer吗?如何考量
  • 你对汇顶的了解如何?
  • 你的职业规划是怎样的?
  • 你对工作地点是如何考量的

面试官给我讲了很久汇顶的业务,还有汇顶的优势,下周出结果。

大疆正式批

岗位信息

数字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吗
  • 设计内部有很多模块,你们有做小模块的验证吗?
  • 系统级联后出现过什么问题?
  • 详细讲一讲你的另一个项目
  • 你的简历上看起来设计验证各占一半,你的倾向是设计还是验证?
  • 你的职业规划是怎么样的?

结果

收到offer

中兴微电子

投递信息

岗位:我记得我投的是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

结果

进池子录用排序

海光

岗位信息

SoC验证工程师

官网投递

一面

  • 自我介绍

项目相关:

  • 你的UART uvc的设计思路讲一下
  • 你是如何考虑复用性的
  • checker是如何检查的?
  • 定义了哪些覆盖率,收集情况如何
  • 有没有spec作为参考?

项目无关:

  • 考虑一个加密模块和解密模块,如果模块加密然后再解密的输出和你的refmod的输出完全一致,是否可以认为模块没有问题

当时没想到,当时后面问了面试官,可能加密模块是错的,解密模块也是错的,两边错的一样,数据经过加密再解密后能够还原,但是其实加密解密模块都是错的。应该把加密和解密模块分开考虑,单独进行验证

  • 如果一个地址转换模块,进行验证的时候,出现了bypass现象,无论输入什么都是原原本本的输出,有可能是什么原因造成的?

可能是模块顶层连线出错,或者模块具有bypass模式,验证时把模块配置到了bypass模式中

  • 什么是vritual sequencer,作用是什么?
  • object具有phase机制吗?
  • 你是如何考虑工作地点的

我的提问:

  • 成都的site主要负责哪些业务?

soc设计,南桥北桥芯片,高速接口,比如sata、pcie、ddr、usb

  • 新人如何培训的?

虚拟lab+mentor机制

  • 如果通过了,后续还有哪些流程?

一共两面,技术面和HR面,这次通过了的话后续等HR面就行了

紫光展锐

岗位信息

数字芯片验证工程师

一面

  • 自我介绍一下
  • 你在实习期间做的是什么?
  • 为什么只实习了一个月?
  • 详细讲一讲你复旦微的比赛内容
  • 为什么你获得的是第三名
  • 验证环境中,你定义了哪些功能覆盖率?
  • 代码覆盖率有哪些?达到100%了吗?
  • 为什么代码覆盖率没有达到100%
  • vritual sequencer的作用是什么?
  • 讲一讲集创赛的比赛内容
  • 了解axi总线吗,axi总线有什么特点?axi总线有几个通道?什么是outstanding,什么是out of order?
  • 你觉得的优势是什么?
  • 你在实验室的内容是什么,发专利和论文了吗?
  • 你对于城市是怎么选择的?
  • 你现在有多少offer?

二面

  • 本科是哪里的?
  • 成绩怎么样,有获过奖吗?
  • 复微杯这个比赛含金量怎么样?决赛有多少人?和实验室课题关系大么
  • 毕设做得怎么样?最后要达到一个什么样的成果?实验室有没有和公司合作?
  • 你的加速器是做算法还是做实现?
  • 你广东长大的怎么没有广东口音?
  • 实习期间做了什么?环境搭了多久?学习的vip是哪家的?
  • 什么时候开始接触uvm的?有没有遇到什么困难?
  • 你主管名字叫什么?(说是有同事跳槽过去了。。。
  • 实习公司给你意向书了吗,如果都拿到了你会怎么考虑?

上海做的是消费电子,成都做的是近距离通信,验证比较缺所以可能会支援项目。跟我说一面问过技术问题了,就不再问了,遇到好多在平头哥实习的了,大概了解什么情况了。

AMD

岗位信息

设计与验证工程师

面试

  1. 自我介绍一下
  2. 你偏向设计还是验证
  3. 给你的sv和uvm打个分,满分100
  4. 讲一讲在项目中负责的内容吧
  5. 你是如何实现矩阵运算的,有没有考虑过低功耗
  6. 你的加速器设计的难点在哪里?
  7. 讲一讲你的环境构成吧
  8. 从那些角度定义的覆盖率?
  9. 什么是多态
  10. sv支持多重继承吗
  11. sv支持重载或者覆盖吗?
  12. sv的interface的作用是什么?
  13. rand和randc的区别是什么
  14. 如何关闭某个变量的随机
  15. 如何关闭某个约束的随机
  16. 如何指定某个coverpoint在特定条件下进行采样
  17. iff是什么的缩写
  18. 如何指定不要统计某些bin
  19. ignore bins和illgeal bins的区别是什么
  20. assertion中的交叠非交叠是什么意思
  21. Property是什么
  22. 如何指定对某一个Property进行覆盖率收集?
  23. build phase和connect phase分别做什么?自上而下还是自下而上?
  24. task phase有哪些?
  25. 控制phase的是什么机制
  26. post shutdown phase结束了run phase没结束,会进入下一个phase吗
  27. 环境中有ral model吗,解释一下为什么要使用ral model
  28. 如果给你一个ip,带寄存器配置接口,dma接口,还有spec,按照你的理解,你会怎么进行验证?
  29. 如果代码覆盖率95%,功能覆盖率80%,test pass100%,请问接下来怎么让覆盖率收敛?

这里我说把约束收紧,或者用直接激励,面试官说你要把代码覆盖率没有toggle的地方和功能覆盖率没覆盖的地方联系起来

  1. 如果功能覆盖率100%而代码覆盖率不到60%,原因是什么,如何收敛?
  2. 英文自我介绍一下

更多模拟面试

全部评论

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