在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13629|回复: 50

[原创] 低压管接上了高压信号 怎么查

[复制链接]
发表于 2021-12-20 09:34:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
TSMC  40nm工艺  想检查出那些低压管接上了高压信号   有谁查过吗    有什么经验吗   谢谢!
发表于 2021-12-20 11:11:43 | 显示全部楼层
perc 写个rule 简单的
 楼主| 发表于 2021-12-21 09:55:15 | 显示全部楼层


489315174 发表于 2021-12-20 11:11
perc 写个rule 简单的


请问您有相关什么脚本范例吗?  谢谢!
发表于 2021-12-21 10:17:20 | 显示全部楼层


bing_bing 发表于 2021-12-21 09:55
请问您有相关什么脚本范例吗?  谢谢!


等会有空给你写一个

 楼主| 发表于 2021-12-21 10:27:28 | 显示全部楼层
好的 非常感谢   我也正在想怎么在drc rule里面 用calibre语句写出来
发表于 2021-12-21 10:51:38 | 显示全部楼层


bing_bing 发表于 2021-12-21 09:55
请问您有相关什么脚本范例吗?  谢谢!


perc

perc

SOURCE PATH "/home/disk/study_61/tsmc65_work/verify/cdl/test1.cdl"
SOURCE PRIMARY "test1"
PERC NETLIST SOURCE
SOURCE SYSTEM SPICE

VARIABLE HVIO_PADS "IN?" "?O"

PERC REPORT "perc.rep"
MASK SVDB DIRECTORY "svdb" QUERY
PERC LOAD perclib INIT init SELECT
EOS_device

TVF FUNCTION perclib [/*
package require CalibreLVS_PERC

proc EOS_device {} {
        set rules "Show All core devices connect to HV Pad"
        perc::check_net -netType {HVIOPad} -condition perc_check_cond -comment "$rules"

}
proc init {} {
    perc::define_net_type "Power"    lvsPower
    perc::define_net_type "Ground"   lvsGround
    perc::define_net_type "AllPad"   lvsTopPorts
    perc::define_net_type "HVIOPad" [perc::expand_list [tvf::svrf_var HVIO_PADS] -type net]
    array set ::esdConstants {}
        set ::esdConstants(Core_pmos) [list "pch" "pch_hvt" "pch_hvt_mac" "pch_hvt_macx" "pch_hvtx" "pch_lvt" "pch_lvt_mac" "pch_lvt_macx" "pch_lvtx" "pch_mac" ]
        set ::esdConstants(Core_nmos) [list "nch_hvt" "nch_hvt_dnw" "nch_hvt_dnw_mac"  "nch_hvt_dnwx" "nch_hvt_mac"  "nch_hvtx" "nch_lvt" "nch_lvt_dnw"  "nch_lvt_dnwx" "nch_lvt_mac"  "nch_lvtx" "nch_mac" "nch_macx"  ]
        set ::esdConstants(Core_MOS)  [concat $::esdConstants(Core_pmos) $::esdConstants(Core_nmos)]
}
proc perc_check_cond {net} {
        set select 0
        set result [perc::count -net $net  -subtype $::esdConstants(Core_MOS) -list]
        set result1 [perc::count -net $net -type $::esdConstants(Core_MOS) -list]
        if {[lindex $result 0] != 0} {
                perc::report_base_result -title "Warn:EOS device risk." -list [lindex $result 1]
                set select 1
        } elseif {[lindex $result1 0] != 0} {
                perc::report_base_result -title "Warn:EOS device risk." -list [lindex $result1 1]
                set select 1
               
        } else {
                set select 0
        }
        return $select       
} ; # end proc
*/]


发表于 2021-12-21 10:56:15 | 显示全部楼层


bing_bing 发表于 2021-12-21 10:27
好的 非常感谢   我也正在想怎么在drc rule里面 用calibre语句写出来


目前这个只能检查高压信号TOP层出pin的,不你对应的core mos 定义到 这两个变量里 $::esdConstants(Core_pmos) $::esdConstants(Core_nmos)
对应的高压信号定义到这里
VARIABLE HVIO_PADS "IN?" "?O"
修改上面cdl 路径与cell name
执行calibre -perc 这个rule
发表于 2021-12-21 13:07:09 | 显示全部楼层


