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.