当前位置: 首页 > news >正文

数字IC面试总结,看看你掌握几个?

不少人在IC面试过程中,不知道如何去准备。其实在面试的过程中,公司也会有一些考核手段,比如专业知识的考察,项目经验的查问。所以在面试前,一定要做好相关的准备。

岗位的选择

找工作的时候首先一定要确定找工作的方向,以及心仪的岗位。IC的岗位一般有设计、验证、后端、封装、测试、FPGA等等。但是具体到每个人身上,就要在开始的时候确定下你要找的职位,可以有两个或三个,但是要分出主次,主次不分会让你纠结整个找工作的过程。

同时,主次不分说明了你不知道自己真正想做的是什么。主次分清,然后就根据主次去准备。比如我就做设计,那我几乎所有的时间都放在了设计上,验证方面的知识我基本上一点没看,后端稍微自学了一些和设计相关的基础知识。

现在回头看找工作的这个阶段,我觉得还是后端和验证比较好找。

首先从一个公司的正常配比人数来说,验证肯定要比设计的人多,而后端是一个比较注重经验的岗位。对于在公司实习的学生来说,做的基本上就是验证和后端,能够让实习生做设计的很少。

但是对于在实验室的同学来说,大部分都是找设计岗。所以在外实习的人应该把握自己的优势,在找工作的时候进一步把优势扩大,就是你的项目。

很多时候在你决定找哪个方向的工作时就决定了找工作的难易程度。

在这里插入图片描述

知识点整理

一般而言,专业面试里遇到的问题有两类,一种是专业基础知识,就是这个领域的人多多少少都应该知道的内容,比如ASIC设计的全流程是怎样的;低功耗方法;跨时钟域信号处理;时序分析等等。另一种则是专用领域知识,这部分内容来自于公司部门的业务方向,或者学生的项目/实习/竞赛经历,比如有的人对AMBA总线很熟;有的人做数字信号处理很强;有的人对计算机体系结构很了解等等。

在这一块我尽可能多地列出笔试面试中可能遇到的数字IC方面的专业基础知识点,但没有给出具体的解答,因为这些知识点可以在网上很容易就搜到。

跨时钟域信号处理类
1)亚稳态的定义是什么;
2)MTBF(平均失效间隔时间)的概念;
3)同步电路与异步电路的比较;
4)两级DFF同步器的原理和代码,以及输入窄脉冲情况下的变化;
5)握手协议进行同步的原理和代码,并与方法4)在资源、速度、适用情况等方面进行比较;
6)异步FIFO的原理和代码,包括为什么需要同步读写指针,为什么要用格雷码,满空状态如何判断,为什么会有假满假空现象以及会对系统产生什么影响,FIFO深度如何选择等等;
7)异步复位同步释放的原理和代码,以及比较异步复位和同步复位的优缺点;

综合与时序分析类
这个分类不是特别严谨,我的理由是用DC做综合或者用PT做时序分析都是在服务器的环境下,所以就放在一起了。一个数字IC设计工程师应该要能够借助这两个工具评估自己的设计。
1)ASIC设计流程,从spec到GDSII的全过程,以及每一步的意义和工具;
2)综合的概念,以及主要操作步骤;
3)综合的常用脚本,包括创建原时钟、分频时钟,设置时钟参数等等;
4)Setup time和Hold time的概念;
5)静态时序分析(STA)的概念和优缺点;
6)用PT做STA所需要的数据和脚本,以及弄懂PT时序分析报告上的信息;
7)时钟抖动(jitter)和时钟偏移(skew)的概念,以及他们对时序分析的影响(更严格还是更宽松了?);
8)对一个“输入-DFF-组合逻辑-DFF-输出”的一个典型系统进行时序分析,计算该系统的最大运行频率(最小周期);
9)如何修复Setup违例和Hold违例;

低功耗方法
1)集成电路中功耗的来源;
2)动态功耗与哪些参数有关,开关功耗的公式,以及静态功耗与哪些参数有关;
3)SoC系统中常用的低功耗技术,从体系结构级到器件工艺级都要能列出一种,比如划分不同电压域、时钟域,使用不同阈值的器件等等;
4)RTL级的低功耗设计方法,重点是门控时钟,包括基于与门和基于锁存器的门控时钟结构的代码和优缺点比较;

计算机组成与设计类
这部分的内容稍微有点偏向专用领域,但是平头哥和比特大陆等公司的笔试题里出现了不少相关内容。
1)计算机中使用补码的意义;
2)超前进位加法器的原理和代码;
3)小数定点化的概念,包括对于一个确定的十进制小数,需要多少bit才能无损定点化;
4)基于IEEE-754标准的浮点数的表示;
5)计算机中的乘法和除法如何计算的(只需知道最简单的方法);
6)流水线设计的作用和优缺点;
7)处理器中结构冒险、数据冒险、控制冒险的概念和解决机制;
8)cache的映射方法和写回策略有哪些;

