Step1: Download e-Sim
·        First download the e-Sim from e-Sim fossee website.
·        Run a simple circuit from example file just to check if it is working fine or not
·        Follow the spoken tutorial for getting familiar with  e-Sim.
Step2: Literature Survey
·        Just research about the circuit which I want to implement like I have designed a 2x1 mux circuit using CMOS. I had done research about it on google. I have research about everything like how this circuit will be implemented, the logic behind this implementation, how PMOS and NMOS should be connected and what will be the output.
Step3: Circuit Design and simulation
     First open e-Sim then go to the new project and give a project name without any space as space is not allowed in e-Sim.
       Click ok open the schematic of your project. Then choose  the components required for the circuit and place the components in the schematic window.
    For my 2x1 mux circuit I have chosen 4 PMOS and connected  2 PMOS parallely  and connected another 2 PMOS parallely then connected these two parallel connections in series. This way I made a pull-up network for my circuit.
     Similarly for the pull-down network I selected 4 NMOS and connected 2 NMOS in series with each other and another 2 NMOS in series also. Then I added these two series NMOS connections in parallel.Then I have chosen pulse sources for giving two inputs A and B.
    I have chosen 1 Nmos and  PMOS for making an inverter circuit and added a pulse source at the input of the inverter.
  I made another inverter circuit for getting the output as the CMOS circuit output is always inverted so to get the actual result we should add an inverter at the output.
   Added the global levels and placed the net name like A,B,S,Sbar,out,vdd etc.
    Then connected the circuit using wires as per my circuit diagram. Added GND and VDD source to the circuit. Then annotate the circuit components and generate the netlist of the circuit.
Download the sky130 file , place it and convert the e-Sim model into the sky130 model by modifying the netlist file and obtain the output.
Step 4: the values for e-Sim simulation and for sky130nm model
For e-Sim simulation i used fall time, rise time, delay time in nanoseconds for input pulses and pulse width and period in milliseconds. Done transient analysis in milliseconds. Then I gave 5v vdd value.
For sky130 nm technology I used 0s delay time, 0s rise time, 0s fall time for pulse inputs and gave the value of pulse width and period in microseconds and gave 2v vdd value.

 The problems I have faced/
1    The first problem that I have faced is when I connected all the circuits and when i was going to perform electrical rules check  it was showing several errors that pins are not conflicted, pins are driven by other pins, something like that.
2     My second problem that i have faced is when i was trying to run my circuit I got only the python plot and i was not getting the ngspice plot.
3    Third problem I was facing during the time when I was giving the values to the source inputs for transient analysis.
4   When I was trying to connect e-Sim and sky 130. On e-Sim i was simulating for milliseconds but when i was trying to simulate on sky130 with the same values i was not getting the accurate plot.

How the problems are solved
For the first problem of pin configuration I watched the DAC-IP course provided by Kunal sir and  I saw that there is the solution for my first problem and the solution is to add a power flag to the GND. So after that i also added the power flag to the ground pin and my first problem got solved. And there was another problem for connecting the global pins so after researching on google and youtube I found that this problem can be avoided.

So the solution for my second problem I found on slack channel. I asked the mentors by adding a snapshot of the problem.Then they told me to add the plot pin at the inputs and the output to see the graph on ngspice. After adding the plots I was successful to get a plot on ngspice and a python plot also.

So it was not a easy task as the software is new to me and when i was giving random values i was not able to get the right plot then i researched about that like what value should  give to generate an appropriate pulse , what delay values should give what rise time, fall time should give sp after a long research on google, youtube finally i solved this problem and got a perfect plot.

When I succeeded in simulating my circuit on e-Sim then i found problems in simulating on sky130 nm technology. Then I researched about the problem, searched on sky130 models to identify the values that i should give like W/L ratio, vdd value, input voltages etc. After that I modified my sky130 file with appropriate values and took help from mentors and finally I was able to run my sky 130 nm circuit.



 



