piel.models.physical.photonic.via_stack#
Attributes#
Functions#
|
Rectangular via array stack. |
|
Circular via array stack. |
|
Returns False if angle is outside the |
|
Rectangular via array stack, with optimized dimension for vias. |
|
Given a target total inclusion size, returns an optimized dimension for the via. |
|
Module Contents#
- via_stack(size=(11.0, 11.0), layers: gdsfactory.typings.LayerSpecs = ('M1', 'M2', 'M3'), layer_offsets: gdsfactory.typings.Floats | None = None, vias: Tuple[gdsfactory.typings.ComponentSpec | None, Ellipsis] | None = (via1, via2, None), layer_port: gdsfactory.typings.LayerSpec | None = None, correct_size: bool = True) gdsfactory.component.Component[source]#
Rectangular via array stack.
You can use it to connect different metal layers or metals to silicon. You can use the naming convention via_stack_layerSource_layerDestination contains 4 connection (e1, e2, e3, e4)
also know as Via array http://www.vlsi-expert.com/2017/12/vias.html
spacing = via.info[‘spacing’] enclosure = via.info[‘enclosure’]
- Parameters:
size – of the layers.
layers – layers on which to draw rectangles.
layer_offsets – Optional offsets for each layer with respect to size. positive grows, negative shrinks the size.
vias – vias to use to fill the rectangles.
layer_port – if None assumes port is on the last layer.
correct_size – if True, if the specified dimensions are too small it increases them to the minimum possible to fit a via.
- via_stack_circular(radius: float = 10.0, angular_extent: float = 45, center_angle: float = 0, width: float = 5.0, layers: gdsfactory.typings.LayerSpecs = ('M1', 'M2', 'M3'), vias: Tuple[gdsfactory.typings.ComponentSpec | None, Ellipsis] = (via1, via2), layer_port: gdsfactory.typings.LayerSpec | None = None) gdsfactory.component.Component[source]#
Circular via array stack.
FIXME! does not work.
Constructs a circular via array stack. It does so by stacking rectangular via stacks offset by a small amount along the specified circumference.
- Parameters:
radius – of the via stack (center).
angular_extent – of the via stack.
center_angle – of the via stack.
width – of the via stack.
layers – layers to draw
vias – vias to use to fill the rectangles.
layer_port – if None assumes port is on the last layer.
- _smaller_angle(angle, angle1, angle2)[source]#
- Returns False if angle is outside the
bounds of the arc angle defined between angle 1 and angle2.
But it does so assuming that angle1 and angle2 are between [-pi, pi] and that we are trying to fill an arc
- via_stack_from_rules(size: gdsfactory.typings.Float2 = (1.2, 1.2), layers: gdsfactory.typings.LayerSpecs = ('M1', 'M2', 'M3'), layer_offsets: Tuple[float, Ellipsis] | None = None, vias: Tuple[gdsfactory.typings.ComponentSpec | None, Ellipsis] | None = (via1, via2), via_min_size: Tuple[gdsfactory.typings.Float2, Ellipsis] = ((0.2, 0.2), (0.2, 0.2)), via_min_gap: Tuple[gdsfactory.typings.Float2, Ellipsis] = ((0.1, 0.1), (0.1, 0.1)), via_min_enclosure: gdsfactory.typings.Float2 = (0.15, 0.25), layer_port: gdsfactory.typings.LayerSpec | None = None) gdsfactory.component.Component[source]#
Rectangular via array stack, with optimized dimension for vias.
Uses inclusion, minimum width, and minimum spacing rules to place the maximum number of individual vias, each with maximum via area.
- Parameters:
size – of the layers, len(size).
layers – layers on which to draw rectangles.
layer_offsets – Optional offsets for each layer with respect to size. positive grows, negative shrinks the size.
vias – list of base via components to modify.
via_min_size – via minimum x, y dimensions.
via_min_gap – via minimum x, y distances.
via_min_enclosure – via minimum inclusion into connecting layers.
layer_port – if None assumes port is on the last layer.
- optimized_via(base_via: gdsfactory.typings.ComponentSpec = 'VIAC', size: Tuple[float, float] = (11.0, 11.0), min_via_size: Tuple[float, float] = (0.3, 0.3), min_via_gap: Tuple[float, float] = (0.1, 0.1), min_via_enclosure: float = 0.2) gdsfactory.component.Component[source]#
Given a target total inclusion size, returns an optimized dimension for the via.
Uses inclusion, minimum width, and minimum spacing rules to place the maximum number of individual vias, with maximum via area.
- Parameters:
base_via – to modify.
size – of the target enclosing medium.
min_via_size – minimum size the vias can take.
min_via_gap – minimum distance between vias.
min_via_enclosure – minimum distance between edge of enclosing medium and nearest via edge.
- via_stack_m1_m3#
- via_stack_slab_m3#
- via_stack_slab_m2#
- via_stack_npp_m1#
- via_stack_slab_npp_m3#
- c#