Difference between revisions of "ESim"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
Line 16: Line 16:
 
==Basic Level==
 
==Basic Level==
  
#Overview of eSim
+
 
#*Introduction to simulation and examples
+
# Getting started with eSim Linux installation
#* What is eSim
+
#*Install eSim in Linux
#* Benefits of eSim
+
#*Features of eSim
#* Spoken Tutorials available on eSim
+
#*Test run an example using eSim
#* Timed discussion forum of Spoken Tutorials
+
#*Running Half wave rectifier circuit using eSim
#* Discussion forum of FOSSEE
+
#*Half wave rectifier schematic
#* Circuit simulation project for eSim
+
#*Simulate the schematic using eSim
#* Lab migration for eSim
+
#*Ngspice terminal
# Getting started with eSim.
+
#*Showing the output NgSpice plot
#*Installation of eSim 1.1.0 on Ubuntu
+
#*Showing the output Python plot
#*Installation of eSim 1.1.0 on Ubuntu
+
#Getting started with eSim Windows installation
#*Run eSim using an example
+
#*Install eSim in Windows
#Schematic creation and Simulation
+
#*Features of eSim
#*Create Schematic in eeschema
+
#*Test run an example using eSim
#*Generate Spice Netlist
+
#*Running Half wave rectifier circuit using eSim
#*Convert Spice netlist to Ngspice netlist
+
#*Half wave rectifier schematic
#*Simulate the Ngspice netlist
+
#*Simulate the schematic using eSim
#*Circuit schematic is modified by changing components and then again simulated.
+
#*Ngspice terminal
#Model Editor
+
#*Showing the output NgSpice plot
#*Create a Device model library
+
#*Showing the output Python plot
#*Add or Remove parameters of device model
+
#Schematic Creation and Simulation
#*Save the Device model library
+
#*Launch eSim through terminal
#*Uploading the external or user model file
+
#*Add components to circuit schematic
#*Demo an example which uses this model
+
#*Connect the components using wires
#Creation of a sub circuit in eSim
+
#*Annotate the components
#*Create the new subcircuit schematic
+
#*Generate spice netlist
#*Generate the netlist for subcircuit schematic
+
#*Add source details and analysis parameters
#*Convert kicad netlist to ngspice netlist of subcircuit
+
#*Convert Spice netlist to Ngspice format
#*Create the subcircuit component
+
#*Simulate the circuit
#Adding sub circuit to a schematic
+
#*Understand the multi-meter functionality
#*Add the subcircuit to a schematic
+
#Simulating an Astable Multivibrator
#*Simulate the schematic
+
#*Creating a schematic.
#NGHDL for mix mode Simulation
+
#*Assigning Values to components.
#*Install nghdl
+
#*Annotating the schematic.
#*Open nghdl window
+
#*Performing Electrical Rules Check.
#*Upload VHDL code
+
#*Generating a netlist.
#*Import schematic library of digital block uploaded in previous step
+
#*Setting transient parameters.
#*Enter model parameters
+
#*Converting KiCad netlist to ngspice netlist.
#*Plot simulation result
+
#*Assigning Device models to the semiconductor components.
#Optimisation using OpenModelica
+
#*Simulating the circuit.
#*Install OpenModelica 1.9.1 alpha version.
+
#*Understanding the Python Plotting feature and ngspice terminal.
#*Create ngspice netlist and generate OpenModelica file.
+
#Mapping Components with Footprints
#*Perform optimisation in OMOptim
+
#*Simulating a circuit.
#Device Model creation and Simulation
+
#*Removing sources, labels and plots from the schematic.
#*Create device model       
+
#*Adding Connectors to schematic.
#*Add the device model to a circuit
+
#*Performing annotation, ERC.
#*Add parameters of device model
+
#*Launching Cvpcb.
#*Remove parameters of device model
+
#*Segregating footprints according to their libraries.
#*Edit the value of a parameter       
+
#*Viewing selected footprint.
#*Save the device model
+
#*Assigning footprints to corresponding components.
#*Add the edited device model
+
#*Saving the footprint association.
#*Compare the simulation output before and after editing the device model
+
#*Generating .net netlist file.
#*Upload the external device model
+
#Setting Parameters for PCB designing
#*Locate the uploaded device model from User Library
+
#*Launching Pcbnew
 +
