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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1617|回复: 2

[求助] 求电感pcell的skill代码

[复制链接]
发表于 2022-12-7 10:32:16 | 显示全部楼层 |阅读模式
200资产
求个八边形螺旋电感和四边形电感pcell的skill 脚本!!!

最佳答案

查看完整内容

我共享一个四边形的吧,原理就是先画一圈,然后进行for循环画出其他边。LIBRARY = "master" CELL = "myInductor" LAYER = "metal2" pcDefinePCell( list( ddGetObj(LIBRARY) CELL "layout" ) ;- Define Formal Parameters: ( (indLayer LAYER ) (indLengthX 130.0 ) (indLengthY 120.0 ) (indWidth 8.0 ) (indGap 7.0 ) (indSeg 12 ) ) ;- Define local var ...
发表于 2022-12-7 10:32:17 | 显示全部楼层
我共享一个四边形的吧,原理就是先画一圈,然后进行for循环画出其他边。LIBRARY = "master"
CELL    = "myInductor"
LAYER   = "metal2"

pcDefinePCell(
        list( ddGetObj(LIBRARY) CELL "layout" )
       
;- Define Formal Parameters:
  (
        (indLayer        LAYER   )
          (indLengthX        130.0   )
           (indLengthY        120.0   )
          (indWidth        8.0     )
           (indGap                7.0     )
           (indSeg                12      )
  )

;- Define local variables of this cellview:       
let(
     (
     indPath indPoints i j tmpPt pt
     indSpacing
     totalLength
     pt1 pt2 pt3 pt4 pt5
     )

   indSpacing        = indWidth + indGap

   ;- First five points for four outer loop segments.
   pt1        = list( 0 -(indWidth/2) )
   pt2        = list( 0 indLengthY )
   pt3        = list( indLengthX indLengthY )
   pt4        = list( indLengthX 0 )
   pt5        = list( rodPointX(pt1)+indSpacing 0 )
   indPoints = list( pt1 pt2 pt3 pt4 pt5 )

   ;- Rest of the points just follow the conditions.
   ;- It could've been written the same way for all the points.
   ;- But, that will make following equations look more complex.

   ;- For inner loop segments.
   for( i 5 indSeg

     j=mod(i 4)                   ;- Modulus of Segment Number and 4
     pt    = nth( i-4 indPoints ) ;- Dependency point.  

     case( j
       (0
          tmpPt = list(
                  rodPointX( pt ) + indSpacing
                  rodPointY( pt ) + indSpacing
                )
       )
       (1
          tmpPt = list(
                  rodPointX( pt ) + indSpacing
                  rodPointY( pt ) - indSpacing
                )
       )
       (2
          tmpPt = list(
                  rodPointX( pt ) - indSpacing
                  rodPointY( pt ) - indSpacing
                )
       )
       (3
          tmpPt = list(
                  rodPointX( pt ) - indSpacing
                  rodPointY( pt ) + indSpacing
                )
       )
     )
     ;- Append new point (tmpPt) to point list ( indPoints ).
     indPoints = append1( indPoints tmpPt )

   )

;- Define inductor:            

   indPath = rodCreatePath(
        ?cvId        pcCellView
        ?layer        list( indLayer "drawing" )
        ?width        indWidth
        ?pts        indPoints
        ?endType "variable"
        ?endExt        indWidth / 2
        )




;- Create reference labels (length, width, cap value):
  dbCreateLabel(
        pcCellView
        list( "text" "drawing" )
        ( indPath~>centerCenter )
        sprintf(nil "\nX = %L \nY = %L"                 /* \nL = %L */
        indLengthX indLengthY)                         /* totalLength */
        "centerCenter"
        "R0"
        "stick"
        4.0
        )
       
       
); let
); pcDefinePcell



发表于 2022-12-7 11:23:30 | 显示全部楼层
圆弧形的我也有,八边形的没有~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-30 09:38 , Processed in 0.014806 second(s), 7 queries , Gzip On, Redis On.

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