RectangularAWGNxM

class awg_designer.sample_designs.awg.demux1xM.RectangularAWGNxM

Rectangular AWG with N inputs, M outputs and N_arms.

Parameters:
aperture_out: PCell, required

Aperture cell used for the output

aperture_arms: PCell, required

Aperture cell used for grating arms

aperture_in: PCell, required

Aperture cell used for the input

N_arms: int and number > 0, required

Number of grating arms

n_dummy_apertures: int and number >= 0

Number of dummy apertures

multiaperture_class:

Type of multi-aperture to be used

n_outputs: int and number > 0

Number of output channels.

n_inputs: int and number > 0

Number of input channels.

trace_template: PCell and _WaveguideTemplate
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

star_coupler_out: PCell, locked

Output star coupler, managed by the AWG pcell

star_coupler_in: PCell, locked

Input star coupler, managed by the AWG pcell

Examples

>>> # This design function will give equidistant channels in the frequency domain
>>> layout_params = filters.get_layout_params_1xM_demux_ghz(
>>>     aperture_in=ap_rib,
>>>     aperture_arms=ap_rib,
>>>     aperture_out=ap_rib,
>>>     waveguide_template=wg_tmpl,
>>>     output_spacing=4.0, M=M,
>>>     center_frequency=center_frequency,
>>>     channel_spacing=400,
>>>     verbose=True)
>>>
>>> print(layout_params)
>>>
>>> from awg_designer.sample_designs.awg.demux1xM import RectangularAWGNxM
>>> awg = RectangularAWGNxM(n_inputs=1,
>>>                         n_outputs=M,
>>>                         N_arms=layout_params.pop('N_arms'),
>>>                         aperture_in=ap_rib,
>>>                         aperture_arms=ap_rib,
>>>                         aperture_out=ap_rib,
>>>                         trace_template=wg_tmpl,
>>>                         multiaperture_class=filters.MultiApertureShallowMerged,
>>>                         n_dummy_apertures=2,
>>>                         )
>>>
>>> lay = awg.Layout(bend_radius=40, **layout_params)
>>> lay.write_gdsii('my_awg.gds')

Views

class Layout
Parameters:
mounting_out: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters and List with value restriction, allowed values: [‘rowland’, ‘circular’]

Mounting configuration of the output star coupler, either ‘rowland’ or ‘circular’

mounting_in: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters and List with value restriction, allowed values: [‘rowland’, ‘circular’]

Mounting configuration of the input star coupler, either ‘rowland’ or ‘circular’

angles_out:

Angles at which to position the output apertures. See design functions to calculate proper values.

angles_in:

Angles at which to position the input apertures. See design functions to calculate proper values.

angles_arms_out:

Angles at which to position the grating apertures for the output star coupler.

angles_arms_in:

Angles at which to position the grating apertures for the input star coupler.

R_input: float and number > 0

Radius of the gratings of the input star coupler. By default equal to R_grating

R_grating: float and number > 0

Radius of the grating of the output star coupler.

delay_length: float

Delay length between for the individual arms.

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

waveguide_bundle_transformation: GenericNoDistortTransform
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

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.

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.