#*Reading .net netlist
 +
#*Moving footprints
 +
#*Orienting footprints
 +
#*Selecting working layer
 +
#*Creating board outline
 +
#*Setting design rules for DRC
 +
#*Changing global track width
 +
#*Verifying drill hole size
 +
#*Verifying drill hole shape
 +
#Laying Tracks on PCB
 +
#*Launching Pcbnew
 +
#*Selecting working layer.
 +
#*Placing a track between two nodes.
 +
#*Adding a ground plane outline for the board.
 +
#*Adding a ground plane for the board.
 +
#*Placing Dimensions for the board.
 +
#*Placing text on the board.
 +
#*Performing DRC.
 +
#*Generating Gerber files.
 +
#*Viewing created Gerber files.
 +
#PCB Layout for Astable Multivibrator
 +
#*Launching Eeschema.
 +
#* Launching Pcbnew.
 +
#*Selecting working layer.
 +
#*Placing a track between two nodes.
 +
#*Adding Board outline.
 +
#*Adding a ground plane for the board.
 +
#*Adding a ground plane outline for the board.
 +
#*Performing DRC.
 +
#*Generating Gerber files.
 +
#*Viewing created Gerber files.
 +
 
 +
==Intermediate Level==
 +
 
 +
#Creating a Device Model
 +
#*Introduction to Device Models.
 +
#*Creating a  Germanium Diode 1N34A model using the Model Editor feature.
 +
#*Adding parameters of Germanium 1N34A.
 +
#*Opening the Diode Characteristics example of eSim.
 +
#*Performing KiCad to Ngspice conversion.
 +
#*Verifying the characteristics of Germanium diode.
 +
#*Observing the Knee voltage and forward current of Germanium diode.
 +
#*Importance of Shockley  Diode equation for DC analysis.
 +
#*Editing the emission coefficient N of Germanium diode.
 +
#*Observing the decreased Knee voltage and forward current of Germanium diode.
 +
#Uploading a Spice Device Model
 +
#*Introduction to Device Models.
 +
#*Downloading ans saving the Schottky.lib file.
 +
#*Uploading an spice Schottky Diode model.
 +
#*The lib and the xml file of Schottky will be in the User Libraries folder.
 +
#*Opening the Diode characteristics example from eSim.
 +
#*Performing the KiCad to Ngspice conversion.
 +
#*Adding the Schottky library file under Device Model tab
 +
#*Generating the Ngspice plots.
 +
#*Observing the Knee voltage and forward current of the Schottky diode.
 +
#*Generating the Python plots.
 +
#Subcircuit Builder
 +
#*Introduction to Subcircuit Builder.
 +
#*Creating a subcrcuit of Half Adder in eeschema.
 +
#*Connecting Ports.
 +
#*Generating KiCad netlist for the subcircuit.
 +
#*Generating Ngspice netlist for the subcircuit.
 +
#*Introduction to Library Editor and Part Library Editor.
 +
#*Creating a Part Library/symbol for the subcircuit.
 +
#*Adding Pins to the component symbol.
 +
#*Verifying the component in the KiCad library.
 +
#*Simulating the subcircuit using HA_Test example
 +
#Editing a Subcircuit
 +
#*Introduction to Edit subcircuit feature.
 +
#*Editing an existing Half Adder subcircuit.
 +
#*Adding an Inverter gate to the output of AND gate.
 +
#*Adding Port.
 +
#*Generating KiCad netlist for the subcircuit.
 +
#*Generating Ngspice netlist for the subcircuit.
 +
#*Editing the Half Adder Subcircuit in the Part Library Editor using Library Editor tool. 
 +
#*Savingthe modified symbol to eSim_subckt libraries.
 +
