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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6027|回复: 16

[求助] GF018工艺跑LVS无法生成netlist

[复制链接]
发表于 2020-1-13 11:12:28 | 显示全部楼层 |阅读模式

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

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

x
GF018的PDK的新安装的,spectre和DRC都没有问题,到了LVS就出现无法生成netlist的错误报告导致不能跑。
看报告好像是说PDK的symbol出了问题引起的,但是又不知道具体如何解决。


有没有用过GF工艺或者遇到过这样问题的大佬能够帮忙一下呢?


以下是具体的log:

        Loading chrt018ull_hv30v/libInitCktPro.il ... done!
GLOBALFOUNDRIES INFO: Loading Utils.ils...
function Round redefined
GLOBALFOUNDRIES INFO: Loading LibUtils.ils...
*WARNING* defmethod: invalid template string ("gtl") for the method 'SetLayerMap'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetLayerMapTable'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gtt") for the method 'FilterRuleFile'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetRuleTable'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetMapTable'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gtgg") for the method 'GetDR'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetMetalStack'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gst") for the method 'GetLayerData'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gl") for the method 'GetGDS'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetLPP'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gl") for the method 'GetLPAttr'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetDeviceList'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetDeviceOptionData'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

*WARNING* defmethod: invalid template string ("gt") for the method 'SetBEOL'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

GLOBALFOUNDRIES INFO: Loading Library.ils...
GLOBALFOUNDRIES INFO: Loading Device.ils...
*WARNING* defmethod: invalid template string ("gt") for the method 'GetDevice'. When present, the method template for required arguments must consist only of "g" data type characters; for example, 'defmethod foo ((a number) b "gg") (list a b))'.

GLOBALFOUNDRIES INFO: Loading TechFile.ils...
GLOBALFOUNDRIES INFO: Loading Device.ils...
GLOBALFOUNDRIES INFO: Loading CapProp.ils...
GLOBALFOUNDRIES INFO: Loading ResProp.ils...
GLOBALFOUNDRIES INFO: Loading MinMax.ils...
GLOBALFOUNDRIES INFO: Loading AbsGenStreamMap.ils...
GLOBALFOUNDRIES INFO: Loading Rules1.ils...
GLOBALFOUNDRIES INFO: Loading Rules2.ils...
GLOBALFOUNDRIES INFO: Loading Rules3.ils...
GLOBALFOUNDRIES INFO: Loading DM290_Layers.ils...
Loading esd.cxt
*WARNING* envSetVal: Can't set the value of variable 'pinTextSamePurpose',
        in tool[.partition] 'layoutXL' - it has not been registered.

ERROR (OSSHNL-116): Unable to descend into any of the views defined in the view list, 'cdl schematic', for the
instance 'PM8' in cell 'my_bandgap'. Add one of these views to the cell 'pmos_5p0' in the
library 'chrt018ull_hv30v', or modify the view list so that it contains an existing view.

End netlisting Jan 13 11:08:09 2020
ERROR (OSSHNL-514): Netlist generation failed because of the errors reported above. The netlist might not have been generated at all, or the generated netlist could be corrupt. Fix the reported errors and regenerate the netlist.


发表于 2020-1-13 12:50:08 | 显示全部楼层
你先看看你的my_badgap里面的MOS管PM8有没有什么问题,如果能把这个管子截图看看最好
发表于 2020-1-13 12:51:31 | 显示全部楼层
这个元件的错误调用可能就是你无法产生netlist的原因
 楼主| 发表于 2020-1-13 13:05:05 | 显示全部楼层
其实我换过一遍PM8了,但是就不行。

PM8的管子

PM8的管子
 楼主| 发表于 2020-1-13 13:18:08 | 显示全部楼层


ll_9_iu_0 发表于 2020-1-13 12:51
这个元件的错误调用可能就是你无法产生netlist的原因


