Відповіді:
Для того, щоб отримати неінвертуючу операцію для логіки (тобто AND або АБО проти NAND або NOR), вам потрібно керувати транзисторами в режимі загального зливання, також відомому як режим "послідовник джерела".
Серед проблем з цим режимом для логіки:
Разом ці проблеми означають, що ви не можете підключити вихід цього ворота до входів іншої копії самого себе. Це робить його досить марним для побудови більш складних схем.
Ось чому всі успішні логічні родини 1 побудовані за допомогою транзисторів у режимі загального джерела (або загального випромінювача), який має значне посилення напруги та не має кумулятивних зрушень між входами та виходами - але вихід інвертується щодо входу. Тому основні функції включають інверсію: або NAND або NOR.
Як бонус, ворота NAND і NOR є "функціонально завершеними", це означає, що ви можете взагалі побудувати будь-яку логічну функцію (включаючи елементи зберігання, такі як засувки та триггери) з усіх воріт NAND або всіх воріт NOR.
1 Для конкретності, логічні сім'ї, які використовують напруги як логічні стани. Сюди входять RTL, DTL, TTL, PMOS, NMOS та CMOS. Логічні сімейства в поточному режимі, такі як ECL , дійсно використовують комбінацію послідовників емітерів та транзисторів загальної бази для досягнення тих же цілей, уникаючи насичення (для швидкості).
Ви описуєте логіку PMOS . Він має деякі суттєві недоліки щодо CMOS:
Якщо значення резистора низьке, затвор буде споживати значну кількість статичної потужності, коли ворота активні. Ворота CMOS практично не споживають енергії, коли вони не активно перемикаються.
Якщо значення резистора велике, затвор повільно вимикається, тому що ємність будь-яких воріт, керованих виходом, повинна бути розряджена через резистор. Крім того, резистор високої вартості, ймовірно, буде споживати більше площі, ніж набір додаткових транзисторів.
З міркувань, пов'язаних з процесом, PMOS менш ефективний, ніж зворотна логіка NMOS .
Причина, яку я ще не думаю, що ніхто ще згадував: обмеження технології:
Резистори на мікросхемі масивні порівняно з транзисторами. Щоб отримати гідне значення, ми говоримо на порядок більше, ніж найменші транзистори. Іншими словами, поряд з усіма іншими перевагами, які ви отримуєте при належному CMOS (статичний струм, рівні приводу, розпал виходу), це також просто набагато дешевше.
Візерунчання: транзистори за логікою можуть бути такими маленькими, оскільки вони з малюнком повторюються. Це також дозволяє їм отримувати більш високі врожаї та стабільніші показники. Кидання резисторів це зіпсує.
Ємність: Обмеження швидкості в логічній системі є ємністю наступного етапу. Більша ємність означає уповільнення (менша продуктивність) або більша сила приводу (більший транзистор, більша площа, більше статичного струму, більше енергоспоживання, більше ємності, представленої на попередньому етапі). Великий резистор, ймовірно, дасть вам велику ємність для зарядки, оскільки займає фізично велику площу. Це може зашкодити роботі.
Іноді це робиться на більш спеціалізованих технологіях, де у вас можуть бути непогані логічні транзистори (для аналогових / радіочастотних програм).
Логіка транзисторного резистора - це поле знань. Властивості логічних воріт, що спираються на резистори, дуже відрізняються від властивостей тих, які використовують транзистори. Для одного, резистори, що тримаються у високому стані, постійно розсіюють потужність. Це може бути проблемою для конструкцій з акумулятором або високої щільності. Те ж саме стосується навпаки (для низьких спадів).
Ще одна область, де є велика різниця, - це швидкість і сила приводу. Вихідна структура "push-pull", що використовується в CMOS, може швидко перемикатися, не розсіюючи живлення при статичному.
Зверніть увагу, що схема, яку ви намалювали, взагалі не працюватиме. Не можна ставити NMOS у верхню гілку, якщо напруга на вході не перевищує VCC. Якщо на виході взагалі є велике навантаження, ваша схема не зможе їхати ніде поблизу VCC. Він може бути навіть недостатньо високим, щоб визнати його "високим" деякими логічними воротами.
Це не просто нитка. Як виявляється, дуже важко побудувати щось, що перемикає залізницю на залізницю за один етап, якщо це не перевертається в природі (як це NAND і NOR). І це справжня причина, чому І ворота використовують NAND, а потім НЕ (інвертор). Ніхто в світі не знає способу зробити ворота CMOS AND загального призначення з меншими ніж 6 транзисторами. Те саме стосується АБО.
Основна причина логіки TTL, і я вважаю, що в більшості логічних сімей є те, що елемент посилення інвертується. Для отримання неінвертуючого виходу з хорошими характеристиками приводу потрібен додатковий інвертор.
Цей інвертор - це погана річ.
Оскільки ми зазвичай боремося зі швидкістю з дискретними воротами (або ми були тоді, коли вони були єдиним вибором), інвертовані ворота правили день. Були доступні неінвертовані ворота (порівняйте 7400 з 7408).
Основним прикладом цього є ворота і-або-інвертування . Для типових чисел TTL затримка поширення така сама, як NAND і NOR, але вона включає два рівні логіки.
Переваг використання конструкції CMOS багато:
Таким чином, НАНД-ворота, за яким рухається інвертор, використовуються для проектування затвора І
Побудова І з NAND дозволяє використовувати мінімальні розміри затворів для логіки та розміру двох (і лише двох) транзисторів в інверторі для керування лінією. Це максимально збільшує швидкість і мінімізує втрати електроенергії за рахунок лише трохи більше площі, що використовується для додаткових транзисторів (враховуючи розмір резистора, необхідного для приводу лінії в передбачуваному додатку).
Крім того, поділитися деякою мудрістю, яку я навчився в коледжі (давно в галактиці далеко-далеко ...): Ми колись насолоджувалися презентацією про логіку масиву воріт. Наприкінці студент запитав, чому інженер повинен турбуватися мінімізуючи кількість використовуваних воріт NAND, коли всі ці ворота NAND були в першу чергу? Відповідь ведучого трималася у мене протягом 30 років: адже якщо ми цього не зробимо, наші конкуренти будуть.
Якщо ваш конкурент може зробити швидший і більш енергоефективний ланцюг без помітної різниці у вартості, то використання резистора є комерційною помилкою, а не лише технічною помилкою.
Логічний сигнал, який проходить через не підсилюючий затвор, у кінцевому підсумку виявиться значно слабкішим, ніж це було для початку. Хоча в мікросхему можна включити неінвертуючий ворота AND, ворота, що подаються слабким виходом, швидше за все, будуть переходити набагато повільніше, ніж ворота, що подаються через ворота, що живляться потужним виходом, що час, необхідний для передачі сигналу через NAND, інвертор , та ще один затвор, ймовірно, буде меншим, ніж якби NAND та інвертор були замінені на слабкий вихід AND.
Зауважте, що навіть якщо у вас є як NMOS, так і PMOS транзистори і хотіли побудувати слабкий вихід І ворота, слід сконструювати затвор подібним чином до воріт CMOS NOR, але реверсуючи транзистори NMOS і PMOS, щоб уникнути статичне розсіювання потужності. Резистори дуже дорогі, тому слід уникати їх використання, якщо це абсолютно не потрібно.
Точка, яка не згадувалася в інших відповідях, полягає в тому, що інвертуючі ворота можуть містити суміш послідовних і паралельних виходів. Наприклад, можна мати практичний складний затвор, який обчислює "не ((X і Y) або (X і Z) або (Y і Z))", використовуючи лише один рівень інверсії. Хоча не можна мати "AND", який подає свій висновок у декілька місць ланцюга, можна включити ворота "AND" на одному або декількох входах ворота "NOR" або ворота "OR" на одному або більше входів воріт "NAND".