Channels

#xyce

- e
Eric Keiter

02/04/2023, 12:16 AM**@mehdi**It is probably on the order of a few months of work for someone who knows what they are doing. Adding any new type of analysis tends to require an initial intense push, and then it gets iteratively refined for a long time afterwards as people use it and report issues, suggestions. Of course, it can depend on how complex the analysis is.🌍 1 - e
Eric Keiter

02/04/2023, 12:18 AMI think when I implemented the simplest version of small-signal noise (about 10 years ago) it only took me a month or so, and then about a year later we had another effort to make the outputs more user-friendly, and that probably took a few weeks. That hasn’t required much refinement since it went into the code. In contrast, I think we added harmonic balance for the first time in the late 2000s, maybe in 2008, and we’re still improving it, and I can think of a number of improvements we should still do for HB. For example, HB for autonomous circuits is much harder than it is for driven circuits. So, our autonomous variant of HB doesn’t work as well as we would like. - e
Eric Keiter

02/04/2023, 12:19 AMWhen it comes to transient noise, there are at least two main variants I’m aware of. One is to simply have noise sources in the transient simulation and then perform a Monte Carlo analysis, so that many different noise responses are sampled. I think that idea was first published in 1992 and it is pretty easy to understand. I expect we could get that into Xyce fairly quickly, but it is pretty inefficient. - e
Eric Keiter

02/04/2023, 12:22 AMAnother is a method based on stochastic differential equations (SDEs). I believe that was first published by Alper Demir in 1996 or so. That method is more efficient and elegant than the monte carlo (MC) technique, but also harder to implement. In the MC case we wouldn’t need to develop new solver methods but for the SDE case we probably would. Working on the SDE approach would be a lot more fun, but it would definitely take longer. - e
Eric Keiter

02/04/2023, 12:24 AMBut our biggest issue is bandwidth. One reason noise analysis development in Xyce has lagged is that our internal sponsors at SNL haven’t cared that much about it. That doesn’t mean we can’t do it, but it does mean that we are often working on something else considered to be a higher priority. That’s kind of the case at the moment; most of us are pretty busy right now. - e
Eric Keiter

02/04/2023, 12:28 AMNote, there are other noise analysis methods such as HB noise and also phase noise. I think the easiest version of HB noise isn’t too hard to do, but again we have bandwidth issues. - p
Pranav Lulu

02/04/2023, 11:36 AMHello Everyone! I am trying to install Xyce. I am stuck at configure step of building Xyce. What is a correct way to pass LIBS or LDFLAGS with the configure command? I tried giving paths to both LIBS and LDFLAGS but it did not work.s- 2
- 3

- p
Pranav Lulu

02/06/2023, 12:59 PMI am trying to simulate a spice file in xyce with sky130. Getting the error as shown below. I running the following command

Attaching the spice file as well`./Xyce -hspice-ext all run.spice`

e- 2
- 6

- p
Pranav Lulu

02/06/2023, 4:58 PM**@Tim Edwards****@Eric Keiter**How are floating nodes handled in Xyce. Does '.options rshunt = 1e21' work in xyce as well?e- 2
- 2

- t
Tarek Nasser

02/06/2023, 5:35 PMHi everyone, I'm installing Xyce after trillions get installed, however, I got this error. I also don't know what AMD is. is it the processor type ?es- 3
- 5

- p
Pranav Lulu

02/07/2023, 6:51 PMHello**@Eric Keiter**!! Shown below is the device count summary and number of unknowns in Xyce for a netlist. What is the best setting for parallel Xyce that should be used so the simulation is fast and efficient ? By setting I mean which solver to use or any other changes that should be made.e- 2
- 19

- m
Matthew Guthaus

02/14/2023, 10:11 PMIs there a way to get xyce to dump detailed memory usage stats?e- 2
- 5

- m
Meinhard Kissich

02/20/2023, 7:55 PMHello everyone. I'm facing some issues when trying to simulate a minimal sky130 design with Xyce, and I would highly appreciate your help. I started with a minimal example shown below. With just X2 and X3, Xyce runs through without errors. However, once I add the parameterized transistors X2 and X3 (copied from

), Xyce fails and reports unrecognized symbols. SPICE file:`sky130_ef_sc_hd__decap_12`

