RectangularExpandedAWG

class awg_designer.all.RectangularExpandedAWG

Rectangular AWG component which expands waveguides in the straight sections. Consists of two star couplers and a waveguide bundle (the latter is automatically calculated). The straight, widened sections use the straight_trace_template template. The narrow sections (bends, short straight parts at the start and end) use the trace_template template.

To build an AWG, you need the following subcells:

A full build algorithm is provided as example in awg_designer.sample_designs.awg.demux1xM.build_awg_1xM().

Parameters:
star_coupler_out: PCell and _Coupler, required

Output star coupler

star_coupler_in: PCell and _Coupler, required

Input star coupler

straight_trace_template: PCell and _TraceTemplate

template for the straight sections.

trace_template: PCell and _TraceTemplate

template for the start, end and bend sections.

star_coupler_out_ports: List with type restriction, allowed types: <class ‘str’>

list (in the right order) of the output star coupler port names that are mapped onto ‘out’ ports

star_coupler_in_ports: List with type restriction, allowed types: <class ‘str’>

list (in the right order) of the input star coupler port names that are mapped onto ‘in’ ports

star_coupler_out_arm_ports: List with type restriction, allowed types: <class ‘str’>

list (in the right order) of the output star coupler port names that are connected to the array

star_coupler_in_arm_ports: List with type restriction, allowed types: <class ‘str’>

list (in the right order) of the input star coupler port names that are connected to the array

links: list and List with type restriction, allowed types: [<class ‘collections.abc.Sequence’>]

list of tuples connecting the instances. Format is [(‘inst1:term1’,’inst2:term2’), …]

external_port_names: str

Map of the free instance terms/ports to the names of external terms/ports.Format is a dict {‘inst:term’ : ‘new_term_name’}.If a term/port is not listed, the format instname_portname will be used

child_cells:

dict to create the instances of the child cells. Format is {‘inst_name1’: PCell}

name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters

The unique name of the pcell

Other Parameters:
waveguide_bundle: PCell and WaveguideBundle, TemplatedWaveguideBundle, locked

array of waveguides

Views

class Layout
Parameters:
area_layer_on: ( bool, bool_ or int )

if true, the area layer ia activated on the waveguides

extra_length: float and Real, number and number >= 0

extra length in all the arms

flatten_waveguides: ( bool, bool_ or int )

If true, all waveguides will be flattened one level to reduce hierarchy

min_straight_section_length: float and Real, number and number >= 0

minimum_length of the straight sections.

taper_length: ( float and number > 0 ), *None allowed*

length of the taper between the regular waveguide and the expanded waveguide. Ignored if taper_lengths is set. If None, the default taper lengths for each transition are chosen for each transition.

delay_length: float

Delay length between for the individual arms.

waveguide_bundle_transformation: GenericNoDistortTransform
child_transformations:

dictionary with the transformation of each child instance.

netlist_view: NetlistView

Netlist view in the same cell on which this Layout is based. Normally no need to manually override.

min_straight: float and Real, number and number >= 0

The minimum length of any straight sections in the route

star_coupler_separation: float

distance between the outer edges of the star coupler

star_coupler_out_transformation: GenericNoDistortTransform
star_coupler_in_transformation: GenericNoDistortTransform
flyline_width: float and number > 0

line width of the flylines

flyline_layer: ( __Layer__ ), *None allowed*

layer to draw flylines of physically unconnected links

view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.

The name of the view

start_straight: float and Real, number and number >= 0

The length of the straight start section of the route

end_straight: float and Real, number and number >= 0

The length of the straight end section of the route

manhattan: ( bool, bool_ or int )

Adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles.

angle_step: float and number > 0

Angle step for rounding.

rounding_algorithm: *None allowed*

rounding algorithm used to generate the bends. Can be circular, spline, …

bend_radius: float and number > 0

Bend radius for the auto-generated bends.

Other Parameters:
min_length_for_taper: float and Real, number and number >= 0, locked

minimum length needed to use tapering