Get CoolSpice up and running!
Double click on the CoolSpice installer after you download it
and follow the instructions.
CoolSpice comes with two different Visual C++ Redistributables
for 32- and 64-bit machines. If you encounter any problems running
the CoolSpice package, please manually install the 64-bit version
and the .NET Framework 4.0.
By default CoolSpice will be installed within My Documents and
the following folders will be created within:
The Ckts folder contains a collection of example circuits,
schematics files which can be opened using the schematics editor
The CoolCADSPICE folder contains the executables for the SPICE
engine, the plotter, the text editor, and the schematics editor.
The Libraries folder contains the schematics libraries which contain
basic SPICE components. The library files are used by the schematics
The Models folder contains SPICE models for the following:
- MOSIS contains SPICE models extracted and published on
the mosis.org webpage.
- StandardParts contains some diode and BJT models.
Optional: the CoolCADSPICE contains a WinSCP subfolder which is
currently empty. If you wish to add functionality for directly running
a netlist from the main console, please follow these instructions:
- Download the WinSCP files.
- Extract all of the files including in the .ZIP.
- Place the extracted files in Documents\CoolSpice\CoolCADSPICE\WinSCP
To use this additional functionality, click on the "SPICE Engine" button
at the bottom left of the main console.
Building a Circuit
By default, the Schematic Editor opens up with one empty schematic
window and library/parts frames to the left. If these frames are not
visible, click on the "Symbol picker" button (with the symbol Ω). For
this example we are going to build an inverter using the IBM 65 nm 10LP
CMOS technology (in the student version you can use one of the MOSFETs
in the "MOSIS" library), whose MOSFET models are included in the built-in
libraries which come with the program (in the student version, IBM libraries
are absent, instead you can use the MOSIS libraries). Click on the + next
to the required library to use to open up the list of components.
Double-clicking on the name of the required device (or single-clicking
on the symbol which appears in the symbol frame) gives the user an instance
of the device to place, as well as opening up the Options window for the
device. The options window disappears after the user has clicked on the
schematic window to place the device. The user can place multiple
instances of the same device until the place mode is canceled by hitting
the Escape key.
The options window is recalled by clicking on a device
after placement. The initial (default) sizing for the MOSFET devices is
the minimum size for the technology. The parameters can be changed by
double-clicking on the value of a parameter. For this example circuit,
width of the PMOS is changed to 1.04 µm (type 1.04u).
The orientation of the device symbol, the instance reference
(“Ref”) and the simulation temperature (the option that enables
setting temperature of individual devices does not affect simulation
results for standard BSIM models. It is only available for cryogenic
CMOS or high temperature silicon carbide devices) for the device
can also be changed by the options window.
For the first example, we will look at the voltage and current
transfer functions of an inverter. To add a power pin, use the
“Power” button in the row of buttons (or use the hotkey F4). Note
that when the mouse cursor hovers over the buttons, the function
of the button appears in a pop-up tooltip. The ground can be found
under the Analog library, as “Source – Ground” (For circuits with
multiple grounds, please use the power pin with the "power voltage"
set to 0). The DC voltage source is also under the same library.
During or after placement, change the instance parameters of the
sources to fit the examples below.
Wires are added using the Wire button (or the hotkey F2).
Analysis and Simulation
To measure and plot the drain current and voltages, we use a current
probe, which is found in the Analog library as “Probe – Ammeter.” In this
example the current probe is inserted between the PMOS drain and the rail
power source, to measure the current going into the inverter. We also use
wire labels, placed by using the label button (or the F1 hotkey). Warning:
Do not give any other label to the net connected to the ground node.
The SPICE analysis tools are found in the “Analysis” library in the frame.
Here we use the DC analysis tool, .dc, sweeping from 0 V to the rail
voltage (1.2 V) in 0.05 V increments.
To run the analysis we can first save the design using the save
button or the “Save” command in the menu. The simulation is ran by
the “run” button or the command “Create SPICE Net List and Run” under
the SPICE menu. The program then asks the user for a filename to save
the netlist as.
After the simulation is complete, the CoolCADPlotter screen is
launched automatically. To show the results, click the “Add Trace”
button or use the command “Add Traces” under the Graph menu. The pop-up
dialogue for the available traces opens up. Note that in the Plotter,
when the mouse cursor hovers over a button, the function of the button
is indicated in the bottom of the window frame.
Voltages can be recorded as a trace and plotted using the
“Probe — Voltage” tool under the Analog library. The voltage
probe should be connected to a node and the current probe should
be inserted into a branch.
When the simulation is run with two or more probes in the circuit,
the plotting program will show the voltage or currents recorded by all
probes as available. In this example, if the user chooses both to plot
at the same time, the plots are by default put on separate y-axes since
we have one voltage and one current plot.
It is also possible to add plots one by one and create a split
window using the “Add another view to the panel” button.
Creating a Symbol
Use the item “Add a Hierarchical Symbol” under the SPICE menu to
create a symbol for the designed circuit. The symbol editor opens as
another tab in your design, with the original circuit design put on
the tab named “Sheet 1” by default.
When using the polygon tool to draw lines or shapes, right click
and choose “Finish Polygon” to end the drawing.
The design itself should have labels on all the nodes which
will correspond to pins in the symbol. The pins, which are added
with the “pin” tool button, should have names and electrical types
that correspond to the labels. Once this symbol has been saved, the
circuit can be incorporated into the design of another circuit by
utilizing the “Insert another design as symbol…” menu item in the
Editing and Adding Libraries and Models
The “Libraries…” button gives the user access to the existing
libraries for editing, as well as allowing the user to add
In the symbol list, the user can right-click on the symbol of
the device to be edited. In this example, we will create a new
symbol and introduce the model for a diode. In the “Library Setup”
window, click on “New.” A save window will open. After the library
is saved with a name, an empty library window opens. Right-clicking
anywhere on this window and choosing “New Symbol” gives the user
an empty symbol window. A new symbol can then be designed and
pins defined using the same tools referenced above for the
hierarchical symbol creation.
Once the user asks to save the symbol, the Symbol Properties
window comes up. After the symbol has been stored once, these
properties can be accessed again by right-clicking on the symbol
in the new library list and choosing “Symbol Properties.” In this
window, the Attributes tab is used to define parameters and the
SPICE tab is used to define the netlist line as well as the model
file to be referenced. In this example, we are creating a diode,
using a model in the file placed in the ../Models/ directory.
Once a symbol has been stored in the new library, this library
is going to be available in the library tab and the new device
can be used in new designs.