Copy code

Error:`XyceDemo .lib /home/user/.volare/sky130A/libs.tech/ngspice/sky130.lib.spice tt Xinv Y A VPWR VGND VGND VPWR inverter .subckt inverter Y A NWELL VSUBS VGND VPWR X0 VPWR VGND VPWR NWELL sky130_fd_pr__pfet_01v8_hvt ad=4.524e+11p pd=4.52e+06u as=0p ps=0u w=870000u l=4.73e+06u X1 VGND VPWR VGND VSUBS sky130_fd_pr__nfet_01v8 ad=2.86e+11p pd=3.24e+06u as=0p ps=0u w=550000u l=4.73e+06u X2 Y A VPWR NWELL sky130_fd_pr__pfet_01v8 w=1e+06u l=150000u X3 Y A VGND VSUBS sky130_fd_pr__nfet_01v8 w=650000u l=150000u .ends Vgnd VGND 0 0 Vdd VPWR VGND 1.8 Vin A VGND pulse(0 1.8 1p 10p 10p 1n 2n) .tran 10e-12 2e-09 0e-00 .end`

Copy code

Lines 28-34 in `.../sky130_fd_pr/spice/sky130_fd_pr__nfet_01v8__tt.pm3.spice`:`Netlist error in file /home/user/.volare/sky130A/libs.tech/ngspice/corners/../../../libs.ref/sky130_fd_pr/spice/sky130_fd_pr__nfet_01v8__tt.pm3.spice at or near line 31 Parameter AS for device MSKY130_FD_PR__NFET_01V8 contains unrecognized symbol: AS Netlist error in file /home/user/.volare/sky130A/libs.tech/ngspice/corners/../../../libs.ref/sky130_fd_pr/spice/sky130_fd_pr__nfet_01v8__tt.pm3.spice at or near line 31 Parameter AD for device MSKY130_FD_PR__NFET_01V8 contains unrecognized symbol: AD ...`

Copy code

It looks as if the first occurrence of an explicit parameter overwrites the default ones that can then not be found for any subsequent instantiation. When I instantiate X2 and X3 before X0 and X1 it works.`.subckt sky130_fd_pr__nfet_01v8 d g s b + .param l = 1 w = 1 nf = 1.0 ad = 0 as = 0 pd = 0 ps = 0 nrd = 0 nrs = 0 sa = 0 sb = 0 sd = 0 mult = 1 msky130_fd_pr__nfet_01v8 d g s b sky130_fd_pr__nfet_01v8__model l = {l} w = {w} nf = {nf} ad = {ad} as = {as} pd = {pd} ps = {ps} nrd = {nrd} nrs = {nrs} sa = {sa} sb = {sb} sd = {sd} .model sky130_fd_pr__nfet_01v8__model.0 nmos * Model Flag Parameters + lmin = 2.0e-05 lmax = 0.0001 wmin = 7.0e-06 wmax = 0.0001`

te- 3
- 11

- f
Filippo