#*Brief Introduction on 'Updating a current component' , 'Delete' and 'Creating a new component' tools in the Part Library Editor.
 +
#*Verifying the modified subcircuit and its component symbol with Half Adder example
 +
#Uploading a spice Subcircuit file
 +
#*Introduction to subcircuit.
 +
#*Introduction to Upload feature in the Subcircuit Builder.
 +
#*Downloading and saving the 'FA using NAND. sub' file on Desktop
 +
#*Uploading the subcircuit 'FA using NAND.sub' file using ‘Upload’ option.
 +
#*Directing to Subcircuit library of eSim and verifying the created subcircuit and its sch file.
 +
#*Opening the 'Fulladder' example form eSim.
 +
#*Performing KiCad to Ngspice conversion.
 +
#*Generating the Ngspice and Python plots.
 +
#*Brief introduction on '.include' statement in the UJT subcircuit file.
 +
#*Explaination on how the model 'RMOD' and 'Emitter' is defined in the  UJT subcircuit file.

Latest revision as of 15:27, 9 October 2020


eSim (previously known as Oscad / FreeEDA) is an open source EDA tool for circuit design, simulation, analysis and PCB design. It is an integrated tool built using open source software such as KiCad (http://www.kicad-pcb.org) and Ngspice (http://ngspice.sourceforge.net/). eSim is released under GPL.

eSim offers similar capabilities and ease of use as any equivalent proprietary software for schematic creation, simulation and PCB design, without having to pay a huge amount of money to procure licenses. Hence it can be an affordable alternative to educational institutions and SMEs. It can serve as an alternative to commercially available/ licensed software tools like OrCAD, Xpedition and HSPICE.


The Spoken Tutorial Effort for eSim has being contributed by Usha Vishwanathan, Gloria Nandihal and Athul George from FOSSEE Project, IIT Bombay with domain reviews done by Gloria Nandihal and Athul George.


Useful for Electrical Engg/Electronics students.

Basic Level

  1. Getting started with eSim Linux installation
    • Install eSim in Linux
    • Features of eSim
    • Test run an example using eSim
    • Running Half wave rectifier circuit using eSim
    • Half wave rectifier schematic
    • Simulate the schematic using eSim
    • Ngspice terminal
    • Showing the output NgSpice plot
    • Showing the output Python plot
  2. Getting started with eSim Windows installation
    • Install eSim in Windows
    • Features of eSim
    • Test run an example using eSim
    • Running Half wave rectifier circuit using eSim
    • Half wave rectifier schematic
    • Simulate the schematic using eSim
    • Ngspice terminal
    • Showing the output NgSpice plot
    • Showing the output Python plot
  3. Schematic Creation and Simulation
    • Launch eSim through terminal
    • Add components to circuit schematic
    • Connect the components using wires
    • Annotate the components
    • Generate spice netlist
    • Add source details and analysis parameters
    • Convert Spice netlist to Ngspice format
    • Simulate the circuit
    • Understand the multi-meter functionality
  4. Simulating an Astable Multivibrator
    • Creating a schematic.
    • Assigning Values to components.
    • Annotating the schematic.
    • Performing Electrical Rules Check.
    • Generating a netlist.
    • Setting transient parameters.
    • Converting KiCad netlist to ngspice netlist.
    • Assigning Device models to the semiconductor components.
    • Simulating the circuit.
    • Understanding the Python Plotting feature and ngspice terminal.
  5. Mapping Components with Footprints
    • Simulating a circuit.
    • Removing sources, labels and plots from the schematic.
    • Adding Connectors to schematic.
    • Performing annotation, ERC.
    • Launching Cvpcb.
    • Segregating footprints according to their libraries.
    • Viewing selected footprint.
    • Assigning footprints to corresponding components.
    • Saving the footprint association.
    • Generating .net netlist file.
  6. Setting Parameters for PCB designing
    • Launching Pcbnew
    • Reading .net netlist
    • Moving footprints
    • Orienting footprints
    • Selecting working layer
    • Creating board outline
    • Setting design rules for DRC
    • Changing global track width
    • Verifying drill hole size
    • Verifying drill hole shape
  7. Laying Tracks on PCB
    • Launching Pcbnew
    • Selecting working layer.
    • Placing a track between two nodes.
    • Adding a ground plane outline for the board.
    • Adding a ground plane for the board.
    • Placing Dimensions for the board.
    • Placing text on the board.
    • Performing DRC.
    • Generating Gerber files.
    • Viewing created Gerber files.
  8. PCB Layout for Astable Multivibrator
    • Launching Eeschema.
    • Launching Pcbnew.
    • Selecting working layer.
    • Placing a track between two nodes.
    • Adding Board outline.
    • Adding a ground plane for the board.
    • Adding a ground plane outline for the board.
    • Performing DRC.
    • Generating Gerber files.
    • Viewing created Gerber files.

Intermediate Level

  1. Creating a Device Model
    • Introduction to Device Models.
    • Creating a Germanium Diode 1N34A model using the Model Editor feature.
    • Adding parameters of Germanium 1N34A.
    • Opening the Diode Characteristics example of eSim.
    • Performing KiCad to Ngspice conversion.
    • Verifying the characteristics of Germanium diode.
    • Observing the Knee voltage and forward current of Germanium diode.
    • Importance of Shockley Diode equation for DC analysis.
    • Editing the emission coefficient N of Germanium diode.
    • Observing the decreased Knee voltage and forward current of Germanium diode.
  2. Uploading a Spice Device Model
    • Introduction to Device Models.
    • Downloading ans saving the Schottky.lib file.
    • Uploading an spice Schottky Diode model.
    • The lib and the xml file of Schottky will be in the User Libraries folder.
    • Opening the Diode characteristics example from eSim.
    • Performing the KiCad to Ngspice conversion.
    • Adding the Schottky library file under Device Model tab
    • Generating the Ngspice plots.
    • Observing the Knee voltage and forward current of the Schottky diode.
    • Generating the Python plots.
  3. Subcircuit Builder
    • Introduction to Subcircuit Builder.
    • Creating a subcrcuit of Half Adder in eeschema.
    • Connecting Ports.
    • Generating KiCad netlist for the subcircuit.
    • Generating Ngspice netlist for the subcircuit.
    • Introduction to Library Editor and Part Library Editor.
    • Creating a Part Library/symbol for the subcircuit.
    • Adding Pins to the component symbol.
    • Verifying the component in the KiCad library.
    • Simulating the subcircuit using HA_Test example
  4. Editing a Subcircuit
    • Introduction to Edit subcircuit feature.
    • Editing an existing Half Adder subcircuit.
    • Adding an Inverter gate to the output of AND gate.
    • Adding Port.
    • Generating KiCad netlist for the subcircuit.
    • Generating Ngspice netlist for the subcircuit.
    • Editing the Half Adder Subcircuit in the Part Library Editor using Library Editor tool.
    • Savingthe modified symbol to eSim_subckt libraries.
    • Brief Introduction on 'Updating a current component' , 'Delete' and 'Creating a new component' tools in the Part Library Editor.
    • Verifying the modified subcircuit and its component symbol with Half Adder example
  5. Uploading a spice Subcircuit file
    • Introduction to subcircuit.
    • Introduction to Upload feature in the Subcircuit Builder.
    • Downloading and saving the 'FA using NAND. sub' file on Desktop
    • Uploading the subcircuit 'FA using NAND.sub' file using ‘Upload’ option.
    • Directing to Subcircuit library of eSim and verifying the created subcircuit and its sch file.
    • Opening the 'Fulladder' example form eSim.
    • Performing KiCad to Ngspice conversion.
    • Generating the Ngspice and Python plots.
    • Brief introduction on '.include' statement in the UJT subcircuit file.
    • Explaination on how the model 'RMOD' and 'Emitter' is defined in the UJT subcircuit file.

Contributors and Content Editors

Nancyvarkey, PoojaMoolya, Pratik kamble, Vineeta