什么是Layout versus Schematic?

  • comment1
  • thumbup1
  • 2022/09/21

LVS和DRC check互补

在 ASIC 物理实现中,一旦生成版图(layout),它必须遵循成功制造的所有设计规则(Design Rule),并且必须匹配所需设计的原理图schematic)。为了在物理验证中确保这一点,执行设计规则检查 (DRC) 以检查layout是否遵循fault-less manufacturing rule。这种 DRC 检查可提供良好的制造良率并防止制造过程中出现故障,但不能确保layout的正确性。需要确保设计的物理实现与设计的原理图相同。为此,将layout netlist电路schematic netlist网表进行比较,称为Layout versus Schematic (LVS)。

我以前用的比较多的跑DRC和LVS的工具是Calibre.

图1 Layout和Schematic示意图

 

一般LVS的输入件如下:

GDS(layout stream file):LVS工具通过GDS提取生成layout netlist,用于LVS比较。

Schematic netlist:用作 LVS 比较的source netlist

Rule deck fileRule deck file由执行 LVS 所需的指令和文件组成。Rule deck file还包含一个layer definition,这对于提取很有用。

Equivalence file:由cell pairs组成,其中一个来自layout netlist,另一个来自schematic netlist

LVS Flow

LVS 不是一个简单地将版图与电路原理图进行比较的过程,它需要分两步完成。第—步“抽取”,第二步“比较”。首先根据 LVS 提取规则,EDA 工具从版图中抽取出版图所确定的网表文件; 然后将抽取出的网表文件与电路网表文件进行比较。需要说明的是:抽取的网表为晶体管级的 SPICE网表,而电路网表为门级的Verilog网表,该门级网表需要结合SPICE模型/CDL模型转化为SPICE网表,才能与抽取的网表进行逻辑等效性比对。如果两个网表的电路连接关系和器件完全一致则通过 LVS 检査。反之,说明版图存在与电路不一致的地方,需要进行检査并加以处理或修改更正。

实现“抽取”的主要步骤是网表提取,它可以实现从版图提取网表,包含连接关系提取和器件提取两大模块。连接关系提取模块的主要功能是标识线网和为线网命名。标识线网是指把金属、通孔、多晶等半导体划分为不同的连通集合,从而生成不同的线网。器件提取模块的主要功能是识别器件、计算器件属性和输出网表。

实现“比较“的步骤是网表比较,它包括网表预处理、版图和原理图网表比较。网表预处理的主要工作是串并联结构约简,虚拟器件过滤,门电路识别等。在版图设计中,宽长较大的 MOS 管通常会采用版图折叠的方法将其等效于多个晶体管的并联,所以为避免在检査器件数目和尺寸时发生错误,需要把版图中折叠的、并联或串联的器件合并成一个再进行比较。而门电路结构可以作为一个整体对待,以此减少需要处理的节点数量。

图2 LVS过程示意图

 

完成网表预处理后,则可以开始进行网表比较。网表比较本质上是图同构问题。图同构比较的是拓扑结构,不受节点的物理位置、距离、大小影响。若版图网表和原理图网表同构,则版图上的每一个节点都唯一对应原理图上的一个节点。

3 版图和原理图比较示意图

Common LVS issues

LVS errors可以分为两个大类:

Extraction Errors

Text short and open

Device extraction error

Missing device terminal

Extra device terminal

Unused text

Duplicate structure placement

 

Compare Errors

Unmatched nets in the layout/schematic

Unmatched devices in the layout/schematic

Property errors

Port swap errors

Open

具有相同layout text的net的shapes不相交或不接触导致设计中有open(开路).。Opens 意味着设计中有floating connections. Floating connection会导致芯片的重大缺陷。所以发现和找到design中的open非常重要。在进入LVS环节前,在PnR工具中进行相关检查很有帮助。

下面的示例显示了 LVS 工具对设计中open的检测。该工具生成的报告描述了设计中的open,如以下工具报告片段所示。

