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"}
../_images/TEST.png

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

{ "name" : "Connectivity_B_-|--",
  "inherit": "TEST",
  "beforeRoute": [
    {"addConnectivityRoutes" : [["M1","B","-|--"]]}
  ]
}
../_images/Connectivity_B.png

Or even matching both A and B

{ "name" : "Connectivity_A|B_-",
  "inherit": "TEST",
  "beforeRoute": [
      {"addConnectivityRoutes" : [["M1","A|B","-"]]}
  ]
}
../_images/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 if it’s created a short.