is there guidance for switching from iverilog to x...
# xyce
m
is there guidance for switching from iverilog to xyce? Should I just follow the guide here: https://xyce.sandia.gov/documentation-tutorials/building-guide/
e
The building guide is if you want to build Xyce from source. That can be desirable if you need a feature that hasn’t been included in a formal code release yet. We do code releases every 6 months. We are on the verge of a new release, which will be Xyce 7.5. If you don’t want to build from source, another option is to use one of our binary installers. They are available for 3 operating systems: RHEL7 (linux), MacOS and Windows. For Windows, it is serial-only. For the other 2 you can do either serial or parallel.
Yet another option is to install Xyce using the Spack package installer. There is a configuration file for Xyce that is available. https://github.com/spack
m
I'm wanting to switch from iverilog to xyce because I've heard it's faster. Happy to install a binary. But do the older versions work with the sky130 pdk spice models?
e
Regarding converting from verilog to Xyce, that’s an extraction step that happens upstream from Xyce in the tool flow. For purely digital designs, verilog is always going to be faster than an “analog” style simulator, even a parallel one like Xyce.
The issue is that verilog is basically an event-driven calculation, while a code like Xyce is solving a set of implicit differential equations. So, we have to solve a large matrix.
Getting matrix solves to scale well in parallel is difficult, although a lot of progress has been made over the years. That includes our own work, but also many other research groups.
There are a few features that will be in 7.5 that will make it easier to use Xyce with Sky130, to answer your question. Like I said, that release is probably just days away. we’re really just waiting for the final paperwork to be completed.
m
sorry I'm not being clear
e
That’s OK; let me know if I mis-interpreted your question(s). I’m happy to answer more.
m
I have a digital design that I can simulate, but it's only an approximation of what will happen because it involves a ring oscillator
e
Ah.
I'm wanting to measure the speed of @Teo Ene’s adders
e
For a mixed signal design (or analog) then SPICE and/or Xyce becomes more useful and/or important.
m
yes. So now I have run the design through openlane and got the spice
I have verified the ring oscillator with spice
ngspice
e
I see, that makes sense. How big is the ring oscillator?
m
but now with the registers and counters in place, it is not finishing (only left it one hour so far), but just a 11 inverter ring osc takes ngspice about 4 mins
I really want to run an analog simulation for a few hundred clocks to check the timing of the adder and ring osc are compatible
so, will the binary install of xyce work for me?
is it just a swap in replacement for iverilog? ngspice?
e
The netlist language of Xyce is not 100% the same as ngspice, but it is very similar. Most of the work I’ve done in the past 6 months to make Xyce work with Sky130 has been to add features to the Xyce parser to get them closer.
For 7.5, one feature that was not previously supported in Xyce 7.4 is subcircuit multipliers. (M= on the subcircuit instance line). If that feature isn’t being used in your ring oscillator, it may run fine.
But I’m happy to help with this, BTW.
m
that would be very appreciated
so, no I don't think M is needed
I'll get the binary xyce installed
e
In general, Xyce parses the Sky130 files a lot faster than ngspice. For the actual simulation, they probably have similar runtimes for small circuits. Xyce’s parallelism is mostly helpful when the circuits get large. There has to be enough work for each processor to be fully utilized. Otherwise the additional overhead from parallel is more expensive than the benefit of parallel.
m
so I need the parallel version?
e
So, all of this is to say that for your circuit we might be faster, but that isn’t 100% guaranteed. But like I said I’m happy to help. I’m interested to see the result.
I have a bunch of meetings today (6), but I’ll take a look at your circuit as soon as I can. It might have to wait until tomorrow.
m
thanks!
👍 1