

module levelrestore (inh_NmosB, inh_PmosB, inh_gnd, ibias, inn, inp, out,
    inh_vdd);

//port section 
   inout inh_NmosB;
   inout inh_PmosB;
   inout inh_gnd;
   input ibias;
   input inn;
   input inp;
   output out;
   inout inh_vdd;
   electrical ground;

//end port section 


//Spice primitive instantiations
      electrical inh_NmosB;
      electrical inh_PmosB;
      electrical inh_gnd;
      electrical ibias;
      electrical inn;
      electrical inp;
      electrical out;
      electrical inh_vdd;
   analog begin
      $spice_prim(".import vdd!");
      $spice_prim("M14 inh_vdd ibias1 ibias1 inh_PmosB P  w=2.1u l=0.42u");
      $spice_prim("+ ad='2.1u*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u'");
      $spice_prim("+ as='2.1u*0.84u'");
      $spice_prim("M13 inh_vdd a2 out inh_PmosB P  w=2.1u l=0.28u m=2");
      $spice_prim("+ ad='2.1u*0.84u' pd='2.1u+1.68u' ps='2.1u+1.68u'");
      $spice_prim("+ as='2.1u*0.84u'");
      $spice_prim("M12 inh_vdd a2 a2 inh_PmosB P  w=2.1u l=0.28u ad='2.1u");
      $spice_prim("+*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M11 inh_vdd ibias1 net6 inh_PmosB P  w=2.1u l=0.42u");
      $spice_prim("+ ad='2.1u*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u'");
      $spice_prim("+ as='2.1u*0.84u'");
      $spice_prim("M6 inh_vdd ibias1 net9 inh_PmosB P  w=2.1u l=0.42u");
      $spice_prim("+ ad='2.1u*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u'");
      $spice_prim("+ as='2.1u*0.84u'");
      $spice_prim("M2 inh_vdd a1 a1 inh_PmosB P  w=2.1u l=0.28u ad='2.1u");
      $spice_prim("+*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M1 inh_vdd a1 a3 inh_PmosB P  w=2.1u l=0.28u ad='2.1u");
      $spice_prim("+*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M16 ibias ibias inh_gnd inh_NmosB N  w=1.4u l=0.42u");
      $spice_prim("+ ad='1.4u*0.84u' m=1 pd='1.4u+1.68u' ps='1.4u+1.68u'");
      $spice_prim("+ as='1.4u*0.84u'");
      $spice_prim("M15 ibias1 ibias inh_gnd inh_NmosB N  m=4 l=0.42u");
      $spice_prim("+ w=1.4u ad='1.4u*0.84u' pd='1.4u+1.68u' ps='1.4u");
      $spice_prim("++1.68u' as='1.4u*0.84u'");
      $spice_prim("M9 a2 net6 c inh_NmosB N  l=0.28u w=2.1u m=2 ad='2.1u");
      $spice_prim("+*0.84u' pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M8 out a3 inh_gnd inh_NmosB N  m=2 w=2.1u l=0.28u");
      $spice_prim("+ ad='2.1u*0.84u' pd='2.1u+1.68u' ps='2.1u+1.68u'");
      $spice_prim("+ as='2.1u*0.84u'");
      $spice_prim("M5 c ibias inh_gnd inh_NmosB N  m=4 w=1.4u l=0.42u");
      $spice_prim("+ ad='1.4u*0.84u' pd='1.4u+1.68u' ps='1.4u+1.68u'");
      $spice_prim("+ as='1.4u*0.84u'");
      $spice_prim("M4 a3 a3 inh_gnd inh_NmosB N  w=2.1u l=0.28u ad='2.1u");
      $spice_prim("+*0.84u' m=1 pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M3 a1 net9 c inh_NmosB N  m=2 l=0.28u w=2.1u ad='2.1u");
      $spice_prim("+*0.84u' pd='2.1u+1.68u' ps='2.1u+1.68u' as='2.1u");
      $spice_prim("+*0.84u'");
      $spice_prim("M10 net6 inp inh_gnd net6 P  w=2.1u l=0.28u m=1");
      $spice_prim("M0 net9 inn inh_gnd net9 P  w=2.1u l=0.28u m=1");
   end
//end Spice primitive instantiations


endmodule // levelrestore 

