ESim/C2/Schematic-Creation-and-Simulation/English

From Script | Spoken-Tutorial
Revision as of 16:59, 1 July 2019 by Nancyvarkey (Talk | contribs)

Jump to: navigation, search

Schematic Creation and Simulation using eSim

Author: Gaurav Supal

Keywords: Video tutorial, eSim, Schematic, Simulation, EDA, Ngspice, analysis, transient, subcircuit, spice


Visual cue


Narration

Show Slide:

Opening Slide


Welcome to the spoken tutorial on “Schematic Creation and Simulation using eSim
Show Slide:

Learning Objectives

In this tutorial, using eSim, we will learn to-


  • create circuit schematic
  • generate spice netlist
  • convert spice netlist to ngspice format
  • simulate the netlist
Show Slide:

Systems Requirements


To record this tutorial, we will use-
  • Ubuntu Linux OS 16.04
  • eSim version 1.1.2.
Show Slide:

Prerequisites

To practice this tutorial, basic knowledge of analog and digital electronics is required.
System Computer:

Desktop icon

To launch eSim, double-click on the eSim icon on your Desktop.
Show slide:

Launch eSim through Terminal

esim >> press Enter


Alternately, you can also open eSim from the terminal.


To do so, press Ctrl, Alt and T keys together.


Now, type esim and press Enter.

System Computer:

eSim startup window



Click Ok.

eSim window opens up.


Note that the project files created will be saved in the eSim-Workspace directory, by default.


Press “Ok” in the dialog box.

Let us now create an RC circuit schematic and simulate it.
eSim Main Window:

Creating New Project


Type RC >> click on OK.

Click on the New Project button, to create a new project.


In the “Enter Project name” field, type RC and click on OK.

Please note that spaces are not allowed in the project name.
eSim Main Window:

Project Explorer >> point to RC >> Double-click >> click Open Schematic

Our new project RC will appear under Projects.

Double-click on RC to select the project.

To create the circuit schematic, click Open Schematic button on the left toolbar.

eSim schematic window:

Click Ok.

Click on Yes in the confirmation dialog box.


Ignore the eeschema error by clicking OK.


The Schematic editor window opens up.

eSim schematic window:

Click on Place component tool >> click anywhere

Let us now add components to the schematic.


Click on Place component tool from the right toolbar.


Now click anywhere on the editor.

eSim schematic window:

Adding Resistor


Type eSim underscore Devices in the Filter field.


Then select R and click on OK. Now click anywhere on the editor.

Click on the editor once. Place the resistor R on the editor, by clicking on the editor once.
Press F1. Zoom in by pressing F1.


You can also do so, by scrolling the scroll button of your mouse.

eSim schematic window:

Adding Capacitor


Filter field >> Type eSim_Devices >> select C >> click Ok

Click on the editor once again.


Type again eSim underscore Devices in the Filter field.


Then select C and click on OK.

Place capacitor on the editor Place the capacitor C on the editor as done before.
eSim schematic window:

Adding Sine Source



Filter field >> Type eSim_ Sources >> select sine >> click Ok

Click again on the editor.


Type eSim_Sources in the Filter field.


Select sine and click on OK.

Place sine on the editor Place the sine on the editor as done before.
Filter field >> Type gnd >> select gnd >> click OK >> place on editor Similarly, type gnd and place a ground terminal on editor.
eSim schematic window:

Adding Plots


Filter field >> Type eSim_Plot >> select plot_v1 >> click OK >> place on editor

Similarly, type eSim underscore Plot, select the plot_v1 and place it on the editor.
Copy plot_v1 >> place on editor We need one more plot for output.


Place the cursor on plot underscore v1, right-click and select copy component.


Now place it on the editor.

This is the plot component used to plot voltages at the required nodes.
eSim schematic window:

Adding Labels


Let us now add labels to the schematic.


The labels are used to name the required nodes in the circuit.


This will help us understand the netlist and connection of our circuit.

Click on Place global label tool >> click anywhere >> Type IN >> click on OK Click on Place global label tool from the right toolbar.


Now click anywhere on the editor.


Type IN in text field and click on OK.

Click on Place global label tool >> click anywhere >> Type OUT >> click on OK Similarly, place one more label OUT in editor.
Let us move and arrange the components to create the RC circuit.
eSim schematic window:

Moving the components

Place cursor on resistor >> press 'M'

