si_parts module#

Fictional parts shared by the si_* signal-integrity patterns.

None of these parts is a real product. Every pin model value below is illustrative: it stands where a datasheet, IBIS model or vendor model figure goes in a real design. A measurement in a pattern is therefore a proof-route number on the two-layer jitx.sample.SampleSubstrate, not a characterization of any part.

Each part has one column of 0.6 mm square pads at 1.0 mm pitch, assigned to its ports in declaration order (a DiffPair gives p then n). Two parts placed facing each other at the same height line their pads up, so a straight code Route on layer 0 joins each pair of pads.

PAD_PITCH = 1.0#

Distance between pad centres, in mm.

class SquarePad(*args, **kwargs)[source]#

Bases: Pad

0.6 mm square SMD pad.

shape: Shape | PadShape = Polygon(elements=((0.3, 0.3), (-0.3, 0.3), (-0.3, -0.3), (0.3, -0.3)), holes=())#

The geometric shape of the pad or a PadShape to specify the regular shape and the shape when non-functional pads are removed. Can be overridden on a per-layer basis by shapes. When using a PadShape with nfp, the nfp removal does not apply to surface layers, to have surface nfp removal, use the shapes mapping to declare top and bottom explicitly.

soldermask = Soldermask(shape=Polygon(elements=((0.3, 0.3), (-0.3, 0.3), (-0.3, -0.3), (0.3, -0.3)), holes=()), side=<Side.Top: 0>)#
class PadColumn(count)[source]#

Bases: Landpattern

count square pads in one column, centred on the origin.

Parameters:

count (int)

class ExampleChip[source]#

Bases: Component

Fictional chip with one single-ended signal pin, io. Not a real product. It has no pin model: the measured delay starts and ends at its pad.

manufacturer: str | None = 'Fictional'#

Manufacturer for this component.

mpn: str | None = 'EXAMPLE-SE-CHIP'#

Manufacturer part number for this component.

reference_designator_prefix: str | None = 'U'#

Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.

Note

This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.

io = Port()#
class ExampleTerminatedChip[source]#

Bases: Component

Fictional chip whose signal pin carries a package model. Not a real product.

package adds 10 ps and 0.2 dB from the pad into the die, values that are illustrative. A real part takes them from its datasheet or IBIS package model.

manufacturer: str | None = 'Fictional'#

Manufacturer for this component.

mpn: str | None = 'EXAMPLE-SE-CHIP-PKG'#

Manufacturer part number for this component.

reference_designator_prefix: str | None = 'U'#

Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.

Note

This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.

io = Port()#
package = TerminatingPinModel(Port(), delay=1e-11, loss=0.2)#
class ExampleSeriesResistor[source]#

Bases: Component

Fictional series resistor that a signal passes through. Not a real product.

through gives the path 4 ps and 0.08 dB from a to b, values that are illustrative. Without a BridgingPinModel the runtime stops the path at this part.

manufacturer: str | None = 'Fictional'#

Manufacturer for this component.

mpn: str | None = 'EXAMPLE-SERIES-R'#

Manufacturer part number for this component.

reference_designator_prefix: str | None = 'R'#

Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.

Note

This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.

a = Port()#
b = Port()#
through = BridgingPinModel(Port(), Port(), delay=4e-12, loss=0.08)#
class ExampleTwoLaneChip[source]#

Bases: Component

Fictional chip with two differential lanes, lane0 and lane1. Not a real product, and it has no pin models.

manufacturer: str | None = 'Fictional'#

Manufacturer for this component.

mpn: str | None = 'EXAMPLE-2LANE'#

Manufacturer part number for this component.

reference_designator_prefix: str | None = 'U'#

Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.

Note

This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.

lane0 = DiffPair()#
lane1 = DiffPair()#