ngspice/examples/Reliability/subckt/sottocircuiti

907 lines
37 KiB
Plaintext
Raw Permalink Normal View History

************************************************************************************************
*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