Land Pattern

landpattern is an ESIR statement that associates a physical footprint/land-pattern with a component, and maps the ports of the component to the pads of the land-pattern.

Syntax

pcb-component inverted-f-antenna-cmp :
  description = "2.4 GHz Inverted F trace antenna"
  pin launch
  pin gnd
  val lp = ant-2GHz4-inverted-f-geom
  landpattern = lp(launch => lp.p[1], gnd => lp.p[2], gnd => lp.p[3], gnd => lp.p[4])

pcb-component amphenol-minitek127 (n-pins:Int) :
  description = "SMD Female 1.27mm pitch header"
  port p : pin[1 through n-pins]
  val lp = amphenol-minitek127-pkg(n-pins)
  landpattern = lp(for i in 1 through n-pins do: p[i] => lp.p[i])

Description

The land pattern statement specifies a land pattern to use, as well as a pad mapping. The general pattern is:

pcb-component my-component:
  pin component-pin-a
  pin component-pin-b
  landpattern = my-landpattern(component-pin-a => landpattern-pad-a, component-pin-b => landpattern-pad-b)

Where my-landpattern is the name of the pcb-landpattern, which has pads landpattern-pad-a and landpattern-pad-b.

The following snippet matches component port launch to the p[1] pad of the antenna-landpattern, and the component port gnd to three pads on the land pattern p[2], p[3], and p[4]. When we net to inverted-f-antenna-cmp.gnd, all associated land pattern pads will be added to the netlist.

pcb-component inverted-f-antenna-cmp :
  description = "2.4 GHz Inverted F trace antenna"
  pin launch
  pin gnd
  val lp = ant-2GHz4-inverted-f-geom
  landpattern = lp(launch => lp.p[1], gnd => lp.p[2], gnd => lp.p[3], gnd => lp.p[4])

Note that when you instantiate this component in a design, you can only net to the ports of the component, not the pads of the landpattern. e.g.:

inst ant : inverted-f-antenna-cmp
net (ant.gnd) ; Allowed
net (ant.p[2]) ; NOT Allowed, and will cause a compile error.

To save some typing, you can use for loops in the land pattern pad-mapping. The following snippet matches (p[1] => p[1], p[2] => p[2], ... p[n-pins] => p[n-pins]) for a parametric land pattern that has the same pad names as the component.

pcb-component amphenol-minitek127 (n-pins:Int) :
  description = "SMD Female 1.27mm pitch header"
  port p : pin[1 through n-pins]
  val lp = amphenol-minitek127-pkg(n-pins)
  landpattern = lp(for i in 1 through n-pins do: p[i] => lp.p[i])