I have created a mask consisting of evenly spaced rectangles. These structures are to be fully exposed in e-beam lithography, so I need to fill them. I understand that using the layer toolbox to assign some "stipple" is only for visualization and does not actually do any filling?
Do I need to use the fill tool in Utilities? How do I use it? I keep getting an error message saying "no valid layer selected to get fill cell's bounding box from"
Please try to explain simply, as I've only recently started using Klayout :)
Comments
Hi,
are you familiar with mask layout procedures in general?
Basically, every polygon (box, path ...) is "filled" on a mask. The stipple is only provided for visualization - if multiple layers are overlapping the stipple pattern helps to distinguish them.
The "fill tool" has an entirely different scope. It is used to create dummy shapes (filled ones) in order to equalize the pattern density. The background is that certain processes (etching, CMP etc.) give better results if the average density of the pattern is similar on the mask. Hence the fill tool can be used to put dummy shapes into the empty regions so the density is increased there leading to a more uniform density pattern.
Matthias
Is there a way to use threading with the fill tool?
We have a relatively large design, and a relatively powerful PC with lots of cores that is taking a lot (more than a day) to compute the filling of a single chip of our design.
I saw something similar in a post for the DRC, you mentioned a "tiles" command, and that indeed helped to speed up our DRC.
Is there something similar for the fill tool?
Doug
Hi Doug,
yes, tiling should help. But that's not available yet as an option in the fill dialog. You can however add it through scripting and embed the algorithm inside a tiling processor.
That's not entirely trivial, specifically if you want to enable multiple cores. The fill algorithm itself isn't thread-safe yet, but you'll benefit from the tiling approach in other ways:
This approach requires that you script all the details. Here is a starting point. I hope the comments explain the various steps:
And this is the result on a sample of mine with enhanced mode (fc_origin = nil):
The white shapes are the fill cell instances created.
Regards,
Matthias
You are incredible Matthias. And you have an incredible piece of software.
It worked as a charm. Exactly what I needed.
Thanks a bunch!
Doug