Skip to content

Pin Model

The pin-model statement is applies a delay and loss model to a port of a component. These features are used by the signal integrity routing to determine the length matching requirements for traces on the board.

This statement is valid in the pcb-component context.

Signature

; Single-Ended Form
pin-model(<PORT>) = <PinModel>
; Pass-Through Form
pin-model(<PORT-1>, <PORT-2>) = <PinModel>
  • &lt;PORT> - The arguments to the pin-model statement are SinglePin ports of the component.
  • <PinModel> - An instance of type PinModel that defines the delay and loss characteristics of this port or ports.

The pin-model statement comes in two forms:

  1. "Single-Ended Form" - In this form, this statement describes the features of a single pin of an IC, such as a driver or receiver. This includes the delay and loss from the package die bonding and other internal features of the IC.
  2. "Pass-Through Form" - In this form, this statement describes the delay and loss of a signal as it passes from &lt;PORT-1> through the component to &lt;PORT-2>. This is most commonly used with components like a resistor or DC blocking capacitor.

PinModel

The PinModel type is the base type for defining the model of a IC's pins:

public defstruct PinModel :
  delay: Toleranced ; Delay in seconds
  loss: Toleranced ; Loss in decibels

The parameters of this model are Toleranced types which allows the designer to specify the manufacturing uncertainty involved with the delay and loss if known.

The base model is not very sophisticated. It doesn't consider dispersion or other factors that contribute to skew in high frequency designs. In the future, we will add S-Parameter, IBIS, and other model formats for describing component port signal integrity features.

Examples

Below is a minimal example for applying a pin model to a components pins.

pcb-component MCU:

  port usb : diff-pair

  pin-model(usb.P) = PinModel(typ(1.3e-12), typ(0.0001))
  pin-model(usb.N) = PinModel(typ(1.1e-12), typ(0.0001))

Notes:

  1. The pin-model statement must be applied to a SinglePin port - it can't be applied to a Bundle port. Here we apply it individually to each of the P and N signals of the diff-pair.