Skip to main content

Nets and power symbols

A net consist of a group of connected component pins. In an ideal world, without lossy interconnects, these pins are electrically tied and have the same voltage.

Net components

In the standard library, the supply function creates a supply component in the schematic.

import lib

gnd = dgnd()

at v5v = supply("5V")
wire down 100
add cap(100n)

wire down 100
to gnd

5V12C1100nGND

A net component has a special property, whenever it is referenced it will create a duplicate of itself. In the following example, the v5v net component is duplicated when it is referenced.

The gnd component is also a net component, and similary duplicated when referenced.

Normal non-net components do not have this property and will not duplicate themselves when referenced.

import lib

v5v = supply("5V")
gnd = dgnd()

at v5v
wire down 100
add cap(100n)
wire down 100
to gnd

at v5v
wire down 100
add res(10k)
wire down 100
to gnd

5V12C1100nGND5V12R110kGND

Creating net components

The standard library provides the supply and net functions that create net components. Most of the time, calling these 2 functions are enough for most circuits.

To create a net component, create a component with the following parameters:

  • type set to net
  • copy set to true - this will duplicate the component automatically if it is referenced.
  • net_name in params

import lib

my_gnd = create component:
pins: 1
copy: true
type: "net"
params:
net_name: "my_gnd"

my_net = create component:
pins: 1
copy: true
type: "net"
params:
net_name: "hello"

at my_net
wire down 100
add res(10k)
wire down 100
to my_gnd

at my_net
wire down 100
add cap(100n)
wire down 100
to my_gnd

1112R110k111112C1100n11

Net component parameters

The following parameters are important for net components:

  • net_name: name that is assigned to the net
  • net_priority: when two nets with different net_name are connected, the net with the higher priority will be used. The other net will be merged into the higher priority net. All pins within the other net will have the net_name of the higher priority net.

Power symbols

To create power symbols, call the supply function with the name of the power net.

import lib
v5v = supply("5V") # creates 5V net
v3v3 = supply("3V3") # creates 3.3V net
gnd = dgnd() # creates GND net

at v5v
wire down 100 right 100
add res(300)
wire right 100
add led("red")
wire right 100 down 100
to gnd

at v3v3
wire down 100 right 100
add res(200)
wire right 100
add led("green")
wire right 100 down 100
to gnd

5V12R130012D1redGND3V312R220012D2greenGND