I have done a comparison between
ngspice
and (serial)
Xyce
on a big design.
Note: this test circuit does not use sky130 models, but uses a generic
180nm Cmos process at 1.5V. Design has only 1 LV pmos and 1 LV nmos, only two models, BSIM3 level=49.
The example is in the standard (standalone) xschem test schematics,
..../share/xschem/xschem_library/rom8k/rom8k.sch
, it is a 16KByte Rom Macro cell.
Part of the rom array is populated with actual transistors so some read cycles are simulated and data is read out.
Circuit statistics:
***** Device Count Summary ...
C level 1 (Capacitor) 1035
M level 9 (BSIM3) 14287
V level 1 (Independent Voltage Source) 22
--------------------------------------------
Total Devices 15344
***** Setting up matrix structure...
***** Number of Unknowns = 6677
Xyce (serial) report:
***** Total Simulation Solvers Run Time: 977.709 seconds
***** Total Elapsed Run Time: 980.18 seconds
*****
***** End of Xyce(TM) Simulation
*****
Ngspice report:
Total elapsed time (seconds) = 771.449
So there is no much difference in execution time (at least no orders of magnitude).
Simulation results are absolutely correct for both.
I have set up the schematic such that it simulates unchanged both in ngspice and Xyce.
@Steven Bos it would be nice if you can test this on your parallel
Xyce
installation.
You need to run xschem as standalone (so not in a directory with sky130 xschemrc file), get the above models file and place it in the simulation directory as explained in the COMMANDS element of the schematic. Also you need to place the stimuli file from
.../share/doc/xschem/rom8k/stimuli.rom8k
into the simulation directory and follow instructions in the COMMANDS element.
I have done some updates to xschem for better Xyce integration and more error checks (for example against corrupted or malformed .raw files) so please update if you want to try this test.
CC (
@Eric Keiter @Harald Pretl @Tim Edwards)