machxo2: Make sure all left and right I/O connections are included in the routing graph.
diff --git a/libtrellis/src/RoutingGraph.cpp b/libtrellis/src/RoutingGraph.cpp
index 84eb625..85e2116 100644
--- a/libtrellis/src/RoutingGraph.cpp
+++ b/libtrellis/src/RoutingGraph.cpp
@@ -179,10 +179,25 @@
                       // wonderful 1-based column numbering, and lack of dedicated
                       // PIO tiles on the left and right.
                       // Top and bottom unaffected due to dedicated PIO tiles.
-                      bool pio_wire = (db_name.find("PADD") != string::npos ||
+                      // TODO: Convert to regex.
+                      bool pio_wire = (
+                          db_name.find("DI") != string::npos ||
+                          db_name.find("JDI") != string::npos ||
+                          db_name.find("PADD") != string::npos ||
+                          db_name.find("INDD") != string::npos ||
                           db_name.find("IOLDO") != string::npos ||
                           db_name.find("IOLTO") != string::npos ||
-                          db_name.find("JINCK") != string::npos);
+                          db_name.find("JCE") != string::npos ||
+                          db_name.find("JCLK") != string::npos ||
+                          db_name.find("JLSR") != string::npos ||
+                          db_name.find("JONEG") != string::npos ||
+                          db_name.find("JOPOS") != string::npos ||
+                          db_name.find("JTS") != string::npos ||
+                          db_name.find("JIN") != string::npos ||
+                          db_name.find("JIP") != string::npos ||
+                          // Connections to global mux
+                          db_name.find("JINCK") != string::npos
+                      );
 
                       if((id.loc.x == -1) && pio_wire)
                           id.loc.x = 0;
@@ -192,10 +207,24 @@
                   id.loc.x += std::stoi(g.substr(1));
 
                   if(id.loc.x > max_col) {
-                      bool pio_wire = (db_name.find("PADD") != string::npos ||
-                        db_name.find("IOLDO") != string::npos ||
-                        db_name.find("IOLTO") != string::npos||
-                        db_name.find("JINCK") != string::npos);
+                      bool pio_wire = (
+                          db_name.find("DI") != string::npos ||
+                          db_name.find("JDI") != string::npos ||
+                          db_name.find("PADD") != string::npos ||
+                          db_name.find("INDD") != string::npos ||
+                          db_name.find("IOLDO") != string::npos ||
+                          db_name.find("IOLTO") != string::npos ||
+                          db_name.find("JCE") != string::npos ||
+                          db_name.find("JCLK") != string::npos ||
+                          db_name.find("JLSR") != string::npos ||
+                          db_name.find("JONEG") != string::npos ||
+                          db_name.find("JOPOS") != string::npos ||
+                          db_name.find("JTS") != string::npos ||
+                          db_name.find("JIN") != string::npos ||
+                          db_name.find("JIP") != string::npos ||
+                          // Connections to global mux
+                          db_name.find("JINCK") != string::npos
+                      );
 
                       // Same deal as left side, except the position exceeds
                       // the maximum row.