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:
SlabTemplate
: to define the slab of the star couplersSingleAperture
: an apertureMultiAperture
: an array of apertures used in the star couplersStarCoupler
: combines the MultiAperture with the free propagation region
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 Real, number 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