Комбинационна схема: отговорът зависи само от сега
Комбинационна е схема без памет: изходът зависи само от входовете в този момент. Като калкулатор, който не помни предишното число. Такива са дешифраторите, шифраторите и мултиплексорите (тема 18), компараторите и суматорите (тема 19), както и преобразувателите на код.
Нашият пример е преобразувател на код. Индикаторът получава цифрата в BCD код (4 бита, A е старшият) и трябва да реши за всяка от седемте черти a…g дали да свети. Това са седем отделни функции на 4 променливи. Всяка се проектира по една и съща рецепта:
- Словесно: „черта a свети за цифрите 0, 2, 3, 5, 6, 7, 8 и 9“.
- Таблица на истинност или карта на Карно – 16 реда/клетки.
- СДНФ – по единиците (тема 15).
- Минимизация – тук с картата.
- Схема – често само с И-НЕ, по Де Морган.
Картата на Карно
Картата е таблицата на истинност, подредена в квадрат. Редовете и колоните са в код на Грей (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 букви.
F = + C + BD + A
Щракни клетка, за да я смениш: 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).
A A̅ AB A̅C F
F = C + AB
При 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).