常见编程题
今年在笔试环节让手撕代码的公司不少,状态机的设计方法一定要熟练。
1)奇数分频电路的代码,包括两种情况:使用带负沿触发的DFF(要求占空比50%),不使用带负沿触发的DFF;
2)按键去抖动电路的代码;
3)无毛刺时钟切换电路的代码;
4)用状态机实现的序列检测电路,比如“1011”检测;

面试环节:

由于大多公司并未基于验证出笔试题,所以对IC验证工程师而言,在面试阶段会更多涉及一些SV与UVM相关的思想与应用。

总结起来,最常考的有:

RTL设计思想及代码考察:
IC 开发flow 及个阶段使用的工具。
信号的跨时钟域同步。包括单比特和多比特,对于单比特自然用两级寄存器同步最为方便。对于多比特,常考察异步FIFO以及握手方法。要理解亚稳态的概念以及避免亚稳态的方法。

说到亚稳态,就不得不说setup time 和 hold time。一定要掌握两种时钟约束和分析时钟约束的方法。清楚四种路径(输入到输出,输入到寄存器,寄存器到寄存器,寄存器到输出),并能找到关键路径。会计算最高的工作频率。

分析和修复setup time validation(降低时钟频率,组合逻辑优化或拆分,提高工作电压)和 hold time validation(插入buffer,更难修复)。

用verilog描述常用的电路结构,如:D触发器,同步/异步复位,计数器,分频(奇数倍分频,偶数倍分频,小数分频(如1.5倍)),同步FIFO,异步FIFO, 序列检测器(FSM实现)。
用verilog描述给出的代码或者伪代码(可能会给一段C代码,然后据此写出对于的verilog代码)。

找出verilog代码中的错误,如信号未进行跨时钟域同步,无else分支会产生不期望的锁存器等等。

阻塞,非阻塞赋值。
ROM、SRAM、DRAM、flash等各类存储器的区别与应用。掌握一些常用的协议,如I2C(能够根据提示用verilog实现),SRAM协议、AMBA(AHB、AXI、APB、OCP)等。

以上就是IC修真院分享的关于数字IC面试的一些知识,IC行业近年来岗位需求量大,薪资待遇高。但同样入行也是有一定的门槛,所以想要入行的朋友,一定要提前学习相关的技能。

相关文章:

  • 助力Java开发者成功,微软是认真的
  • java健身房管理系统设计计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • (超详细)语音信号处理之特征提取
  • Databend 特性系列(1)|Databend 数据生命周期
  • 快速排序的三种单趟排序思想的实现与优化 - 递归与非递归
  • MATLAB系统辨识工具箱-System Identification Toolbox
  • Android 10 应用层如何操作设备节点/sys/devices
  • 使用 TensorFlow.js 在浏览器中进行自定义对象检测
  • CopyOnWriteArrayList是如何保证线程安全的?
  • Synopsys新思科技2023“向新力”秋季校园招聘内推
  • 硬盘分区误删数据如何恢复呢?
  • 基于Java毕业设计智能超市导购系统源码+系统+mysql+lw文档+部署软件
  • python数据分析—删除value=0的行
  • 计算机毕业设计Java物流信息管理系统(源码+系统+mysql数据库+Lw文档)
  • [CSS]CSS 的背景
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android Studio:GIT提交项目到远程仓库
  • crontab执行失败的多种原因
  • CSS3 变换
  • JavaScript设计模式之工厂模式
  • Linux快速复制或删除大量小文件
  • Python 基础起步 (十) 什么叫函数?
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 成为一名优秀的Developer的书单
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 微信小程序填坑清单
  • 我的面试准备过程--容器(更新中)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 源码安装memcached和php memcache扩展
  • 智能合约Solidity教程-事件和日志(一)
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • # 透过事物看本质的能力怎么培养?
  • (14)Hive调优——合并小文件
  • (笔试题)合法字符串
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一)Java算法:二分查找
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Linq学习笔记
  • (转)nsfocus-绿盟科技笔试题目
  • .NET CLR Hosting 简介
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 反射的使用
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET中winform传递参数至Url并获得返回值或文件
  • /var/lib/dpkg/lock 锁定问题
  • ;号自动换行
  • []Telit UC864E 拨号上网
  • [1127]图形打印 sdutOJ
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [Android View] 可绘制形状 (Shape Xml)
  • [BUUCTF]-Reverse:reverse3解析
  • [C#][DevPress]事件委托的使用
  • [C#]C#学习笔记-CIL和动态程序集