tree 76a77f88d81293ed4cc81874821a513f8d487942
parent 59a87c6d4d994de6ee8f5a22f47089e640c50f79
author Tim 'mithro' Ansell <me@mith.ro> 1604807293 -0800
committer Tim 'mithro' Ansell <me@mith.ro> 1605114100 -0800

Updating submodules on 2020-11-08 03:31:25 UTC

 - Updating [`sky130_fd_sc_hvl` latest](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_hvl/+/v0.0.3-12-gcf1e330..v0.0.3-75-g4fd4f85) to v0.0.3-75-g4fd4f85
 - Updating [`sky130_fd_sc_hvl` v0.0.1](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_hvl/+/v0.0.1-4-g1d70761..v0.0.1-25-gc86542d) to v0.0.1-25-gc86542d
 - Updating [`sky130_fd_sc_hvl` v0.0.2](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_hvl/+/v0.0.2-8-g4703a0f..v0.0.2-50-gfc47788) to v0.0.2-50-gfc47788
 - Updating [`sky130_fd_sc_hvl` v0.0.3](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_hvl/+/v0.0.3-12-gcf1e330..v0.0.3-75-g4fd4f85) to v0.0.3-75-g4fd4f85
 - Updating [`sky130_fd_sc_lp` latest](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_lp/+/v0.0.2-10-g1d2c6cfd..v0.0.2-52-ge2c1e064) to v0.0.2-52-ge2c1e064
 - Updating [`sky130_fd_sc_lp` v0.0.1](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_lp/+/v0.0.1-5-g5e2d8e19..v0.0.1-26-g9ade3f19) to v0.0.1-26-g9ade3f19
 - Updating [`sky130_fd_sc_lp` v0.0.2](https://foss-eda-tools.googlesource.com/skywater-pdk/libs/sky130_fd_sc_lp/+/v0.0.2-10-g1d2c6cfd..v0.0.2-52-ge2c1e064) to v0.0.2-52-ge2c1e064

 * libraries/sky130_fd_sc_hvl/latest cf1e330...4fd4f85 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_hvl/v0.0.1 1d70761...c86542d (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_hvl/v0.0.2 4703a0f...fc47788 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_hvl/v0.0.3 cf1e330...4fd4f85 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_lp/latest 1d2c6cf...e2c1e06 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_lp/v0.0.1 5e2d8e1...9ade3f1 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

 * libraries/sky130_fd_sc_lp/v0.0.2 1d2c6cf...e2c1e06 (21):
   > Fix JSON for muxes using udp_mux_4to2.
   > lef: Fixing VNB/VPB properties in .magic.lef files.
   > verilog: Fixing power pins usage in non-powerpin mode.
   > cdl: Fixing missing terminals.
   > verilog: Fixing ordering of ports in primitives.
   > verilog: Fixing usage of cell reserved word.
   > verilog: Fixing include path.
   > Fixing the technology LEF file.
   > Updating spice files for names in pending `sky130_fd_pr` release.
   > Small update to `.svg` style.
   > `.lef` file improvements.
   > Fixing LEF 'CLASS' on fill cells.
   > Fixing the spice file headers.
   > Remove NAMESCASESENSITIVE from .magic.lef files.
   > Fixing LEF 'CLASS' for tap cells.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure `.magic.lef` files don't have `SOURCE USER` values.
   > Making sure all .lef files end in `END LIBRARY`.
   > Updating `.magic.lef` files using `lef write {cell} -toplayer`.
   > Fixing the `power_gating_pin`.
   > Convert to using comma seperator in .lib.json files.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
