A circuit is a combination of passive or active electronic components which are interconnected with wires and provided to power to perform a specific task. Bringing a conceptual circuit design into an actual model includes several steps. It all starts with a problem definition such as a “Power module to regulate input voltage to output 5V”. The next step is to design the schematic with the help of a designing tool. Once the schematic is complete, the PCB layout can be made which will be later printed out as the final circuit.
The importance of testing the schematic circuit for performance and functionalities is very important as once the circuit is printed out, there is no way to modify the wiring or components. That is when the SPICE simulation comes into picture.
PSLab device is consisted of hundreds of circuit components and they are interconnected using a 4 layer printed circuit board. A fault in one sub circuitry may fail the complete device. Hence each of them must be tested and simulated using proper tools to ensure functionality against a test input data set.
KiCAD requires an external SPICE engine to be installed. Ngspice is a famous SPICE tool used in the industry.
The test procedures carried out to ensure the circuitry functions in PSLab device is described in this blog. Once the circuit is complete, generate the spice netlist. This will open up a dialog box and in the “Spice” tab, select “Prefix references ‘U’ and ‘IC’ with ‘X’”.
U and IC prefixes are used with chips which cannot be simulated with SPICE. Click “Generate” to build the netlist. Note that this is not the netlist we use to build up the PCB but a netlist which can be used in SPICE simulation.
Now browse to the project folder and rename the file extension of cir to cki to make them compatible with command line SPICE commands.
cp <filename>.cir <filename>.cki
Then open the file using a text editor and modify the GND connection to have a global ground connection by replacing “GND” with “0” which is required in SPICE simulation. Once the SPICE code is complete run the following commands to get the SPICE script compiled;
export SPICE_ASCIIRAWFILE=1 ngspice -b -r <filename>.raw <filename>.cki ngnutmeg SPIce.raw
This will open up a data analysis and manipulation program provided with ngspice to plot graphs and analyse SPICE simulations. Using this we can verify if the circuit can produce expected outputs with respect to the inputs we are providing and make adjustments if necessary.
- Ngspice: http://ngspice.sourceforge.net/download.html
- Installing ngspice: http://web.engr.oregonstate.edu/~traylor/ece 391/install_ngspice
- Sample SPICE simulations: https://www.allaboutcircuits.com/text book/reference/chpt-7/example-circuits-and-netlists/
- SPICE Commands and syntaxes: http://www.ecircuitcenter.com/ SPICEsummary.htm
- PSLab Hardware repository: https://github.com/fossasia/ pslab-hardware/