Version
5.2.2(a) to 5.2.3
Some
of the things we've worked on are listed below:
Help
File
We've updated the help file to add documentation on features that we've
added in the past but didn't add into the help file. The help file is
updated with the patch.
Divide
by zero problems
Some users were still reporting problems with simulations resulting
in divide by zero error messages. We believe this was related to the
graph and has been fixed.
Digital
Simulation Problems with limited-access accounts
Windows accounts with limited permissions could crash when performing
digital simulations due to temporary files not being able to be created.
This has been fixed.
Animations functionality update
Each simulation has its own Animation settings. Also, added was the
ability to choose what was shown in the schematic when the simulation
completed - show nothing, show the final state, or show the operating
point values/graphics. Buttons toggling the animation display was also
added to the schematic toolbar.
Initial conditions
We have made modifications to how Initial Conditions operate for the
Transient simulation (and free-run simulation). Before, there were only
two checkboxes - one for Device IC and one for Transient IC. Now there
are three checkboxes - one to enable Device IC, one to enable Transient
IC and one to enable Nodeset. Another addition was the ability to save
the final state of one transient run to an "IC" file to be
used as the starting point for a new Transient simulation. Please see
the help file for more information.
Non-linear source - operators/functions/expressions
Min/Max wasn't working when used in an expression. ITE expressions can
now be used as part of an expression.
NOTE:
this
list just covers the bigger additions/fixes. There are many smaller
problems that were fixed, usually just usability or cosmetic issues,
including bugs that were introduced in the development process. If you
want a full list of fixes, please email us.
Version
5.2.0 to 5.2.1
Some
of the things we've worked on are listed below:
Help
File
We've updated the help file to add documentation on features that we've
added in the past but didn't add into the help file. The help file is
updated with the patch.
Divide
by zero problems
Some users were reporting problems with simulations resulting in divide
by zero error messages. While we haven't been able to reliably reproduce
the reported problems, we have taken precautionary steps with areas
of the code that could play a part in this.
Graph
axes
Individual axes now have their own settings and are stored individually.
This means that if you add a custom left axis and store the graph/project,
those settings should also be (re)stored with the graph.
NOTE:
this list
just covers the bigger additions/fixes. There are many smaller problems
that were fixed, usually just usability or cosmetic issues, including
bugs that were introduced in the development from 517 to 518. If you
want a full list of fixes, please email us.
Version
5.1.10 to 5.2.0
Some
of the things we've worked on are listed below:
PSpice compatibility
There were a number of fixes and improvements concerning PSpice-style
linear and non-linear controlled sources. This included not "translating"
PSpice syntax into syntax that is compatible with our engine. We have
also added support for native PSpice syntax as well.
Copy/paste/undo/redo
· Copying and pasting devices/circuits could cause a random crash
due to some memory issues. This didn't commonly happen and was in fact
very hard to track down since it wasn't reliably reproducible.
· In some instances, copying and pasting led to packages being
incorrectly assigned different devices.
· We have changed the copy/paste routine so that devices/net
names are kept the same unless they already exist, then they are changed
to make names and references unique.
Graph problems
· Fixed some problems with the graph. Sometimes, a badly saved
graph got into a state where the minimum setting for an axis was greater
than the maximum, which resulted in "floating point overflow"
error messages.
· Improved the graph to better handle digital plot spacing and
resizing
· Improved the digital graph to better handle the Panning tool
User-defined parameters and equations
Improved the capabilities for user-defined parameters to include references
to other parameters and equations. Now device values can be values,
parameters, or equations.
Cadstar
Cadstar devices that shared a common pin weren't coming in correctly,
or with mismatched power pins. We have fixed this and have improved
our program to also better handle common power pins in a package.
NOTE:
this list
just covers the bigger additions/fixes. There are many smaller problems
that were fixed, usually just usability or cosmetic issues, including
bugs that were introduced in the development from 517 to 518. If you
want a full list of fixes, please email us.
Version
5.1.9 to 5.1.10
Some
of the things we've worked on are listed below:
Comma-decimal
problems
We have found and fixed some problems with the comma decimal separator
notation.
Graph problems
Graph settings are now more reliably saved and restored the next time
they're reopened. Also, multiple axes graphs have also been improved.
There were problems with graphs from older versions not appearing correctly
in v5.1.9 that have now been fixed.
Cadstar integration
We have fixed some cadstar problems such as ground nets all being connected
and some basic parts not coming in with models or values. Also, the
mapping function (if saved back to the Cadstar library) could mess up
the libraries.
"Real" resistors, capacitors, inductors
Some real devices were not handling default values and temperature values
correctly, which and cause problems if a temperature sweep is being
performed.
Windows Vista problems
There were cases of simulation crashes that occurred ONLY in Windows
Vista. This has now been fixed.
Version
5.1.7 to 5.1.8
Some
of the things we've worked on are listed below:
Added:
Automatic Update Checking
The program will alert you when a new update is ready. This option can
be turned off.
Fixed:
Memory leak in the Simulation
The free-run simulation had a small memory leak that could lead to B2
Spice v5 using a large amount of RAM.
File->Close Project:
This was quirky and could result in unintended saves as well as altering
the Test setup of other opened projects. NOTE that this refers to the
Menu item only. Closing by clicking the X does not have this problem.
Test - "Add to Existing" problem for graphs
The "Add to Existing" option in graph generation was not fully
working and has been fixed.
Closing large numbers of open projects
This could lead to a crash and this has been fixed.
Node name changes
Editing the schematic can change node names even when the nodes aren't
being edited.
NOTE:
this list just covers the bigger additions/fixes. There are many smaller
problems that were fixed, usually just usability or cosmetic issues,
including bugs that were introduced in the development from 517 to 518.
If you want a full list of fixes, please email us.
Version
5.1.5 to 5.1.6
Some of the things we've worked on are listed below:
Non-Linear Controlled Sources (extension):
Names: arbitrary voltage source, arbitrary current source
category: virtual: voltage sources and virtual: current sources
We have implemented If then else expressions and direct digital and
logical expressions.
Here are some examples:
B1 nplus nminus V = if(v(2) > v(1), 5, 0) // comparator, pspice syntax
B2 nplus nminus V = v(2) > v(1) ? 5 : 0 // comparator, ISspice syntax
B3 nplus nminus V = !(v(2) & v(1)) // nand gate
B4 nplus nminus V = (v(2) > v(1)) \ (v(2) > v(3)) // '\' is the
logical or
These types of expressions can be used for sophisticated modeling within
your circuits. I've included more details on these expressions and operators
at the end of this article.
Virtual table
The "table" output from a simulation was previously a memory
hog. We didn't notice this until a customer ran a transient simulation
that generated hundreds of thousands of time points and generated a
table containing data from 11 signals, which resulted in the program
crashing. To fix the problem, we developed a "virtual" table
that only stores the data that is shown on the screen. It now takes
up very little memory. By the way, there is a second way to view the
graph of simulation results as a table. Click on the leftmost button
in the toolbar when the graph is active, and it converts the view into
a table view. This table view shows the index signal data next to each
signal's data, and it does not synchronize the rows to a shared index
signal, which is why I prefer the separate table window. Also, you can
generate a table from a graph by going to the graph's special menu and
choosing "Create graph from table".
Large netlists
Most of you probably don't run simulations from netlists, but for those
of you that do, the netlist window now supports netlists that are greater
than 32K. This was an embarrassing bug to find, but it's fixed now.
Also, in case you do use netlists, add a line of the following form
to automatically generate a graph and plot v(1) and v(2) when you run
the simulation.
.plot tran v(1) v(2)
Speed with large PWLs
Large PWL voltage sources used to be slow to edit and circuits with
them used to be slow to run. We have improved the code so that you can
have PWL sources with hundreds of thousands of data points with wait
times of only a few seconds. In case you didn't know, you have a text
file of two columns of data for time and voltage, you can load it directly
into a voltage source.
Graph signal vs another signal (instead of vs. time)
Now you can change the x-axis for a signal, which is useful for I-V
curves or eye-plots. To get to this option, go to the Edit Plots panel
using the button of that name on the left side of the screen, then choose
the Edit Plot page if it isn't already active, then select the plot
whose y-axis you want to change in the list-box at the top, then choose
its x-axis from the list of graph signals in the X-axis signal combo-box.
Originally in v5.1.5, this did not work just right. The signal's data
points were being reordered to make the x-axis's data go from low to
high. This problem has been corrected
User defined parameters
Did you know that you can set global variables and then use them within
expressions for part parameters. For example, if you had two resistors
that you wanted to keep in a 2 to 1 ratio, you could define the resistance
of one as 2*R, and the other as R. Then define R as a user-defined parameter
using the menu item by that name in the Schematic's Edit menu. You can
also sweep that parameter when setting up a sweep of transients, for
example. We have now added the capability to also vary it as a Monte
Carlo parameter.
Y-Axis title reflects the current plot
You can now specify that the axis' name is the same as that of the selected
plot. To get to this option, go to the Edit Axes panel using the button
of that name on the left side of the screen, then choose the Left Axis
from the Select Axis combo-box, then choose the Title page below, then
check the Use Selected Signal checkbox
Persistence of axis settings upon "next" run
Have you ever zoomed in on an interesting portion of a plot, then changed
a parameter and re-run the simulation and been frustrated that the graph
rescales to fit the new plots. You can now force the axes to be persistent
with a checkbox named "keep persistent" in the Scale page
of the Edit Axes panel.
Show zero crossings
Show zero crossings for a plot on the graph now interpolates to find
an approximation of the zero crossing, rather than showing the closest
generated point.
Cross-Probing
We spent a lot of time testing and fixing and retesting voltage and
current probes. There were problems in v5.1.5 and earlier in some extreme
cases, and some of these problems even caused crashes.
Did you know that you can add probes to the schematic before or after
a simulation is done, and it adds the corresponding plots to the front-graph.
If you later delete the probe, the corresponding plot(s) get deleted.
This works for families of swept or Monte Carlo plots also. And it also
works if the front "graph" is actually a table.
More notes on If-Then-Else (ITE) expressions
Within the ITE condition, change nothing... except fix up operator precedence
bug, and add exclusive-or.
Logical operators supported:
&: and
|: or
#: xor
!, ~, ': not
Comparison operators:
>, <, = for greater than, less than, and equal.
These ITE expressions can be nested, e.g.
If((v(1) > v(2)) & (v(1) > v(3)), v(1), if(v(2) > v(3),
v(2), v(3))) // pspice syntax
((v(1) > v(2)) & (v(1) > v(3))) ? v(1) : (v(2) > v(3))
? v(2) : v(3))) // isspice syntax
Will return the maximum of v(1), v(2), and v(3)
More notes on logical and digital expressions outside of the ITE
Comparison operators: >, <, =.
These take real inputs and generate logical (0,1) outputs.
Digital operators:
&: and
|: or
#: xor
!, ~: not
These take real analog inputs, convert them to digital signals and perform
the operation, then convert the outputs back to analog again. The conversions
from digital to analog, and back from digital to analog, use the parameters
in the digital simulation options (bb_ad* and bb_da*) for threshold
levels and for high and low voltages.
e.g. v(1) & v(2) // will return 5V (bb_daOutHigh) if both v(1) and
v(2) are greater than 2.5V (bb_adInHigh), else return 0 (bb_daOutLow).
Logical operators: (THIS IS NEW)
These take logical inputs (0,1) and generate logical outputs (0,1).
' : invert (this is the apostrophe that's with the quotation mark)
$ : and
\ : or (backslash, not division symbol)
@ : exclusive-or
e.g. (v(1) > 0) $ (v(2) > 0) // will return 1 if both v(1) and
v(2) are greater than 0, else return 0.