芯片岗实习面经(2020暑期实习)

欢迎关注个人公众号摸鱼范式

前期准备了两个项目,一个是集创赛,一个是复微杯的,面试中主要就是在讨论这两个项目内容。

投递的岗位都是数字IC设计与验证,我的简历偏向验证。

平头哥

  • 4.16投递简历,没有笔试
  • 4.27中午电话协商电话面试时间。下午四点电话面试,时长20分钟,全程聊项目。最后问了一下关于实习时长、时间、实习内容、地点的问题
  • 待续

海康威视

  • 投递简历时间具体忘了,也是四月中旬,IC岗没有笔试
  • 4.28下午五点,没有提前通知,突然电话面试。时长40分钟,全程聊项目。问了一个经典烧绳子计时的急转弯题目,一条绳子点燃以后燃烧速度不均匀,全部烧完需要60分钟,现在有很多条绳子,要求计时75分钟。这个问题很久以前就听过了,但是答案忘了。面试官提示说两头同时烧,一条绳子就变成30分钟了,然后我回答一条绳子两头同时烧,另一条烧一头,第一条烧完以后,把第二条也两头都点上,这样就是15分钟,加上一条绳子60分钟,一共75分钟。最后问了一个时序分析的题目,关于复位的,reset recovery time和reset removal time,我没有复习到这块,没答上来,还没面试的建议好好看看这块。面试官说30号之前是一面阶段,陆续给大家电话面试。
  • 5.6收到第二次面试通知,视频面,5.8下午进行视频面试
  • 5.8视频面试被摆了一道,只有一个问题,别的没有,手撕代码,正常情况下数据包由起始码(16bit)、数据段(n byte n<256)、结束码(16bit)3部分组成。起始码为0xFF00,结束码为0xFF01。在一个完整数据包中,数据段部分不会出现起始码和结束码。请设计一个电路在码流中检测完整且有效的数据包,并输出当前数据包的有效数据长度n。 输入数据接口 In:clk,rstn, din[7:0], din_vld Out: data_cnt[7:0], data_cnt_vld。看题目比较简单,实际上有几个坑,注意,起始码和结束码是16bit的,din是8bit的,然后要考虑几点,异常检测,结束码还没出现的时候如果超过255个byte的数据要报异常,如果中间出现起始码要报异常。我就是题目理解不到位,以为来的数据包都是规规矩矩的,写完了被面试官指出来这几点的时候,我直冒冷汗。各位手撕代码的时候一定要注意看题!!描述不准确一定要和面试官仔细交流!!说来其实如果他在题目理告诉我要做异常处理,估计好一点,而且题目给的端口也没给异常标志位的端口。面试官告诉我这个是他们自己出的,然后问我难度怎么样,现场手撕确实有点难,毕竟慌。他说会根据我们现在的意见,在秋招的时候调整,加以说明或者引导或者降低难度。最后还剩几分钟问我要不要完善代码,我说不了,告辞,反正写不了几行。
  • 待续,感觉表现不好

华为

  • 3.16投递简历,但是后来发现预计毕业时间填错了,一直没给笔试通知,改了以后才通知笔试
  • 4.22笔试,全是选择题,比较简单
  • 5.6上午收到知识产权和商业秘密保护承诺书。之前一直在系统里查看不了申请,现在可以了,显示还差专业面和主管面。
  • 5.6下午电话预约5.8上午进行视频面试
  • 5.8上午面试完,上来先自我介绍,会问学校是哪里的,专业是什么,学校里学了什么IC相关的课程,成绩怎么样。然后问了项目内容,负责哪些部分。问了关于速度与面积的问题,还有怎么加快时钟频率。还问了如何处理信号跨时钟域的问题,这里具体可以关注我的公众号,大概分单bit和多bit,允不允许漏采,这样回答。复盘了一下笔试题,面试官说我大部分都挺好的,有一些细节有问题,比如验证那部分,应该根据经验重点检查某些功能点,这是错误的,因为实际上会有很多checklist,不能根据经验来。手撕代码之前让我提问了一下,我问我报名的成都实习,但是是粤港澳联系的我,是不是有影响,面试官说可以和hr协商,另外面试官说我报的是网络芯片。。可是我在系统里根本就没得选,到海思这里就没了。选不了次级部门,不知道怎么搞的。手撕代码做的是一个帧头检测,frame_head来脉冲的同时din会来数据,连续三次数据都是8'h23的话,就输出一个脉冲。我一开始理解错了,理解成检测三次就完事了,然后就用计数器简单写了。面试官提醒我才发现理解错了,然后重新用状态机搞定了。最后,问了一下实习内容,是虚拟lab还是参与工程,面试官说每个部门都不一样,看部门。大概就是这些,我贴一下我提交的代码,可能还是有问题。
module det (
  input clk,    // Clock
  input rst_n,  // Asynchronous reset active low
  input frame_head,
  input din,
  output detect
);
wire [7:0] din;
reg [1:0] cnt;
reg frame_head_ff;
reg detect_ff;
reg [1:0] state, state_next;
  always@(posedge clk or negedge rst_n) begin : proc_state
    if(~rst_n) begin
      state <= 0;
    end else begin
      state <= state_next;
    end
  end
  always_comb begin : proc_state_next
    state_next = state;
    if (frame_head) begin
      case (state)
        0       : state_next = (din == 8'h23)?2'd1:2'd0;
        1       : state_next = (din == 8'h23)?2'd2:2'd0;
        2       : state_next = (din == 8'h23)?2'd3:2'd0;
        3       : state_next = (din == 8'h23)?2'd3:2'd0;
        default : state_next = 2'd0;
      endcase
    end
  end
always @(posedge clk or negedge rst_n) begin : proc_frame_head_ff
  if(~rst_n) begin
    frame_head_ff <= 0;
  end else begin
    frame_head_ff <= frame_head;
  end
end
always @(posedge clk or negedge rst_n) begin : proc_detect_ff
  if(~rst_n) begin
    detect_ff <= 0;
  end else begin
    detect_ff <= frame_head_ff&&(state_next==2'd3);
  end
end
assign detect = detect_ff;
endmodule
  • 5.9收到电话联系专业面通过,预约5.11主管面
  • 待续

联发科

  • 投递时间忘了,4月初
  • 4.9笔试,10个简答题,包括写时序与约束,解释什么是大小端,用C语言写一个函数辨别系统是大端还是小端,perl或者python写字符串匹配,对行业的看法,题目特别杂,中间还有一道题图片没显示出来
  • 5.9邮件通知凉了,确实不行,笔试题范围太广,我真的不会做
全部评论

相关推荐

5 19 评论
分享
牛客网
牛客企业服务