controlpoint module#
- class ControlPoint(*, layer)[source]#
Bases:
PositionableBase class for control points. Do not subclass or use this directly, use one of
RoutePoint,PairInsertionorPairPointinstead.- Parameters:
layer (int)
- class RoutePoint(*, layer, shape=None, bundle=<class 'jitx.net.Port'>)[source]#
Bases:
ControlPoint,Generic-
port:
T# The port associated to this control point, used for routing.
-
port:
- class PairInsertion(*, layer, bundle=<class 'jitx.net.DiffPair'>)[source]#
Bases:
ControlPoint,GenericDifferential pair insertion point. Transitions two individual, uncoupled traces into a differential pair. When used with
PortAttachment, it needs an ordered pair of ports. The first port is connected to the left side (looking from the uncoupled side of the pair insertion point), and the second to the right side. Currently it cannot be used in aNetorTopologyNetdirectly.Currently, the left port is accessed using
uncoupled.n, and the right port usinguncoupled.p, whereuncoupledis a member attribute of typeDiffPair. This is only relevant when making code routes, since in that case the physical route ends need to be referenced, and you may need to unintuitively connectnandpin order to make the geometry work. This a limitation in the current implementation. This will be addressed to be more consistent with logical netting in future releases. Thecoupledside is always routed as a diffpair socoupled.pandcoupled.nnever need to be accessed individually.See the PortAttachment example below for how to set up two insertion control points with correct geometry.
uncoupled.n -- \ == coupled / uncoupled.p -->>> class MyCircuit(Circuit): ... c1 = MyComponent1() ... c2 = MyComponent2() ... def __init__(self): ... self.insertion1 = PairInsertion(layer=0).at(-2, 0) ... self.insertion2 = PairInsertion(layer=0).at(2, 0, rotate=180) ... self.nets = [ ... Net([self.c1.p1, self.c2.p1]), ... Net([self.c1.p2, self.c2.p2]), ... ] ... self.attachments = [ ... PortAttachment([self.c1.p1, self.c1.p2], self.insertion1), ... PortAttachment([self.c2.p2, self.c2.p1], self.insertion2), # note the flipped order for achieving opposite chirality ... ] ... self.routes = [ ... Route(self.insertion1, self.insertion2, 0) ... ]
-
coupled:
T# Coupled side of the differential insertion point.
-
uncoupled:
T# Uncoupled side of the differential insertion point.
-
coupled:
- class PairPoint(*, layer, bundle=<class 'jitx.net.DiffPair'>)[source]#
Bases:
ControlPoint,GenericA differential pair control point connects two segments of a differential pair, while still paired, allowing for each segment to be configured independently.
-
pair:
T# The differential pair port associated to this control point, used for routing.
-
pair: