I think I've come across a PDK issue: I'm trying t...
# sky130
u
I think I've come across a PDK issue: I'm trying to simulate the sonosfet_star device (
sky130_fd_bs_flash__special_sonosfet_star
), and when I source the following files it works:
Copy code
$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?
a
This is an issue with the PDK. I think
star
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 measuring
2
This is what I'm seeing for programmed devices,
sonos_e/p
models
t
To my understanding,
star
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.
2