你好,回复在下面,刚点错了
发表于 2020-1-13 14:49:21 | 显示全部楼层
好的,你看看PM8衬底是否悬空,然后再跑一下DC,不要输出,就跑一下,跑完之后看看有没有报错,如果没有,就在仿真设置窗口,依次点Simulation→Netlist→Display
 楼主| 发表于 2020-1-13 22:39:55 | 显示全部楼层


ll_9_iu_0 发表于 2020-1-13 14:49
好的,你看看PM8衬底是否悬空,然后再跑一下DC,不要输出,就跑一下,跑完之后看看有没有报错,如果没有, ...


DC仿真无报错。


netlist display报告如下:

// Library name: Bandgap_Course
// Cell name: my_bandgap
// View name: schematic
PM8 (net29 V\+ net14 net14) pmos_6p0 w=8u l=4u m=(2)*(1) as=3.84p ad=3.84p \
        ps=16.96u pd=16.96u nrs=60m nrd=60m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM5 (net10 V\- net14 net14) pmos_6p0 w=8u l=4u m=(2)*(1) as=3.84p ad=3.84p \
        ps=16.96u pd=16.96u nrs=60m nrd=60m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM4 (VREF Aout VDD VDD) pmos_6p0 w=3u l=4u m=(1)*(1) as=1.44p ad=1.44p \
        ps=6.96u pd=6.96u nrs=160m nrd=160m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
PM3 (net30 Aout VDD VDD) pmos_6p0 w=3u l=4u m=(1)*(1) as=1.44p ad=1.44p \
        ps=6.96u pd=6.96u nrs=160m nrd=160m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
PM2 (Aout IREF VDD VDD) pmos_6p0 w=16u l=4u m=(12)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(12)*(1) \
        dtemp=0
PM1 (net14 IREF VDD VDD) pmos_6p0 w=16u l=4u m=(2)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM0 (IREF IREF VDD VDD) pmos_6p0 w=16u l=4u m=(1)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
NM2 (Aout net29 VSS VSS) nmos_6p0 w=6u l=2u m=(1)*(5) as=1.872p ad=1.872p \
        ps=7.824u pd=7.824u nrs=52m nrd=52m sa=480n sb=480n par=(1)*(5) \
        dtemp=0
NM1 (net29 net10 VSS VSS) nmos_6p0 w=3.5u l=2u m=(1)*(1) as=1.68p ad=1.68p \
        ps=7.96u pd=7.96u nrs=137.143m nrd=137.143m sa=480n sb=480n \
        par=(1)*(1) dtemp=0
NM0 (net10 net10 VSS VSS) nmos_6p0 w=3.5u l=2u m=(1)*(1) as=1.68p ad=1.68p \
        ps=7.96u pd=7.96u nrs=137.143m nrd=137.143m sa=480n sb=480n \
        par=(1)*(1) dtemp=0
V1 (VSS 0) vsource dc=0 type=dc
V0 (VDD 0) vsource dc=vd type=dc
Q1 (VSS VSS net32) vpnp_6p0_5x5 m=4 par=4
Q0 (VSS VSS V\-) vpnp_6p0_5x5 m=1 par=1
R2 (V\+ net32 VSS) nplus_u l=20u w=800n s=1 m=1 par=1
R1 (VREF V\+ VSS) nplus_u l=20u w=800n s=20 m=1 par=1
R0 (net30 V\- VSS) nplus_u l=20u w=800n s=20 m=1 par=1
C0 (Aout net29) apmom w=25u l=15u botlev=1 toplev=2
I4 (IREF 0) isource dc=3u type=dc
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
dc dc param=temp start=-20 stop=140 oppoint=rawfile maxiters=150 \
    maxsteps=10000 annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
saveOptions options save=allpub


但我还是看不出问题所在。。。

 楼主| 发表于 2020-1-13 22:41:51 | 显示全部楼层


ll_9_iu_0 发表于 2020-1-13 14:49
好的,你看看PM8衬底是否悬空,然后再跑一下DC,不要输出,就跑一下,跑完之后看看有没有报错,如果没有, ...


PM8衬底无悬空,DC无报错,netlist display报告如下:

