TOPIC- CMOS NOR Gate

TOOLS- eSim and skywater130 pdk


ROADMAP - After an extensive research on selecting the topic for this marathon keeping in consideration the allotted duration(2 weeks), the circuit for the topic - NOR gate using CMOS logic was implemented using eSim and simulated using Sky130. The process involved three main stages. This whole process is implemented on Windows 10 platform.

PROCESS -
i) The first stage out of three involved designing the circuit in eSim. The two series transistors followed by two parallel transistors connected to ground. The circuit was given a DC source connected as vdd. It required two input voltages. While design itself looked less complex, the electrical rules check was an obstacle which was overcome by rectifying connections. After the electrical rules check, the netlist was generated and hence the kiCad to Ngspice conversion was completed with transient analysis as an option selected for simulation. Now here, the netlist generated was edited in accordance with the sky130 models and  required parameter were assigned in the netlist. This edited 'cir.out' file was then simulated using Ngspice.

ii) The second stage involved creating a subcircuit in the library of eSim. Now, the schematic which was created in the first step was appended here. After annotating and electrical rules check. The subcircuit netlist was generated. After this, an appropriate component design was created for the design. Note that here, the  creation of shape of NOR gate was not known but after exploring the options present in the LibraryEditor and with proper guidance the problem was tackled. In this way subcircuit was completed with a component design for it. This was then added to the subcircuit library. 

iii) The third and the most important step involved creating a circuit to implement our subcircuit. Here, the subcircuit created was called and appropriate connections to run it were done. After successful electrical rules check. The biggest obstacle was to successfully complete the conversion from KiCad to Ngspice. The error of 'Please select a Subcircuit with correct number of ports' was a constant till a proper debugging of the design was done. A significant number of attempts were made in recreating the design ensuring the same of ports as that of the subcircuit. A successful conversion resulted in a design consisting the subcircuit with same number of ports. The netlists of both subcircuit and the main design were edited in accordance with Sky130 models as done in first stage. A trial and error approach with appropriate parameters in netlist gave the desired output in Ngspice simulation.

CONCLUSION - After a thorough study with the courses and efforts, a successful implementation and desired output was achieved.  



ACKNOWLEDGEMENTS-
I would really like to express my deepest gratitude to Mr. Kunal GHOSH,VSD and entire team of FOSSEE, IIT B for providing me with guidance and an opportunity to work with sky130 and eSim. It is inspiring to know that this is just the start of many things.  
   
   