This file contains the steps for the working of the project Design and Analysis of TSPC D flip-flop using eSim and the problems I faced while implementation of the same.

-----------------------------------------------------------------------------------------------------------

1. Firstly, opening eSim software installed on the PC/Laptop.

2. Adding a new schematic and giving the name as tspc_dff and opening the same using the open schematic    symbol.

3. Once the schematic is open, I start with placing the components according to the design I chose. In my       design, I had a total of 12 Mosfets and 4 ports for input(3) and output(1).
  
3. After placing, connection is made by wire in the software. Taking care that the substrate also has to be      connected properly. In case of pmos, substrate is connected to Vdd and gnd for nmos.

4. Creating 3 ports of input, namely D_input, Clock and reset and connect as per the circuit design. Also       place the wire label on the respective wires for clarity.

5. Creating the ouput port as Vout and labelling it as Q.

6. After making the circuit diagram, I save the schematic and run the DRC check rules and check for errors.      For the ground error, I put a power flag to resolve the issue. If any connection error, I delete the wire     and remake the connection.

7. Once the file shows 0 errors, I move to creating netlist of the ckt and saving it in the place where I       have the skywater130 lib folder.

8. Opening the tspc_dff.cir file in notepad and changing the mosfets to the sky130 mosfets everywhere in the    code. Specifying the input pulses and transient analysis that is to be done and save the edited file. 

9. Once this is done, I run the .cir file in Ngspice and check for any errors. The errors I faced at this    step were -
	a. 'Couldn't include file' - this was resolved by replacing the sky130 folder with the newer version. 	    Once done, the .cir file worked.
	b. 'Vector Vout not found' - this error meant that I wasn't clearly giving the Vdd or the input 	    signals. Keeping Vd0,Vd1 and Vd2 for my inputs, it worked.

10. Once the errors are resolved, the plot signals will open up in a window. As i needed 4 different     waveforms, I plotted in separate lines to get separate waveforms.