Significant improvements to primitives sky130_fd_pr version 0.13.0. This commit contains major improvements to all files by regenerating from original data, improving consistency and automated cross checking of data. These improvements should drastically reduce customer confusion when using the library and further reduce future possibility for human errors to creep into designs. Notable improvements include; * A large number of files have been regenerated from original source data (compared to previous hand created versions). * Catalog and other library aggregations are now automatically generated from library contents (compared to previous hand created versions). * Significant improvements to documentation for all cells and models, including producing graphical representations, verified metadata and descriptions. * Names have been cross referenced between file types (such as simulation, layout, schematic and timing) and now verified to match. * Names have been improved to fix a standard format across all supported libraries and PDK contents. * Significant improvements to the contents of text files through improving consistent style that has been automatically checked. * Simplified spice files for usage with open tools. * Too many numerous other changes to list here. Signed-off-by: Kevin Kelley <kevin.kelley@skywatertechnology.com> Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po.model.spice new file mode 100644 index 0000000..6652ae1 --- /dev/null +++ b/cells/res_high_po/sky130_fd_pr__res_high_po.model.spice
@@ -0,0 +1,37 @@ +* Copyright 2020 The SkyWater PDK Authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + +* SKY130 Spice File. +* statistics { +* mismatch { +* } +* } +.subckt sky130_fd_pr__res_high_po r0 r1 ++ w=1 l=1 +.param mult = 1.0 ++ rsheet = 317.3885 ++ rbody_dw = -0.001 ++ rhead_ps = 345.8312 ++ mm_const = {(w<0.69)?0.1:0.2} ++ body_pelgrom = 0.03552 ++ head_pelgrom = 0.0761 ++ num_con_row = {max(floor(0.5+(w-0.33)/0.36),1)} ++ rbody_match = {body_pelgrom/sqrt(w*l*mult)*sky130_fd_pr__res_high_po__slope_spectre} ++ rend_match = {head_pelgrom/sqrt((w+0.525)*num_con_row*mult)*sky130_fd_pr__res_high_po__con_slope_spectre} ++ weff = {w+rbody_dw-0.0672*max(0.69-w,0)} ++ rbody = {rsheet*(l+0.247)/weff*(1+rbody_match)} ++ rhead = {rhead_ps/(weff+0.1558)*(1+rend_match)} +rbody r0 rb r = {rbody*(1+v(r0,r1))} +rhead rb r1 r = {rhead} +.ends sky130_fd_pr__res_high_po
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po_0p35.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po_0p35.model.spice index 25966bb..2e981f1 100644 --- a/cells/res_high_po/sky130_fd_pr__res_high_po_0p35.model.spice +++ b/cells/res_high_po/sky130_fd_pr__res_high_po_0p35.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_high_po_0p35 r0 r1 b +
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po_0p69.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po_0p69.model.spice index 1ca7897..a823c27 100644 --- a/cells/res_high_po/sky130_fd_pr__res_high_po_0p69.model.spice +++ b/cells/res_high_po/sky130_fd_pr__res_high_po_0p69.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_high_po_0p69 r0 r1 b +
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po_1p41.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po_1p41.model.spice index 2aab481..bafca03 100644 --- a/cells/res_high_po/sky130_fd_pr__res_high_po_1p41.model.spice +++ b/cells/res_high_po/sky130_fd_pr__res_high_po_1p41.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_high_po_1p41 r0 r1 b +
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po_2p85.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po_2p85.model.spice index d90762e..aadba5a 100644 --- a/cells/res_high_po/sky130_fd_pr__res_high_po_2p85.model.spice +++ b/cells/res_high_po/sky130_fd_pr__res_high_po_2p85.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_high_po_2p85 r0 r1 b +
diff --git a/cells/res_high_po/sky130_fd_pr__res_high_po_5p73.model.spice b/cells/res_high_po/sky130_fd_pr__res_high_po_5p73.model.spice index fa3c53c..d5a8c17 100644 --- a/cells/res_high_po/sky130_fd_pr__res_high_po_5p73.model.spice +++ b/cells/res_high_po/sky130_fd_pr__res_high_po_5p73.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_high_po_5p73 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p35.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p35.model.spice index 3a0a593..7de8040 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p35.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p35.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po_0p35 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p69.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p69.model.spice index c7956dd..6e62c24 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p69.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p69.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po_0p69 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_1p41.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_1p41.model.spice index fd6311f..5789252 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_1p41.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_1p41.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po_1p41 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_2p85.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_2p85.model.spice index 69abb02..f1db674 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_2p85.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_2p85.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po_2p85 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_5p73.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_5p73.model.spice index f7586fc..8cfb799 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_5p73.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_5p73.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po_5p73 r0 r1 b +
diff --git a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po__base.model.spice b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po__base.model.spice index c1f470e..9a27020 100644 --- a/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po__base.model.spice +++ b/cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po__base.model.spice
@@ -14,8 +14,8 @@ * SKY130 Spice File. * statistics { -* mismatch { -* } +* mismatch { +* } * } .subckt sky130_fd_pr__res_xhigh_po__base r1 r2 b +
diff --git a/models/sky130_fd_pr__model__linear.model.spice b/models/sky130_fd_pr__model__linear.model.spice index 3dbd8e8..c352622 100644 --- a/models/sky130_fd_pr__model__linear.model.spice +++ b/models/sky130_fd_pr__model__linear.model.spice
@@ -16,11 +16,12 @@ .param sky130_fd_pr__res_high_po__slope_spectre = 0.0 .param sky130_fd_pr__res_high_po__con_slope_spectre = 0.0 * statistics { -* mismatch { -* vary sky130_fd_pr__res_high_po__slope_spectre dist=gauss std=1.0 -* vary sky130_fd_pr__res_high_po__con_slope_spectre dist=gauss std=1.0 -* } +* mismatch { +* vary sky130_fd_pr__res_high_po__slope_spectre dist=gauss std=1.0 +* vary sky130_fd_pr__res_high_po__con_slope_spectre dist=gauss std=1.0 +* } * } +.include "../cells/res_high_po/sky130_fd_pr__res_high_po.model.spice" .include "../cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p35.model.spice" .include "../cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_0p69.model.spice" .include "../cells/res_xhigh_po/sky130_fd_pr__res_xhigh_po_1p41.model.spice"