bing_bing 发表于 2021-12-21 09:55
请问您有相关什么脚本范例吗?  谢谢!





  1. SOURCE PATH "/home/disk/study_61/tsmc65_work/verify/cdl/test1.cdl"
  2. SOURCE PRIMARY "test1"
  3. PERC NETLIST SOURCE
  4. SOURCE SYSTEM SPICE
  5. VARIABLE HVIO_PADS "IN?" "?O"
  6. PERC REPORT "perc.rep"
  7. MASK SVDB DIRECTORY "svdb" QUERY
  8. PERC LOAD perclib INIT init SELECT
  9. EOS_device
  10. TVF FUNCTION perclib [/*
  11. package require CalibreLVS_PERC
  12. proc EOS_device {} {
  13.         set rules "Show All core devices connect to HV Pad"
  14.         perc::check_net -netType {HVIOPad} -condition perc_check_cond -comment "$rules"
  15. }
  16. proc init {} {
  17.     perc::define_net_type "Power"    lvsPower
  18.     perc::define_net_type "Ground"   lvsGround
  19.     perc::define_net_type "AllPad"   lvsTopPorts
  20.     perc::define_net_type "HVIOPad" [perc::expand_list [tvf::svrf_var HVIO_PADS] -type net]
  21.     array set ::esdConstants {}
  22.         set ::esdConstants(Core_pmos) [list "pch" "pch_hvt" "pch_hvt_mac" "pch_hvt_macx" "pch_hvtx" "pch_lvt" "pch_lvt_mac" "pch_lvt_macx" "pch_lvtx" "pch_mac" ]
  23.         set ::esdConstants(Core_nmos) [list "nch_hvt" "nch_hvt_dnw" "nch_hvt_dnw_mac"  "nch_hvt_dnwx" "nch_hvt_mac"  "nch_hvtx" "nch_lvt" "nch_lvt_dnw"  "nch_lvt_dnwx" "nch_lvt_mac"  "nch_lvtx" "nch_mac" "nch_macx"  ]
  24.         set ::esdConstants(Core_MOS)  [concat $::esdConstants(Core_pmos) $::esdConstants(Core_nmos)]
  25. }
  26. proc perc_check_cond {net} {
  27.         set select 0
  28.         set result [perc::count -net $net  -subtype $::esdConstants(Core_MOS) -list]
  29.         set result1 [perc::count -net $net -type $::esdConstants(Core_MOS) -list]
  30.         if {[lindex $result 0] != 0} {
  31.                 perc::report_base_result -title "Warn:EOS device risk." -list [lindex $result 1]
  32.                 set select 1
  33.         } elseif {[lindex $result1 0] != 0} {
  34.                 perc::report_base_result -title "Warn:EOS device risk." -list [lindex $result1 1]
  35.                 set select 1       
  36.         } else {
  37.                 set select 0
  38.         }
  39.         return $select       
  40. } ; # end proc
  41. */]



复制代码


 楼主| 发表于 2021-12-21 16:15:28 | 显示全部楼层


非常感谢您的专业解答
脚本在单张电路图已经跑通并结果正确。但在top 层次化电路时,有一种情况没有报出来 如下图所示:



高亮的那根红色的信号在top 叫VDD_BAT  也是我写进脚本的信号名,他在下层接到了VBAT     结果VBAT在里面有接低压管   但是没有报出来。还希望您能再帮一下,感谢!
03d218a80e2442ca48dbea7df4710ff.jpg
f5b009851ded754e69947636f9d6faf.jpg
发表于 2021-12-21 16:20:36 | 显示全部楼层


bing_bing 发表于 2021-12-21 16:15
非常感谢您的专业解答
脚本在单张电路图已经跑通并结果正确。但在top 层次化电路时,有一种情况没有报出 ...


image.png
把-netType 改成-pathType 试下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 14:58 , Processed in 0.022982 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表