Module Level Statements

A pcb-module definition represents a group of instances, their statuses, their nets, and layers or geoms in a design. Modules form the hierarchy of your design and can be instantiated, placed, and connected via nets.

Syntax


pcb-module my-module :
  port power : ocdb/bundles/power

  inst mcu        : components/manu/CoolCPU-123
  inst peripheral : components/manu/Awesome-Peripheral-456
  inst fuse       : components/manu/broken-fuse
  inst jumper     : components/manu/normal-jumper
  inst dnp-me     : components/manu/normal-jumper 

  component-status(fuse) :
    bom-status = NotInBOM
  component-status(jumper) :
    board-status = NoOnBoard
  do-not-populate(dnp-me)

  require spi-control  : spi-controller() from mcu
  require spi-periph   : spy-peripheral() from peripheral
  require mcu-power    : power from mcu
  require periph-power : power from peripheral 

  net (spi-control.copi, spi-periph.sdi)
  net (spi-control.cipo, spi-periph.sdo)
  
  net (power, mcu-power, periph-power)

  schematic-group(self) = CoolModule

Statements

Here is the list of all of the statements you can use in a pcb-module :

StatementDescription
descriptionDescription
geomCustom copper geometry
instInstance
component-statusComponent Status
do-not-populateDo not Populate
layerLayer
layout-groupLayout Group
nameName
netNet
nodeNode
portsPorts
placePose
referenceReference
requireRequire
restrictRestrict
schematic-groupSchematic Group
short-traceShort Trace
symbolSingle-pin Symbol
supportsSupports
variantsVariants