Stefan Schippers
07/17/2022, 11:10 AMtt_mm
corner does not show any mismatch in devices. Below test_comparator.sch
schematic, part of the xschem_sky130
test circuits does not show any variation. The waveform is actually an overlay of 40 runs, they are all identical. It used to work in the past, showing differences in the output waveform per each run. The netlist calls the sky130.lib.spice lib
with tt_mm
corner. Do I need to set some switches or parameters? Netlist attached as well.Krzysztof Herman
07/17/2022, 3:22 PMKrzysztof Herman
07/17/2022, 3:23 PMTim Edwards
07/17/2022, 4:42 PMwhile
loop?Tim Edwards
07/17/2022, 4:45 PMreset
goes back to the same random seed due to the option seed
command.Tim Edwards
07/17/2022, 5:23 PMTim Edwards
07/17/2022, 5:29 PMMC_MM_SWITCH
that controls whether mismatch is turned on or not. It is always multiplied by the agauss(.)
function, so that MC_MM_SWITCH=1
randomizes the values and MC_MM_SWITCH=0
does not. The MC_MM_SWITCH
in device model parameter expressions is found throughout the files in $PDK_ROOT/sky130A/libs.ref/sky130_fd_pr/spice/
. I don't see anything obviously wrong there, but I need to reinstall the PDK from scratch, since for open_pdks regressions can come from many different sources.Krzysztof Herman
07/17/2022, 5:37 PMMC_MM_SWITCH
. The only think which relates to the eventual mismatch modelling is this commented part. Is that right ?Krzysztof Herman
07/17/2022, 5:37 PM* SKY130 Spice File.
* statistics {
* mismatch {
* }
* process {
* vary sky130_fd_pr__res_xhigh_po__var_mult dist=gauss std=0.025
* vary sky130_fd_pr__res_high_po__var dist=gauss std=0.025
* }
* }
Tim Edwards
07/17/2022, 6:01 PMagauss()
function anywhere. So that is probably what I need to track down.Krzysztof Herman
07/17/2022, 6:03 PMKrzysztof Herman
07/17/2022, 6:08 PMKrzysztof Herman
07/17/2022, 6:08 PMtoxe = {3.996598e-09+MC_MM_SWITCH*AGAUSS(0,1.0,1)*(4.148e-9*0.9635*(sky130_fd_pr__nfet_01v8__toxe_slope/sqrt(l*w*mult)))}
Krzysztof Herman
07/17/2022, 7:35 PMTim Edwards
07/17/2022, 9:44 PMKrzysztof Herman
07/17/2022, 9:45 PMStefan Schippers
07/17/2022, 9:51 PMStefan Schippers
07/17/2022, 9:55 PMStefan Schippers
07/17/2022, 11:13 PMtt_mm
lib does set MC_MM_SWITCH = 1
, so i don't know why we still see no mismatch variations in multiple runs.
* Typical corner with mismatch (tt_mm)
.lib tt_mm
.param mc_mm_switch=1
.param mc_pr_switch=0
* MOSFET
.include "corners/tt.spice"
* Resistor/Capacitor
.include "r+c/res_typical__cap_typical.spice"
.include "r+c/res_typical__cap_typical__lin.spice"
* Special cells
.include "corners/tt/specialized_cells.spice"
.endl tt_mm
Setting a voltage source to value 'MC_MM_SWITCH' i see it has value '1' so the parameter is correctly set at simulation runtime.Stefan Schippers
07/18/2022, 8:33 AMsky130.lib.spice
displays content of all included files. Looking into this flattened big file there are agauss()
functions only for resistors and for some sonos cells. so it is not surprising i see no variations.
I see lot of agauss()
parameters in file
.../libs.ref/sky130_fd_pr/spice/sky130_fd_pr.spice
which however does not seem to be included.
May be we are in the middle of some big transition or change?
Will update my open_pdks if you tell me to do so... ThanksTim Edwards
07/18/2022, 8:59 AMsky130_fd_pr.spice
.Tim Edwards
07/18/2022, 9:10 AMLuis Henrique Rodovalho
07/18/2022, 5:46 PMLuis Henrique Rodovalho
07/18/2022, 5:48 PMStefan Schippers
07/18/2022, 9:25 PMcommit 3a2a72e112d12771f528ed8b79b799222728e7eb (HEAD -> master, tag: 1.0.316, origin/open_pdks-1.0, origin/master, origin/HEAD)
Author: Tim Edwards <tim@opencircuitdesign.com>
Date: Mon Jun 27 14:08:22 2022 -0400
doing the usual:
./configure --enable-sky130-pdk --prefix=/home/schippes
followed by make && make install
.
I have these files, both in the source tree and in the installed paths:
schippes@mazinga:~/sda7/open_pdks$ locate sky130_fd_pr.spice
/mnt/sda7/home/schippes/open_pdks/sky130/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr.spice
/mnt/sda7/home/schippes/open_pdks/sky130/sky130B/libs.ref/sky130_fd_pr/spice/sky130_fd_pr.spice
/mnt/sda7/home/schippes/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr.spice
/mnt/sda7/home/schippes/share/pdk/sky130B/libs.ref/sky130_fd_pr/spice/sky130_fd_pr.spice
I think it's time to redo a new full install :-)Tim Edwards
07/19/2022, 6:56 AMKrzysztof Herman
07/19/2022, 9:13 PM