Photon Design logoPhoton Design
LinkedIn Contact
PICWave

The Laser Diode, SOA, and Photonic Integrated Circuit (PIC) Simulator

PICWave

Building Block System

Create building block libraries or import them to construct large circuits.

Building Block System

A PICWave building block is a sub-circuit (a laser or MZI, for example) which can be used and re-used as an element in any other circuit. PICWave allows you to create your own libraries of building blocks, import existing building block libraries and use the building blocks therein to construct larger circuits, just as you would with PICWave's native circuit elements.

Building blocks can include native PICWave circuit elements as well as detailed passive components models imported from FIMMPROP. This allows you to create building block libraries of FIMMPROP components which can then be parameterised and used to build a tailored circuit without the need for any knowledge of FIMMPROP.

When creating a building block you can specify the way in which it is to be used by choosing for instance which parameters the user can edit, which ports/contacts are available to the user and the way it appears on the user's circuit canvas.

In summary, the building block system enables you to:

  1. Build and import design kit libraries of tested, qualified building blocks with built-in parameter checking, enabling circuit designers to build circuits quickly with much reduced scope for costly errors.
  2. Make large circuits less cumbersome by hiding away complexity within building blocks.

Designing building blocks  

Buildings blocks are created as part of a building block library, which can contain an arbitrary number of building blocks.  

Each building block may be given a set of variables which the building block user (circuit designer) will be able to edit. These can be used to parameterise the building block model e.g. the length of a section, the width of waveguide ridge etc, and can be given a range of allowed values so as to enforce design rules. You can also specify how each building block will appear in the user’s circuit, which ports will be visible, and specify version numbers to enable version control. 

Each building block in a library can be modelled using either: a circuit made from built-in elements; or a scattering matrix (S-matrix) spectrum, which can capture the detailed wavelength response of passive components. The latter may be automatically generated from an internally stored FIMMPROP component device. Both types of model can be parameterised in terms of the building block’s variables.

Using building blocks to construct circuits

When constructing a circuit in PICWave, you can import one or more building block libraries which you or a third party have made previously. The building blocks from these libraries will then appear in the toolbar of the circuit editor so you can add them to your circuit just as you would add native circuit elements.

You can set the properties of each instance of a building block in a circuit; the properties panel will list all the variables that the building block designer has made user-editable. PICWave will check that the values you enter are within the allowed ranges specified by the building block designer. 

The building block system can be used to import or create design kits: lib: libraries of qualified, standard building blocks which circuit designers can then use to construct their circuits. InP-based design kit libraries for Oclaro and FhG Heinrich Hertz Institut fabs are available.

Mask Layouts

In later versions of PICWave, building block designers will be able to define the physical layout of building blocks, thus enabling PICWave to generate the layout of circuits comprised of building blocks for mask export.

Please contact Photon Design if you are interested in this feature.