You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
It looks like every device is getting independent/different random variables assigned in a monte-carlo simulation.
I also realised that the resistors were not getting any variation. This appears to be a mistake in the parameters_res_nom.spice. For example: .param sw_sky130_fd_pr__res_high_po_rs = {325.0+corner_factor*0.0} + process_mc_factor*MC_PR_SWITCH*GAUSS(0,0.035,1)
GAUSS generates random values relative to the mean, which is 0. Therefore it always generates 0, I believe.
The text was updated successfully, but these errors were encountered:
I'm not getting that. Gaussian random variables calculated in a .param statement should be calculated once, not for every device. And for the question above, process_mc_factor is 1 (which I think corresponds to 3 sigma variation), andMC_PR_SWITCH is 1 when the monte carlo corner is selected, so the parameter calculated should be (325 + (random number with zero mean)).
For the resistors I see in simulation no variation at all. The ngspice manual states that the gauss function generates random numbers relative to the mean. For that parameter it is generating 325 + (random number with 0 mean and 0 sigma) = 325. For most gaussian random variables in the pdk the agauss function is used, which generates random numbers with an absolute sigma value. I see no variation at all in the resistors with a monte-carlo simulation. By modifying the expression I could get the 3.5 % sigma variation.
I also see mismatch in transistors, which should not happen and when I place resistors in parallel and series to increase the area while still keeping the same equivalent resistance value the equivalent resistance variation is not 3.5 % 1 sigma, because every resistor is getting a different value assigned. This I saw after correcting the original expression.
Hi,
It looks like every device is getting independent/different random variables assigned in a monte-carlo simulation.
I also realised that the resistors were not getting any variation. This appears to be a mistake in the parameters_res_nom.spice. For example:
.param sw_sky130_fd_pr__res_high_po_rs = {325.0+corner_factor*0.0} + process_mc_factor*MC_PR_SWITCH*GAUSS(0,0.035,1)
GAUSS generates random values relative to the mean, which is 0. Therefore it always generates 0, I believe.
The text was updated successfully, but these errors were encountered: