Quantcast
Channel: Cadence Technology Forums
Viewing all articles
Browse latest Browse all 62928

Forum Post: RE: the load pcell only show error marker

$
0
0
thank you Andrew. that's solved the problem! But sorry i made a mistake. this is not the code i want to ask, I paste the wrong code. what i want to ask is the code below: when i load the code in CIW, it returns true. but only a error marker when i call the pcell, can't see the octangle. I have no idea about it. Hope you can help me! thank you so much! pcDefinePCell( list(ddGetObj("RFlib") "xfmr_test" "layout"), ( (di float 3.0e+01) (w float 5.0e+00) (gap1 float 5.0e+00) (layerNum int 6) ) procedure(pcGenCell(pcCellView "d") prog((layerNum di w gap1 gap2) if(!pcCellView return() ) (layerNum = ((pcCellView~>parameters)~>layerNum)) if(!layerNum then (layerNum = 7) ) if(!fixp(layerNum) then (layerNum = 7) ) (di = ((pcCellView~>parameters)~>di)) if(!di then (di = 30) ) if(!floatp(di) then (di = 30) ) (w = ((pcCellView~>parameters)~>w)) if(!w then (w = 5.0) ) if(!floatp(w) then (w = 5.0) ) (gap1 = ((pcCellView~>parameters)~>gap1)) if(gap1 then (gap1 = 5.0) ) if(!floatp(gap1) then (gap1 = 5.0) ) (gap2 = ((pcCellView~>parameters)~>gap2)) if(!gap2 then (gap2 = 5.0) ) if(!floatp(gap2) then (gap2 = 5.0) ) let((grid ri ro hgap1 hgap2 h1 h2 pi points1 points2 ) (grid = 0.005) (pi = 3.141593) (ri = (grid * round((di / (2 * grid))))) (ro = (grid * round(((ri + w) / grid)))) (h1 = (grid * round(((ri * tan((pi / 8))) / grid)))) (h2 = (grid * round((((ri + w) * tan((pi / 8))) / grid)))) (hgap1 = (grid * round((gap1 / (2 * grid))))) (hgap2 = (grid * round((gap2 / (2 * grid))))) (points1 = tconc(nil list((- hgap1) (- ro) ) )) tconc(points1 list((- h2) (- ro) ) ) tconc(points1 list((- ro) (- h2) ) ) tconc(points1 list((- ro) h2) ) tconc(points1 list((- h2) ro) ) tconc(points1 list((- hgap2) ro) ) tconc(points1 list((- hgap2) ri) ) tconc(points1 list((- h1) ri) ) tconc(points1 list((- ri) h1) ) tconc(points1 list((- ri) (- h1) ) ) tconc(points1 list((- h1) (- ri) ) ) tconc(points1 list((- hgap1) (- ri) ) ) (points1 = car(points1)) (points2 = tconc(nil list(hgap1 (- ro) ) )) tconc(points2 list(h2 (- ro) ) ) tconc(points2 list(ro (- h2) ) ) tconc(points2 list(ro h2) ) tconc(points2 list(h2 ro) ) tconc(points2 list(hgap2 ro) ) tconc(points2 list(hgap2 ri) ) tconc(points2 list(h1 ri) ) tconc(points2 list(ri h1) ) tconc(points2 list(ri (- h1) ) ) tconc(points2 list(h1 (- ri) ) ) tconc(points2 list(hgap1 (- ri) ) ) (points2 = car(points2)) (layerNumstr = sprintf(layerNum "%d" layerNum)) (lay = list(strcat("M" layerNumstr) "drawing")) rodCreatePolygon(?name "octh0" ?layer layer ?pts points1 ) rodCreatePolygon(?name "octh1" ?layer layer ?pts points2 ) rodAlign(?alignObj rodGetObj("octh0") ?alignHandle "centerLeft" ?refPoint list((- ro) ro) ) rodAlign(?alignObj rodGetObj("octh1") ?alignHandle "centerRight" ?refPoint list(ro ro) ) ) return(t) ) )

Viewing all articles
Browse latest Browse all 62928

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>