Skip to content
АЦУ · Тема 17 · Логиката

Кои черти да светнат – 7-сегментният индикатор

Цифрите на часовника и микровълновата са седем светещи черти. Коя черта да свети за коя цифра решава малка схема без памет. В урока я проектираме по рецептата – таблица, карта на Карно, минимална формула – и хващаме опасния миг, в който изходът за наносекунди казва глупост.

≈ 5 мин четене∿ 2 живи уредаСамопроверка: 5 въпроса

Комбинационна схема: отговорът зависи само от сега ​

Комбинационна е схема без памет: изходът зависи само от входовете в този момент. Като калкулатор, който не помни предишното число. Такива са дешифраторите, шифраторите и мултиплексорите (тема 18), компараторите и суматорите (тема 19), както и преобразувателите на код.

Нашият пример е преобразувател на код. Индикаторът получава цифрата в BCD код (4 бита, A е старшият) и трябва да реши за всяка от седемте черти a…g дали да свети. Това са седем отделни функции на 4 променливи. Всяка се проектира по една и съща рецепта:

  1. Словесно: „черта a свети за цифрите 0, 2, 3, 5, 6, 7, 8 и 9“.
  2. Таблица на истинност или карта на Карно – 16 реда/клетки.
  3. СДНФ – по единиците (тема 15).
  4. Минимизация – тук с картата.
  5. Схема – често само с И-НЕ, по Де Морган.

Картата на Карно ​

Картата е таблицата на истинност, подредена в квадрат. Редовете и колоните са в код на Грей (00, 01, 11, 10), затова всеки две съседни клетки се различават само с една променлива. Ако и двете са 1, по закона за слепване xy + xȳ = x тази променлива отпада. Така на картата опростяването се вижда: ограждаш съседни единици.

Правилата:

  • Групите са правоъгълници от 1, 2, 4, 8… клетки (2ᵏ). Група от 2ᵏ клетки дава член с n − k букви.
  • Групите се правят колкото може по-големи и колкото може по-малко. Една клетка може да е в няколко групи.
  • Картата е „навита“: левият ръб е съсед на десния, горният – на долния. Четирите ъгъла са една група.
  • Всяка група е проста импликанта: един член на минималната форма (МДНФ).
  • Клетките x (безразлични, don't care) са комбинации, които никога не идват. Например 1010–1111 не са BCD цифри. Ползваш ги като 1, ако правят групата по-голяма, иначе ги оставяш.

Тук функцията има 8 единици, затова СДНФ би имала 8 члена по 4 букви, т.е. 32 букви. Картата я свива до 4 члена с общо 6 букви.

Карта на Карно
ABCD00011110000111101001131204151716x12x13x15x141819x11x10

F = BD + C + BD + A

0
1
2
3
4
5
6
7
8
9
Фигура 1.

Щракни клетка, за да я смениш: 0 → 1 → x → 0. Групите и формулата се преизчисляват сами. При сегмент a безразличните клетки 10–15 правят от 8 единици 4 големи групи: F = A + C + BD + B̄D̄. Отдолу е индикаторът: жълтата черта е тази от картата. Шахматната дъска (XOR на четирите входа) е най-лошият случай: никои две единици не са съседни, затова нищо не се опростява.

Състезания: мигът, в който изходът лъже ​

Формулата е вярна, а схемата пак може да сгреши – за няколко наносекунди. Сигналът от един вход стига до изхода по различни пътища с различно закъснение. Докато по-бавният път още не е пристигнал, изходът вижда смес от старо и ново.

Най-простият пример е Y = A + Ā. Тази функция е винаги 1, но Ā закъснява с инвертора. За миг и двата входа на ИЛИ са 0 и изходът мигва в 0. Тук гледаме същото в по-истинска схема: F = AB + A̅C при B = C = 1. Тогава F = 1, каквото и да е A. Когато A пада от 1 в 0, членът AB изгасва веднага, а A̅C светва чак след инвертора. Инверторът закъснява с 10 ns, а другите елементи – с по 10 ns. Изходът пада в 0 за 10 ns – колкото закъснява инверторът.

Това е статично състезание: изходът трябва да остане същият, а мигва. При динамичното изходът трябва да се смени веднъж, а трепва няколко пъти. Как се борим:

  • терм на съгласуване – допълнителна група в картата, която покрива прехода между двете съседни групи. Тук е BC: при B = C = 1 той държи F = 1, каквото и да прави A;
  • изравняване на пътищата – закъснения (двойки инвертори) в по-бързия път;
  • четене в безопасен момент – изходът се гледа само след като всичко се е успокоило, по такт. Това е идеята на синхронните схеми (тема 22).
Състезание и терм на съгласуване
ABC&AB1&A̅C≥1F
050100150AA̅ABA̅CFt – време, nsA ↓A ↑
A A̅ AB A̅C F
ABC00011110010011130204051716

F = AC + AB

Фигура 2.

При A ↓ F (жълто) пада за миг в 0 – колкото е закъснението на инвертора. При A ↑ няма проблем: AB светва, преди A̅C да изгасне. На картата двете групи са съседни, но не се застъпват. Преходът между тях е „неохранен“. Включи терма BC: пунктирната група покрива точно този преход и фалшивият импулс изчезва. Формулата не се променя – BC е излишен за логиката, но не и за времето.

Самопроверка ​

1. Колко клетки има картата на Карно за 4 променливи и защо редовете са 00, 01, 11, 10?

16 клетки. Подредбата е код на Грей – така съседните клетки се различават с една променлива и могат да се слепват.

2. Група от 4 клетки в картата за 4 променливи – колко букви има членът ѝ?

4 − 2 = 2 букви (2² клетки → отпадат 2 променливи).

3. Защо четирите ъгъла на картата са една група?

Картата е „навита“: горният ред е съсед на долния, а лявата колона – на дясната. Четирите ъгъла се различават по двойки с по една променлива – група B̄D̄.

4. Какво са безразличните състояния и как се ползват?

Комбинации на входа, които никога не идват (напр. 1010–1111 в BCD). В картата ги пишем x и ги включваме в групите, само ако ги правят по-големи.

5. Какво е статично състезание и как се маха с картата?

Изходът трябва да остане същият, но за миг мигва, защото сигналът стига по пътища с различно закъснение. С картата се добавя терм на съгласуване – група, която покрива прехода между двете съседни групи (за AB + A̅C това е BC).