4.4.1. ЭЛЕКТРИЧЕСКИЕ ОСНОВЫ (NMOS)




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 технологии

Имейте в виду что схемы нарисованы биполярными транзисторами, а на самом деле они планарные.


AND





[Идея - невозможна в NMOS]

------------------- A B | NAND AND ------+------------ 0 0 | 1 0 0 1 | 1 0 1 0 | 1 0 1 1 | 0 1 ------------------- [NMOS]

Пример моделирования NMOS AND2 на Verilog: module nmos_and2(out,a,b); output out; input a,b; supply1 pwr; supply0 gnd; wand ipull; wire x; wand pull; assign ipull = pwr; // NAND nmos(ipull, x, a); nmos(x, gnd, b); assign pull = pwr; // NOT nmos(pull, gnd, ipull); assign out = pull; endmodule

Трехвходовый AND делается по аналогии с 3х входовым NAND.


OR





[Идея - невозможна в NMOS]

----------------- A B | NOR OR ------+---------- 0 0 | 1 0 0 1 | 0 1 1 0 | 0 1 1 1 | 0 1 ----------------- [NMOS]

Пример моделирования NMOS OR2 на Verilog: module nmos_or2(out,a,b); output out; input a,b; supply1 pwr; supply0 gnd; wand ipull; wand pull; assign ipull = pwr; // NOR nmos(ipull, gnd, a); nmos(ipull, gnd, b); assign pull = pwr; nmos(pull, gnd, ipull); // NOT assign out = pull; endmodule


XNOR



[XNOR HMOS]:

Имейте в виду - этот элемент не усиливает. Усиливать будеть XOR - если после этого элемента еще поставить NOT.

Что бы получить усилинный XNOR - надо поставить 2 инвертора подряд на выход

----------- A B | XNOR ----+------ 0 0 | 1 0 1 | 0 1 0 | 0 1 1 | 1 ----------- Пример моделирования NMOS XNOR2 на Verilog: module nmos_xnor2(out,a,b); output out; input a,b; wand pull; supply1 pwr; assign pull = pwr; nmos(pull, b, a); nmos(pull, a, b); assign out = pull; endmodule Результаты моделирования:


Index Prev Next