SRAM cell using TRIMODE MTCMOS power and ground gated technique

Total number of transistors is 10 
out of 10 6nMOS transistors and 4 pMOS transistors and this transistors is chosenfrom place component  esim devices and  select either MOSFET_N or MOSFET_P from it and place it in the schematic window.After placing all the  MOS components in the window and connect the terminals as per the reference circuit diagram

Place the GND terminal where it is required and it is also selected from the esim devices only

Now give the power supply vdd and it is also selected from the esim Devices select DC from it and place it in the window.

Total number inputs given to the circuit is 7
sleep 0, sleep1, sleep2, sleep3,bitline, bitline_bar, wordline all these inputs given to it in the way of pulse signal and it is also selected from esim_devices select pulse from it and place it where it is required to connect for the appropriate input.

Check for electrical rule check, run it if it is ok then click close and generate netlist for esim 

Then convert the Kicad to ngspice by applying values to vdd and pulse signal 

For VDD it is chosed to be 1.8  V
for pulse signal the initial value is 0 V and final value is 1.8 V risetime,falltime and delaytime all given to be 0s and pulse width is given and time period is given in terms of microseconds.

place sky130_fd_pr inside the folder where my project is created and then edit the netlist
after editing the netlist and then simulate using ngspice and waveform is generated

In this SRAM cell active mode is implemented  the word line word_line, sleep2 and sleep3 are made high, sleep0 and sleep1 are made low. This causes p2 and n5 transistors to be turned ON and p3 and n4 are turned OFF allowing virtual power line voltage to be equal to supply voltage and virtual ground line voltage to be at zero volts. In this case SRAM cell performs its operations efficiently.


The diffculties faced  while executing the SRAM
the syntax used for pulse is  
 Vd1 sleep0 0 pulse(0 1.8 0 0 0 5u 10u) instead  of Vd2 sleep0 0 1.8 pulse(0 1.8 0 0 0 5u 10u)
cannot find model name
sky130_fd_pr_nfet_01v8 w=.42 l=.5 instead of sky130_fd_pr__nfet_01v8 w=.42 l=.5  (double underscore is used)
no dc value is found
vd1 vdd 1.8 instead of vd1 vdd 0 1.8 
it is to be mentioned that both the high and low is mentioned in vdd
These are the 3 major problems faced by everyone while applying the inputs 

After correcting this it starts executing correcting   