03/10/2023, 9:12 AMHi, I Have this error in this simple circuit:Copy code`Failed: sh -c {cd /home/filippo/.xschem/simulations; Xyce "/home/filippo/.xschem/simulations/untitled.spice" # Add -r "/home/filippo/.xschem/simulations/untitled.raw" if you want all variables saved} stderr: Step size reached minimum step size bound Step size reached minimum step size bound data: ***** ***** Welcome to the Xyce(TM) Parallel Electronic Simulator ***** ***** This is version Xyce DEVELOPMENT-202303091748-(Public_Release-7.6.0-146-g5330643a-dirty)-opensource ***** Date: Fri Mar 10 10:10:06 CET 2023 ***** Executing netlist /home/filippo/.xschem/simulations/untitled.spice ***** Reading and parsing netlist... Netlist warning: No print specified ***** Setting up topology... Netlist warning: Voltage Node (NET1) does not have a DC path to ground Netlist warning: Voltage Node (GND) does not have a DC path to ground ***** Device Count Summary ... R level 1 (Resistor) 1 V level 1 (Independent Voltage Source) 1 ---------------------------------------- Total Devices 2 ***** Setting up matrix structure... ***** Number of Unknowns = 3 ***** Initializing... Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! Netlist warning: Numerically singular matrix found by Amesos, returning zero solution to nonlinear solver! ***** Solution Summary ***** Number Successful Steps Taken: 0 Number Failed Steps Attempted: 1 Number Jacobians Evaluated: 62 Number Linear Solves: 62 Number Failed Linear Solves: 25 Number Residual Evaluations: 166 Number Nonlinear Convergence Failures: 1 Total Residual Load Time: 0.000463963 seconds Total Jacobian Load Time: 7.24792e-05 seconds Total Linear Solution Time: 0.000531673 seconds Failed DC sweep steps: DC Step # 1 ***** Total Simulation Solvers Run Time: 0.0103819 seconds ***** Total Elapsed Run Time: 0.639405 seconds ***** ***** End of Xyce(TM) Simulation ***** Timing summary of 1 processor Stats Count CPU Time Wall Time ---------------------------------------- ----- --------------------- --------------------- Xyce 1 0.627 (100.0%) 0.640 (100.0%) Analysis 1 0.010 ( 1.65%) 0.010 ( 1.62%) DC Sweep 1 0.010 ( 1.65%) 0.010 ( 1.61%) Solve 1 0.010 ( 1.64%) 0.010 ( 1.61%) Residual 166 0.001 ( 0.10%) 0.001 ( 0.09%) Jacobian 62 0.000 ( 0.02%) 0.000 ( 0.02%) Linear Solve 62 0.001 ( 0.09%) 0.001 ( 0.09%) Failed Steps 1 0.000 (<0.01%) 0.000 (<0.01%) Netlist Import 1 0.607 (96.88%) 0.620 (96.93%) Parse Context 1 0.583 (92.90%) 0.595 (93.03%) Distribute Devices 1 0.019 ( 3.05%) 0.019 ( 2.99%) Verify Devices 1 0.000 (<0.01%) 0.000 (<0.01%) Instantiate 1 0.000 ( 0.01%) 0.000 ( 0.01%) Late Initialization 1 0.003 ( 0.55%) 0.003 ( 0.55%) Global Indices 1 0.000 ( 0.03%) 0.000 ( 0.03%) Setup Matrix Structure`

k- 2
- 1

- f
Filippo

03/10/2023, 8:39 PMI try to perform a mixed signal simulation with xyce and Iverilog. I found some problems during running `vvp -M. -mrunXyce runXyce.vvp`:Copy code`In calltf for runXyce vvp: symbol lookup error: ./runXyce.vpi: undefined symbol: xyce_open`

m- 2
- 2

- a
Art Scott

04/21/2023, 2:44 PM[webinar video] Sadayuki Yoshitomi, MegaChips Corp; "SPICE model development Ecosystem - linking PDK development with DX technology" at Analog Workgroup Meeting April 18 2023 https://buff.ly/3UYnsPs Posted in #general - a
Ahmed Reda

05/06/2023, 5:11 AMExcuse me, how can i run .spice file using xyce. Is there a document file ?s- 2
- 2

- a
Ayushman Tripathi

05/07/2023, 4:17 PMI am trying to install Xyce (parallel) on CentOS. However in the final step of the installation : when I do sudo make install, I get the error attached in the screenshot. Have downloaded the xyce tar file from the website and not using github link. Attaching error screenshot and configure command screenshot along with configure log file and make file. Please let me know if need any other details.**@Eric Keiter** - a
Art Scott

05/18/2023, 2:21 PM - p
PramitKumar Pal

05/20/2023, 5:44 AMHi everyone, I am trying to simulate a 7 bit dac using xyce in xschem. But the time xyce takes to simulate is very long. Is there any way to reduce the run time? These are the commands I am using. - s
Stefan Schippers

05/20/2023, 11:30 AMI see a duplication in commands. Either use

or (better) use`devices/code_shown.sym`

. Delete the lower command symbols or add`devices/simulator_commands.sym`

to them to avoid duplications. Very recent xschem versions show disabled elements in grey...`spice_ignore=true`

- p
PramitKumar Pal

05/22/2023, 2:15 PM**@Stefan Schippers**Thanks for your reply. I cleaned up the schematic and got it to work a bit faster for the 7bit_dac - p
PramitKumar Pal

