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])