Как работает D-триггер и ПОЧЕМУ он сохраняет свою ценность?

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

В настоящее время я углубляюсь в шлепанцы, и вместо того, чтобы считать их «просто работающими», может ли кто-нибудь объяснить мне, ПОЧЕМУ Q, а не Q сохраняют свои значения на основе следующей схемы?

введите описание изображения здесь

Я нарисовал эту схему вручную, каждый раз вводя ее, начиная с 1 и 1 для D и CLK, затем удаляя CLK до 0 по мере подъема края, но я всегда получаю 0 в своих ручных работах, однако я физически построили схему, и она работает, как ожидалось.

Итак, кто-нибудь может объяснить, КАК и ПОЧЕМУ Q сохраняет свою ценность?

Ваша схема неверна. Правые ворота NAND должны быть воротами NOR. Кроме того, то, что вы показываете как ввод часов, - это не часы, а включение. Это не D-Flip Flop, а скорее прозрачная защелка.
@ Дэвид, я думаю, что диаграмма верна. Я согласен, что это защелка, а не ФФ, но не все согласны с такими условиями.
@WoutervanOoijen Ты прав. Есть несколько способов сделать это. Один способ (слева направо) И+НЕ, а другой - И-НЕ+НЕ. Я путал их.
Общее соглашение заключается в том, что FF чувствительны к кромке, а защелки чувствительны к уровню. Диаграмма в вопросе представляет собой закрытую D-защелку, а не DFF. en.wikipedia.org/wiki/Flip-flop_(electronics)#Gated_D_latch На блок-схеме не должно быть символа часов «>», а должна быть буква «E» для включения или «C» для управления.

Ответы (1)

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

Сначала попытайтесь понять две NAND справа. Когда оба входа (S и R) равны 1, какие будут выходы? Попробуйте сами. Предположим, что Q равно 1, это стабильное состояние? И является ли Q = 0 устойчивым состоянием?

Теперь выясним, что происходит, когда S = 0 (R по-прежнему 1).

И что происходит, когда ПОСЛЕ S = 0 / R = 1 мы возвращаемся к S = 0 / R = 0.

Когда вы поймете эту часть, взгляните на две левые NAND. Каковы их выходы, когда CLC = 0? А что когда CLK=1?

PS Двое моих студентов только что завершили сборку 16-битного процессора из чипов уровня 74HC (они использовали чипы ALU, что, по-моему, немного жульничает). На это у них ушло ~ 6 месяцев.

В нашем низкоуровневом компьютерном курсе для новичков мы спроектировали 16-битный процессор MIPS в логическом симуляторе и написали для него ассемблер в качестве курсового проекта, а затем загрузили его на FPGA, чтобы увидеть, что физическая работа заняла значительно меньше времени, чем это было бы. возьмите, чтобы обмотать его чипами 74xxx, и (IMO) гораздо более актуальным для современного CS / EE, просто предложение.
Если предложение адресовано мне: эти студенты сделали это самостоятельно, при минимальной моей поддержке. Частью процесса были различные шаги на уровне моделирования. Конечная цель состояла в том, чтобы иметь ЦП с физически узнаваемым АЛУ, регистрами, секвенсором и т. д.