// Library name: Bandgap_Course
// Cell name: my_bandgap
// View name: schematic
PM8 (net29 V\+ net14 net14) pmos_6p0 w=8u l=4u m=(2)*(1) as=3.84p ad=3.84p \
        ps=16.96u pd=16.96u nrs=60m nrd=60m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM5 (net10 V\- net14 net14) pmos_6p0 w=8u l=4u m=(2)*(1) as=3.84p ad=3.84p \
        ps=16.96u pd=16.96u nrs=60m nrd=60m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM4 (VREF Aout VDD VDD) pmos_6p0 w=3u l=4u m=(1)*(1) as=1.44p ad=1.44p \
        ps=6.96u pd=6.96u nrs=160m nrd=160m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
PM3 (net30 Aout VDD VDD) pmos_6p0 w=3u l=4u m=(1)*(1) as=1.44p ad=1.44p \
        ps=6.96u pd=6.96u nrs=160m nrd=160m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
PM2 (Aout IREF VDD VDD) pmos_6p0 w=16u l=4u m=(12)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(12)*(1) \
        dtemp=0
PM1 (net14 IREF VDD VDD) pmos_6p0 w=16u l=4u m=(2)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(2)*(1) \
        dtemp=0
PM0 (IREF IREF VDD VDD) pmos_6p0 w=16u l=4u m=(1)*(1) as=7.68p ad=7.68p \
        ps=32.96u pd=32.96u nrs=30m nrd=30m sa=480n sb=480n par=(1)*(1) \
        dtemp=0
NM2 (Aout net29 VSS VSS) nmos_6p0 w=6u l=2u m=(1)*(5) as=1.872p ad=1.872p \
        ps=7.824u pd=7.824u nrs=52m nrd=52m sa=480n sb=480n par=(1)*(5) \
        dtemp=0
NM1 (net29 net10 VSS VSS) nmos_6p0 w=3.5u l=2u m=(1)*(1) as=1.68p ad=1.68p \
        ps=7.96u pd=7.96u nrs=137.143m nrd=137.143m sa=480n sb=480n \
        par=(1)*(1) dtemp=0
NM0 (net10 net10 VSS VSS) nmos_6p0 w=3.5u l=2u m=(1)*(1) as=1.68p ad=1.68p \
        ps=7.96u pd=7.96u nrs=137.143m nrd=137.143m sa=480n sb=480n \
        par=(1)*(1) dtemp=0
V1 (VSS 0) vsource dc=0 type=dc
V0 (VDD 0) vsource dc=vd type=dc
Q1 (VSS VSS net32) vpnp_6p0_5x5 m=4 par=4
Q0 (VSS VSS V\-) vpnp_6p0_5x5 m=1 par=1
R2 (V\+ net32 VSS) nplus_u l=20u w=800n s=1 m=1 par=1
R1 (VREF V\+ VSS) nplus_u l=20u w=800n s=20 m=1 par=1
R0 (net30 V\- VSS) nplus_u l=20u w=800n s=20 m=1 par=1
C0 (Aout net29) apmom w=25u l=15u botlev=1 toplev=2
I4 (IREF 0) isource dc=3u type=dc
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
dcOpInfo info what=oppoint where=rawfile
dc dc param=temp start=-20 stop=140 oppoint=rawfile maxiters=150 \
    maxsteps=10000 annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts where=rawfile
saveOptions options save=allpub


但我还是看不出啥问题。。。
发表于 2020-1-14 13:42:37 | 显示全部楼层
Do you get the latest version of this PDK? It is supposed to be -20 suffix.
 楼主| 发表于 2020-1-14 22:08:31 | 显示全部楼层


zouliang1127 发表于 2020-1-14 13:42
Do you get the latest version of this PDK? It is supposed to be -20 suffix.


This PDK is gf_018BCDlite_v9.3, it works successfully in  RHEL5 & Cadence616,but failed in my RHEL7 & Cadence617...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 10:58 , Processed in 0.029264 second(s), 8 queries , Gzip On, Redis On.

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