Home > Community > Forums > Custom IC SKILL > dbLayerSize seems to be faulty - is there a work-around?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 dbLayerSize seems to be faulty - is there a work-around? 

Last post Mon, Feb 18 2013 10:24 AM by Andrew Beckett. 5 replies.
Started by thomas1000 15 Feb 2013 05:06 PM. Topic has 5 replies and 1348 views
Page 1 of 1 (6 items)
Sort Posts:
  • Fri, Feb 15 2013 5:06 PM

    dbLayerSize seems to be faulty - is there a work-around? Reply

    I have a design with an object on a single layer with a fairly complex boundary (The object has 602 points in its outline).  I am using the dbLayerSize(...) routine to size the layer and place the result in a different layer.  In this instance I am resizing by 0 (so that should help eliminate resizing issue possibilities) but in other cases the amount could be anything and I am seeing the same issue with non-zero values.  dbLayerSize normally works just fine but for this particular object the result is an object with diagonal gaps across it.  Most of the outline is correct but the object has been divided into sections separated by four gaps of differing width with a 45° slope.  Since the object is on a keepout layer the diagonal gaps are a problem. I tried the regular menu "size" command on the object and it works fine.  I even tried copying the object to a different cell and running dbLayerSize with the same result.

    Are there known issues like this with dbLayerSize?  Is there a work-around?  

    None of the vertices of the object lie on top of an adjacent point.  484 are off-grid but that shouldn't matter.  One thing that is very bizarre about this problem is that it doesn't just affect this object.  Nearby objects on the same layer included in the LPPObjects list (see call below) which are being sized at the same time  are chopped up along the same diagonals even though they are not related in any other way. That suggests that there must be some internal variables common to both objects that are getting messed up.  This looks like a Cadence SKILL routine bug.

    If you need it, I can provide the list of points.

    The call is being made as follows:  dbLayerSize(Cv LPPTo LPPObjects SizeBy)

    Filed under:
    • Post Points: 20
  • Sat, Feb 16 2013 5:04 AM

    Re: dbLayerSize seems to be faulty - is there a work-around? Reply

    I can't quite see why this would happen - I initially wondered whether it was an old problem where the function used to snap to grid in a range of versions (but this was fixed some time ago - see article 11481956.

    Please provide the list of points, and the subversion you're using (the output of getVersion(t)).

    Thanks,

    Andrew.

    • Post Points: 20
  • Mon, Feb 18 2013 9:31 AM

    Re: dbLayerSize seems to be faulty - is there a work-around? Reply
    Thanks Andrew,

     sub-version 5.10.41.500.6.142

    I haven't yet tried to just create a polygon with this list to see if a polygon created from the list produces the same error, which would indicate a database issue rather than a problem with the polygon points or complexity.  I hope this can be solved because it is difficult to think about how I would solve the problem in general.

    List of points (tab separated):

    697.5,796.355    689.5,804.355    689.5,823            670.855,823       663.6,830.255    663.6,850.6               607.4,850.6        607.4,832            603.145,832       594.145,823       583.5,823               583.5,812.355    568,796.855       568,595               553.6,595            553.6,595.1               540.755,595.1    535.5,600.355    535.5,615            520.855,615       511.855,624               458.145,624       449.145,615       427.5,615            427.5,605            411.63,605               411.63,605.822  411.711,605.874              412.171,606.18  412.663,606.521               413.163,606.881              413.658,607.251              414.133,607.619              414.564,607.966               414.99,608.319  415.493,608.75  415.943,609.155              416.387,609.564               416.756,609.92  434.319,627.065              434.696,627.439              435.115,627.873               435.491,628.273              435.896,628.72  436.292,629.173              436.719,629.678               437.095,630.145              437.436,630.579              437.806,631.068              438.195,631.602               438.546,632.108              438.854,632.564              439.154,633.026              439.482,633.547               439.834,634.135              440.087,634.576              440.389,635.115              440.707,635.722               440.953,636.207              441.222,636.761              441.452,637.258              441.69,637.788               441.967,638.446              442.182,638.987              442.379,639.504              442.601,640.12               442.787,640.671              442.958,641.201              443.147,641.827              443.324,642.459               443.464,642.999              443.602,643.56  443.724,644.105              443.853,644.713               443.971,645.351              444.066,645.904              444.16,646.52    444.245,647.161               444.308,647.715              444.371,648.339              444.418,648.966              444.452,649.515               444.477,650.069              444.497,650.7    444.5,651.249    444.5,707.645    448.5,703.645               448.5,681            471.145,681       480.145,672       566.65,672          566.65,664.15    568,664.15               568,796.855       567.5,796.355    567.5,771.355    562.5,776.355    562.5,794               544.855,794       535.855,803       475.145,803       466.145,794       448.5,794               448.5,776.355    444.5,772.355    444.5,851.4        444.6,851.4        444.6,857.2        447,857.2               447,887.349       447.612,887.608              450.036,888.739              452.42,889.954               454.747,891.244              457.04,892.621  459.281,894.077              461.476,895.614               463.599,897.214              465.678,898.898              467.689,900.645              469.638,902.462               471.541,904.366              473.355,906.312              475.095,908.315              476.787,910.4               478.39,912.53    479.924,914.72  481.378,916.958              482.755,919.252               484.047,921.581              485.263,923.968              486.391,926.388              487.431,928.838               488.389,931.33  489.263,933.872              490.04,936.413  490.728,938.98  491.332,941.598               491.842,944.224              492.258,946.841              492.586,949.517              492.816,952.155               492.956,954.832              493.004,957.5    492.956,960.169              492.816,962.846               492.586,965.484              492.258,968.161              491.842,970.777              491.332,973.402               490.728,976.02  490.04,978.585  489.263,981.129              488.389,983.67  487.432,986.161               486.391,988.613              485.263,991.033              484.047,993.42  482.754,995.752               481.376,998.045              479.924,1000.28              478.39,1002.47  476.787,1004.6               475.098,1006.682            473.355,1008.689            471.538,1010.638            469.638,1012.538               467.689,1014.355            465.682,1016.098            463.6,1017.787  461.47,1019.39               459.28,1020.924              457.045,1022.376            454.752,1023.754            454.308,1024               378.694,1024     378.252,1023.755            375.958,1022.378            373.717,1020.922               371.531,1019.39              369.404,1017.789            367.315,1016.095            365.312,1014.355               363.366,1012.541            361.462,1010.638            359.645,1008.689            357.898,1006.678               356.215,1004.6  354.613,1002.475            353.076,1000.28              351.621,998.04               350.244,995.747              348.954,993.42  347.74,991.038  346.608,988.613               345.567,986.155              344.612,983.67  343.738,981.129              342.961,978.585               342.275,976.027              341.669,973.409              341.157,970.771              340.742,968.154               340.415,965.491              340.184,962.846              340.045,960.162              339.997,957.5               340.045,954.839              340.184,952.155              340.415,949.51  340.742,946.848               341.156,944.231              341.669,941.591              342.275,938.973              342.961,936.413               343.738,933.872              344.612,931.33  345.568,928.844              346.608,926.388               347.74,923.963  348.954,921.581              350.243,919.257              351.619,916.963               353.076,914.72  354.613,912.525              356.215,910.4    357.901,908.319               359.645,906.312              361.459,904.366              363.366,902.459              365.312,900.645               367.319,898.901              369.405,897.211              371.525,895.614              373.716,894.079               375.963,892.619              378.257,891.243              380.581,889.954              382.963,888.74               385.385,887.61  386,887.349       386,857.2            388.4,857.2        388.4,851.4        388.5,851.4               388.5,690.292    388.41,690.343  387.875,690.634              387.286,690.941               386.67,691.247  386.118,691.509              385.516,691.784              384.904,692.047               384.344,692.28  383.724,692.523              383.124,692.747              382.516,692.962               381.907,693.165              381.275,693.364              380.752,693.517              310,713.732               310,719.4            310.6,719.4        310.6,771            356.5,771            356.5,877            250.5,877               250.5,771            251.4,771            251.4,719.4        252,719.4            252,697.772               252.005,697.263              252.02,696.635  252.049,695.953              252.092,695.267               252.143,694.634              252.203,694.013              252.275,693.384              252.356,692.76               252.459,692.075              252.566,691.444              252.678,690.835              252.807,690.204               252.945,689.577              253.092,688.964              253.266,688.286              253.441,687.666               253.606,687.103              253.817,686.435              254.028,685.807              254.231,685.235               254.455,684.633              254.691,684.036              254.944,683.422              255.21,682.815               255.463,682.26  255.748,681.662              256.057,681.043              256.339,680.505               256.63,679.967  256.944,679.413              257.293,678.816              257.656,678.23               257.956,677.759              258.325,677.197              258.717,676.631              259.089,676.11               259.441,675.636              259.828,675.128              260.273,674.57  260.702,674.051               261.118,673.568              261.481,673.159              261.934,672.66  262.429,672.142               262.842,671.723              263.291,671.279              263.779,670.817              264.278,670.36               264.721,669.971              265.199,669.559              265.756,669.102              266.248,668.712               266.756,668.322              267.269,667.944              267.819,667.551              268.347,667.192               268.88,666.838  269.394,666.513              269.937,666.177              270.559,665.813               271.09,665.514  271.625,665.223              272.214,664.916              272.83,664.61               273.382,664.348              273.984,664.073              274.596,663.81  275.156,663.577               275.776,663.334              276.376,663.11  276.984,662.895              277.593,662.692               278.225,662.493              278.748,662.34  346.32,643.034  346.32,600.225  350.5,600.225               350.5,427.35      345.65,427.35    345.65,402.205  345.5,402.355    345.5,415               332.855,415       323.855,424       295.5,424            295.5,284.185    292.2,284.185    292.2,283               238.1,283            238.1,316.5        242,316.5            242,335.9            259.245,335.9               263.5,331.645    263.5,329            266.145,329       275.145,320       295.5,320            295.5,424               281.145,424       272.145,415       263.5,415            263.5,406.355    257.245,400.1    242,400.1               242,422.5            153.1,422.5        153.1,475.6        153,475.6            153,496               136,496               136,328.85          135.5,328.85      135.5,339.645    136,340.145       136,496               99,496               99,482   0,482     0,376     47.145,376          35.5,364.355      35.5,272.645      44.5,263.645               44.5,258              50.145,258          59.145,249          113.855,249       122.855,258       126.5,258               126.5,261.645    133.9,269.045    133.9,263.15      136.5,263.15      136.5,190.645               145.5,181.645    145.5,163            164.145,163       173.145,154       223.855,154               232.855,163       251.5,163            251.5,181.645    260.5,190.645    260.5,229            291,229               291,126.278       290.968,126.263              288.581,125.047              286.252,123.755               283.958,122.378              281.717,120.922              279.531,119.39  277.404,117.789               275.315,116.095              273.312,114.355              271.366,112.541              269.462,110.638               267.645,108.689              265.898,106.678              264.215,104.6    262.613,102.475               261.076,100.28  259.621,98.04    258.244,95.747  256.954,93.42    255.74,91.038               254.608,88.613  253.567,86.155  252.612,83.67    251.738,81.129  250.961,78.585               250.275,76.027  249.669,73.409  249.157,70.771  248.742,68.154  248.415,65.491               248.184,62.846  248.045,60.162  247.997,57.5      248.045,54.839  248.184,52.155               248.415,49.51    248.742,46.848  249.156,44.231  249.669,41.591  250.275,38.973               250.961,36.413  251.738,33.872  252.612,31.33    253.568,28.844  254.608,26.388               255.74,23.963    256.954,21.581  258.243,19.257  259.619,16.963  261.076,14.72               262.613,12.525  264.215,10.4      265.901,8.319    267.645,6.312    269.459,4.366               271.366,2.459    273.312,0.645    274.054,0            374.947,0            375.689,0.645               377.638,2.462    379.541,4.366    381.355,6.312    383.095,8.315    384.787,10.4               386.39,12.53      387.924,14.72    389.378,16.958  390.755,19.252  392.047,21.581               393.263,23.968  394.391,26.388  395.431,28.838  396.389,31.33    397.263,33.872               398.04,36.413    398.728,38.98    399.332,41.598  399.842,44.224  400.258,46.841               400.586,49.517  400.816,52.155  400.956,54.832  401.004,57.5      400.956,60.169               400.816,62.846  400.586,65.484  400.258,68.161  399.842,70.777  399.332,73.402               398.728,76.02    398.04,78.585    397.263,81.129  396.389,83.67    395.432,86.161               394.391,88.613  393.263,91.033  392.047,93.42    390.754,95.752  389.376,98.045               387.924,100.28  386.39,102.47    384.787,104.6    383.098,106.682              381.355,108.689               379.538,110.638              377.638,112.538              375.689,114.355              373.682,116.098               371.6,117.787    369.47,119.39    367.28,120.924  365.045,122.376              362.752,123.754               360.42,125.047  358.03,126.265  358,126.279       358,206               390.5,206               390.5,171.645    399.5,162.645    399.5,150            412.145,150       412.4,149.745    412.4,140.9               468.6,140.9        468.6,141            484.855,141       493.855,150       506.5,150               506.5,162.645    515.5,171.645    515.5,206            521.5,206            521.5,110.5        421.5,110.5               421.5,4.5             527.5,4.5             527.5,104.5        627.5,104.5        627.5,210.5        557.5,210.5               557.5,262            506.5,262            506.5,266            399.5,266            399.5,262               375.828,262       400.858,305.234              403.803,311.534              405.782,318.9    406.6,318.9               406.6,325.2        411.5,325.2        411.5,376.4        411.35,376.4      411.35,427.35               406.5,427.35      406.5,551            418.5,551            418.5,542.645    427.5,533.645    427.5,515               446.145,515       455.145,506       507.855,506       516.855,515       535.5,515               535.5,533.645    540.755,538.9    553.6,538.9        553.6,539            607.5,539            607.5,583               674,583               674,689               629.1,689            629.1,712            666.855,712               673.855,719       689.5,719            689.5,734.645    697.5,742.645                  
    Filed under:
    • Post Points: 20
  • Mon, Feb 18 2013 9:57 AM

    Re: dbLayerSize seems to be faulty - is there a work-around? Reply

    It does appear to be a peculiar bug which only happens if you use dbLayerSize with 0.0 as the size. It doesn't happen with -0.001 or 0.001, only with 0.0 itself. I get lots of warnings:

     *WARNING* Coordinate            -nan is under the min -2147483647 and -2147483647 is used

    In the CIW. You could just use:

    dbLayerOr(cv "Metal3" list(shape) nil) 

    rather than:

    dbLayerSize(cv "Metal3" list(shape) 0.0)

    if you're trying to size by exactly zero. Yes, it fractures into a number of shapes (5 in my case) but that doesn't matter.

    You could also use the leLayerSize function (unless you're hoping to do this in a pcell, because le functions are not allowed in pcells):

       leLayerSize(cv list("Metal2" "drawing") 0.0 list("Metal3" "drawing"))

    This will size all shapes on a particular layer and output them on another. This results in a single shape in this case.

    You could also use leSizeShape - but that doesn't do anything if you have a size increase of 0.0

    I also tried the dbLayerSize with 0.0 as the size in IC615, and it works fine there.

    So it looks like a particular odd bug that's in IC5141 alone, and is something specific to how dbLayerSize interfaces to the underlying sizing/layer processing engine (it's ultimately the same code underneath that's used by leLayerSize and dbLayerSize, but they're called in different ways).

    Regards,

    Andrew.

    • Post Points: 20
  • Mon, Feb 18 2013 10:21 AM

    Re: dbLayerSize seems to be faulty - is there a work-around? Reply

    Yes, I was getting all of those nan warnings as well and suspected that it was being caused by dbLayerSize but had not definitely pinned that down.

    Thanks for your quick response on this - I feel a lot better knowing that there is a solution.  I am not creating a PCell in this case.  If I were I would just write my own size routine but, having done it before, they are not as easy to write as you would think on the surface.

     

    Filed under:
    • Post Points: 20
  • Mon, Feb 18 2013 10:24 AM

    Re: dbLayerSize seems to be faulty - is there a work-around? Reply

    Although if you were creating a pcell, you could just use dbLayerOr or even dbCopyFig to copy across to the new layer. It's only an issue if the size is 0.0 (so in other words you're not actually sizing it) - any other size seems fine. So there would be no need to write your own sizing algorithm even then.

    Regards,

    Andrew.

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by thomas1000 at 15 Feb 2013 05:06 PM. Topic has 5 replies.