05/22/2023, 2:16 PMEven after adding a input level translator and output opamp buffer. - p
PramitKumar Pal

05/22/2023, 4:04 PMThese are the results I got, for 8 bit dac simulation using Xyce. Is it possible to bring the total simulation run time down? - a
Art Scott

05/31/2023, 4:48 PMAloha xyce ... request thoughts and help with xyce colab PySpice etc ... got some Chat* info Xyce, a SPICE-compatible circuit simulator developed by Sandia National Laboratories, has advanced capabilities compared to regular SPICE simulators. However, installing Xyce in a Google Colab environment might not be straightforward due to the system requirements and dependencies needed to compile and run Xyce. As of my last training data in September 2021, there isn't a convenient command or package to install Xyce directly in Google Colab. Installing it manually would involve fetching the source code, meeting all dependencies and building it from source, which might not be feasible in the Google Colab environment due to its constraints. If you want to use Xyce, you might consider setting up a local environment that satisfies the prerequisites or use a pre-configured virtual machine. Please note that the available information might have changed beyond my last training cut-off in September 2021, and there may be newer methods available to install Xyce in Google Colab. You should check the official Xyce documentation and other resources for the most current and accurate information. Here is the link to the Xyce official documentation: https://xyce.sandia.gov/ Keep in mind that using a more specialized simulator like Xyce can be more complex than using SPICE or PySpice, and it may require a deeper understanding of circuit simulation. You may also need to adapt your current scripts or write new ones to work with Xyce's specific capabilities and syntax. Thanks. Mahalo. - a
Art Scott

06/10/2023, 12:52 PM# ChatGPT prompt: Write a pyspice AC tank ladder oscillator # for adiabatic computational circuitry that will run in google colab # and produce a plot of the oscillator output !apt-get install -y libngspice0-dev !pip install PySpice import matplotlib.pyplot as plt import numpy as np from PySpice.Spice.Netlist import Circuit from PySpice.Unit import * # Create a new circuit circuit = Circuit('LC Oscillator') # Define the ladder network parameters n = 5 # number of stages L_value = 1@u_mH C_value = 1@u_uF # Add the ladder network to the circuit for i in range(n): circuit.L(i+1, 'n{}'.format(i), 'n{}'.format(i+1), L_value) circuit.C(i+1, 'n{}'.format(i+1), circuit.gnd, C_value) # Add a sinusoidal voltage source as input circuit.SinusoidalVoltageSource(0, 'n0', circuit.gnd, amplitude=1@u_V) # Perform an AC analysis simulator = circuit.simulator(temperature=25, nominal_temperature=25) analysis = simulator.ac(start_frequency=1@u_Hz, stop_frequency=1@u_GHz, number_of_points=500, variation='dec') # Plot the output plt.figure(figsize=(10, 6)) plt.title("LC Oscillator Output") plt.plot(np.log10(analysis.frequency), np.abs(analysis['n5'])) plt.xlabel('Log Frequency [Hz]') plt.ylabel('Voltage [V]') plt.grid() plt.show()😯 1 - a
Abdulaziz

08/22/2023, 12:19 AM**@Abdulaziz**has left the channel - a
Art Scott

09/27/2023, 12:07 PMhttps://github.com/erikdebenedictis/Shift *This project is under development; the repository and associated site are not claimed to be functional at this time. *Explanation of formatting. I am considering using md files so they can be used in three ways: (1) they will render in markdown under github, (2) they can be executed with ngspice, and (3) the ext3spice program can edit extracted circuits into them. *The .md file you are looking at can be executed with ngspice. A clue to the dual use is that all paragraphs start with an asterisk. Sorry about that. However, ngspice will interpret lines that do not start with an asterisk. Circuits can also be collapsed visually, which is helpful when they are large and boring to read. The following is a collapsed ngspice circuit, actually a list of capacitors. List of capacitors Slack Conversation - m
Mohammed Fayiz Ferosh

10/23/2023, 2:07 AM**@Mohammed Fayiz Ferosh**has left the channel - s
Sashank Krishna S

11/28/2023, 9:27 PM**@Sashank Krishna S**has left the channel