Connectivity Route

ConnectivityRoute uses regular expressions to match the net names. For example, take the spice circuit below

.subckt TEST A B
XA1 B DDD
XA2 A DDD
XB1 B DDD
XB2 A DDD
.ends

Without any routes, we’ll get

{ "name" : "TEST", "class" : "cIcCore::LayoutCell"}

[[../graphics/TEST.png]]

We can add a route by matching for example ‘B’ with

{ "name" : "Connectivity_B_-|--",
  "inherit": "TEST",
  "beforeRoute": [
    {"addConnectivityRoutes" : [["M1","B","-|--"]]}
  ]
}

[[../graphics/Connectivity_B.png]]

Or even matching both A and B

{ "name" : "Connectivity_A|B_-",
  "inherit": "TEST",
  "beforeRoute": [
      {"addConnectivityRoutes" : [["M1","A|B","-"]]}
  ]
}

[[../graphics/Connectivity_AB.png]]

Even though we match both nets, the compiler knows it should not try and route A->B. But the Router is very dum, it does not know it’s created a short.