https://open-source-silicon.dev logo
Channels
aa
abcc
activity
adiabatonauts
analog-design
announce
announcements
b2aws
b2aws-tutorial
bag
basebands
beagleboard
bluetooth
board-respin
cadence-genus
cadence-innovus
cadence-spectre
cadence-virtuoso
caravan
caravel
caravel-board
chilechipmakers
chip-yard
chipignite
chipignite2206q_stanford_bringup
chisel
coalition-for-digital-environmental-sustainability
community_denmark_dtu
containers
courses
design-review
design-services
dffram
digital-design
digital-electronics-learners
discord-mods
dynamic-power-estimation
efabless
electric
events
fasoc
fault
foss-asic-tools
fossee-iitb-esim
fossee-iitb-google-sky130
fpga
funding
fuserisc
general
generative-ai-silicon-challenge
genius-vlsi
gf180
gf180mcu
hardware-beginners
help-
ieee-sscs-cac-23
ieee-sscs-dc-21q3
ieee-sscs-dc-22
ieee-sscs-dc-23
ihp-sg13g2
images
infiniband
j-core
japan-region
junk
klayout
latam_vlsi
layouteditor
lvs
lvs-analysis
magic
magical
maker-projects
maker-zone
microwatt
mpw-2-silicon
mpw-one-clean-short
mpw-one-silicon
neuro-mem
nydesign
open_pdks
open-pdk
openadiabaticlogic
openfpga
openhighqualityresonators
openlane
openlane_cloudrunner
openlane-development
openocd
openpositarithmetic
openpower
openram
openroad
opentitan
osu
pa-test-chip
paracells
pd-openlane-and-sky130
picosoc
pll
popy_neel
power
private-shuttle
rad-lab-silicon
radio
rdircd
reram
researchers
rf-mmw-design
rios
riscv
sdram
serdes
shuttle
shuttle-precheck
shuttle-status
silicon-photonics
silicon-validation
silicon-validation-private
sky130
sky130-ci
sky130-pv-workshop
sky65
sky90
skywater
sram
stdcelllib
strive
swerv
system-verilog-learners
tapeout-job
tapeout-pakistan
team-awesome
timing-closure
toysram
travis-ci
uvm-learners
vendor-synopsys
venn
verification-be
verification-fe
verilog-learners
vh2v
vhdl
vhdl-learners
vliw
vlsi_verilog_using_opensource_eda
vlsi_verilog_using_opensoure_eda
vlsi-learners-group
vlsi101
waveform-viewers
xls
xschem
xyce
zettascale
Powered by
Title
s

Stefan Schippers

02/03/2023, 5:12 PM
I have seen that ngspice has very recently switched from ADMS to OSDI (OpenVAF) verilog-A support. This allows to easily build verilog-A models (example: reram) and simulate without doing magic things like rebuilding ngspice. Has anyone had a chance to look at this? in the coming days I want to update the xschem reram model according to this change.(cc @Talha Bin Azmat @Tim Edwards) If someone has already done some investigation please let me know. I have already built ngspice-39 and downloaded the openvaf compiler so i am ready to go...
t

Tim Edwards

02/03/2023, 5:54 PM
I attended the webinar from the OpenVAF developer that undoubtedly precipitated this change (Holger Vogt was on the same call). But no, I haven't done any work with OpenVAF modeling. I certainly welcome the ability to add device models to ngspice without recompiling the whole thing!
b

Barak Hoffer

02/06/2023, 8:56 AM
I tried to do a small POC in colab See the I-V curve - for some reason it doesn't capture the switching behavior (compared to a xyce simulation for example).
Got it to work by changing the model to be well-posed! Check out my repo: https://github.com/barakhoffer/sky130_ngspice_reram @Stefan Schippers @Tim Edwards
s

Stefan Schippers

03/13/2023, 10:56 PM
@Barak Hoffer I updated the sky130 reram repo, applied your patch, compiled with openvaf (same version as yours) but I get convergence issues. I see the reram model is now a 3 terminal device. The netlist seems very similar to yours, but can't simulate it.
** sch_path: /home/schippes/.xschem/xschem_library/xschem_sky130/sky130_tests/tb_reram.sch
N1 TOP 0 nFilament sky130_fd_pr_reram__reram_model
V1 TOP 0 PWL (0 0 1u 1.8 2u 0 3u -1.8 4.0u 0.0)
.save i(v1)
**** begin user architecture code


.ic v(nFilament)=3.8
.control
  * Modify according to your specific location
  pre_osdi /mnt/sda7/sky130_fd_pr_reram_git/cells/reram_cell/sky130_fd_pr_reram__reram_cell.osdi
  save all
  tran 0.1n 4.0u
  write tb_reram.raw
.endc

** opencircuitdesign pdks install
* .lib /home/schippes/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt
This is the error:
doAnalyses: TRAN:  Timestep too small; time = 9.29228e-07, timestep = 1.25e-22: trouble with node "nfilament"
tran simulation(s) aborted
t

Tim Edwards

03/14/2023, 2:32 AM
Three terminal??
b

Barak Hoffer

03/14/2023, 7:55 AM
Yes there might be convergence issues, can you share your model definition? You can improve convergence by changing the smoothing and Kclip parameters. The third terminal is actually a state variable for the filament state, and it is exposed as a terminal so you can control its initial state using the ic command.
s

Stefan Schippers

03/14/2023, 8:59 AM
@Barak Hoffer (cc @Tim Edwards ) Is the third terminal controlling some threshold or internal state of the model? Changing pins in existing devices must be a last resort as it breaks existing designs. I also think LVS netlists must only have "physical" pins, this is not a problem, i can do that. Just wondering if this is the correct strategy.
@Barak Hoffer Can't we add a parameter to the model for this? like:
N1 TE BE  sky130_fd_pr_reram__reram_model nFilament=3.8
Because using an additional pin and controlling via .IC yields a circuit with a (theoretically) undefined voltage node as the nFilament pin is floating. Simulators may resolve this by using some tricks, but this often worsens convergence of the whole circuit.
b

Barak Hoffer

04/12/2023, 9:16 AM
I have updated my repo:https://github.com/barakhoffer/sky130_ngspice_reram Now the reram cell is inside a sub circuit, and the nFilament node is internal and the initial condition can be supplied as a parameter
s

Stefan Schippers

04/13/2023, 7:36 AM
Hi, @Barak Hoffer I will go through the reram symbol and testbench and make the required updates. Good the state variable is now internal, as the external pin was a bit problematic, expecially since it changes the interface of the previous symbol. Thanks!