Using Expert’s Pcell Feature to Generate Complex Shaped Layers


One of the strengths of Expert is to generate complex shaped layers such as spiral inductors, parabolic waveguides, etc. For the case of the spiral inductor, it has already been well-documented in CELEBRITY example package as “spiral.eld”, from which interested users may learn or use.

In some specific applications, e.g. photonics design, designers may need to generate parabolic-shaped layers such as waveguides. For example, a customer is designing a layer as seen in Figure 1.

Figure 1. Parabolic shaped layer to be drawn.

Layers like this may appear complicated but by using Expert’s Pcell feature, they can be implemented with ease. The idea is based on using many small rectangles to approximate the actual shape as seen in Figure 2. By choosing a proper resolution, the generated layer will be much closer to the desired shape. The error will be so small that it can be neglected under current process technologies.

Figure 2. Rectangular shaped approximation, for demonstration, actual resolution should be higher to minimize deviation.

Knowing L = 3um and d = 0.15_m, from z = L - 16.6•(x-0.5)2 we have

For any rectangle, this equation can be used to estimate its height, with respect to the center’s z-coordinate.

The Pcell Xi-Script for the case of L = 3µm will be like Figure 3.

Figure 3. Text input of Xi script panel.


In this Xi script, we define a parameter “height” for each rectangle. The parameter “i” is the loop parameter. In the “if…then…” statement, “100” is the iteration time, i.e. the number of rectangular shapes. In this example, since L=3um, each rectangle will have a width of 0.03um. To minimize deviation, users can set the iteration time to be larger. By substituting the z value, the height for each can be written as:

After the “height” of the rectangle is found, we can proceed to draw the rectangular shape for this “i” value with the “box” statement, where each () contains the following parameters:

(0.03 * i) (-height): Coordinates of the bottom-left corner.
0.03 (2 * height): Width and height of the box.

Repeat for all 100 shapes until the loop is finished. This operation is quite similar to the “for” loop in C language.

After running the Xi script, Expert will generate a layer as described, as shown in Figure 4.

Figure 4. Generated layer.

A concern about the file size then arises. The layer generated using the above method produces a large file size, especially when the layer size and iteration time are large. For certain designs, there might be hundreds of these layers needed. To overcome this problem, we need to do the following:

  1. Export the current project into gds format from Expert =>File =>Export =>, select output format into GDS => Save.
  2. Re-open/import that gds format and edit from Expert => File => Import, select all small rectangles and merge all from Expert => Tools => Merge selected.
  3. Go to library setup from Expert => Library => Setup, add and activate this project we just edited as one of the libraries.
  4. In layout where these layers need to be added, use “add instance” features, and add layers.

With the above steps, the file size is reduced greatly. Take for example of a layer with L=1000um and iteration time=10000, in Step 1, the unmerged *.eld file size is 987KB. In Step 2 the merged *.eld file has the size of 393KB. While in the layout where this layer has been added by the “add instance” feature, the file size has reduced to 81KB.

Pcell is indeed a very useful feature of Expert. Through these simple procedures, the complex layer such as parabolic shapes with varying lengths can be generated without suffering from inaccuracy or big file sizes. By applying this feature, the customer will reduce both effort and cost expended. Most customers using other layout editors will have to use a separate photonic tool to generate those layers, export them to GDSII, before importing them into the layout editor. One does not need to switch between various tools when using Expert.

Download pdf version of this article