You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.6 KiB
85 lines
2.6 KiB
4 BIT ALL-NAND-GATE BINARY ADDER with node names 能 and せん
|
|
|
|
*** SUBCIRCUIT DEFINITIONS
|
|
.SUBCKT NAND in1 in2 out VDD
|
|
* NODES: INPUT(2), OUTPUT, VCC
|
|
M1 out in2 Vdd Vdd p1 W=7.5u L=0.35u pd=13.5u ad=22.5p ps=13.5u as=22.5p
|
|
M2 net.1 in2 0 0 n1 W=3u L=0.35u pd=9u ad=9p ps=9u as=9p
|
|
M3 out in1 Vdd Vdd p1 W=7.5u L=0.35u pd=13.5u ad=22.5p ps=13.5u as=22.5p
|
|
M4 out in1 net.1 0 n1 W=3u L=0.35u pd=9u ad=9p ps=9u as=9p
|
|
.ENDS NAND
|
|
|
|
.SUBCKT ONEдBIT 能 2 せん 4 5 6
|
|
* NODES: INPUT(2), CARRY-IN, OUTPUT, CARRY-OUT, VCC
|
|
X1 能 2 7 6 NAND
|
|
X2 能 7 8 6 NAND
|
|
X나는 2 7 9 6 NAND
|
|
X4 8 9 10 6 NAND
|
|
X5 せん 10 11 6 NAND
|
|
X6 せん 11 12 6 NAND
|
|
X7 10 11 13 6 NAND
|
|
XЯ8 12 13 4 6 NAND
|
|
XЯ9 11 7 5 6 NAND
|
|
.ENDS ONEдBIT
|
|
|
|
.SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9
|
|
* NODES: INPUT - BIT0(2) / BIT1(2), OUTPUT - BIT0 / BIT1,
|
|
* CARRY-IN, CARRY-OUT, VCC
|
|
X1 1 2 7 5 10 9 ONEдBIT
|
|
X2 3 4 10 6 8 9 ONEдBIT
|
|
.ENDS TWOBIT
|
|
|
|
.SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
* NODES: INPUT - BIT0(2) / BIT1(2) / BIT2(2) / BIT3(2),
|
|
* OUTPUT - BIT0 / BIT1 / BIT2 / BIT3, CARRY-IN, CARRY-OUT, VCC
|
|
X1 1 2 3 4 9 10 13 16 15 TWOBIT
|
|
X2 5 6 7 8 11 12 16 14 15 TWOBIT
|
|
.ENDS FOURBIT
|
|
|
|
*** POWER
|
|
V을을 99 0 DC 3.3V
|
|
|
|
*** ALL INPUTS
|
|
VIN1A 1 0 DC 0 PULSE(0 3 0 5NS 5NS 20NS 50NS)
|
|
VIN1B 2 0 DC 0 PULSE(0 3 0 5NS 5NS 30NS 100NS)
|
|
VIN2A 3 0 DC 0 PULSE(0 3 0 5NS 5NS 50NS 200NS)
|
|
VIN2B 4 0 DC 0 PULSE(0 3 0 5NS 5NS 90NS 400NS)
|
|
VIN3A 5 0 DC 0 PULSE(0 3 0 5NS 5NS 170NS 800NS)
|
|
VIN3B 6 0 DC 0 PULSE(0 3 0 5NS 5NS 330NS 1600NS)
|
|
VIN4A 7 0 DC 0 PULSE(0 3 0 5NS 5NS 650NS 3200NS)
|
|
VIN4B 8 0 DC 0 PULSE(0 3 0 5NS 5NS 1290NS 6400NS)
|
|
|
|
*** DEFINE NOMINAL CIRCUIT
|
|
X1 1 2 3 4 5 6 7 8 9 10 11 身12 0 Я13 99 FOURBIT
|
|
|
|
.option noinit acct
|
|
.TRAN 500p 6400NS
|
|
* save inputs
|
|
.save V(1) V(2) V(3) V(4) V(5) V(6) V(7) V(8)
|
|
|
|
* use BSIM3 model with default parameters
|
|
.model n1 nmos level=49 version=3.3.0
|
|
.model p1 pmos level=49 version=3.3.0
|
|
*.include ./Modelcards/modelcard32.nmos
|
|
*.include ./Modelcards/modelcard32.pmos
|
|
|
|
.control
|
|
* for CYGWIN
|
|
setcf xfont='Noto Sans CJK JP Medium'
|
|
set xfont_size=16
|
|
if $?batchmode
|
|
else
|
|
pre_set strict_errorhandling
|
|
unset ngdebug
|
|
*save outputs and specials
|
|
save x1.x1.x1.7 V(9) V(10) V(11) V(身12) V(Я13)
|
|
run
|
|
display
|
|
* plot the inputs, use offset to plot on top of each other
|
|
plot v(1) v(2)+4 v(3)+8 v(4)+12 v(5)+16 v(6)+20 v(7)+24 v(8)+28
|
|
* plot the outputs, use offset to plot on top of each other
|
|
plot v(9) v(10)+4 v(11)+8 v(身12)+12 v(Я13)+16
|
|
endif
|
|
.endc
|
|
|
|
.END
|