2. Практическая часть работы
Выбор схемы
Нужно спроектировать суммирующий двоично-десятичный счетчик импульсов. Для данного счётчика подойдёт схема параллельного суммирующего счётчика, т. к. этот вариант отличается хорошим быстродействием.
Составление структурной схемы счётчика
Структурная схема – совокупность блоков счётчика, выполняющих какую-либо функцию и обеспечивающих нормальную работу счётчика. На рисунке 7 показана структурная схема счётчика.
Рис. 7 Структурная схема счётчика
Блок управления выполняет функцию подачи сигнала и управления триггерами.
Блок счёта предназначен для изменения состояния счетчика и сохранения этого состояния.
Блок индикации выводит информацию для зрительного восприятия.
Составление функциональной схемы счётчика
Функциональная схема – внутренняя структура счётчика.
Определим оптимальное количество триггеров для недвоичного счётчика с коэффициентом счёта Кс=10.
M = log 2 (Кс) = 4.
M = 4 значит для реализации двоично-десятичного счётчика необходимо 4 триггера.
3. Минимизация функций управления
Составление таблицы функционирования счётчика и определение функций переходов
Таблица функционирования отображает состояния счетчика до переключающего сигнала и после в зависимости от заданного типа счетчика(невзвешенный), а также функции перехода, показывающие, как изменится состояние. При использовании четырёх разрядов можно закодировать 16 возможных комбинаций цифр двоичной системы счисления, для кодировки 10 цифр достаточно 10 комбинаций. Чтобы исключить некоторые комбинации (в зависимости от кода) используют разные виды кодировки. В невзвешенном счетчике исключаются такие комбинации как:
0100,0101,1000,1001,1010,1011
И остаются комбинации:
0000 |
0001 |
0010 |
0011 |
0110 |
0111 |
1110 |
1111 |
1100 |
1101 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Состояние счётчика |
Функции перехода | ||||||||||||||||
Предыдущее |
|
Последующее | |||||||||||||||
№ | |||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
▲ | |||||
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
▲ |
▼ | |||||
2 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
▲ | |||||
3 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
▲ |
1 |
▼ | |||||
4 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
▲ | |||||
5 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
▲ |
1 |
1 |
▼ | |||||
6 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
▲ | |||||
7 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
▼ |
▼ | |||||
8 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
▲ | |||||
9 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
▼ |
▼ |
0 |
▼ |
0 – переход из LOG”0” в LOG”0”
1 – переход из LOG”1” в LOG”1”
▲ – переход из LOG”0” в LOG”1”
▼ – переход из LOG”1” в LOG”0”
№ - цифра десятичной системы счисления.
Составление карт функций перехода FQ
Эти карты показывают, какое значение принимает функция перехода для данного триггера при определенной комбинации значений на выходах всех триггеров. Карты функций перехода потребуются в дальнейшем для составления функций управления входами триггеров.
|
Q1Q0 | |||||||||||||||
00 |
01 |
10 |
11 | |||||||||||||
Q3Q2 |
00 |
0 |
1 |
2 |
3 | |||||||||||
01 |
- |
- |
4 |
5 | ||||||||||||
10 |
- |
- |
- |
- | ||||||||||||
11 |
8 |
9 |
6 |
7 | ||||||||||||
|
Q1 |
Q1* |
| |||||||||||||
Q2* |
- |
- |
- |
- |
Q3 | |||||||||||
Q2 |
6 |
7 |
9 |
8 | ||||||||||||
4 |
5 |
- |
- |
Q3* | ||||||||||||
Q2* |
2 |
3 |
1 |
0 | ||||||||||||
|
Q0* |
Q0 |
Q0* |
|
Карты функций перехода:
FQ3 |
Q1 |
Q1* |
| |||
Q2* |
- |
- |
- |
- |
Q3 | |
Q2 |
1 |
1 |
▼ |
1 | ||
0 |
▲ |
- |
- |
Q3* | ||
Q2* |
0 |
0 |
0 |
0 | ||
|
Q0* |
Q0 |
Q0* |
| ||
FQ2 |
Q1* |
Q1 |
| |||
Q2* |
- |
- |
- |
- |
Q3* | |
Q2 |
1 |
1 |
▼ |
1 | ||
1 |
1 |
- |
- |
Q3 | ||
Q2* |
0 |
▲ |
0 |
0 | ||
|
Q0* |
Q0 |
Q0* |
|
FQ1 |
Q1 |
Q1* |
| ||||||||||
Q2* |
- |
- |
- |
- |
Q3 | ||||||||
Q2 |
1 |
▼ |
0 |
0 | |||||||||
1 |
1 |
- |
- |
Q3* | |||||||||
Q2* |
1 |
1 |
▲ |
0 | |||||||||
|
Q0* |
Q0 |
Q0* |
| |||||||||
FQ0 |
Q1 |
Q1* |
| ||||||||||
Q2* |
- |
- |
- |
- |
Q3 | ||||||||
Q2 |
▲ |
▼ |
▼ |
▲ | |||||||||
▲ |
▼ |
- |
- |
Q3* | |||||||||
Q2* |
▲ |
▼ |
▼ |
▲ | |||||||||
|
Q0* |
Q0 |
Q0* |
|
Составление карты Карно функций управления входов для каждого триггера счётчика
Карты Карно составляются в соответствие со словарём перехода триггера. Для данного счётчика я буду использовать JK-триггеры, т. К. они самые универсальные. Словарь перехода для JK-триггера выглядит следующим образом:
FQ |
J-вход |
K-вход |
0 |
0 |
X |
1 |
X |
0 |
▲ |
1 |
X |
▼ |
X |
1 |
Используя этот словарь, получим:
для триггера T3:
|
Q1 |
Q1* |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
Q2* |
- |
- |
- |
- |
Q3 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Q2 |
0 |
0 |
1 |
0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
X |
X |
- |
- |
Q3* | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Q2* |
X |
X |
X |
X | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Q0* |
Q0 |
Q0* |
|
для триггера T2:
J2 |
Q1 |
Q1* |
| ||
Q2* |
- |
- |
- |
- |
Q3 |
Q2 |
X |
X |
X |
X | |
X |
X |
- |
- |
Q3* | |
Q2* |
0 |
1 |
0 |
0 | |
|
Q0* |
Q0 |
Q0* |
| |
K2 |
Q1 |
Q1* |
| ||
Q2* |
- |
- |
- |
- |
Q3 |
Q2 |
0 |
0 |
1 |
0 | |
0 |
0 |
- |
- |
Q3* | |
Q2* |
X |
X |
X |
X | |
|
Q0* |
Q0 |
Q0* |
|
для триггера T1:
J1 |
Q1 |
Q1* |
| |||
Q2* |
- |
- |
- |
- |
Q3 | |
Q2 |
X |
X |
0 |
0 | ||
X |
X |
- |
- |
Q3* | ||
Q2* |
X |
X |
1 |
0 | ||
|
Q0* |
Q0 |
Q0* |
| ||
K1 |
Q1 |
Q1* |
| |||
Q2* |
- |
- |
- |
- |
Q3 | |
Q2 |
0 |
1 |
X |
X | ||
0 |
0 |
- |
- |
Q3* | ||
Q2* |
0 |
0 |
X |
X | ||
|
Q0* |
Q0 |
Q0* |
|
для триггера T0:
J0 |
Q1 |
Q1* |
| ||
Q2* |
- |
- |
- |
- |
Q3 |
Q2 |
1 |
X |
X |
1 | |
1 |
X |
- |
- |
Q3* | |
Q2* |
1 |
X |
X |
1 | |
|
Q0* |
Q0 |
Q0* |
| |
K0 |
Q1 |
Q1* |
| ||
Q2* |
- |
- |
- |
- |
Q3 |
Q2 |
X |
1 |
1 |
X | |
X |
1 |
- |
- |
Q3* | |
Q2* |
X |
1 |
1 |
X | |
|
Q0* |
Q0 |
Q0* |
|
Составление минимизированных логических уравнений
В картах Карно выделены клетки, которые описываются наиболее простыми логическими уравнениями, и охватывающие все единичные состояния триггеров. Исходя из этого, составим минимизированные логические уравнения функций управления:
J3=Q2 K3=Q0Q1*
J2=Q0Q1 K2=Q0Q1*
J1=Q3* K1=Q3
J0=1 K0=1
Составление функциональной схемы.
Схема счетчика, построенная на JK-триггерах и реализующая логические функции управления триггерами.
Перекодировка в 8-4-2-1
|
8-4-2-1 |
Невзвешенный | |||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 | |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 | |
2 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 | |
3 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 | |
4 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 | |
5 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 | |
6 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 | |
7 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 | |
8 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 | |
9 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 | |
|
Q3 |
Q2 |
Q1 |
Q0 |
Q3 |
Q2 |
Q1 |
Q0 |
На основании главной карты Карно составляем 4 карты каждого выхода в конечной кодировке (8-4-2-1).
FQ38-4-2-1 |
Q1 |
Q1* |
| |||
Q2* |
- |
- |
- |
- |
Q3 | |
Q2 |
0 |
0 |
1 |
1 | ||
0 |
0 |
- |
- |
Q3* | ||
Q2* |
0 |
0 |
0 |
0 | ||
|
Q0* |
Q0 |
Q0* |
| ||
FQ28-4-2-1 |
Q1* |
Q1 |
| |||
Q2* |
- |
- |
- |
- |
Q3* | |
Q2 |
1 |
1 |
0 |
0 | ||
1 |
1 |
- |
- |
Q3 | ||
Q2* |
0 |
0 |
0 |
0 | ||
|
Q0* |
Q0 |
Q0* |
|
FQ18-4-2-1 |
Q1 |
Q1* |
| |||||||
Q2* |
- |
- |
- |
- |
Q3 | |||||
Q2 |
1 |
1 |
0 |
0 | ||||||
0 |
0 |
- |
- |
Q3* | ||||||
Q2* |
1 |
1 |
0 |
0 | ||||||
|
Q0* |
Q0 |
Q0* |
| ||||||
FQ08-4-2-1 |
Q1 |
Q1* |
| |||||||
Q2* |
- |
- |
- |
- |
Q3 | |||||
Q2 |
0 |
1 |
1 |
0 | ||||||
0 |
1 |
- |
- |
Q3* | ||||||
Q2* |
0 |
1 |
1 |
0 | ||||||
|
Q0* |
Q0 |
Q0* |
|
В результате получаем уравнения перекодировки, которые можно реализовать на логических элементах:
FQ38-4-2-1=Q3Q1*
FQ28-4-2-1=Q1*
FQ18-4-2-1=Q1Q3+Q1Q2*
FQ08-4-2-1=Q0