分享

Physical Verification 介绍——PERC(1)

 雨在路上 2022-06-24 发布于广东

本公众号【读芯树:duxinshu_PD】主要介绍数字集成电路物理设计相关知识,才疏学浅,如有错误,欢迎指正交流学习。

是集成电路物理设计的第六个系列【Physical Verification】的第十一篇文章,本篇文章主要介绍PERC相关内容

01

什么是PERC?

  • PERC = Programmable Electrical Rules Checking (可编程电学规则检查)

  • PERC用于检查DRC和LVS检查不出的芯片可靠性问题,主要包括ESD相关问题、EOS问题、介质击穿问题、连接可靠性问题等等,可通过自主定制可编程来检查相关芯片可靠性。

  • PERC主要检查以下问题:

    Netlist Checks: 检查网表的完整性,不需要layout数据。

    Netlist Driven Layout Checks (LDL): 检查网表完成后,检查版图数据。

    Current Density Checks: 检查版图上ESD泄放路径的电流密度。

    Point-to-Point (P2P) Resistance Checks: 检查版图上ESD泄放路径的电阻大小,保证有低电阻值以顺利泄放ESD电流。

    图片

  • Calibre PERC用于验证foundary提供的标准rule或者自定义的custom rule的宽范围的可靠性检查。

02


Why PERC?

  • 传统的DRC/LVS/ERC/ANT的检查并不能完全保证芯片的可靠性。

  • ESD/EOS/Latch-Up相关的可靠性问题直接影响芯片的良率和可靠性,需要进行特殊的检查,这需要使用PERC进行相应的检查。

03


Calibre PERC Catalog

  • Direct Gate Connection to Supply: 检查MOS的gate端是否直接连接到Power/Ground上。

    图片

  • MOS Floating Gate:检查MOS的gate端是否是悬空的。

    图片

  • MOS Bulk Connection: 检查MOS的bulk端的连接。

    图片

  • Forward-Bias Diode Between Power and Ground: 在Power和Ground之间存在正偏的Diode或者ggMOS。

    图片

  • Capacitor-Like Device Between Power and Ground: 检查是否存在电容连接方式的MOS在Power和Ground之间。

    图片

  • Floating Input, Power and Ground Ports: 检查是否存在floating port存在。

    图片

  • Cell Tie-Off: cell的输入信号不能之间连接到Power/Ground上。

    图片

  • Level Shifter Cells: 检查MOS的连接是否属于一个电压域,如果不属于一个电压域则应该位于Level Shifter内。

    图片

  • Bipolar Protection Between different power domain:不同电压域之间的保护器件。

    图片

  • Gate-Ground NMOS & Resistor Protection: 不同电压域之间的保护器件。

    图片

  • Serially-Connected Gates and Pins Connections: 

    图片

  • Level Shifter: 

    图片

  • Back-to-Back Diodes Protection: 检查不同电压域的ground之间是否存在Back-to-Back Diode器件。

    图片

  • Input Pad to MOS Gate Protection: 在Pad和MOS的gate端之间需要存在ESD电阻保护器件。

    图片

  • Power Supply Pad's Protection: 在Power与Ground之间需要存在ESD保护器件。

    图片

  • Resistor Protection of MOS Device: MOS的gate端如果通过电阻连接到Power/Ground时,需要保证一定的电阻值。

    图片

  • Input Pins Connectivity:Input pins是否连接确定的器件。

    图片

  • I/O Pad Protection with NMOS and Resistor:

    图片

  • Big Buffers: mullti-finger的buffer的宽度不能超过某个数值。

    图片

  • Stacked NFETs and Diodes' String Number:

    图片

  • I/O Pad's Diode Protection:

    图片

  • I/O Pad's NFET and Diode Protection: 

    图片

  • ESD Protection for Low Voltage MOS: 

    图片

  • ESD Protection for Input Gates: 

    图片

04


PERC in the Design Flow

  • Inputs for PERC

    Rule file including: TVF functions statement containing the PERC rule check。SVRF statements: PERC commands, some LVS command.
    SPICE Netlist or GDSII layout database
  • Outputs from PERC

    Report file, listing the checks that were run and their results.
    SVDB for RVE support
    图片

图片

05


Calibre PERC cmd






calibre -perc -hier -auto rules #run PERC hier on a netlist and have hcells recognized automaticallycalibre -per -hier -hcell cell_list rules  #run PERC hier on a netlist and have recognized from a user-specified hcell listcalibre -perc rules #run PERC flat on a netlistcalibre -spice lay.net -perc -hier -auto rules #run PERC hier on a layout and have hcells recoginezed autocalibre -spice lay.net -perc rules             #run PERC flat on a layout
  • Examples: ESD protection for Gate connected to IO pad requires existence of: a, a resistor with resistance value greater than 100ohm; b, A diode connected MOSFET.








































TVF FUNCTION esd [/*  package require CalibreLVS_PERCproc esd_init {} {  perc::define_net_type 'Power' {lvsPower}  perc::define_net_type 'Ground' {lvsGround}  perc::define_net_type 'Pad' {in_pad? out_pad?}  perc::create_net_path -type 'r'}proc rule_1 {} {  perc::check_net -netType {!Power && !Ground} -pathType {Pad} -condition cond_1 -comment 'PAD with incorrect ESD protection'}proc cond_1 {net} {  set selected 0  set logic_gate_count [perc::count -net $net -type {lvsGate} -pinAtNet {lvsIn}]  if {$logic_gate_count ==0} {    return $selected  }  set result [perc::count -net $net -type {r} -pinAtNet {p n} -pinNetType {{p n} {Pad}} -list]  set res_count [lindex $result 0]  if {$res_count == 0} {    perc::report_base_result -title 'Missing Resistor'    set selected 1  }  if {$res_count > 0} {    set res_itr [lindex $res_list 0]    set res_val [perc::property $res_itr r]    if {$res_val < 100} {      perc::report_base_result -value 'Resistor exists but with value less than 100 ohm: $res_val' -list [list $res_itr]      set selected 1    }  }  set nest_count [perc::count -net $net -type {MN} -subtype {nch_esd} -pinAtNet {D} -pinNetType {{g} {Ground} {s} {Ground} {b} {Ground}}]  if {$nesd_count == 0} {    perc::report_base_result -title 'Missing ESD nmos device'    set selected 1  }  return $selected }*/]

图片

PERC cmd:









lvsGate: device type referring to all logic gateslvsInjection: device type referring to all logic injection devicelvsIn: pin name referring to all input pins of logic gates and gate-based injection deviceslvsOut: pin name referring to all output pins of logic gates and gate-based injection deviceslvsPower: list of power nets defined by 'LVS POWER NAME' statementlvsGround: list of ground nets defined by 'LVS GROUND NAME' statementlvsTopPorts: list of nets connected to ports in the top celllvsTop: generic cell name referring to the top level cell

06


参考文献




https://www./glossary/what-is-programmable-electrical-rules-checking.htmlCalibre PER User GuideCalibre PERC Catalog test-case and common examples

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多