### IC工程师面试问题知识点解析
#### 一、静态时序分析与动态时序分析
**静态时序分析(Static Timing Analysis, STA)** 是一种通过分析电路的时序特性,预测其工作性能的方法,无需实际运行电路。这种方法可以快速评估电路在最坏情况下的时序行为。静态时序分析主要关注的是电路中的时序路径,特别是关键路径(critical path),即最长的时序路径。通过分析这些路径,可以确定电路的最小工作周期(minimum operating cycle time)或最大工作频率(maximum operating frequency)。
**动态时序分析(Dynamic Timing Analysis)** 则是在电路实际运行过程中进行的时序分析,通常用于验证静态时序分析的结果。这种分析方式更接近实际情况,因为它考虑了电路实际运行过程中的动态行为,例如信号的建立时间(setup time)、保持时间(hold time)等。
#### 二、同步复位与异步复位
**同步复位(synchronous reset)** 是指复位信号必须与时钟同步才能被处理。这种复位方式的好处在于简单可靠,易于实现,因为复位信号的变化只发生在时钟的有效边沿。
**异步复位(asynchronous reset)** 则不需要与时钟信号同步。这种复位方式可以在任何时候响应复位信号,但缺点是可能会引入额外的问题,如亚稳态(metastability)。
#### 三、亚稳态及其解决方案
**亚稳态(metastability)** 是指电路的状态既不是稳定的高电平也不是稳定的低电平,而是一种中间状态。这种状态在电路中是不可预测的,可能导致数据丢失或系统故障。亚稳态通常发生在异步接口中,特别是在时钟域之间传输数据时。
**解决亚稳态的方法** 包括但不限于:
- **双重翻转边沿检测器(dual flip-flop edge detector)**:通过两个级联的D触发器来捕获不稳定状态,并最终达到稳定状态。
- **延迟链(delay chain)**:在数据路径中添加适当的延迟,以确保数据在到达目标时钟域之前有足够的稳定时间。
- **同步复位**:采用同步复位而非异步复位,以减少亚稳态的发生几率。
#### 四、FPGA与ASIC的区别
**FPGA(Field Programmable Gate Array)** 是一种可编程逻辑器件,允许用户通过软件配置来定义其功能。FPGA具有高度灵活性,可以在设计阶段甚至在产品部署后重新配置。这使其非常适合原型设计和快速迭代。
**ASIC(Application Specific Integrated Circuit)** 是专门为特定应用设计的集成电路。ASIC的设计成本较高,但一旦完成设计,其生产成本相对较低,性能通常优于FPGA。ASIC适用于大规模生产和高性能需求的应用场景。
#### 五、静态功耗
**静态功耗(static power)** 指的是电路在静止状态下,由于漏电现象导致的功耗。主要由以下几个方面组成:
- **反偏二极管泄漏电流**: 当漏极和衬底形成反偏二极管时,即使没有输入信号,也会有少量电流泄漏。
- **门栅感应漏极泄漏电流(GIDL)**: 在栅极电压较低时,沟道内的势垒降低,导致泄漏电流随漏电压变化。
- **栅极泄漏电流**: 可以通过使用多层栅极结构和高k介电材料来减少。
#### 六、数字IC设计中的延迟模型
- **NLDM(Non-linear Delay Model)**: 考虑了非线性效应的延迟模型。
- **CCS(Composite Current Source Model)**: 基于复合电流源的延迟模型。
- **ECSM(Effective Current Source Model)**: 有效电流源模型。
**set_wire_load_mode** 设置了当前设计中的线负载模型模式,指定了如何在网中计算连线电容。具体有以下几种设置:
- **enclosed**: 使用包围两个子模块的模块的线负载模型来估算连接它们的连线延时。
- **top**: 使用包含所有模块的顶层模块的线负载模型来估算。
- **segmented**: 分别根据穿过各段的模型来估算之后相加。
**set_wire_load_model** 设置了线负载模型,在综合时,除了使用ZWLM或者不同K值的线负载模型外,还可以使用基于物理位置的线负载模型。
#### 七、如何禁止使用库里的某些单元
- **set_dont_use**: 用于禁止使用库中的某些单元。
- **set_dont_touch**: 用于禁止修改特定单元。
**影响标准单元延迟的因素** 包括:
- **PVT(Power, Voltage, Temperature)**: 电源、电压和温度的变化都会影响延迟。
- **input transition/output load**: 输入转换时间和输出负载大小。
- **Vth(threshold voltage)**: 不同的阈值电压(Vth)会导致不同的延迟。
#### 八、水平-垂直-水平/垂直-水平-垂直布线方法
采用HVH或VHV布线方法的主要目的是节省布线资源,同时减少耦合电容。垂直布线相比于水平布线,通常具有更低的耦合电容。
#### 九、电源走线为何选择最上面的金属层
- **高层更适合全局布线**: 低层使用率较高,如果用于电源布线会占用其他有用资源。
- **电磁兼容性不同**: 顶层的EM能力一般是低层的2-3倍,更适合用于电源布线。
- **IP占用层次**: 通常靠近下层,顶层可以穿越,且对下层噪声影响较小。
- **宽度优势**: 顶层金属的宽度较宽,可以提高抗EM能力并减小IR drop。
#### 十、如何解决线间干扰(Crosstalk Violation)
解决线间干扰的方法包括但不限于:
- **增大驱动器尺寸**: 对受害者网络的驱动器进行放大,对侵扰网络的驱动器进行缩小。
- **增加线间距、屏蔽、改变金属层和线宽**。
- **使用Hi-Vth单元**: 将与受害者网络相连的输入端改为高阈值电压单元,可以过滤掉小的glitch。
- **调整信号的timing window**。
#### 十一、Common Path Pessimism Remove (CPPR)
CPPR 是指在时序分析中去除路径悲观主义的一种技术。在时序分析工具如PT中,计算时序时通常按照最严格的约束来计算。使用CPPR可以适当调整最小/最短/早期路径的约束,例如,将最小路径延迟减少20%,将最大路径延迟增加10%。这样可以更加准确地反映实际的时序行为,避免过度保守的时序估计。