H

class ipkiss3.all.H

Horizontal control point class. Description of where a route should be horizontal.

See also the API reference on place & route: Horizontal and Vertical control lines.

Parameters:
y: float, SymbolicValue, Symbol

Y-value at which the route should be horizontal.

relative_to: str or Symbol or tuple of float, Optional

Reference to an instance, port, or a coordinate, relative to which this control point is defined. This cannot be combined with a symbolic xy. See Symbols for more information.

Examples

>>> # Connect inst1, port out1 to inst2, port in1,
>>> # and the route has to go through a horizontal at y=10, then a vertical at x=50
>>> i3.ConnectManhattan('inst1:out1', 'inst2:in1', control_points=[i3.H(10), i3.V(50)])
>>>
>>> # Now the route has to go horizontally 10 um to the north of the start point
>>> i3.ConnectManhattan('inst1:out1', 'inst2:in1', control_points=[i3.H(i3.START + 10)])
>>>
>>> # Possible symbols
>>> i3.H(i3.START + 10)
>>> i3.H(i3.END - 10)
>>> i3.H(i3.PREV + 10)
import si_fab.all as pdk
import ipkiss3.all as i3
import matplotlib.pyplot as plt

gc = pdk.FC_TE_1550()
circuit = i3.Circuit(
    insts={"gc1": gc, "gc2": gc},
    specs=[
        i3.Place("gc1", position=(-100, 0)),
        i3.Place("gc2", position=(+100, 0), angle=180),
        i3.ConnectManhattan(
            "gc1:out",
            "gc2:out",
            control_points=[i3.H(30)],
        ),
    ],
)

lay = circuit.Layout()
lay.visualize(show=False)

plt.axhline(y=30, color="k", linestyle="--")
plt.show()
../../../../_images/ipkiss3-all-H-1.png