Stefan Schippers10/21/2020, 8:13 PM
however i have verified that if i set in my testbench:
.param sky130_fd_pr__nfet_01v8_lvt__toxe_slope_spectre = 0.0 .param sky130_fd_pr__nfet_01v8_lvt__vth0_slope_spectre = 0.0 .param sky130_fd_pr__nfet_01v8_lvt__voff_slope_spectre = 0.0 .param sky130_fd_pr__nfet_01v8_lvt__nfactor_slope_spectre = 0.0
This setting overrides the zero in the model files. Note that these variations are applied device to device, so any Fet in the netlist is 'different' from the others. Traditionally (at least this is what we did in STM and Micron) variation is applied to Vth (Threshold), u0 (Mobility) and Tox (oxide thickness). Here in skywater i see Vth, Tox , coff and nfactor. I don't know exactly what these last two parameters do, however you can variate these in the same way as i did for vth0. In addition geometrical parameters can easily be varied by using a random variable (.param var=agauss(....) ). My example was only a proof of concept, if one parameter variation works you can do monte simulations with any variations (i sometimes do variate temperature, vcc,geometrical dimensions, vth, u0, tox). This is good to catch circuit weaknesses (in addition to process corner simulation, ff, tt, ss, sf,fs) .
.param sky130_fd_pr__nfet_01v8_lvt__vth0_slope_spectre='agauss(0, ABSVAR, 3)/sky130_fd_pr__nfet_01v8_lvt__vth0_slope'