图4 LVS report中的open

 

Error summary显示检测到的错误及其数量的总结。对于open,extractor 将open net提取为两个不同的net,因此layout中的net数量大于schematic中的网络数量,如报告所示。该报告显示layout中的net数量以及相应的schematic。schematic net  BUF_net_152645,在layout中用两个net

N_11965140和N_11989743表示(因为open成两段了),如报告中所述。

此类问题可以通过connet属于同一net的的layout shape来解决

图5 layout中的open

Short

如果layout中具有layout text的layer重叠或相交,将导致short(短路)。设计中short的存在会导致芯片failure。在进入LVS环节前,在PnR工具中进行相关检查很有帮助。

下面的示例显示了 LVS 工具对设计中short的检测。该工具生成的报告描述了设计中的short,如以下工具报告片段所示。

当设计中发生short时,extractor会将short的net extract为单个net,因此schematic中的两个net只有一个对应的layout net,如报告中所述。N738 和 BUF_net_189972 是short net。

图6 LVS report中的short

Short可以通过正确地重新绕线来解决。

图7 layout中的Short

Internal shorts with Macros

在设计中,由于设计的复杂性或不正确的设置,PnR 工具可能会将macro的internal geometries(内部走线)制造short的方式对net进行布线。如果macro的 LEF 中缺少routing blockage,也会发生这种情况。有时在manual custom routing时,会在自定义routing和macro的内部routing之间创造成short。在 PnR 工具环境中不容易报告此类short violation。当我们将hard macro的 GDS 与顶层block merge时,short在 GDS 中是可见的。下面是一个片段,显示了signal net如何错误地通过hard macro走线。由于hard macro的internal geometries的存在,因此该layer被block在macro上了。该net将导致macro的internal geometries short。

图8 外部net和macro内部走线short(PnR tool view

 

下面是merge后的 GDS 的片段,清楚地显示了short。

图9 外部net和macro内部走线short(GDS view

 

生成的报告与上文所述的short报告类似。此示例的报告选段如下。

图10 LVS report中的

PG short with signal net

当设计中有PG short时,很难识别。PG short可以是power net和ground net之间的short,也可以是power/ground net和signal net之间的short。当 PG  net与相当长的signal net short时,并且由于 PG net连接到如此多的器件,很难精确定位short位置。

由于不正确的metal fill和manual routing changes,VSS net和其中一个signal net之间产生了short,如下图所示。

图11 错误的metal fill造成pg net和signal net的short

Missing components

如果在merge database时缺少某些 spice 文件或 GDS 文件,则会显示missing components错误。例如:如果您在设计中使用了单元 ABC,但未在 GDS  list或spice list中定义该单元以用于 LVS 流程,则可能导致missing components错误。要么需要修改list,要么需要从 LVS 比较中排除 ABC 单元(这取决于单元的功能,在比较中只能排除physical-only单元)。

Missing global net connect

如果单元的 PG 引脚未使用 connect_pg_net 命令连接到任何power/ground net,则会导致大多数设计的器件mismatch和 LVS 错误。例如,即使标准单元 PG 引脚名称为 VDD,工具也不会将其连接到设计的 VDD 网络。我们需要使用下面的命令来连接这些引脚。

connect_pg_net -net VDD [get_pins -hierarchical */VDD]

结论

LVS 是验证网表物理实现正确性的有用技术。open、short、missing components和Missing global net connect是可能影响设计功能的潜在问题,并且可能无法在物理设计早期检测到,因此 LVS 有助于在设计中报告这些问题。一旦物理验证工具报告了这些问题,就可以通过本文中讨论的各种技术来解决。

人工客服
(售后/吐槽/合作/交友)

相关资讯

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. 9.
  10. 10.
  11. 11.
  12. 12.
  13. 13.
  14. 14.
  15. 15.
  16. 16.
  17. 17.
  18. 18.
  19. 19.
  20. 20.
查看全部20条内容