V_DD ──┤P├──┬── Y = Ā A ──┤ ├──┤ │N│ │GND ───┴┴──┘ 1 个 PMOS + 1 个 NMOS
② 与非门 NAND(4 管)
先想 PDN: 的条件是 A=1 且 B=1 → NMOS 串联。
V_DD ┌───┤P├───┐ PUN: A、B 两个 PMOS 并联 A ─┤ ├─ B (A=0 或 B=0 就上拉) └───┬─┬───┘ │ │ Y ───┴─┼─── Y = ───── │ AB ┌─────┴─────┐ A ─┤ N ├─┬─┤ N ├─ B PDN: A、B 两个 NMOS 串联 └────┘ │ └──┘ (A=1 且 B=1 才下拉) GND
A
B
PUN
PDN
Y
0
0
通
断
1
0
1
通
断
1
1
0
通
断
1
1
1
断
通
0
③ 或非门 NOR(4 管)
对偶操作:PDN 里 需要 A=1 或 B=1 → NMOS 并联;PUN 则 串联。
V_DD ┌───┤P├───┐ PUN: PMOS 串联 A ─┤ ├─ B (A=0 且 B=0 才上拉) └───┬─┬───┘ │ │ Y ───┴─┼─── Y = A + B │ ┌─────┴─────┐ A ─┤ N ├─┬─┤ N ├─ B PDN: NMOS 并联 └────┘ │ └──┘ (A=1 或 B=1 就下拉) GND
④ 与门 AND = NAND + NOT(6 管)
CMOS 无法直接做与门(PDN 要表达 即 ,做不到单级)。标准做法:NAND 后面串一个反相器。同理 OR = NOR + NOT。
A ─┐ ├─[NAND]─○──[NOT]── Y = A·B B ─┘ 中间反相 4 管 + 2 管 = 6 管
#include <stdio.h>
/* 只用 NAND,搭出全部基本门 —— 体会"NAND 是通用门" */
static int nand(int a, int b) { return !(a && b); }
static int not_(int a) { return nand(a, a); }
static int and_(int a, int b) { return not_(nand(a, b)); }
static int or_ (int a, int b) { return nand(not_(a), not_(b)); }
static int xor_(int a, int b) {
return nand(nand(a, nand(a, b)), nand(b, nand(a, b)));
}
int main(void) {
printf("A B | NAND NOR AND OR XOR\n");
for (int a = 0; a <= 1; a++) {
for (int b = 0; b <= 1; b++) {
int na = not_(a), nb = not_(b);
printf("%d %d | %d %d %d %d %d\n",
a, b,
nand(a, b),
and_(na, nb), /* NOR = (A+B)' = A'·B' */
and_(a, b),
or_(a, b),
xor_(a, b));
}
}
return 0;
}
c 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
# 只用 NAND 搭出全部基本门
def nand(a, b): return int(not (a and b))
def not_(a): return nand(a, a)
def and_(a, b): return not_(nand(a, b))
def or_(a, b): return nand(not_(a), not_(b))
def xor_(a, b): return nand(nand(a, nand(a, b)), nand(b, nand(a, b)))
print("A B | NAND NOR AND OR XOR")
for a in (0, 1):
for b in (0, 1):
na, nb = not_(a), not_(b)
print(f"{a} {b} | {nand(a,b)} {and_(na,nb)} "
f"{and_(a,b)} {or_(a,b)} {xor_(a,b)}")
python 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
输出:
A B | NAND NOR AND OR XOR0 0 | 1 1 0 0 00 1 | 1 0 0 1 11 0 | 1 0 0 1 11 1 | 0 0 1 1 0
评论(0)
当前浏览器不允许本地存储,评论无法保存。
还没有评论,来说两句。