NMOS - технология логики на n-типа транзисторах. [N-type Metal-Oxide-Semiconductor]
NOT
[Идея]
[NMOS]
Делать резисторы в микросхемах неудобно, стараются что бы элементы были однотипные (так легче изготовлять). Поэтому в реальности в NMOS используют не резистор, а N-MOSFET (при этом лучше обогащенный - как и основные элементы):
[NMOS как это в реальности и происходит]
когда Vin имеет низкий уровень (т.е. 0), транзистор закрыт и на выход приходит ток из Vcc (+5V,т.е. 1), [резистор обеспечивает только очень небольшое падение напряжения в этом случае ~ 0.3V т.е до +4.7V] если же Vin высокий (1), транзистор открыт и Vout получается соединенным с землей (т.е. 0). ------------- ---------- Vin | Vout Vin | Vout = NOT -----+------- ----+----- 0 V | +5V 0 | 1 +5V | 0V 1 | 0 -----+------- ----+----- Это реальная имплементация NMOS инвертора (используются полевые транзисторы, верхний как резистор).
NMOS и PMOS инверторы:
Пример аналогового электрического моделирования инвертора: (используем N-JFET)
Существует время прохождения сигнала через логический элемент: (в реальном мире все происходит за конкретное время).
Пример моделирования NMOS инвертора на транзисторном уровне на Verilog: module nmos_not(out,in); output out; input in; wand pull; supply1 pwr; supply0 gnd; assign pull = pwr; nmos(pull,gnd,in); assign out = pull; endmodule
NAND
[Идея]
[NMOS идея]
[NMOS]
NAND очень похож на NOT, но Vout имеет низкий уровень только тогда, когда открыты оба транзистора: -------------- ------------- V1 V2 | Vout V1 V2 | Vout = NAND -------+------ -------+----- 0V 0V | +5V 0 0 | 1 0V +5V | +5V 0 1 | 1 +5V 0V | +5V 1 0 | 1 +5V +5V| 0V 1 1 | 0 -------------- ------------- Пример моделирования NMOS NAND2 на Verilog: module nmos_nand2(out,a,b); output out; input a,b; supply1 pwr; supply0 gnd; wand pull; wire x; assign pull = pwr; nmos(pull, x, a); nmos(x, gnd, b); assign out = pull; endmodule
[Идея]
одно из замечательных свойств это каскадность, трехвходовый NAND легко делается из двухвходового NAND, простым добавлением транзистора. Идея все таже: Vout будет подключен к земле (0) только тогда, когда все 3 транзистора будут открыты. Но бесконечно усиливать число каскадов нельзя. Современные технологии ограничивают число входов в NAND шести. Если надо больше то идут уже не электрические схемы, а логические. Это пример того, что знание соседнего уровня (электрического) позволяет оптимизировать текущий (фуекционально-логический) Т.е. мы вместо того чтобы городить каскад логики для NAND3, NAND4, NAND5, NAND6 просто реализуем это на более нижнем уровне и выиграем в размере кристалла. Пример моделирования NMOS NAND3 на Verilog: module nmos_nand3(out,a,b,c); output out; input a,b,c; supply1 pwr; supply0 gnd; wire x,y; wand pull; assign pull = pwr; nmos(pull, x, a); nmos(x, y, b); nmos(y, gnd, c); assign out = pull; endmodule
NOR
[Идея]
[NMOS идея]
[NMOS]
Идея NOR тоже пришла из инвертора: если хотя бы один транзистор будет открыт то Vout будет соединен с землей (т.е. 0) -------------- ------------- V1 V2 | Vout V1 V2 | Vout = NOR --------+----- -------+----- 0V 0V | +5V 0 0 | 1 0V +5V | 0V 0 1 | 0 +5V 0V | 0V 1 0 | 0 +5V +5V | 0V 1 1 | 0 -------------- ------------- Пример моделирования NMOS NOR2 на Verilog: module nmos_nor2(out,a,b); output out; input a,b; supply1 pwr; supply0 gnd; wand pull; assign pull = pwr; nmos(pull, gnd, a); nmos(pull, gnd, b); assign out = pull; endmodule
[Идея]
Таже идея что и в NAND используется для наращивания каскадов. Современные технологии ограничивают число входов в NAND четырем. Пример моделирования NMOS NOR3 на Verilog: module nmos_nor3(out,a,b,c); output out; input a,b,c; supply1 pwr; supply0 gnd; wand pull; assign pull = pwr; nmos(pull, gnd, a); nmos(pull, gnd, b); nmos(pull, gnd, c); assign out = pull; endmodule
Buffer
[Идея - в NMOS невоплотима]
повторитель (усилитель) (buffer). Если Vin имеет низкий уровень (0), то транзистор закрыт и Vout имеет уровень земли (0). Если Vin высокий (1), транзистор открыт и Vout имеет +5V (1). ----------- -----+------ Vin | Vout Vin | Vout = Buffer ----+------ -----+------ 0V | 0V 0 | 0 +5V | +5V 1 | 1 ----------- ------------- А для NMOS - только через каскад инверторов:
Недостатки NMOS технологии