TITLE: CMOS NAND GATE USING 130NM TECHNOLOGY

Hello! This is Ilka Shawl, persuing B.Tech in Electrical Engineering at Government College of Engineering and Technology, Safapora, Kashmir.

ACKNOWLDGEMENT:
I would like to express my heartfelt gratitude towards FOSSEE team for conducting an open hackathon, "Circuit Design and Simulation
Marathon using eSim". This 2 week course introduced us to research work and practical softwares like eSim, ngspice and Skywater 130
in a short duration. The zero cost VSD courses provided to us at the beginning of the hackathon by Mr. Ghosh and Mr.Durgoji proved to be 
the rock solid foundation for the later stages.The sync-up meetings conducted by Mr. Ghosh were highly informative. The hackathon was 
made participant friendly by allowing us to directly contact mentors on slack channel. I would like to acknowledge all the members associated 
with the FOSSEE, IIT Bombay team for making my hackathon completion a reality. 

REPORT:
I have implemented CMOS NAND gate taking reference of a paper by J. A. Núñez-Corona, titled "Design of the analog
transmitter module in 130 nm cmos technology" using sky130 models.

I designed the 2 input NAND circuit using eSim 2.1 and generated the netlist. I modified the netlist as per sky130 pdk models.
The sky130 pdk models of pmos employed are sky130_fd_pr__pfet_01v8 w=1 l=0.5
and that of nmos are sky130_fd_pr__nfet_01v8 w=0.42 l=0.5
The dc supply voltage (vdd) and the amplitude of input pulses at A and B have been set to 1.8V.
The two pulses of different pulse width and time periods have been supplied at input terminals to ensure all the possible combinations can be studied.
The time scale has been chosen as ns
The various combinations of voltages have been plotted to ease the observation.

Individual plots of voltages at V(a), V(b) and V(vout) and a combined plot of the three voltages are obtained. 
A vertically shifted plot is also obtained for clarity.

The modified netlist was run through ngspice 31 to obtain the plots. 

The inputs and corresponding outputs can be summarized as:

V(a)    V(b)    V(vout)   Remark
 0       0        1       M2, M3 are off or open circuited while M0 and M1 are ON or short circuited
 0       1        1       M2, M1 are off or open circuited while M0 and M3 are ON or short circuited
 1       0        1       M3, M0 are off or open circuited while M2 and M1 are ON or short circuited
 1       1        0       M0, M1 are off or open circuited while M2 and M3 are ON or short circuited

POINTS TO BE REMEMBERED:
1. Ensure that the modified netlist file contains link to the sky130_fd_pr library folder.
2. The path link of the modified netlist file and the sky130_fd_pr folder should be same to avoid fatal error.
3. Reference variables should be correctly used to avoid error in output waveform.
4. The format of pulse supplied is pulse(VL VH Td Tr Tf PW TP), where VL= lower voltage, VH= higher voltage, Td= delay time, Tr= rise time, 
Tf= fall time, PW= pulse width, TP= time period