Урок 2. Триггер F/F

В картинках

После этого урока в библиотеке триггер, из которого состоит счётчик CD4029: он умеет сразу записать бит, а на такте — перевернуться или стоять на месте. Пробуем его тумблерами и генератором.


2.1. Идея: счётчик — это триггеры, которые переворачиваются

Двоичный счётчик — ряд триггеров. На каждом такте младший бит переворачивается всегда, следующий — только когда младший был 1 (при счёте вверх) или 0 (при счёте вниз). Значит, каждому триггеру нужно уметь три вещи:

  • записать — сразу, без такта (чтобы поставить счётчик на нужное число: PE);
  • перевернуться на такте — когда разрешено (TE = 0);
  • стоять — когда не разрешено (TE = 1).
D-триггер6 × NAND3SDRDDCPQQNQQNPEJзапись: PE = 0 → сразу Q = НЕ JNOT, NOT, NAND, NANDTECLD = НЕ(Q XOR TE)
Триггер F/F счётчика CD4029. Запись идёт сразу, мимо такта: установка и сброс D-триггера. Переворот выбирает XOR: TE = 0 — на D приходит НЕ Q, и на спаде CL триггер переворачивается; TE = 1 — на D приходит сам Q, и триггер стоит.

2.2. Идея: переворот через исключающее ИЛИ

Внутри — обычный D-триггер: на такте он запоминает то, что на входе D. Если на D подать НЕ Q — триггер переворачивается, если Q — стоит. Выбирает XOR: D = НЕ(Q XOR TE).

  • TE = 0: Q XOR 0 = Q, D = НЕ Q — переворот;
  • TE = 1: Q XOR 1 = НЕ Q, D = Q — держит.

2.3. Идея: три входа у И-НЕ

D-триггер с записью — классическая схема 7474: шесть И-НЕ на 3 входа. NAND3 собираем прямо из транзисторов — так он устроен внутри микросхемы.

2.4. Сборка

Тот же проект. В библиотеке нужны NOT, NAND, XOR (урок 0) и CD4011 (урок 1). Пробу урока 1 можно удалить.

Шаг 1. Чип NAND3 — И-НЕ на 3 входа из 6 транзисторов

Если NAND3 уже есть в библиотеке (например, из набора «Микросхемы 74-й серии») — шаг пропусти.

Как внутри CMOS-микросхемы: три pmos параллельно от VCC к выходу, три nmos цепочкой от выхода к GND. Выход 0, только когда все три входа 1. Транзистор: затвор, сток, исток.

ДетальНогаМетка
Порт входавыходA
Порт входавыходB
Порт входавыходC
Порт выходавходY
pmosзатвор
сток
исток
A
Y
VCC
pmosзатвор
сток
исток
B
Y
VCC
pmosзатвор
сток
исток
C
Y
VCC
nmosзатвор
сток
исток
A
Y
m1
nmosзатвор
сток
исток
B
m1
m2
nmosзатвор
сток
исток
C
m2
GND

Ctrl+G → имя NAND3. Ноги: входы A, B, C; выходы Y.

Шаг 2. Чип FF4029 — триггер F/F счётчика CD4029

На схеме TI (Fig. 9) триггер нарисован коробкой с таблицей; внутри — D-триггер (шесть И-НЕ на 3 входа, как в 7474) и три управления. PE = 0 — сразу записать (через установку sdn / сброс rdn). На спаде CL: TE = 0 — переворот (D = НЕ Q, через XOR и NOT), TE = 1 — держит. Записывается НЕ J: в самой CD4029 перед J стоит инвертор, поэтому микросхема целиком записывает число как есть.

