Component Status

component-status and do-not-populate are optional statements to modify the on-board and BOM statuses of components.

Syntax

pcb-module my-module:
  pin gnd
  pin power
  pin signal

  inst fuse       : components/manu/broken-fuse
  inst jumper-a   : components/manu/normal-jumper
  inst jumper-b   : components/manu/normal-jumper
  inst jumper-c   : components/manu/normal-jumper
  inst dnp-me     : components/manu/normal-jumper
  val r = res-strap(signal, gnd, 10.0e3)

  property(power.voltage) = Stateful(["low" => 1.8, "medium" => 3.3, "high" => 5.0])
  state(power.voltage) = "low"

  variant "DNP" :
    do-not-populate(dnp-me)
    do-not-populate(r)

  variant "High Resistance" :
    property(r.rid.resistance) = 10.0e6

  variant "High Power" :
    state(power.voltage) = "high"

  variant "Medium Power" :
    state(power.voltage) = "medium" 
  
  variant "TOUGH Fuse" :
    property(fuse.rated-temperature) = min-typ-max(-50, 120, 150)

Description

variant "variant name" : Specifies a Variant that may alter the inst in this module. Its application is determined by a command apply-variants later in top level.

Possible sub-statements:

  • do-not-populate, property, component-status, value-label.

For example, if later on, a top level command val new-module = apply-variants(["DNP" "High Power"] my-module) is executed, the inst dnp-me will become do-not-populate and power pin will have 5V in new-module.