Как неверна моя простая схема защелок и почему правильные защелки? - PullRequest
0 голосов
/ 21 мая 2019

Мне трудно понять, как шлепанцы на самом деле переворачивают состояния, и удивляюсь, почему этот дизайн обычно используется, когда более простой дизайн может быть достаточным, по моему текущему мнению.

Я надеюсь, что после того, как вы продемонстрируете мою версию схемы защелок, кто-то может указать на недостатки, и это может помочь мне понять, почему триггерная защелка лучше.

Я читал книгу и наткнулся на какую-то "общую" форму защелки: https://i.imgur.com/nkldf4u.png (извините, у меня нет репутации, вставьте изображения)

Я нахожусь на нем около 2 часов, пытаясь по-настоящему понять механизм. Видя, что я не могу этого сделать, я нарисую свою версию защелки:

https://i.imgur.com/fFgpNzR.png

Синюю диаграмму, приведенную в книге, сложнее понять, потому что некоторые вентили будут переключаться 2 раза, когда входы переключаются один раз, потому что, поскольку выход туннелируется обратно в качестве входа в тот же вентиль, выход может меняться в зависимости от его предыдущее значение.

Моя версия схемы, написанная черным цветом, использует более программируемый подход. Я беру текущее состояние C и решаю, отличается ли оно от состояния ввода, и выводю его в A. Я использую значение A в логическом элементе AND с проводом включения, чтобы решить, удовлетворены ли оба критерия, и помещаю его в B. Наконец, я ' используя XOR, чтобы изменить состояние и вывести как C.

Я надеюсь, что кто-то может сказать мне, почему это плохо, что я не учел или зачем нужен более сложный механизм.

Спасибо в ожидании.

1 Ответ

0 голосов
/ 31 мая 2019

Насколько я могу судить, ваша реализация защелки должна работать.

Однако в низкоуровневом цифровом дизайне есть нечто большее, чем просто число гейтов.В реальных схемах не все затворы создаются одинаковыми, поскольку фактическая реализация этих затворов может сделать некоторые более «дорогостоящими», чем другие (обычно измеряемые по количеству областей / транзисторов и сложности при маршрутизации).Для типичных реализаций CMOS вентили NAND действительно дешевы (всего 4 транзистора для двух входных NAND), поэтому многие примитивы используют NAND (или NOR) в качестве строительного блока для более сложных конструкций.XOR, как правило, представляет собой более сложный шлюз для реализации, в большинстве реализаций CMOS, которые я видел, используются 8 транзисторов.Без проработки и оптимизации вашего проекта может потребоваться, по крайней мере, 20 или более транзисторов для реализации, в то время как конструкция защелки из учебника занимает всего 16 (20% + экономия площади на бит, что является весьма существенным).Здесь есть гораздо больше, чем просто количество транзисторов;такие вещи, как размеры транзисторов, маршрутизация и трассировка, соображения энергопотребления и защита от сбоев при фактическом прохождении и реализации проектов, поэтому даже этот простой анализ неполон и может не содержать причин для реализации учебника по сравнению с вашим (или наоборот).

Асинхронную последовательную логику (которая является реализациями защелки / триггера) может быть трудно понять, поэтому большинство схем используют конструкции более высокого уровня и обрабатывают эти детали как черные ящики (и это также создает хорошую абстракцию, где фактическая реализацияне имеет значения, пока свойства этого элемента сохраняются).

...