ConnectSBend
- class ipkiss3.all.ConnectSBend
Generates an SBend connection between the given port pairs.
Note: The ports passed to ConnectSBend must face each other. If the ports are not correctly oriented towards each other, this specification will fail.
- Parameters:
- connectionslist of tuple or str
A list of port tuples representing the start and end ports to be connected. Example: ConnectSBend([(“inst1:out”, “inst2:in”)]) or ConnectSBend(“inst1:out”, “inst2:in”)
- end_portstr, optional
The end port if connections is a string.
- connection_namestr, optional
A name for the connection.
- min_bend_radiusfloat, optional
The minimum bend radius for the SBend. The SBend will always try to maximize the bend based on the available space. We raise a ValueError (or generate a flyline in non-strict mode) if this minimum bend radius cannot be satisfied. The min_bend_radius is enforced, allowing for a small numerical tolerance to account for floating-point or numerical inaccuracies. Note: if you require a strictly fixed bend radius, use ConnectBend instead.
- sbend_type
i3.SBendType, default i3.SBendType.Euler The bend type to use for this SBend. Is one of the values of the i3.SBendType Enum. Can be: Cosine, Sine, Euler, Hermite, Radial
- trace_template: TraceTemplate, optional
The trace template to be used for the SBend. If not provided, uses the trace_template of the first port. If the port does not have a trace template, it uses the TechValue: PCELLS.WG.DEFAULT
- min_straightfloat, optional
The default minimum length of the straight sections at the start and end of the SBend. Acts as a fallback for start_straight and end_straight. Defaults to TECH.WG.SHORT_STRAIGHT.
- start_straightfloat, optional
The specific length of the straight section at the start port. Falls back to min_straight.
- end_straightfloat, optional
The specific length of the straight section at the end port. Falls back to min_straight.
Examples
import ipkiss3.all as i3 import si_fab.all as pdk circuit = i3.Circuit( specs=[ i3.Inst(["wg1", "wg2"], pdk.Waveguide()), i3.Place("wg1", (0.0, 0.0)), i3.Place("wg2", (100.0, 40.0)), # Use a global min_straight for both ports i3.ConnectSBend("wg1:out", "wg2:in", min_straight=10.0), ] ) circuit.Layout().visualize()
import ipkiss3.all as i3 import si_fab.all as pdk circuit = i3.Circuit( specs=[ i3.Inst(["wg1", "wg2"], pdk.Waveguide()), i3.Place("wg1", (0.0, 0.0)), i3.Place("wg2", (100.0, 40.0)), # Use specific overrides for start and end straights i3.ConnectSBend( "wg1:out", "wg2:in", start_straight=5.0, end_straight=20.0, sbend_type=i3.SBendType.Sine ), ] ) circuit.Layout().visualize()