Формулы для КС1, полученные после минимизации без учета запрещенных состояний:
D4 = –Q3*Q1
D3 = –Q4*–Q2*Q0 + Q2
D2 = –Q4*–Q2*Q0 + Q2*Q0
D1 = –Q4*–Q2*Q0 + Q3*–Q2
D0 = –Q4*–Q3
Формулы для КС1, полученные после минимизации с учетом запрещенных состояний:
D4 = –Q4*–Q3*–Q2*Q1*–Q0
D3 = –Q4*–Q3*–Q2*–Q1*Q0 +–Q4*Q3*Q2*Q1*Q0 + –Q4*Q3*Q2*–Q1–Q0
D2 = –Q4*–Q3*–Q2*–Q1*Q0 + –Q4*Q3*Q2*Q1*Q0
D1 = –Q4*Q3*–Q2*–Q1*–Q0+ –Q4*–Q3*–Q2*–Q1*Q0
D0 = –Q4*–Q3 + Q3 + Q4*–Q1*–Q0 + Q4*Q1 + Q2*–Q1*Q0
Формулы для логический функций, учитывающих переходы из запрещенных состояний являются более объемными (36 переменных в различных функциях), чем формулы логических функций, не учитывающих переходы из запрещенных состояний (12 переменных соответственно), но они дают большую защиту от сбоев.
Схема генератора кодов
Рис 2.1 Схема генератора кодов с учетом запрещенных состояний
1. Рис 2.2 Результат моделирования работы схемы
Синтез генератора кодов. Экономичное кодирование состояний
Поскольку заданный генератор кодов имеет всего 7 состояний, имеется возможность синтезировать его на 3, а не на 5 триггерах.
В работе были использованы T-триггеры.
q | Q(t) | Q(t+1) |
0 | 000 | 001 |
1 | 001 | 010 |
2 | 010 | 011 |
3 | 011 | 100 |
4 | 100 | 101 |
5 | 101 | 110 |
6 | 110 | 111 |
7 | 111 | 001 |
Таблица 3.1. Кодирование по счетчику
q | Q(t) | Q(t+1) |
0 | 000 | 001 |
1 | 001 | 011 |
2 | 011 | 010 |
3 | 010 | 110 |
4 | 110 | 111 |
5 | 111 | 101 |
6 | 101 | 100 |
7 | 100 | 001 |
Таблица 3.2. Кодирование кодом Грея
В данном случае в схеме будут присутствовать комбинационная схема 1 (КС1), определяющая переходы состояний и комбинационная схема 2 (КС2), определяющая выходные значения.
Кодирование состояний по счетчику (с инкрементом)
Q2 | Q1 | Q0 | T2 | T1 | T0 |
0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 0 |
Таблица 3.3 Таблица переходов КС1 генератора кодов с кодирование по счетчику
Q2 | Q1 | Q0 | Y3 | Y2 | Y1 | Y0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 | 0 |
Таблица 3.4. Таблица истинности для КС2 для кодирования по счетчику
Q2\Q1Q0 | 00 | 01 | 11 | 10 | |
T2 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | |
T1 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 1 | 0 | |
T0 | 0 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 0 | 1 | |
Y3 | 0 | 1 | 1 | ||
1 | 1 | ||||
Y2 | 0 | 1 | 1 | ||
1 | |||||
Y1 | 0 | 1 | |||
1 | 1 | ||||
Y0 | 0 | 1 | 1 | 1 | |
1 | 1 |
Таблица 3.5. Совместная минимизация для КС1 и КС2 для кодирования по счетчику
Полученные с помощью карт Карно функции:
Y3 = Q2*–Q1*–Q0 + –Q2*Q1
Y2 = –Q2*Q1
Y1 = Q2*–Q1*Q0+ –Q2*–Q1*Q0
Y0 = Q1*–Q0 + –Q2*–Q1
Кодирование состояний по коду Грея
Q2(t) | Q1(t) | Q0(t) | Q2(t+1) | Q1(t+1) | Q0(t+1) | T2 | T1 | T0 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
Таблица 3.6 Таблица переходов КС1 генератора кодов с кодирование по коду Грея
Q2 | Q1 | Q0 | Y3 | Y2 | Y1 | Y0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 0 | 0 | 0 |
Таблица 3.7. Таблица истинности для КС2 для кодирования по коду Грея
Q2\Q1Q0 | 00 | 01 | 11 | 10 | |
T2 | 0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 0 | |
T1 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | |
T0 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | |
Y3 | 0 | 1 | 1 | ||
1 | 1 | ||||
Y2 | 0 | 1 | 1 | ||
1 | |||||
Y1 | 0 | 1 | |||
1 | 1 | ||||
Y0 | 0 | 1 | 1 | 1 | |
1 | 1 |
Таблица 3.8. Совместная минимизация для КС1 и КС2 для кодирования по коду Грея
Полученные с помощью карт Карно функции:
Y3 = –Q2*Q1 + Q1*–Q0
Y2= –Q2*Q1
Y1 = Q1*Q0
Y0 = –Q2*–Q1 + –Q2*Q0 + –Q1*Q0
Сравнительный анализ результатов кодирования состояний
Логические функции для КС1 и КС2 для кодирования по коду счетчика:
Y3 = Q2*–Q1*–Q0 + –Q2*Q1
Y2 = –Q2*Q1
Y1 = Q2*–Q1*Q0+ –Q2*–Q1*Q0
Y0 = Q1*–Q0 + –Q2*–Q1
Логические функции для КС1 и КС2 для кодирования по коду Грея:
Y3 = –Q2*Q1 + Q1*–Q0
Y2= –Q2*Q1
Y1 = Q1*Q0
Y0 = –Q2*–Q1 + –Q2*Q0 + –Q1*Q0
Логические функции для кодирования по коду счетчика (25 переменных в различных функциях КС1 и КС2) менее объемные, чем функции для кодирования по коду Грея (33 переменных соответственно). В данном случае код по счетчику удобнее.
Схема генератора кодов
Рис 3.1. Схема генератора кодов с кодированием по счетчику
Рис 3.2. Результат моделирования работы схемы
Выводы
Кодирование по временной диаграмме позволяет не синтезировать КС2, что делает количество литералов в схемах меньше, чем при экономичном кодировании, однако при этом приходится использовать большее количество триггеров. Если принять “вес” триггера в 3 литерала, то обе схемы будут иметь одинаковые сложности: схема с кодированием по временной диаграмме – 16 + 3*5 = 31 литерал, схема с кодированием по счетчику – 25 + 3*3 = 34 литерала.
Формулы для логический функций, учитывающих переходы из запрещенных состояний являются более объемными (45 переменных в различных функциях), чем формулы логических функций, не учитывающих переходы из запрещенных состояний (16 переменных соответственно), но они дают большую защиту от сбоев.
Дата: 2019-12-22, просмотров: 429.