Uri Shaked
01/21/2025, 10:23 AMsky130_fd_bs_flash__special_sonosfet_star
), and when I source the following files it works:
$PDK_ROOT/libs.tech/ngspice/sonos_see_e/begin_of_life.pm3.spice
$PDK_ROOT/libs.tech/ngspice/sonos_see_e/begin_of_life.spice
As far as I understand, this is the simulation model when the device is in the ERASED state.
However, when I try to swap the paths to sonos_see_p
, which is supposed to contain the models for the PROGRAMMED state, ngspice won't find the sonosfet_star device. Looking at the files there, they define the sky130_fd_bs_flash__special_sonosfet_original
instead of the expected sky130_fd_bs_flash__special_sonosfet_star
device.
Is my understanding of the models wrong, or is this an actual issue with the PDK?Aidan Medcalf
01/21/2025, 4:11 PMstar
is erased and original
is programmed, and `sonos_e`/`sonos_p` contain the models for the "regular" cell, and `sonos_see_e`/`sonos_see_p` contain the models for the "star" device. None of the models match the devices I'm current measuringAidan Medcalf
01/21/2025, 4:17 PMsonos_e/p
modelsTim Edwards
01/22/2025, 7:03 PMstar
is a newer version of the SONOS core cell layout. However, as we were not given any core cell layouts for flash memory, it is probably a moot point. If the device model varies so much based on the specific layout that a different model is required, then none of the models is going to be correct for any custom cell created by guessing at the best layout based on DRC rules and other existing open source documentation. My guess is that any of the models is good enough to work with if you give your circuits plenty of margin.
As for the PDK error itself: I'm willing to correct the PDK based on any reasonable user input.