Hints, Tips and Solutions


Q: I tried to resize shapes using the DRC command and observed thin "cracks" appeared for polygons with holes (see the left shape in Figure 1). At the same time Expert's "Resize selected" command does not create such cracks (see the right shape in Figure 1). I do not want DRC resizing command to produce "cracks". How can I achieve this?

Figure 1. Undersizing of polygon with hole.


A: In Expert a polygon with hole is represented as a self-touching polygon (this is inherited from the GDSII format, in which a region may be described only by a single polygon). Therefore your case is a particular case of resizing of touching shapes. Another such case is shown in Figure 2.

Figure 2. Undersizing of abutting polygons.


From the manufacturing point of view, touching boxes from Figure 2 is a single big box, and resizing should produce a single box rather than four small boxes.

On the other hand, DRC commands contains a powerful set of operations that can be used not only for DRC checks but also for automatic generation of sophisticated geometries. For such tasks resizing with "cracks" proves to be a useful operation as well.

Therefore in your DRC scripts before resizing (and before most other DRC operations) you must ensure that the input layer is merged. Boolean operations with layers produce merged output layers. For all other layers you must explicitly apply the merge operation, see the two-line script in in Figure 2.



Q: I set up the DRC Guard with the DRC script converted from a Dracula command file for TCMS 0.25µm process supplied by foundry. I started drawing and it seems that DRC Guard does not catch any violations!

A: There is a restriction for DRC Guard: if it cannot process next piece of data in less than 1sec, then this DRC Guard step is skipped. The reason is simple: GDC Guard must not slow down editing operations. If it will take too much time, it has no sense: it would be better simply run batch check from time to time.

Most probably, your TSMC rule set contains about thousand commands for two dozens of layers. You must select 1-2 hundred of most important or most frequently violated rules to set up the DRC Guard.

The actual "capacity" of DRC Guard depends on CPU speed and the amount of geometry close to edited objects in layers that are used in the DRC Guard script. Unfortunately, there are no simple rules to estimate this.



Q: After running a DRC check I tried to save the layout and received the following message:

> The following layers will be skipped.
> See output restrictions in GDS I/O setup.
> Bad number 999, Layer'FL_Tmp'(999 , 0)
> Proceed with saving?

After that, I changed layer numbers and datatypes from 255 to 1000 on GDS I/O. Then it did not happen. Does temp Layers have any GDS numbers and datatype numbers, when it is running?

A: First of all, "FL_Tmp" is not temporary layer in Savage. Temporary layer in Savage has the name starting with '&', and it is automatically deleted after execution of DRC script.

On the other hand, 'FL_Tmp' is temporary for user, as I understand from its name. Very often you do not want to save such layers into gds file, because they are used only during DRC check. Therefore Savage automatically assigns it a large dgs number. If you want to save it, you must either change its gds number or change gds I/O setup, like you did.


Download PDF Version