Creating a new design based on a PDK¶
This tutorial demonstrates how to create a new design cell by placing cells from a library and routing waveguides.
The tutorial is based on our demonstration library (called
demolib), but the same principle can be applied to one of our
- Step 1: Start a new design
- Step 2: Instantiate cells
- Step 3: Route and generate waveguides
- Step 4: Adapt waveguide routes
Step 1: Start a new design¶
Starting point: L-Edit has been launched from Luceda Control Center. No library or design is open. Start a new design by choosing
Choose OpenAccess as the Database and enter a name and the desired path in which the new design library will be created (
Since we will base this design on a Process Design Kit (PDK), select OpenAccess attached library as Technology reference. The new design will then automatically use the selected technology.
In the next dialog box (
Fig. %s) you need to specify
lib.defs file location. This file contains information about all libraries that will be included in your design. Choose to create a new one in the default location:
Fig. %s), select the technology library of choice and set it to be the Attached Library by pressing the Set button.
At first, the list of Available technology libraries is empty. Add your PDK library using the Add button. In the Open dialog box, dive into the openaccess folder inside the IPKISS-based PDK
you have (typically provided by the foundries), and select the library folder there (
After pressing OK, you should see two open libraries in the Libraries panel: the newly created design and the PDK (see
Fig. %s), and the design layers in the Layer Palette panel (
Step 2: Instantiate cells¶
Now, we will create a new cell in our (still empty) design by instantiating child cells from the PDK library. First, in the Libraries panel, make sure to select the new design (PDKBasedDesign in this example). The list of cells should still be empty. Right-click in the (empty) list of cells and select New… from the context menu, or simply press n, to create a new cell.
In the Create New Cell dialog, enter a name for the new cell (
Now select the PDK library from the Libraries panel and drag-and-drop the desired cells into the layout window. There are two types of cells: static cells and parametric cells (pCells).
When we drag-and-drop a static cell into the new cell, a new instance of that static cell is created and their layout are immediately visualized.
In case of a parametric cell, a parameter window will pop up (
Fig. %s). When user changes a parameter from its default, it turns from blue to black color.
In the example in
Fig. %s, four cells were instantiated in the new design (FiberCoupler1, DropRing, MziMod1 and PhotoDetector1).
Step 3: Route and generate waveguides¶
After the instances of library cells are placed, we can start to wire them up with waveguides. First, some setup is required:
- The wire width should be set to a non-zero value in order to conveniently change the waveguide routes afterwards. Select the Wire Width drop-down from the toolbar (
Fig. %s) and set the value, e.g. 1.0 um.
- While routing waveguides, wires should snap to our cell’s pins. Select Enable Object Snap from the toolbar and then select Object Snap Pin (
Now, select a trace layer from Layer Palette. This is an assisting layer which has been set up in the IPKISS technology that helps routing waveguide (Fig. %s). For more information on how to set up these layers, please check the following section from the technology guide: Routing settings.
Each trace layer corresponds to a specific type of waveguide which will be used by default.
Then, select the All-Angle Wire tool from the toolbar (Fig. %s).
We’re now ready to draw the routes of the waveguide and generate its layouts.
Using the All-Angle Wire tool, we draw wires on the trace layer from one pin to another (
Fig. %s). Wires are connected to the pins easily now that Object Snap option is on.
You can now either draw a specific route, or just draw a straight line.
- In case you draw a straight line, IPKISS will convert the route (if needed) into a manhattan route before generating the waveguide.
- In case you draw a specific route (placing control points by mouse-clicking), IPKISS will use that route to generate the waveguide.
In our example design, after drawing 3 routes (2 straight routes and 1 route with specified control points), we have a design looks like in
Fig. %s) or press Ctrl-Shift-w.
Waveguide layout is generated with the specified waveguide width and necessary roundings at bends (
Step 4: Adapt waveguide routes¶
The generated waveguides are not ideal yet since two waveguides are crossing and some routes are not yet optimized. There are two ways to adapt a route and waveguide:
- Drag its trace (control shape) to the desired location. See
Fig. %s. Select the control shape on the trace layer with mouse, drag it to the desired location and release. This method is convenient for manhattan routes (because L-Edit understands manhattan wires and assists in re-drawing properly).
- Edit its control shape manually. See
Fig. %s. Select the control shape on the trace layer, and press Ctrl-e. The Edit Object(s) dialog will pop up. Adapt the coordinates manually and press OK. This method is used when accurate control of the waveguide routing is needed.
In either case, press Ctrl-Shift-w to update one waveguide or all waveguides at once.
After modifying the waveguide route by dragging the trace between the fiber coupler and the ring, and by editing the control shape between the ring and the modulator, our example design looks like in
Make sure to save the design! You can always continue the design later on: changing the location of cell instances, adapting routes and waveguides, and so forth.