To move the resistor, place the cursor on it and press the key 'M'.
Click on editor at preferred location. Place it at the preferred location, by clicking on editor again.
eSim schematic window:

Rotating the components


To rotate the resistor, place the cursor on it and press the key 'R'.


Similarly, move the plot components and labels, as shown.

eSim schematic window:

Connecting wires to the schematic

Now, let us connect the various components using wires.
eSim schematic window:

Click on Place wire button >> click sine resource and drag between Sine and Resistor >> click on it.

Click on Place wire button from the right toolbar.


Click on one end of the sine source.


Move the cursor point to one end of the resistor and click on it.

Similarly, connect all the components as demonstrated here.
eSim schematic window:


The plot components are placed at the output and input nodes.


This helps us to view the corresponding voltage waveforms on simulation.

eSim schematic window:

Annotate the schematic


To annotate the schematic components, click on Annotate button from the top toolbar.


Click on Annotate and then click on OK.


The schematic is now annotated.

eSim schematic window:

Giving values to components

To assign a value to the resistor, right-click on it and choose Edit Component.


Click on Value.


Type 1k and click on OK.

Similarly, assign value 1u for capacitor.
eSim schematic window:

Perform ERC check

Click on Perform electrical rules check button >> click on Run.

Now let us do electrical rules check for this schematic.


Click on Perform electrical rules check button on the top toolbar.


Click on Run.

Point to the errors. We can see the errors -

global label not connected

  • and a pin is not driven to components


Close ERC

Ignore the global label not connected error, since we have used the labels for naming the nodes only.


Close the ERC window.

eSim schematic window:

Adding Power Flag

Note that the ground terminal pin is highlighted by a green arrow in the schematic.


It means that this pin is not driven by any power source.


To prevent this, let us place a power flag.

Click on Place component tool >> Click on Schematic editor >> Type PWR_FLAG >> click Ok >> place it on the editor


Click on Place component tool.


Click on the Schematic editor.


Type PWR underscore FLAG and click OK Place it on the schematic editor.

Select wire >> connect PWR_FLAG to gnd


Connect this power flag to the ground terminal using a wire.


This indicates that a power source will be connected here.

eSim schematic window:

Perform ERC check


Now repeat the electrical rules check.


There will be only global label not connected errors, which can be ignored.

Click on Delete Markers >> click on Close. Click on Delete Markers and then click on Close.
eSim schematic window:

Generating Kicad Netlist


Now let us generate the netlist of this circuit.


Click on Generate netlist button from the top toolbar.

Click Generate netlist >> spice tab >> check Default >> click on Generate


Click Save

Click on the Spice tab.


Check the option Default format and then click on Generate.


Click on Save.

eSim schematic window: A Kicad netlist of the RC circuit has been generated.


Now minimise the schematic editor.

eSim Main Window:

Click on Convert Kicad to Ngspice

Now, let us add simulation parameters to this netlist.


Click on Convert Kicad to Ngspice from eSim toolbar.

Kicad to Ngspice Converter:


Analysis Tab >> Select Transient


Let us add transient parameters in Analysis tab.


By default, Transient is selected.


Scroll down to enter values in the Transient analysis fields.

Kicad to Ngspice Converter:

Inserting values


Start time >> 0ms
Make Start Time equal to 0 by doing the following:


Type 0 in the Start textbox.

Step time >> 5ms

Stop time >> 30ms

Similarly, make the Step time 5 milliseconds

and Stop time 30 milliseconds.

Kicad to Ngspice Converter:

Source Details Tab

Let us add the source details.

To do so, click on Source details tab.

Kicad to Ngspice Converter:
offset value >> 0
amplitude >> 5
frequency >> 50
delay time >> 0
damping factor >> 0
Enter the offset value as 0 and press Tab.


Type 5 for amplitude, 50 for frequency and 0 for both delay time and damping factor.

Kicad to Ngspice Converter:

Press Convert button

We will talk about the Ngspice Model, Device Modelling and Subcircuits tab in later tutorials.


Press the Convert button to convert the Kicad netlist to Ngspice netlist

Click Ok.

Close the kicad to ngspice tool

A confirmation dialog box appears. Here let's click Ok.

Close the kicad to ngspice tool by clicking close at the top right corner of the window.

eSim Main Window:

Click on Simulation.

Click on simulation from the eSim toolbar to simulate the example.


