4. IBIS 模型基础:标准发展史与文件结构
IBIS(Input/Output Buffer Information Specification)模型是数字 IC 设计中用于信号完整性仿真的标准行为级模型。它通过描述 I/O 缓冲器的电气特性(如 V-I 曲线、V-t 曲线、封装寄生参数),在保护 IP 核心电路细节的前提下,提供足够精确的仿真精度。本章将系统梳理 IBIS 标准的发展历程,并深入解析 IBIS 文件的核心结构。
4.1 IBIS 标准发展史
IBIS 标准由 Intel 公司于 1990 年代初发起,旨在解决 SPICE 模型在系统级仿真中存在的三大痛点:知识产权保护(不暴露晶体管级网表)、仿真效率(行为级模型比 SPICE 快 10~100 倍)、跨平台兼容(不同 EDA 工具间可互换)。
| 版本 | 发布年份 | 核心特性与里程碑 |
|---|---|---|
| IBIS 1.0 | 1993 | 定义基本 V-I 和 V-t 曲线格式,仅支持单端 CMOS 缓冲器 |
| IBIS 2.0 | 1995 | 引入封装模型(RLC 寄生参数)、GND 钳位曲线 |
| IBIS 3.0 | 1998 | 支持差分信号、I/O 模型、动态钳位、扩展温度范围 |
| IBIS 4.0 | 2004 | 增加 [Model Selector] 多模型选择、[External Model] 外部模型引用 |
| IBIS 5.0 | 2008 | 引入 [Receiver Thresholds] 接收阈值、[Series Pin Mapping] 串行拓扑 |
| IBIS 6.0 | 2012 | 支持 BIRD 95.1 电源感知模型、动态 V-I 曲线、SSO 噪声建模 |
| IBIS 7.0 | 2019 | AMI(Algorithmic Modeling Interface)集成、支持 56Gbps+ 高速串行链路 |
| IBIS 7.1 | 2022 | 增强 AMI 模型、支持 PAM4 调制、扩展电源完整性建模 |
下图展示了 IBIS 标准从行为级建模到系统级仿真能力的演进路径:
4.2 IBIS 文件结构
一个标准的 IBIS 文件采用纯文本格式,以 .ibs 为扩展名。文件由多个关键字(Keyword)定义的结构化段落组成,每个关键字以方括号 [Keyword] 标识。以下为 T22ULP LVDS IP 设计中 IBIS 文件的五大核心段落:
4.2.1 [Header] — 文件头
文件头包含 IBIS 版本、文件名、创建者、版权声明等元信息。所有 IBIS 文件必须以 [IBIS Ver] 开头。
[IBIS Ver] 4.0
[File Name] t22ulp_lvds_tx.ibs
[File Rev] 1.0
[Source] T22ULP LVDS Transmitter IP
[Notes] This model is for signal integrity simulation only.
[Date] 2025-01-15
[Copyright] (C) 2025 T22ULP Design Team. All rights reserved.
4.2.2 [Component] — 器件定义
定义器件名称、封装类型、引脚数量、工作条件等全局属性。一个 IBIS 文件可以包含多个 [Component],每个代表一个物理器件。
[Component] T22ULP_LVDS_TX
[Manufacturer] T22ULP
[Package]
| variable | typ | min | max |
| R_pkg | 150m | 100m | 200m |
| L_pkg | 2.0nH | 1.5nH | 2.5nH |
| C_pkg | 0.5pF | 0.3pF | 0.8pF |
[Temperature Range] -40 125
[Voltage Range] 1.14 1.26
4.2.3 [Model] — 缓冲器模型
这是 IBIS 文件的核心,定义 I/O 缓冲器的电气行为。每个 [Model] 包含 V-I 曲线(上拉/下拉/钳位)、V-t 曲线(上升/下降波形)、以及 C_comp(硅片电容)。
[Model] LVDS_DRIVER
Model_type Output
Polarity Non-Inverting
Enable Active-High
Vinl = 0.3 * Vcco
Vinh = 0.7 * Vcco
C_comp 0.8pF 0.6pF 1.0pF
[Voltage Range] 1.14 1.26 1.20
[Pullup]
| Voltage | I(typ) | I(min) | I(max) |
| -1.0 | -12.5m | -10.0m | -15.0m |
| 0.0 | 0.0 | 0.0 | 0.0 |
| 1.2 | 10.0m | 8.0m | 12.0m |
| 2.5 | 15.0m | 12.0m | 18.0m |
[Ramp]
| variable | typ | min | max |
| dV/dt_r | 1.2V/0.3n| 1.0V/0.4n| 1.4V/0.2n|
| dV/dt_f | 1.2V/0.3n| 1.0V/0.4n| 1.4V/0.2n|
R_load = 50
4.2.4 [Pin] — 引脚列表
列出器件的所有引脚,并关联每个引脚对应的 [Model] 名称、信号名称和电气类型。
[Pin] signal_name model_name R_pin L_pin C_pin
1 VDD POWER 150m 2.0nH 0.5pF
2 VSS GND 150m 2.0nH 0.5pF
3 TXP LVDS_DRIVER 150m 2.0nH 0.5pF
4 TXN LVDS_DRIVER 150m 2.0nH 0.5pF
5 EN CMOS_IN 150m 2.0nH 0.5pF
4.2.5 [Package] — 封装寄生参数
定义每个引脚的封装寄生参数(R_pin、L_pin、C_pin)。可以在 [Component] 级别定义全局默认值,也可以在 [Pin] 级别逐引脚覆盖。
[Package] (已在 [Component] 中定义全局默认值)
[Pin] R_pin L_pin C_pin
3 120m 1.8nH 0.4pF ; TXP 引脚单独覆盖
4 120m 1.8nH 0.4pF ; TXN 引脚单独覆盖
下图展示了 IBIS 文件五大段落的层级关系与数据流向:
4.3 各段落的关键约束与最佳实践
| 段落 | 关键约束 | T22ULP LVDS 最佳实践 |
|---|---|---|
| [Header] | IBIS 版本必须与 EDA 工具兼容;[File Rev] 需随模型更新 | 使用 IBIS 4.0 版本,兼容主流仿真器(HSPICE、ADS、HyperLynx) |
| [Component] | [Package] 的 typ/min/max 三组值必须完整;[Temperature Range] 需覆盖 IP 规格 | 设置 typ=25°C, min=-40°C, max=125°C;电压范围 1.14V~1.26V |
| [Model] | V-I 曲线必须覆盖 -Vcco 到 2*Vcco 范围;V-t 曲线需包含 3 个工艺角 | LVDS 差分驱动器的 V-I 曲线需包含共模电平 1.2V 附近的线性区 |
| [Pin] | 每个引脚必须关联一个已定义的 [Model];电源/地引脚需标注 POWER/GND | 差分对 TXP/TXN 使用同一 [Model] 名称,确保对称性 |
| [Package] | R_pin/L_pin/C_pin 值需来自封装设计或实测;差分对需对称 | TXP/TXN 的 L_pin 差异 < 0.1nH,C_pin 差异 < 0.05pF |