ДетальНогаМетка
Порт входавыходPE
Порт входавыходJ
Порт входавыходTE
Порт входавыходCL
Порт выходавходQ
Порт выходавходQN
NOTI0
O0
CL
cp
NOTI0
O0
PE
ld
NOTI0
O0
J
jn
NANDI0
I1
O0
ld
jn
sdn
NANDI0
I1
O0
ld
J
rdn
XORI0
I1
O0
Q
TE
x
NOTI0
O0
x
d
NAND3A
B
C
Y
sdn
n4
n2
n1
NAND3A
B
C
Y
n1
rdn
cp
n2
NAND3A
B
C
Y
n2
cp
n4
n3
NAND3A
B
C
Y
n3
rdn
d
n4
NAND3A
B
C
Y
sdn
n2
QN
Q
NAND3A
B
C
Y
Q
n3
rdn
QN

Ctrl+G → имя FF4029. Ноги: входы PE, J, TE, CL; выходы Q, QN.

Шаг 3. Проба: тумблеры и генератор

Clock — клик по корпусу до 1Hz.

ДетальНогаМетка
PowerвыходVCC
GroundвыходGND

Шаг 4. Триггер

ДетальНогаМетка
Input (тумблер)выходPE
Input (тумблер)выходJ
Input (тумблер)выходTE
ClockвыходCL
FF4029PE
J
TE
CL
Q
QN
PE
J
TE
CL
Q
QN

Шаг 5. Лампы

ДетальНогаМетка
LEDвходCL
LEDвходQ
LEDвходQN

2.5. Проверка

  1. Clock — 1Hz. PE = 0, J = 0: Q горит — записалось НЕ J. J = 1 — Q гаснет.
  2. PE = 1 (запись выключена), TE = 0: Q и QN меняются местами на каждом спаде CL — когда лампа CL гаснет. Q мигает вдвое реже CL: триггер делит на 2.
  3. TE = 1 — Q замирает: такты идут, а триггер держит.
PETEQЧто это
0—НЕ J, сразузапись (такт не нужен)
10меняется на спадепереворот — счёт
11стоитдержит

После проверки удали пробу (рамкой и Delete) — NAND3 и FF4029 остаются в библиотеке.


Вставка урока 2 (Cmd+I)

Нужны вентили NOT, NAND, XOR (урок 0).

# Урок 2 — триггер F/F счётчика CD4029: NAND3 из транзисторов, D-триггер из шести NAND3, запись и переворот.# Вставка: Cmd+I в тот же проект (нужны NOT, NAND, XOR из урока 0). # NAND3 — И-НЕ на 3 входа: три P параллельно к VCC, три N цепочкой к GNDchip NAND3 {  portIn(A)  portIn(B)  portIn(C)  portOut(Y)  pmos(A, Y, VCC)  pmos(B, Y, VCC)  pmos(C, Y, VCC)  nmos(A, Y, m1)  nmos(B, m1, m2)  nmos(C, m2, GND)} # FF4029 — триггер F/F счётчика CD4029 (коробка на Fig. 9 TI, внутренности — по её таблице):#   PE = 0 — сразу записать НЕ J; на спаде CL: TE = 0 — переворот, TE = 1 — держитchip FF4029 {  portIn(PE)  portIn(J)  portIn(TE)  portIn(CL)  portOut(Q)  portOut(QN)  NOT(CL, cp)  NOT(PE, ld)  NOT(J, jn)  NAND(ld, jn, sdn)  NAND(ld, J, rdn)  XOR(Q, TE, x)  NOT(x, d)  # D-триггер: SD = sdn, RD = rdn (активный 0), фронт cp  NAND3(A=sdn, B=n4, C=n2, Y=n1)  NAND3(A=n1, B=rdn, C=cp, Y=n2)  NAND3(A=n2, B=cp, C=n4, Y=n3)  NAND3(A=n3, B=rdn, C=d, Y=n4)  NAND3(A=sdn, B=n2, C=QN, Y=Q)  NAND3(A=Q, B=n3, C=rdn, Y=QN)} # ---------- проба триггера ----------power(VCC)ground(GND)# PE = 0 — записать (активный 0), J — что записать, TE = 0 — переворот на каждом такте, TE = 1 — держитinput(PE)input(J)input(TE)clock(CL)FF4029(PE=PE, J=J, TE=TE, CL=CL, Q=Q, QN=QN)# ---------- лампы ----------led(CL)led(Q)led(QN)

Не получается? Что-то не работает →