NeckDown

There are two types for describing the neck down region of a trace:

  1. NeckDown - This targets Single-Ended traces
  2. DifferentialNeckDown - This targets Differential Pair traces

Outline - NeckDown

defstruct NeckDown :
  trace-width:    Double|False
  clearance:      Double|False
  insertion-loss: Double|False
  velocity:       Double|False

defn NeckDown (--   trace-width:    Double|False = false,
                    clearance:      Double|False = false,
                    insertion-loss: Double|False = false,
                    velocity:       Double|False = false) -> NeckDown :
  ...

All properties of the NeckDown object are optional. If a property is not provided in the instance, then the pcb-routing-structure property for the current layer will be used by default. These properties act as overrides of the routing structure properties in the neckdown region of a trace.

  1. trace-width - Width of the trace in mm
  2. clearance - Minimum "Net to Net" clearance in mm of the traces
  3. velocity - Signal Propagation Velocity (also known as Group Velocity) of the signals in the neckdown region. This is primarily used for timing constraints. This property is in units mm/s.
  4. insertion-loss - Insertion Loss per unit distance of the signals in the neckdown region. This property is in units of dB/mm

Usage - NeckDown

pcb-routing-structure se-50 :
  layer(Top):
    trace-width = 0.12
    clearance = 0.2
    velocity = 0.19e12
    insertion-loss = 0.008
    neckdown = NeckDown(
      width = 0.085
      clearance = 0.15
      insertion-loss = 0.012
    )

In this example - the neckdown region overrides the width, clearance, and insertion-loss but leaves the velocity property with the default 0.19e12 value.

Outline - DifferentialNeckDown

  defstruct DifferentialNeckDown :
    pair-spacing:   Double|False 
    trace-width:    Double|False 
    clearance:      Double|False 
    insertion-loss: Double|False
    velocity:       Double|False

  defn DifferentialNeckDown (-- pair-spacing:   Double|False = false,
                                trace-width:    Double|False = false,
                                clearance:      Double|False = false,
                                insertion-loss: Double|False = false,
                                velocity:       Double|False = false) -> DifferentialNeckDown :

All properties of the DifferentialNeckDown object are optional. If a property is not provided in the instance, then the pcb-differential-routing-structure property for the current layer will be used by default. These properties act as overrides of the routing structure properties in the neckdown region of a differential trace.

  1. trace-width - Width in mm of both of the diff-pair conductors.
  2. pair-spacing - Spacing distance between the conductors of the differential pair in mm.
  3. clearance - Minimum "Net to Net" clearance in mm of the traces. This clearance does not affect the pair-spacing for the differential pair.
  4. velocity - Signal Propagation Velocity (also known as Group Velocity) of the signals in the neckdown region. This is primarily used for timing constraints. This property is in units mm/s.
  5. insertion-loss - Insertion Loss per unit distance of the signals in the neckdown region. This property is in units of dB/mm

Usage - DifferentialNeckDown

pcb-differential-routing-structure diff-85 :
  layer(Top):
    trace-width = 0.12
    pair-spacing = 0.127
    clearance = 0.3
    velocity = 0.19e12
    insertion-loss = 0.008
    neckdown = DifferentialNeckDown(
      clearance = 0.15
    )

In this example - the neckdown region overrides the clearance but leaves all other properties untouched.