Урок 2. Триггер F/F
В картинкахПосле этого урока в библиотеке триггер, из которого состоит счётчик CD4029: он умеет сразу записать бит, а на такте — перевернуться или стоять на месте. Пробуем его тумблерами и генератором.
2.1. Идея: счётчик — это триггеры, которые переворачиваются
Двоичный счётчик — ряд триггеров. На каждом такте младший бит переворачивается всегда, следующий — только когда младший был 1 (при счёте вверх) или 0 (при счёте вниз). Значит, каждому триггеру нужно уметь три вещи:
- записать — сразу, без такта (чтобы поставить счётчик на нужное число:
PE); - перевернуться на такте — когда разрешено (
TE= 0); - стоять — когда не разрешено (
TE= 1).
2.2. Идея: переворот через исключающее ИЛИ
Внутри — обычный D-триггер: на такте он запоминает то, что на входе D. Если на D подать НЕ Q — триггер переворачивается, если Q — стоит. Выбирает XOR: D = НЕ(Q XOR TE).
TE= 0:QXOR 0 =Q,D= НЕQ— переворот;TE= 1:QXOR 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 |
| NOT | I0 O0 | CL cp |
| NOT | I0 O0 | PE ld |
| NOT | I0 O0 | J jn |
| NAND | I0 I1 O0 | ld jn sdn |
| NAND | I0 I1 O0 | ld J rdn |
| XOR | I0 I1 O0 | Q TE x |
| NOT | I0 O0 | x d |
| NAND3 | A B C Y | sdn n4 n2 n1 |
| NAND3 | A B C Y | n1 rdn cp n2 |
| NAND3 | A B C Y | n2 cp n4 n3 |
| NAND3 | A B C Y | n3 rdn d n4 |
| NAND3 | A B C Y | sdn n2 QN Q |
| NAND3 | A 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 |
| FF4029 | PE J TE CL Q QN | PE J TE CL Q QN |
Шаг 5. Лампы
| Деталь | Нога | Метка |
|---|---|---|
| LED | вход | CL |
| LED | вход | Q |
| LED | вход | QN |
2.5. Проверка
Clock—1Hz.PE= 0,J= 0:Qгорит — записалось НЕJ.J= 1 —Qгаснет.PE= 1 (запись выключена),TE= 0:QиQNменяются местами на каждом спадеCL— когда лампаCLгаснет.Qмигает вдвое режеCL: триггер делит на 2.TE= 1 —Qзамирает: такты идут, а триггер держит.
| PE | TE | Q | Что это |
|---|---|---|---|
| 0 | — | НЕ J, сразу | запись (такт не нужен) |
| 1 | 0 | меняется на спаде | переворот — счёт |
| 1 | 1 | стоит | держит |
После проверки удали пробу (рамкой и 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)Не получается? Что-то не работает →