An Ngspice terminal and plot windows open along with a Python plot window.
Ngspice Plot:


The plot waveforms show transient analysis of the RC circuit.


Close the Ngspice terminal and plot windows.

Python Plot Window:


Click on Potting tab >> maximize

Select the Python plot window by clicking on Plotting tab in the dock area.


Maximize the Python plot window.

Check IN and OUT nodes >> click plot


To plot the output:

Check the IN and OUT nodes and click on the plot button.


The output plot is shown in blue and input plot in red.

Python Plot Window:

Multimeter Feature


Click on Multimeter >> Click on open schematic

To view the rms values of node voltages, click on the multimeter button.


The Multimeter window opens up, which will be on top of all other windows.


Maximise the schematic and drag the multimeter windows to the corresponding nodes of schematic.

Show Slide:

Device Models and Subcircuits

Let us see how to simulate a circuit involving semiconductor devices and subcircuits.
Show Slide:

Download code file

Let us simulate 7805VoltageRegulator circuit, which has diodes and a LM7805 regulator IC.
eSim Main Window :

Click on Open Project button.


Click on Desktop >>

Click on 7805VoltageRegulator>>

Click on Open button.

Click on Open Project button from the left toolbar.

Click on Desktop.

Click on 7805VoltageRegulator.

Click on the Open button at the bottom right corner.

eSim Main Window:

Double click on 7805VoltageRegulator.



Click on Open Schematic button.

In the Projects window of eSim, double-click on 7805VoltageRegulator.


Click on Open Schematic button from the left toolbar.

eSim Schematic Window:

Show annotated 7805VoltageRegulator schematic.

I have annotated, performed ERC, and generated the spice netlist for this circuit.
I will now switch back to the eSim Main Window
eSim Main Window:



Click on Convert Kicad to Ngspice.

Now, let us add simulation parameters to this netlist.


Click on Convert Kicad to Ngspice from eSim toolbar.

Kicad to Ngspice Converter:

Hover mouse over values entered in Analysis and Source details tab.

I have already added the parameter values in the Analysis and source details tab.
Kicad to Ngspice Converter:


Let us assign device models to the semiconductor components inside the schematic.


To do so, click on Device Modelling tab.

Kicad to Ngspice Converter:

Device Modelling Tab

Hover cursor over Diode 1: esim_diode

We will add a device model for Diode 1: esim_diode
Kicad to Ngspice Converter:Device Modelling Tab

Click on Add>> Double click on Diode>> Click on D.lib>> Click on the Open button.

Click on Add and then double-click on Diode.


Click on D.lib


Then click on the Open button.

We will perform the same steps for the remaining diodes as well.
Kicad to Ngspice Converter:Device Modelling Tab Now let’s add the subcircuit file for LM_7805 subcircuit.


To do so, click on Subcircuits tab.

Kicad to Ngspice Converter: Subcircuits tab:

Click on Add>>Double click on lm7805 folder>> Click on the Open button

Click on Add


Double-click on lm7805 and then click on the Open button.

Kicad to Ngspice Converter:

Press Convert button.


Click Ok.

Press the Convert button to convert the Kicad netlist to Ngspice netlist.


A confirmation dialog box appears. Here let's click Ok.

eSim Main Window:

Click on Simulation.

Click on simulation from the left toolbar.
eSim Main Window:

Hover mouse over Ngspice plots and python plots.


Click on in1, in2 and out.



Click on plot.

An Ngspice terminal and Ngspice plot windows opens along with a Python plot window.


Click on in1, in2 and out checkboxes in the Python plot window.


Scroll down and click on plot button.

Let us summarize.
Show Slide:

Summary


In this tutorial, we learnt how to-


  • Create circuit schematic
  • Generate spice netlist
  • Convert spice netlist to ngspice format
  • Simulate the netlist


Show Slide:

Forum

Please post your timed queries in this forum.


Show Slide:

FOSSEE Forum

Please post your general queries on eSim in this forum.
Show Slide:

Textbook Companion

FOSSEE team coordinates the TBC project.
Show Slide:

Acknowledgment

http://spoken-tutorial.org


Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India.


For more details, visit this website.

Previous slide

This is _________ from IIT Bombay, signing off.

Thank you.

Contributors and Content Editors

Nancyvarkey, PoojaMoolya, Saurabhbansode, Vineeta