Fix JSON for muxes using udp_mux_4to2.

Fixes to the model for `udp_mux_4to2` cause the JSON layout output to now
include the cell.

Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/cells/mux2i/sky130_fd_sc_lp__mux2i.json b/cells/mux2i/sky130_fd_sc_lp__mux2i.json
index 6924d13..45ffc89 100644
--- a/cells/mux2i/sky130_fd_sc_lp__mux2i.json
+++ b/cells/mux2i/sky130_fd_sc_lp__mux2i.json
@@ -25,6 +25,28 @@
         }
       },
       "cells": {
+        "mux_2to1_n0": {
+          "hide_name": 0,
+          "type": "udp_mux_2to1_N",
+          "parameters": {
+          },
+          "attributes": {
+            "module_not_derived": 1,
+            "src": "./cells/mux2i/sky130_fd_sc_lp__mux2i.functional.v:53.37-53.87"
+          },
+          "port_directions": {
+            "A0": "input",
+            "A1": "input",
+            "S": "input",
+            "Y": "output"
+          },
+          "connections": {
+            "A0": [ 3 ],
+            "A1": [ 4 ],
+            "S": [ 5 ],
+            "Y": [ 2 ]
+          }
+        }
       },
       "netnames": {
         "A0": {
@@ -70,20 +92,20 @@
         "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:34.1-45.10"
       },
       "ports": {
-        "A0": {
-          "direction": "input",
+        "Y": {
+          "direction": "output",
           "bits": [ 2 ]
         },
-        "A1": {
+        "A0": {
           "direction": "input",
           "bits": [ 3 ]
         },
-        "S": {
+        "A1": {
           "direction": "input",
           "bits": [ 4 ]
         },
-        "Y": {
-          "direction": "output",
+        "S": {
+          "direction": "input",
           "bits": [ 5 ]
         }
       },
@@ -92,31 +114,31 @@
       "netnames": {
         "A0": {
           "hide_name": 0,
-          "bits": [ 2 ],
-          "attributes": {
-            "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:41.12-41.14"
-          }
-        },
-        "A1": {
-          "hide_name": 0,
           "bits": [ 3 ],
           "attributes": {
             "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:42.12-42.14"
           }
         },
-        "S": {
+        "A1": {
           "hide_name": 0,
           "bits": [ 4 ],
           "attributes": {
-            "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:43.12-43.13"
+            "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:43.12-43.14"
           }
         },
-        "Y": {
+        "S": {
           "hide_name": 0,
           "bits": [ 5 ],
           "attributes": {
             "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:44.12-44.13"
           }
+        },
+        "Y": {
+          "hide_name": 0,
+          "bits": [ 2 ],
+          "attributes": {
+            "src": "./cells/mux2i/../../models/udp_mux_2to1_n/./sky130_fd_sc_lp__udp_mux_2to1_n.blackbox.v:41.12-41.13"
+          }
         }
       }
     }
diff --git a/cells/mux4/sky130_fd_sc_lp__mux4.json b/cells/mux4/sky130_fd_sc_lp__mux4.json
index dceed54..6c19c98 100644
--- a/cells/mux4/sky130_fd_sc_lp__mux4.json
+++ b/cells/mux4/sky130_fd_sc_lp__mux4.json
@@ -37,6 +37,34 @@
         }
       },
       "cells": {
+        "mux_4to20": {
+          "hide_name": 0,
+          "type": "udp_mux_4to2",
+          "parameters": {
+          },
+          "attributes": {
+            "module_not_derived": 1,
+            "src": "./cells/mux4/sky130_fd_sc_lp__mux4.functional.v:59.35-59.86"
+          },
+          "port_directions": {
+            "A0": "input",
+            "A1": "input",
+            "A2": "input",
+            "A3": "input",
+            "S0": "input",
+            "S1": "input",
+            "X": "output"
+          },
+          "connections": {
+            "A0": [ 3 ],
+            "A1": [ 4 ],
+            "A2": [ 5 ],
+            "A3": [ 6 ],
+            "S0": [ 7 ],
+            "S1": [ 8 ],
+            "X": [ 2 ]
+          }
+        }
       },
       "netnames": {
         "A0": {
@@ -103,32 +131,32 @@
         "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:34.1-51.10"
       },
       "ports": {
-        "A0": {
-          "direction": "input",
+        "X": {
+          "direction": "output",
           "bits": [ 2 ]
         },
-        "A1": {
+        "A0": {
           "direction": "input",
           "bits": [ 3 ]
         },
-        "A2": {
+        "A1": {
           "direction": "input",
           "bits": [ 4 ]
         },
-        "A3": {
+        "A2": {
           "direction": "input",
           "bits": [ 5 ]
         },
-        "S0": {
+        "A3": {
           "direction": "input",
           "bits": [ 6 ]
         },
-        "S1": {
+        "S0": {
           "direction": "input",
           "bits": [ 7 ]
         },
-        "X": {
-          "direction": "output",
+        "S1": {
+          "direction": "input",
           "bits": [ 8 ]
         }
       },
@@ -137,51 +165,51 @@
       "netnames": {
         "A0": {
           "hide_name": 0,
-          "bits": [ 2 ],
-          "attributes": {
-            "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:44.12-44.14"
-          }
-        },
-        "A1": {
-          "hide_name": 0,
           "bits": [ 3 ],
           "attributes": {
             "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:45.12-45.14"
           }
         },
-        "A2": {
+        "A1": {
           "hide_name": 0,
           "bits": [ 4 ],
           "attributes": {
             "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:46.12-46.14"
           }
         },
-        "A3": {
+        "A2": {
           "hide_name": 0,
           "bits": [ 5 ],
           "attributes": {
             "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:47.12-47.14"
           }
         },
-        "S0": {
+        "A3": {
           "hide_name": 0,
           "bits": [ 6 ],
           "attributes": {
             "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:48.12-48.14"
           }
         },
-        "S1": {
+        "S0": {
           "hide_name": 0,
           "bits": [ 7 ],
           "attributes": {
             "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:49.12-49.14"
           }
         },
-        "X": {
+        "S1": {
           "hide_name": 0,
           "bits": [ 8 ],
           "attributes": {
-            "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:50.12-50.13"
+            "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:50.12-50.14"
+          }
+        },
+        "X": {
+          "hide_name": 0,
+          "bits": [ 2 ],
+          "attributes": {
+            "src": "./cells/mux4/../../models/udp_mux_4to2/./sky130_fd_sc_lp__udp_mux_4to2.blackbox.v:44.12-44.13"
           }
         }
       }