网表 Netlist

类型: concepts
引用论文: 16 篇
Netlist 概念

网表 Netlist

概念解析

定义与起源

术语定义:网表(Netlist)是数字IC设计中最核心的中间交换格式——它描述了一个电路的所有逻辑单元(cell instances)和它们之间的连接(nets)。网表不包含物理信息(没有坐标)——它只是"谁连到谁"的拓扑图。RTL综合的输出是门级网表——物理设计的输入也是门级网表——网表是设计和实现的"合同"。

网表的格式演进反映了EDA工业史:EDIF(1980s,第一个标准格式)→Verilog网表(1990s,业界最广泛使用)→SPEF(带寄生参数的网表)→DEF(物理信息+网表)。门级网表是RTL和GDSII之间的关键桥梁。

核心要义

第一,网表=实例(instances)+连接(nets)。 每个instance是一个标准单元(AND/OR/FF/MUX等)或宏单元(IP block、memory)。每个net是一组被连接在一起的instance端口。网表不包含:逻辑函数(这只是连接关系)、物理位置、时序信息(在SDF里)、寄生参数(在SPEF里)。

第二,网表的"黄金标准"问题:哪个版本是权威? 设计流程中有多个网表版本共存:综合后的网表、DFT插入后的网表、CTS后的网表、ECO后的网表。每一个都和前一个"应该"等价——但不是真等价。等价性检查(Formality)就是证明网表之间的等价性。

第三,网表的质量直接影响物理设计的难度。 一个"干净"的网表:没有undriven inputs、没有multi-driven nets、没有combinational loops(组合逻辑环)、命名规范、层次清晰。一个"脏"网表会让物理设计工具跑得慢、QoR差、甚至跑不出来。

实践应用

* 网表命名规范是团队协作的基础:好的命名规则让你在网表中一眼看出信号的来源和去向。 * 网表大小是工具选择的关键:1000万instance以上的网表需要分布式工具(多台机器并行)。 * 网表格式转换是EDA互操作的核心:Synopsys工具用 Milkyway 数据库,Cadence工具用 OA 数据库——网表是两种数据库互通的中介。

实战案例

  • 某SoC的网表爆炸:RTL只有50万行——综合后的门级网表有1200万instances。网表太大——Innovus花了24小时才读完。解决方案:partition设计——分4个子模块各自跑PnR——顶层只做assembly。

  • 网表不一致的恐怖故事:综合团队和物理设计团队用了不同版本的网表——物理设计跑了一周后发现结果对不上。根因:中间有一次ECO的网表没有同步给物理设计团队。从那以后——网表版本控制被纳入CI。

  • SPEF让时序signoff更准确:网表+SPEF(寄生参数)=带RC延迟的完整电路描述。STA用SPEF计算真实延迟——而不是用统计线负载模型估算。SPEF让signoff精度从±15%提升到±5%。

常见误区

误区一:网表=门级原理图。 网表只有连接关系——没有时序、没有物理信息、没有逻辑功能。你需要网表+SDF(时序)+SPEF(寄生)+lib(单元特性)才能完整描述一个门级电路。

误区二:网表越小越好。 有时候网表膨胀(inflation)是因为综合工具做了有用的优化——比如复制了逻辑来降低扇出。只要PPA达标——网表大小本身不是指标。

误区三:网表可以手工编辑。 对于百万门以上的设计——手工编辑网表无异于在沙滩上数沙子。但ECO时的小规模网表编辑(手工改几行)是常见的——前提是你精确知道改了什么。

思想演变

**1980s
EDIF诞生**:第一个标准网表格式。纯文本、易于解析。各大EDA工具都支持。
**1990s
Verilog网表成为事实标准**:比EDIF更紧凑、更受综合工具原生支持。
**2000s
SPEF+DEF补充网表**:SPEF带寄生参数。DEF带物理信息。网表+SPEF+DEF=完整的物理+逻辑+时序描述。
**2010s–present
数据模型统一**:Fusion Compiler统一RTL→GDS的数据模型——消除网表格式转换的中间步骤。

原话引用

"Netlist is the truth. Everything else — RTL, timing report, power report — is interpretation of the truth."—— 物理设计总监, 内部培训
"Garbage netlist in, garbage chip out."—— SNUG San Jose 2015
"网表是设计团队的合同——综合团队签了字说'这是RTL的正确实现'——物理设计团队在合同上盖楼。"—— EDA行业老话