v5 release notes


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.


Beige Bag Software, Inc., 623 W. Huron, Suite 2, Ann Arbor, MI, 48103
(phone) 734.332.0487 (fax) 734.332.0392 (email) info@beigebag.com
© 2005-2008 Beige Bag Software, Inc