************************************************************************************************ *esempi *xnand1 0 node1 nodeZ nodeA nodeB NAND2_SUB <--drive strength di default=1 *xnand2 0 node1 nodeZ nodeA nodeB NAND2_SUB XX=2 <--drive strength =2 *xxor1 0 node1 nodeZ nodeB nodeA XOR2_SUB .subckt NOT4_SUB 1 2 3 4 XX=4 Mn1 3 4 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 3 4 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ * not ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength ---------+ *inA -----------------+ | *uscita ------------+ | | *vdd -------------+ | | | *massa ---------+ | | | | * | | | | | * v v v v v .subckt NOT_SUB 1 2 3 4 XX=1 Mn1 3 4 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 3 4 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nand2 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos *drive strength ------------+ *inB ----mos uscita-------+ | *inA ----mos massa------+ | | *uscita --------------+ | | | *vdd ---------------+ | | | | *massa -----------+ | | | | | * | | | | | | * v v v v v v .subckt NAND2_SUB 1 2 3 4 5 XX=1 Mn1 6 4 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 3 5 6 1 nmos W={2*XX*Wmin} L={Lmin} Mp1 3 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 3 5 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nand3 ************************************************************************************************ *drive strength---------------+ *inC------------------------+ | *inB ---------------------+ | | *inA -------------------+ | | | *output --------------+ | | | | *vdd ---------------+ | | | | | *ground-----------+ | | | | | | * | | | | | | | * v v v v v v v .subckt NAND3_SUB 1 2 3 4 5 6 XX=1 Mn1 7 4 1 1 nmos W={3*XX*Wmin} L={Lmin} Mn2 8 5 7 1 nmos W={3*XX*Wmin} L={Lmin} Mn3 3 6 8 1 nmos W={3*XX*Wmin} L={Lmin} Mp1 3 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 3 5 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp3 3 6 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nand4 ************************************************************************************************ *drive strengh------------------+ *inD--------------------------+ | *inC------------------------+ | | *inB ---------------------+ | | | *inA -------------------+ | | | | *output --------------+ | | | | | *vdd ---------------+ | | | | | | *ground-----------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt NAND4_SUB 1 2 3 4 5 6 7 XX=1 Mn1 8 4 1 1 nmos W={4*XX*Wmin} L={Lmin} Mn2 9 5 8 1 nmos W={4*XX*Wmin} L={Lmin} Mn3 10 6 9 1 nmos W={4*XX*Wmin} L={Lmin} Mn4 3 7 10 1 nmos W={4*XX*Wmin} L={Lmin} Mp1 3 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 3 5 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp3 3 6 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp4 3 7 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nor2 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos *drive strength -----------+ *inB ---mos uscita-------+ | *inA ---mos vdd--------+ | | *uscita -------------+ | | | *vdd --------------+ | | | | *massa ----------+ | | | | | * | | | | | | * v v v v v v .subckt NOR2_SUB 1 2 3 4 5 XX=1 Mn1 3 4 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn2 3 5 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 6 4 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp2 3 5 6 2 pmos W={4*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nor3 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strenght--------------+ *inC--- -------------------+ | *inB --------------------+ | | *inA ------------------+ | | | *output -------------+ | | | | *vdd --------------+ | | | | | *ground----------+ | | | | | | * | | | | | | | * v v v v v v v .subckt NOR3_SUB 1 2 3 4 5 6 XX=1 Mn1 3 4 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn2 3 5 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn3 3 6 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 7 4 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp2 8 5 7 2 pmos W={6*XX*Wmin} L={Lmin} Mp3 3 6 8 2 pmos W={6*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * nor4 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strenght------------------+ *in4-------------------------+ | *in3--- -------------------+ | | *in2 --------------------+ | | | *in1 ------------------+ | | | | *output -------------+ | | | | | *vdd --------------+ | | | | | | *ground----------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt NOR4_SUB 1 2 3 4 5 6 7 XX=1 Mn1 3 4 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn2 3 5 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn3 3 6 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn4 3 7 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 10 4 2 2 pmos W={8*XX*Wmin} L={Lmin} Mp2 9 5 10 2 pmos W={8*XX*Wmin} L={Lmin} Mp3 8 6 9 2 pmos W={8*XX*Wmin} L={Lmin} Mp4 3 7 8 2 pmos W={8*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * xor2 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength -------------+ *inB --------------------+ | *inA ------------------+ | | *uscita -------------+ | | | *vdd --------------+ | | | | *massa ----------+ | | | | | * | | | | | | * v v v v v v .subckt XOR2_SUB 1 2 3 4 5 XX=1 *NOT Mp5 node5n 5 2 2 pmos L={Lmin} W={2*XX*Wmin} Mn5 node5n 5 1 1 nmos L={Lmin} W={XX*Wmin} Mp6 node4n 4 2 2 pmos L={Lmin} W={2*XX*Wmin} Mn6 node4n 4 1 1 nmos L={Lmin} W={XX*Wmin} *PULL UP Mp1 3 4 int4 2 pmos L={Lmin} W={4*XX*Wmin} Mp2 3 node4n int1 2 pmos L={Lmin} W={4*XX*Wmin} Mp3 int4 node5n 2 2 pmos L={Lmin} W={4*XX*Wmin} Mp4 int1 5 2 2 pmos L={Lmin} W={4*XX*Wmin} *PULL DOWN Mn4 6 4 1 1 nmos L={Lmin} W={2*XX*Wmin} Mn3 3 5 6 1 nmos L={Lmin} W={2*XX*Wmin} Mn2 int3 node4n 1 1 nmos L={Lmin} W={2*XX*Wmin} Mn1 3 node5n int3 1 nmos L={Lmin} W={2*XX*Wmin} .ends ************************************************************************************************ ************************************************************************************************ * and2 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength--------------+ *inB ----mos uscita-------+ | *inA ----mos massa------+ | | *uscita --------------+ | | | *vdd ---------------+ | | | | *massa -----------+ | | | | | * | | | | | | * v v v v v v .subckt AND2_SUB 1 2 3 4 5 XX=1 Mn1 6 4 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 7 5 6 1 nmos W={2*XX*Wmin} L={Lmin} Mp1 7 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 7 5 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp3 3 7 2 2 pmos W={2*XX*Wmin} L={Lmin} Mn3 3 7 1 1 nmos W={1*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * and3 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength----------------+ *inC------------------------+ | *inB ----mos output-------+ | | *inA ----mos ground-----+ | | | *output --------------+ | | | | *vdd ---------------+ | | | | | *groung-----------+ | | | | | | * | | | | | | | * v v v v v v v .subckt AND3_SUB 1 2 3 4 5 6 XX=1 Mn1 7 4 1 1 nmos W={3*XX*Wmin} L={Lmin} Mn2 8 5 7 1 nmos W={3*XX*Wmin} L={Lmin} Mn3 9 6 8 1 nmos W={3*XX*Wmin} L={Lmin} Mp1 9 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 9 5 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp3 9 6 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp4 3 9 2 2 pmos W={2*XX*Wmin} L={Lmin} Mn4 3 9 1 1 nmos W={1*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * and4 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength------------------+ *inD--------------------------+ | *inC------------------------+ | | *inB ----mos output-------+ | | | *inA ----mos ground-----+ | | | | *output --------------+ | | | | | *vdd ---------------+ | | | | | | *groung-----------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt AND4_SUB 1 2 3 4 5 6 7 XX=1 Mn1 10 4 1 1 nmos W={4*XX*Wmin} L={Lmin} Mn2 9 5 10 1 nmos W={4*XX*Wmin} L={Lmin} Mn3 8 6 9 1 nmos W={4*XX*Wmin} L={Lmin} Mn4 11 7 8 1 nmos W={4*XX*Wmin} L={Lmin} Mp1 11 4 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp2 11 5 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp3 11 6 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp4 11 7 2 2 pmos W={2*XX*Wmin} L={Lmin} Mp5 3 11 2 2 pmos W={2*XX*Wmin} L={Lmin} Mn5 3 11 1 1 nmos W={1*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * mux21 ************************************************************************************************ *drive strength--------------------------------------+ *inC-(nodeS0)---------------------------------+ | *inB-(nodeD1)---------------------------+ | | *inA-(nodeD0)---------------------+ | | | *output---------------------+ | | | | *vdd -----------------+ | | | | | *ground-----------+ | | | | | | * | | | | | | | * v v v v v v v .subckt mux21_SUB 0 node1 nodez nodea nodeb nodec XX=1 *RETE PASS TRANSISTOR Mn4 nodea nodecn nodeu 0 nmos W={2*XX*Wmin} L={Lmin} Mn5 nodeb nodec nodeu 0 nmos W={2*XX*Wmin} L={Lmin} Mp4 nodea nodec nodeu node1 pmos W={2*XX*Wmin} L={Lmin} Mp5 nodeb nodecn nodeu node1 pmos W={2*XX*Wmin} L={Lmin} *INVERTER FINALI Mn3 nodez nodeun 0 0 nmos W={XX*Wmin} L={Lmin} Mp3 nodez nodeun node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn2 nodeun nodeu 0 0 nmos W={XX*Wmin} L={Lmin} Mp2 nodeun nodeu node1 node1 pmos W={2*XX*Wmin} L={Lmin} *NOT Mp1 nodecn nodec node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn1 nodecn nodec 0 0 nmos W={XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * mux31 ************************************************************************************************ *drive strength----------------------------------------------------+ *in5-(nodeS1)----------------------------------------------+ | *in4-(nodeS0)----------------------------------------+ | | *in3-(nodeD2)---------------------------------+ | | | *in2-(nodeD1)---------------------------+ | | | | *in1-(nodeD0)---------------------+ | | | | | *output---------------------+ | | | | | | *vdd -----------------+ | | | | | | | *ground-----------+ | | | | | | | | * | | | | | | | | | * v v v v v v v v v .subckt mux31_SUB 0 node1 nodeZ nodeA nodeB nodeC nodeD nodeE XX=1 Mp8 nodeU1 nodee nodeU2 node1 pmos W={3*XX*Wmin} L={Lmin} Mp3 nodea noded nodeU1 node1 pmos W={3*XX*Wmin} L={Lmin} Mp2 nodeeN nodee node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp1 nodedN noded node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp4 nodeb nodedN nodeU1 node1 pmos W={3*XX*Wmin} L={Lmin} Mn3 nodea nodedN nodeU1 0 nmos W={3*XX*Wmin} L={Lmin} Mn8 nodeU1 nodeeN nodeU2 0 nmos W={3*XX*Wmin} L={Lmin} Mn4 nodeb noded nodeU1 0 nmos W={3*XX*Wmin} L={Lmin} Mn7 nodez 1 0 0 nmos W={XX*Wmin} L={Lmin} Mp7 nodez 1 node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn6 1 nodeU2 0 0 nmos W={XX*Wmin} L={Lmin} Mp6 1 nodeU2 node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp5 nodec nodeeN nodeU2 node1 pmos W={2*XX*Wmin} L={Lmin} Mn2 nodeeN nodee 0 0 nmos W={XX*Wmin} L={Lmin} Mn1 nodedN noded 0 0 nmos W={XX*Wmin} L={Lmin} Mn5 nodec nodee nodeU2 0 nmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * mux41 ************************************************************************************************ *drive strength--------------------------------------------------------+ *in6-(nodeS1)--------------------------------------------------+ | *in5-(nodeS0)----------------------------------------------+ | | *in4-(nodeD3)----------------------------------------+ | | | *in3-(nodeD2)---------------------------------+ | | | | *in2-(nodeD1)---------------------------+ | | | | | *in1-(nodeD0)---------------------+ | | | | | | *output---------------------+ | | | | | | | *vdd -----------------+ | | | | | | | | *ground-----------+ | | | | | | | | | * | | | | | | | | | | * v v v v v v v v v v .subckt mux41_SUB 0 node1 nodeZ nodeA nodeB nodeC nodeD nodeE nodeF XX=1 Mn1 nodeeN nodee 0 0 nmos W={XX*Wmin} L={Lmin} Mp1 nodeeN nodee node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn2 nodefN nodef 0 0 nmos W={XX*Wmin} L={Lmin} Mp2 nodefN nodef node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp3 nodea nodee nodeU1 node1 pmos W={3*XX*Wmin} L={Lmin} Mn3 nodea nodeeN nodeU1 0 nmos W={3*XX*Wmin} L={Lmin} Mn4 nodeb nodee nodeU1 0 nmos W={3*XX*Wmin} L={Lmin} Mp4 nodeb nodeeN nodeU1 node1 pmos W={3*XX*Wmin} L={Lmin} Mp5 nodec nodee nodeU2 node1 pmos W={3*XX*Wmin} L={Lmin} Mn5 nodec nodeeN nodeU2 0 nmos W={3*XX*Wmin} L={Lmin} Mp6 noded nodeeN nodeU2 node1 pmos W={3*XX*Wmin} L={Lmin} Mn6 noded nodee nodeU2 0 nmos W={3*XX*Wmin} L={Lmin} Mp7 nodeU1 nodef nodez node1 pmos W={3*XX*Wmin} L={Lmin} Mn7 nodeU1 nodefN nodeU3 0 nmos W={3*XX*Wmin} L={Lmin} Mp8 nodeU2 nodefN nodez node1 pmos W={3*XX*Wmin} L={Lmin} Mn8 nodeU2 nodef nodeU3 0 nmos W={3*XX*Wmin} L={Lmin} Mp9 1 nodeU3 node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn9 1 nodeU3 0 0 nmos W={XX*Wmin} L={Lmin} Mn10 nodez 1 0 0 nmos W={XX*Wmin} L={Lmin} Mp10 nodez 1 node1 node1 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * DLatch ************************************************************************************************ *drive strength--------------------------------+ *inB ---(like i/p)-nodeD-----------------+ | *inA ---(like clk)-nodeG-----------+ | | *output----------------------+ | | | *vdd ------------------+ | | | | *ground------------+ | | | | | * | | | | | | * v v v v v v .subckt DLatch_SUB 0 node1 nodeZ nodea nodeb XX=1 Mp41 nodeb nodeaN node21 node1 pmos W={2*XX*Wmin} L={Lmin} Mn4 nodeb nodea node21 0 nmos W={2*XX*Wmin} L={Lmin} Mn3 nodez 1 0 0 nmos W={XX*Wmin} L={Lmin} Mp3 nodez 1 node1 node1 pmos W={2*XX*Wmin} L={Lmin} *REAZIONE + Mn1 node21 1 0 0 nmos W={XX*Wmin} L={2*Lmin} Mp1 node21 1 node1 node1 pmos W={XX*Wmin} L={2*Lmin} Mn2 1 node21 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp2 1 node21 node1 node1 pmos W={2*XX*Wmin} L={Lmin} *G NEGATO Mp5 nodeaN nodea node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn5 nodeaN nodea 0 0 nmos W={XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO12 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength---------------+ *inC ----mos out-gnd--------+ | *inB ----mos Vdd-gnd------+ | | *inA ----mos Vdd-out----+ | | | *uscita --------------+ | | | | *vdd ---------------+ | | | | | *massa -----------+ | | | | | | * | | | | | | | * v v v v v v v .subckt AO12_SUB 1 2 3 4 5 6 XX=1 Mn1 9 4 8 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 8 5 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn3 9 6 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 7 4 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp2 7 5 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp3 9 6 7 2 pmos W={4*XX*Wmin} L={Lmin} Mn4 3 9 1 1 nmos W={XX*Wmin} L={Lmin} Mp4 3 9 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO22 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength-----------------+ *inD ----mos Vdd-gnd----------+ | *inC ----mos Vdd-out--------+ | | *inB ----mos out-gnd------+ | | | *inA ----mos out-out----+ | | | | *uscita --------------+ | | | | | *vdd ---------------+ | | | | | | *massa -----------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt AO22_SUB 1 2 3 4 5 6 7 XX=1 * D G S B Name W L *PULL DOWN Mn1 11 4 9 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 9 5 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn3 11 6 10 1 nmos W={2*XX*Wmin} L={Lmin} Mn4 10 7 1 1 nmos W={2*XX*Wmin} L={Lmin} *PULL UP Mp1 11 4 8 2 pmos w={4*XX*Wmin} L={Lmin} Mp2 11 5 8 2 pmos W={4*XX*Wmin} L={Lmin} Mp3 8 6 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp4 8 7 2 2 pmos W={4*XX*Wmin} L={Lmin} *USCITA Mn5 3 11 1 1 nmos W={Wmin} L={Lmin} Mp5 3 11 2 2 pmos W={2*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO31 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength---------------------+ *inD ----mos out-out--------------+ | *inC ----mos Vdd-gnd------------+ | | *inB ----mos Vdd-mid,mid------+ | | | *inA ----mos Vdd-out--------+ | | | | *uscita ------------------+ | | | | | *vdd -------------------+ | | | | | | *massa ---------------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt AO31_SUB 1 2 3 4 5 6 7 XX=1 * D G S B Name W L Mn1 9 4 10 1 nmos W={3*XX*Wmin} L={Lmin} Mn2 10 5 11 1 nmos W={3*XX*Wmin} L={Lmin} Mn3 11 6 1 1 nmos W={3*XX*Wmin} L={Lmin} Mn4 9 7 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 8 4 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp2 8 5 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp3 8 6 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp4 9 7 8 2 pmos W={4*XX*Wmin} L={Lmin} Mn5 3 9 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp5 3 9 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO32 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength------------------------+ *inE ----mos out-gnd----------------+ | *inD ----mos out-out--------------+ | | *inC ----mos Vdd-gnd------------+ | | | *inB ----mos Vdd-mid,mid------+ | | | | *inA ----mos Vdd-out--------+ | | | | | *uscita ------------------+ | | | | | | *vdd -------------------+ | | | | | | | *massa ---------------+ | | | | | | | | * | | | | | | | | | * v v v v v v v v V .subckt AO32_SUB 1 2 3 4 5 6 7 8 XX=1 * D G S B Name W L Mn6 3 10 1 1 nmos W={XX*Wmin} L={Lmin} Mp6 3 10 2 2 pmos W={2*XX*Wmin} L={Lmin} Mn1 10 4 11 1 nmos W={3*XX*Wmin} L={Lmin} Mn2 11 5 12 1 nmos W={3*XX*Wmin} L={Lmin} Mn3 12 6 1 1 nmos W={3*XX*Wmin} L={Lmin} Mn4 10 7 13 1 nmos W={2*XX*Wmin} L={Lmin} Mn5 13 8 1 1 nmos W={2*XX*Wmin} L={Lmin} Mp1 10 7 9 2 pmos W={4*XX*Wmin} L={Lmin} Mp2 10 8 9 2 pmos W={4*XX*Wmin} L={Lmin} Mp3 9 4 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp4 9 5 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp5 9 6 2 2 pmos W={4*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO33 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength--------------------------+ *inF ----mos out-gnd------------------+ | *inE ----mos out-mid,mid------------+ | | *inD ----mos out-out--------------+ | | | *inC ----mos Vdd-gnd------------+ | | | | *inB ----mos Vdd-mid,mid------+ | | | | | *inA ----mos Vdd-out--------+ | | | | | | *uscita ------------------+ | | | | | | | *vdd -------------------+ | | | | | | | | *massa ---------------+ | | | | | | | | | * | | | | | | | | | | * v v v v v v v v v v .subckt AO33_SUB 1 2 3 4 5 6 7 8 9 XX=1 * D G S B Name W L Mn1 11 4 12 1 nmos W={3*XX*Wmin} L={Lmin} Mn2 12 5 13 1 nmos W={3*XX*Wmin} L={Lmin} Mn3 13 6 1 1 nmos W={3*XX*Wmin} L={Lmin} Mn4 11 7 14 1 nmos W={3*XX*Wmin} L={Lmin} Mn5 14 8 15 1 nmos W={3*XX*Wmin} L={Lmin} Mn6 15 9 1 1 nmos W={3*XX*Wmin} L={Lmin} Mp1 10 4 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp2 10 5 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp3 10 6 2 2 pmos W={4*XX*Wmin} L={Lmin} Mp4 11 7 10 2 pmos W={4*XX*Wmin} L={Lmin} Mp5 11 8 10 2 pmos W={4*XX*Wmin} L={Lmin} Mp6 11 9 10 2 pmos W={4*XX*Wmin} L={Lmin} Mn7 3 11 1 1 nmos W={XX*Wmin} L={Lmin} Mp7 3 11 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO112 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength---------------------+ *inD ----mos out-out--------------+ | *inC ----mos mid,mid-gnd--------+ | | *inB ----mos Vdd-gnd----------+ | | | *inA ----mos Vdd-out--------+ | | | | *uscita ------------------+ | | | | | *vdd -------------------+ | | | | | | *massa ---------------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt AO112_SUB 1 2 3 4 5 6 7 XX=1 * D G S B Name W L Mn1 10 4 11 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 11 5 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn3 10 6 1 1 nmos W={1*XX*Wmin} L={Lmin} Mn4 10 7 1 1 nmos W={1*XX*Wmin} L={Lmin} Mp1 8 4 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp2 8 5 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp3 9 6 8 2 pmos W={6*XX*Wmin} L={Lmin} Mp4 10 7 9 2 pmos W={6*XX*Wmin} L={Lmin} Mn5 3 10 1 1 nmos W={XX*Wmin} L={Lmin} Mp5 3 10 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * AO212 ************************************************************************************************ * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength-----------------------+ *inE ----mos out-gnd----------------+ | *inD ----mos Vdd-gnd--------------+ | | *inC ----mos Vdd-out------------+ | | | *inB ----mos mid,mid-gnd------+ | | | | *inA ----mos Vdd-out--------+ | | | | | *uscita ------------------+ | | | | | | *vdd -------------------+ | | | | | | | *massa ---------------+ | | | | | | | | * | | | | | | | | | * v v v v v v v v v .subckt AO212_SUB 1 2 3 4 5 6 7 8 XX=1 * D G S B Name W L Mn1 12 4 13 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 13 5 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn3 12 6 14 1 nmos W={2*XX*Wmin} L={Lmin} Mn4 14 7 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn5 12 8 1 1 nmos W={XX*Wmin} L={Lmin} Mp1 11 4 9 2 pmos W={6*XX*Wmin} L={Lmin} Mp2 11 5 9 2 pmos W={6*XX*Wmin} L={Lmin} Mp3 9 6 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp4 9 7 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp5 12 8 11 2 pmos W={6*XX*Wmin} L={Lmin} Mn7 3 12 1 1 nmos W={XX*Wmin} L={Lmin} Mp7 3 12 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************* ************************************************************************************************* * AO222 ************************************************************************************************* * devono essere dichiarate nel listato chiamante Wmin, Lmin ed il modello per i mos * *drive strength-------------------------+ *inF ----mos Vdd-gnd------------------+ | *inE ----mos Vdd-out----------------+ | | *inD ----mos mid,mid-gnd----------+ | | | *inC ----mos mid,mid-out--------+ | | | | *inB ----mos out-gnd----------+ | | | | | *inA ----mos out-out--------+ | | | | | | *uscita ------------------+ | | | | | | | *vdd -------------------+ | | | | | | | | *massa ---------------+ | | | | | | | | | * | | | | | | | | | | * v v v v v v v v v v .subckt AO222_SUB 1 2 3 4 5 6 7 8 9 XX=1 * D G S B Name W L Mn1 12 4 13 1 nmos W={2*XX*Wmin} L={Lmin} Mn2 13 5 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn3 12 6 14 1 nmos W={2*XX*Wmin} L={Lmin} Mn4 14 7 1 1 nmos W={2*XX*Wmin} L={Lmin} Mn5 12 8 15 1 nmos W={2*XX*Wmin} L={Lmin} Mn6 15 9 1 1 nmos W={2*XX*Wmin} L={Lmin} Mp1 12 4 11 2 pmos W={6*XX*Wmin} L={Lmin} Mp2 12 5 11 2 pmos W={6*XX*Wmin} L={Lmin} Mp3 11 6 10 2 pmos W={6*XX*Wmin} L={Lmin} Mp4 11 7 10 2 pmos W={6*XX*Wmin} L={Lmin} Mp5 10 8 2 2 pmos W={6*XX*Wmin} L={Lmin} Mp6 10 9 2 2 pmos W={6*XX*Wmin} L={Lmin} Mn7 3 12 1 1 nmos W={XX*Wmin} L={Lmin} Mp7 3 12 2 2 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * DFPQ ************************************************************************************************ *drive strength---------------------------------+ *inB ---(like i/p)-nodeD------------------+ | *inA ---(like clk)-nodeA-----------+ | | *output----------------------+ | | | *vdd ------------------+ | | | | *ground------------+ | | | | | * | | | | | | * v v v v v v .subckt DFPQ_SUB 0 node1 nodeZ nodeCP noded XX=1 Mp41 noded nodeCP node21 node1 pmos W={2*XX*Wmin} L={Lmin} Mn4 noded nodeCPn node21 0 nmos W={2*XX*Wmin} L={Lmin} Mn5 noded5 nodeCP node51 0 nmos W={2*XX*Wmin} L={Lmin} Mp51 noded5 nodeCPn node51 node1 pmos W={2*XX*Wmin} L={Lmin} Mn11 nodeCPn nodeCP 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp11 nodeCPn nodeCP node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp1 node21 noded5 node1 node1 pmos W={1*XX*Wmin} L={2*Lmin} Mn1 node21 noded5 0 0 nmos W={1*XX*Wmin} L={2*Lmin} Mp2 noded5 node21 node1 node1 pmos W={2*Wmin} L={Lmin} Mn2 noded5 node21 0 0 nmos W={1*Wmin} L={Lmin} Mp6 nodez node51 node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn6 nodez node51 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp7 node51 nodez node1 node1 pmos W={1*XX*Wmin} L={Lmin} Mn7 node51 nodez 0 0 nmos W={1*XX*Wmin} L={Lmin} .ends ************************************************************************************************* ************************************************************************************************* * DFPRQN ************************************************************************************************* *drive strength-----------------------------------------+ *in3----(like resest)-nodeRN-----------------------+ | *in2 ---(like i/p)-nodeD---------------------+ | | *in1 ---(like clk)-nodeCP-------------+ | | | *output-------------------------+ | | | | *vdd ---------------------+ | | | | | *ground--------------+ | | | | | | * | | | | | | | * v v v v v v v .subckt DFPRQN_SUB 0 node1 nodez nodeCP noded nodeRN XX=1 *REACTION + Mn8 nodez node22 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp8 nodez node22 node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn7 node22 nodez 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp7 node22 nodez node1 node1 pmos W={1*XX*Wmin} L={Lmin} Mn2 1 node21 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp2 1 node21 node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn1 node21 1 0 0 nmos W={1*XX*Wmin} L={2*Lmin} Mp1 node21 1 node1 node1 pmos W={1*XX*Wmin} L={2*Lmin} *TRANSMISSION GATE Mp41 noded nodeCP node21 node1 pmos W={2*XX*Wmin} L={Lmin} Mn4 noded nodeCPN node21 0 nmos W={2*XX*Wmin} L={Lmin} Mn5 2 nodeCP node22 0 nmos W={2*XX*Wmin} L={Lmin} Mp51 2 nodeCPN node22 node1 pmos W={2*XX*Wmin} L={Lmin} *RESET Mn21 3 nodeRN 0 0 nmos W={4*XX*Wmin} L={Lmin} Mn20 2 1 3 0 nmos W={4*XX*Wmin} L={Lmin} Mp12 node22 nodeRN node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mp11 2 nodeRN node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mp10 2 1 node1 node1 pmos W={4*XX*Wmin} L={Lmin} * Mn3 nodeCPN nodeCP 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp3 nodeCPN nodeCP node1 node1 pmos W={2*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * DFPHQ ************************************************************************************************ *drive strength-----------------------------------------+ *in3----(like i/p)-nodeD---------------------------+ | *in2 ---(like clk)-nodeCP--------------------+ | | *in1 ---(like enable)-nodeE-----------+ | | | *output-------------------------+ | | | | *vdd ---------------------+ | | | | | *ground--------------+ | | | | | | * | | | | | | | * v v v v v v v .subckt DFPHQ_SUB 0 node1 nodeZ nodeE nodeCP nodeD XX=1 Mn6 nodeD nodeEN 1 0 nmos W={3*XX*Wmin} L={Lmin} Mp9 nodeEN nodeE node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn5 noded2 nodeCP node22 0 nmos W={2*XX*Wmin} L={Lmin} Mp41 1 nodeCP node21 node1 pmos W={3*XX*Wmin} L={Lmin} Mp8 nodeZ node22 node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn4 1 nodeCPN node21 0 nmos W={3*XX*Wmin} L={Lmin} Mp7 node22 nodeZ node1 node1 pmos W={1*XX*Wmin} L={Lmin} Mn3 nodeCPN nodeCP 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp51 noded2 nodeCPN node22 node1 pmos W={2*XX*Wmin} L={Lmin} Mn2 noded2 node21 0 0 nmos W={2*XX*Wmin} L={Lmin} Mn1 node21 noded2 0 0 nmos W={1*XX*Wmin} L={2*Lmin} Mp61 nodeD nodeE 1 node1 pmos W={3*XX*Wmin} L={Lmin} Mp3 nodeCPN nodeCP node1 node1 pmos W={2*XX*Wmin} L={Lmin} Mn9 nodeEN nodeE 0 0 nmos W={1*XX*Wmin} L={Lmin} Mp2 noded2 node21 node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn8 nodeZ node22 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp1 node21 noded2 node1 node1 pmos W={1*XX*Wmin} L={2*Lmin} Mn7 node22 nodeZ 0 0 nmos W={1*XX*Wmin} L={Lmin} .ends ************************************************************************************************ ************************************************************************************************ * Full Adder ************************************************************************************************ *drive strength------------------------------------------------+ *in3---------------------------nodeA--------------------+ | *in2 --------------------nodeB---------------------+ | | *in1 -------------nodeC----------------------+ | | | *output2-(Carry)----------------------+ | | | | *output1-(sum)------------------+ | | | | | *vdd ---------------------+ | | | | | | *ground--------------+ | | | | | | | * | | | | | | | | * v v v v v v v v .subckt FA_SUB 0 node1 nodeSo nodeCo nodeC nodeB nodeA XX=1 Mn1 nodecon nodea node4 0 nmos W={2*XX*Wmin} L={Lmin} Mp1 1 nodea node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn2 node4 nodeb 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp2 1 nodeb node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn3 5 nodea 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp3 4 nodeb node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mp4 nodecon nodea 4 node1 pmos W={4*XX*Wmin} L={Lmin} Mn4 5 nodeb 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp5 nodecon nodec 1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn5 nodecon nodec 5 0 nmos W={2*XX*Wmin} L={Lmin} Mp6 2 nodea node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn6 3 nodea 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp7 2 nodeb node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn7 3 nodeb 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp8 2 nodec node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn8 3 nodec 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp9 nodeson nodecon 2 node1 pmos W={4*XX*Wmin} L={Lmin} Mn9 nodeson nodecon 3 0 nmos W={2*XX*Wmin} L={Lmin} Mp10 9 nodea node1 node1 pmos W={6*XX*Wmin} L={Lmin} Mn10 7 nodea 0 0 nmos W={3*XX*Wmin} L={Lmin} Mp11 8 nodeb 9 node1 pmos W={6*XX*Wmin} L={Lmin} Mn11 6 nodeb 7 0 nmos W={3*XX*Wmin} L={Lmin} Mp12 nodeSon nodec 8 node1 pmos W={6*XX*Wmin} L={Lmin} Mn12 nodeSon nodec 6 0 nmos W={3*XX*Wmin} L={Lmin} Mp13 nodeCo nodecon node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn13 nodeCo nodecon 0 0 nmos W={2*XX*Wmin} L={Lmin} Mp14 nodeSo nodeSon node1 node1 pmos W={4*XX*Wmin} L={Lmin} Mn14 nodeSo nodeSon 0 0 nmos W={2*XX*Wmin} L={Lmin} .ends