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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: zhouyunye195

[求助] lvs command file定义三极管的问题(急)

[复制链接]
发表于 2012-11-9 16:04:45 | 显示全部楼层
你理解错了,markbjt只是定义这个区域的器件是三极管,markc才是决定有几个bjt的标识层,如果你有3个集电极,那么你就画3个mark才的图形分别覆盖3个集电极,注意,这几个markc的图形不能有任何接触,这样就可以提取出来3个啊
 楼主| 发表于 2012-11-9 17:22:34 | 显示全部楼层
回复 21# randysong


        是calibre还是dracula?我用calibre跑的,但只用一层mark层定义器件,即:识别器件及数目都是这一层的。randysong你说的那种方法怎么定义?一般的:device  Q(PNP5)  识别层  C  B   E, 如你所说有两个识别层,格式是怎么样的?就在识别层那写两个识别层么?
发表于 2012-11-9 19:41:48 | 显示全部楼层
回复 19# zhouyunye195


    好,既然是通过面积区分,那就可以做相应的 operation 了。Calibre 有 "size" "area" "expand" 等供你选择,也有可能会用到 "with neighbor" "hole" 等。
    没有 design rule 和 PDK, 我只能做相应的猜测,而不敢斩钉截铁地告诉你该怎么做,希望能对你有所帮助。
    另外,有几层标识层是由 Fab 决定,与你用什么验证工具无关。实在没办法的话,其实你也可以考虑加一层标识层,等项目完成时或者tape out 时再删掉
 楼主| 发表于 2012-11-10 09:33:16 | 显示全部楼层
回复 23# zero_0


    不过calibre、dracula的语法有区别,其实不一定要design rule的,知道结构的话就可以做出这个器件,现在主要讨论的是怎么去定义、识别这种结构的器件
发表于 2012-11-11 22:06:15 | 显示全部楼层
不清楚哦,向前辈学习
发表于 2012-11-12 10:00:23 | 显示全部楼层
回复 24# zhouyunye195


    我没有接触过横向PNP,而我对横向PNP的认识也仅仅是从《模拟电路版图的艺术》获得,里面的collector的是一个Ring,并且我并不觉得你描述得很清楚,因为有用的信息是非常多的。有时候你可以定义得很死,不一定非要涵盖你所理解的横向PNP。
  然后我想说,在你反驳之前最好先经过查找取证,就device的结构都经过近20条回复才让你不再纠结,我实在很怀疑在你提问这段时间到底花了多少时间看SVRF。
  如果你可以在我下班前(下午五点半)给出一张示意图,我肯定晚上可以给你做一个近乎正确的定义(但最好不要这样,自己思考肯定比别人给答案要学得多);否则我觉得我的耐心还是不够,我不想再回这个帖子了。
 楼主| 发表于 2012-11-12 15:31:04 | 显示全部楼层
回复 26# zero_0


    1.JPG
这是剖面图,结构很简单了,文字描述完全没问题的,zero_0强烈要求上图就上图先,用nwell加mark做识别层肯定没问题,zero_0你用P+加mark做识别层可以识别出器件么?我试了很久,识别不出。
1.JPG
发表于 2012-11-13 13:05:27 | 显示全部楼层
回复 27# zhouyunye195


      抱歉,我昨天忘记看了,利用中午休息来答复吧。另外为我描述的不够清楚抱歉,因为我想知道的是更特别的信息,而不是泛泛的横向PNP,因为如果是我的话我就不打算定义得那么具有普遍性,只要在现在正在做的项目适用就好了,所以我想知道的其实是比如说:在这个项目里是否只有共基极&共发射极的横向PNP,3个collector是否面积一样(为多少),它们的形状怎样,它们与发射极的距离是否一样(为多少),是否在横向PNP外面都会圈guadring等等。这些信息只要在正在进行的project里具有适用性我觉得都可以利用,所以我其实是希望看到layout。
      在我接触的project里bipolar的size最多也就三种,假设你的project也是这样,我想或许可以这样(假设emitter的size分别是1,2,3um^2):
            bjtbase = nwell interact mark
            bjtdiff   = diff interact mark
            bjtemit1 = area bjtdiff < 1.01
            bjtemit2 = area bjtdiff < 2.01
            bjtemit3 = area bjtdiff < 3.01
            bjtecoll1 = area bjtdiff > 1
            bjtecoll2 = area bjtdiff > 2
            bjtecoll3 = area bjtdiff > 3
            bjtbase1 = (bjtbase enclose bitcoll1) and (bjtbase enclose bjtemit1 == 1)
            bjtbase2 = (bjtbase enclose bitcoll2) and (bjtbase enclose bjtemit2 == 1)
            bjtbase3 = (bjtbase enclose bitcoll3) and (bjtbase enclose bjtemit3 == 1)
            pnpcoll1  = bjtcoll1 inside bjtbase1
            pnpcoll2  = bjtcoll2 inside bjtbase2
            pnpcoll3  = bjtcoll3 inside bjtbase3
            pnpemit1 = bjtemit1 or mark
            pnpemit2 = bjtemit2 or mark
            pnpemit3 = bjtemit3 or mark

            dev q(pnp) pnpcoll1 bjtcoll1 bjtbase pnpemit1
            dev q(pnp) pnpcoll2 bjtcoll2 bjtbase pnpemit2
            dev q(pnp) pnpcoll3 bjtcoll3 bjtbase pnpemit3

      我不太确定这是否可行,因为我需要更多的信息。
发表于 2012-11-13 16:19:40 | 显示全部楼层
Calibre的我没有搞过,不过类似,看用什么方式去识别了。既然你仅仅是为了正确的识别和LVS,那你可以多用一些层(版图中用不到的,做完LVS可以删除的)作为Mark就行了啊,比如markbjt和markc
pnpc' = p inside markbjt
pnpc=p inside pnpc'
然后再分别定义出e区和b区,就应该可以提取出来了吧?
 楼主| 发表于 2012-11-13 17:05:36 | 显示全部楼层
回复 28# zero_0


    明白了,zero_0你是用面积来区别器件的,以前真没想到这一点,这还真不失为一种好方法,现在搞明白了一点,就是BJT器件定义是可以随便用哪个极做识别都可以的,只是要注意下其3个极之间的互联关系,用面积去区别也很好区分,zero_0的耐心其实很好哈,写的那么详细 非常感觉哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-28 04:52 , Processed in 0.025937 second(s), 8 queries , Gzip On, Redis On.

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