Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

00 Проектирование цифровых устройств

.pdf
Скачиваний:
257
Добавлен:
12.04.2015
Размер:
1.44 Mб
Скачать

61

Для многоразрядного (n = 8) счетчика нужно доказать, что функции возбуждения Ji и Ki можно найти методом индукции:

J0 Q1 Q2 ... Q6 Q7;

K0 Q1 Q2 ... Q6 Q7;

J1 Q0

Q2 Q3 ... Q6 Q7 ;

K1 Q0 Q2 Q3 ... Q6 Q7 ;

J2 Q0Q1 Q3 Q4 Q5 Q6 Q7 ;

K2 Q0Q1 Q3 Q4 Q5 Q6 Q7 ;

J3 Q0Q1Q2 Q4 Q5 Q6 Q7 ;

K3 Q0Q1Q2 Q4 Q5 Q6 Q7 ;

J4 Q0Q1Q2Q3 Q5 Q6 Q7 ; K4 Q0Q1Q2Q3 Q5 Q6 Q7 ;

J5 Q0Q1Q2Q3Q4 Q6 Q7 ;

K5 Q0Q1Q2Q3Q4 Q6 Q7 ;

 

J6 Q0Q1Q2Q3Q4Q5Q7;

K6 Q0Q1Q2Q3Q4Q5Q7;

 

J7 Q0Q1Q2Q3Q4Q5Q6; K7 Q0Q1Q2Q3Q4Q5Q6.

Суммирующий счетчик на D-триггерах. На рисунках 2.15 и 2.16 поясняется методика синтеза переменных Di в первых четырех разрядах счетчика.

D0

 

 

Q0

 

 

 

 

Q0

 

 

D1

 

 

Q0

 

 

 

Q0

 

 

 

1

1

0

0

1

1

0

0

 

 

0

1

1

1

1

0

0

0

 

Q3

0

0

1

1

 

0

0

1

1

 

Q3

0

0

0

1

1

1

1

0

 

1

1

0

0

1

1

0

0

 

0

1

1

1

1

0

0

0

 

 

 

 

 

 

0

0

1

1

0

0

1

1

Q4

 

0 0 0 1 1 1 1 0 Q4

 

1

1

0

0

1

1

0

0

 

 

0

1

1

1

1

0

0

0

 

Q3

0

0

1

1

0

0

1

1

Q5

Q3

0

0

0

1

1

1

1

0

Q5

1

1

0

0

1

1

0

0

0

1

1

1

1

0

0

0

 

 

 

 

 

0

0

1

1

 

0

0

1

1

 

 

0

0

0

1

1

1

1

0

 

 

 

 

 

Q1

 

 

Q2

 

 

 

 

 

 

Q1

 

 

Q2

 

 

Рис. 2.16. Диаграммы Вейча для D-триггеров младшего и первого разрядов суммирующего счетчика

D0 Q1 Q2 Q3 Q4 Q5

D1 Q0 Q2 Q3 Q4 Q5 Q0Q1

62

Q3

Q3

 

 

 

 

 

D2

 

 

 

 

 

 

 

 

 

D3

 

 

 

 

 

 

Q0

 

 

 

 

Q0

 

 

 

 

Q0

 

 

 

 

Q0

 

 

0

0

0

1

1

1

1

1

 

0

0

0

0

 

0

0

0

1

 

0

0

0

0

 

0

1

1

1

Q3

1

1

1

1

 

1

1

1

1

 

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

0

 

 

 

0

0

0

0

0

1

1

1

Q4

0 0

0

0

0 0

0 0

Q4

0

0

0

1

1

1

1

1

 

0

0

0

0

 

0

0

0

1

 

0

0

0

0

0

1

1

1

Q5 Q3

1

1

1

1

1

1

1

1

Q5

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

0

 

 

0

0

0

0

 

0

1

1

1

 

0

0

0

0

 

0

0

0

0

 

 

 

 

Q1

 

 

Q2

 

 

 

 

 

Q1

 

 

Q2

 

 

Рис. 2.17. Диаграммы Вейча для D-триггеров второго и третьего разрядов суммирующего счетчика

D2 Q0Q1 Q3 Q4 Q5 Q0 Q1 Q2Q0Q1 Q3 Q4 Q5 Q0Q1Q2

D3 Q0Q1Q2 Q4 Q5 Q0 Q1 Q2 Q3Q0Q1Q2 Q4 Q5 Q0Q1Q2Q3

Анализ выражений для переменных D0, D1, D2, D3 показывает, что у них имеются определенные свойства, которые позволяют, используя принцип индукции, найти формулы и для счетчиков с большим числом разрядов. Общий вид формулы для i-го разряда имеет такую структуру:

Di Q0Q1...Qi 2Qi 1 Qi 1 Qi 2 ... Qn 1 Q0Q1...Qi 2Qi 1Qi .

Так, для 8-разрядного суммирующего счетчика в коде Грея ряд выражений Di имеет вид:

D0 Q1 Q2 Q3 Q4 Q5 Q6 Q7;

D1 Q0 Q2 Q3 Q4 Q5 Q6 Q7 Q0Q1;

63

D2 Q0Q1 Q3 Q4 Q5 Q6 Q7 Q0Q1Q2;

D3 Q0Q1Q2 Q4 Q5 Q6 Q7 Q0Q1Q2Q3;

D4 Q0Q1Q2Q3 Q5 Q6 Q7 Q0Q1Q2Q3Q4;

D5 Q0Q1Q2Q3Q4 Q6 Q7 Q0Q1Q2Q3Q4Q5;

D6 Q0Q1Q2Q3Q4Q5Q7 Q0Q1Q2Q3Q4Q5Q6;

D7 Q0Q1Q2Q3Q4Q5Q6 Q0Q1Q2Q3Q4Q5Q6Q7.

Вычитающие счетчики с кодом Грея. Рассмотрим пример синтеза функций возбуждения триггеров в 6-разрядном вычитающем счетчике на JK-триггерах. Всего 12 функций: J0, K0, J1, K1, J2, K2, J3,

K3, J4, K4, J5, K5.

J0

 

Q0

Q0

 

K0

 

 

Q0

 

Q0

 

0

× × 1 0 × × 1

 

 

×

1

0

× × 1 0 ×

Q3

1

× × 0 1 × × 0

 

Q3

× 0 1 × ×

1 ×

0

× × 1 0 × × 1

 

×

1 0 × × 1 0 ×

 

 

 

 

1

× × 0 1 × × 0 Q4

 

× 0 1 × × 0 1 ×

 

0

× × 1 0 × × 1

 

 

×

1

0 × × 1 0 ×

Q3

1

× × 0 1

× × 0

Q5

Q3

× 0

1 × × 0 1 ×

0

× × 1 0 × × 1

×

1

0

× × 1 0 ×

 

 

 

 

1

× × 0 1 × × 0

 

 

× 0 1

× × 0 1 ×

 

 

Q1

Q2

 

 

 

 

 

Q1

Q2

Рис. 2.18. Диаграммы Вейча для младшего разряда вычитающего счетчика

J0 Q1 Q2 Q3 Q4 Q5

K0 Q1 Q2 Q3 Q4 Q5

Q4

Q5

64

J1

 

 

Q0

 

Q0

 

K1

 

Q0

 

 

 

Q0

 

 

 

0 0 × × ×

× 1 0

 

 

× × 1 0 0 0 × ×

 

Q3

0

1

× × ×

× 0 0

 

Q3

× × 0 0 0 1

× ×

 

0

0

× × ×

×

1 0

 

× × 1 0 0

0

 

× ×

 

 

 

 

 

 

 

0

1

× × ×

× 0 0

Q4

 

× × 0

0

0 1

× × Q4

 

0 0 × × ×

× 1 0

 

 

× × 1 0 0 0

× ×

 

Q3

0

1

× × ×

×

0 0

Q5

Q3

× × 0 0

0

1

 

× ×

Q5

0

0

× × ×

× 1 0

× ×

1

0

0

0

 

× ×

 

 

 

 

 

 

0

1

× × ×

× 0 0

 

 

× ×

0

0

0 1

 

× ×

 

 

 

 

Q1

 

Q2

 

 

 

 

Q1

 

Q2

 

Рис.2.19. Диаграммы Вейча для первого разряда вычитающего счетчика

J1 Q0 Q2 Q3 Q4 Q5

K1 Q0 Q2 Q3 Q4 Q5

J2

 

 

Q0

 

 

Q0

 

K2

 

Q0

 

 

Q0

 

 

 

 

0 0

0

0

×

× × ×

 

 

× × × × 1 0 0 0

 

Q3

0

0

0

1

×

× × ×

 

Q3

× × × × 0 0

0 0

 

0

0

0

0

×

× × ×

 

× × × × 1

0

 

0

0

 

 

 

 

 

 

 

0

0

0

1

×

× × ×

Q4

 

× × ×

× 0 0

0 0 Q4

 

0 0

0

0

×

× × ×

 

 

× × × × 1

0

 

0

0

 

Q3

0

0

0

1

×

× × ×

Q5

Q3

× × × × 0

0

 

0

0

Q5

0

0

0

0

×

× × ×

× ×

×

× 1

0

 

0

0

 

 

 

 

 

 

0

0

0

1

×

× × ×

 

 

× ×

×

× 0 0

0 0

 

 

 

 

 

Q1

 

Q2

 

 

 

 

Q1

 

Q2

 

 

Рис. 2.20. Диаграммы Вейча для второго разряда вычитающего счетчика

J2 Q0Q1 Q3 Q4 Q5

K2 Q0Q1 Q3 Q4 Q5

65

Вычитающий счетчик на D-триггерах. На рисунках 2.20 и 2.21 изображены диаграммы Вейча функций возбуждения Di для первых четырех разрядов 6-разрядного вычитающего счетчика, построенного на триггерах D-типа, и приведены минимизированные выражения этих функций.

D0

 

 

Q0

 

 

 

Q0

 

 

D1

 

 

Q0

 

 

 

Q0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

0

0

1

1

 

 

0

0

0

1

1

1

1

0

 

Q3

1

1

0

0

1

1

0

0

 

Q3

0

1

1

1

1

0

0

0

 

0

0

1

1

0

0

1

1

 

0

0

0

1

1

1

1

0

 

 

 

 

 

 

1

1

0

0

1

1

0

0

Q4

 

0 1 1 1 1 0 0

0

Q4

 

0

0

1

1

0

0

1

1

 

 

0

0

0

1

1

1

1

0

 

Q3

1

1

0

0

1

1

0

0

Q5

Q3

0

1

1

1

1

0

0

0

Q5

0

0

1

1

0

0

1

1

0

0

0

1

1

1

1

0

 

 

 

 

 

1

1

0

0

1

1

0

0

 

 

0

1

1

1

1

0

0

0

 

 

 

 

 

Q1

 

 

Q2

 

 

 

 

 

 

Q1

 

 

Q2

 

 

Рис. 2.21. Диаграммы Вейча для младшего и первого разрядов вычитающего счетчика

D0 Q1 Q2 Q3 Q4 Q5

D1 Q0 Q2 Q3 Q4 Q5 Q0Q1

66

D2

 

 

Q0

 

 

 

 

Q0

 

 

D3

 

 

Q0

 

 

 

Q0

 

 

 

0

0

0

0

0

1

1

1

 

 

0

0

0

0

0

0

0

0

 

Q3

0

0

0

1

 

1

1

1

1

 

Q3

1

1

1

1

1

1

1

0

 

0

0

0

0

0

1

1

1

 

1

1

1

1

1

1

1

1

 

 

 

 

 

 

0

0

0

1

1

1

1

1

Q4

 

0 0 0 0 0 0 0 1 Q4

 

0

0

0

0

0

1

1

1

 

 

0

0

0

0

0

0

0

0

 

Q3

0

0

0

1

1

1

1

1

Q5

Q3

1

1

1

1

1

1

1

0

Q5

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

0

0

0

1

 

1

1

1

1

 

 

0

0

0

0

0

0

0

1

 

 

 

 

 

Q1

 

 

Q2

 

 

 

 

 

 

Q1

 

 

Q2

 

 

Рис. 2.22. Диаграммы Вейча для второго и третьего разрядов вычитающего счетчика

D2 Q0Q1 Q3 Q4 Q5 Q0Q1Q2

D3 Q0Q1Q2 Q4 Q5 Q0Q1Q2Q3 .

Структура выражений для переменных D0, D1, D2, D3 обладает определенной закономерностью, которую можно распространить и на счетчики с большим числом разрядов:

Di Q0Q1...Qi 2Qi 1 Qi 1 Qi 2 ... Qn 1 Q0Q1...Qi 2Qi 1Qi .

Так, для 8-разрядного вычитающего счетчика ряд формул Di имеет вид:

D0 Q1 Q2 Q3 Q4 Q5 Q6 Q7;

D1 Q0 Q2 Q3 Q4 Q5 Q6 Q7 Q0Q1;

D2 Q0Q1 Q3 Q4 Q5 Q6 Q7 Q0Q1Q2;

D3 Q0Q1Q2 Q4 Q5 Q6 Q7 Q0Q1Q2Q3;

D4 Q0Q1Q2Q3 Q5 Q6 Q7 Q0Q1Q2Q3Q4;

D5 Q0Q1Q2Q3Q4 Q6 Q7 Q0Q1Q2Q3Q4Q5;

D6 Q0Q1Q2Q3Q4Q5Q7 Q0Q1Q2Q3Q4Q5Q6;

D7 Q0Q1Q2Q3Q4Q5Q6Q7.

67

2.3.3. Счетчики с неполным числом состояний и недвоичным кодированием

Счетчики с модулем, не равным целой степени числа 2, т. е. с произвольным модулем, реализуются на основе нескольких методов. Для построения счетчика с произвольным модулем М берется разрядность n = ]log2M[, где ]…[ – знак округления до ближайшего с избытком целого числа. Иными словами, исходной структурой как бы служит двоичный счетчик с модулем 2n, превышающим заданный и ближайшим к нему. Такой двоичный счетчик имеет 2n – М = L лишних (неиспользуемых) состояний, подлежащих исключению.

Распространены счетчики, у которых состояния закодированы двоичными числами, т. е. двоично-кодированные счетчики. Среди счетчиков с произвольным модулем особое место занимают двоичнодесятичные, имеющие модуль 10. Способы исключения лишних состояний многочисленны, и для любого М можно предложить множество реализаций счетчика. Исключая некоторое число первых состояний, получим ненулевое начальное состояние счетчика, что приводит к отсутствию естественного порядка счета и регистрации в счетчике кода с избытком. Исключение последних состояний позволяет сохранить естественный порядок счета. Сложность обоих вариантов принципиально одинакова, обычно применяют схемы с естественным порядком счета.

В отдельных случаях применяют недвоичное кодирование, при котором каждый разряд бинарного кода не имеет фиксированного веса, как например, в коде 8-4-2-1. При этом после построения схемы обычным для синтеза автоматов способом получается счетчик, специфика которого состоит в нестандартных функциях возбуждения триггеров, и, следовательно, в нестандартных связях между триггерами. При построении счетчика с модифицированными межразрядными связями лишние состояния исключаются непосредственно из таблицы функционирования счетчика. Схема получается как специализированная, изменение модуля счета требует изменения самой схемы, т. е. легкость перестройки с одного модуля на другой отсутствует. В то же время реализация схемы счетчика может оказаться простой.

68

Пример 2.3. Десятичный (декадный) суммирующий счетчик. Модуль счета М = 10. Применяется оригинальное кодирование десятичных цифр, причем переход от любой десятичной цифры к соседней сопровождается изменением только одного бита. Таким свойством обладает код Грея. В таблице 2.х приведены коды цифр.

Таблица 2.х. Бинарные коды десятичных цифр

Цифра

Код

Цифра

Код

0

0000

5

0111

1

0001

6

0101

2

0011

7

0100

3

0010

8

1100

4

0110

9

1000

На рисунке 2.хх показана таблица переходов счетчика. Пустые ячейки таблицы соответствуют лишним состояниям триггеров. Счетчик реализуем на четырех D-триггерах. Две диаграммы Вейча приведены на рис. 2.хх. На рисунке 2.хх представлены диаграммы Вейча для старших разрядов и для сигнала переноса в старшую декаду.

 

 

 

Q

 

D0

 

 

Q

 

pq–1

 

 

Q

 

 

 

 

0

 

 

 

 

0

 

 

 

0

 

 

0

1

2

3

 

1

1

0

0

 

0

1

1

1

Q2

7

6

5

4

Q2

0

0

1

1

Q2

0

0

0

1

8

 

 

 

0

 

 

 

0

 

 

 

 

 

 

Q3

 

 

 

Q3

 

 

 

Q3

 

9

 

 

 

0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

 

Q1

 

 

 

 

Q1

Рис.2.23. Таблица переходов и диаграммы Вейча для младшего и первого разрядов суммирующего десятичного счетчика

После покрытия ячеек с единицами получаем выражения для функций возбуждения младших разрядов счетчика:

D0 Q3 Q1Q2 Q1Q2 Q3 Q1 Q2

69

D1 Q2Q0 Q1Q0

D2

 

 

Q0

 

D3

 

 

Q0

 

 

р10

 

 

 

Q0

 

 

 

 

0

1

 

 

 

0

0

 

 

 

 

 

0

0

 

0

0

 

0

0

 

 

0

0

Q2

1

1

1

1

Q2

1

0

0

0

Q2

0

0

0

0

0

 

 

 

1

 

 

 

0

 

 

 

 

 

 

Q3

 

 

 

Q3

 

 

 

 

Q3

 

0

 

 

 

0

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

 

Q1

 

 

 

 

 

 

Q1

Рис.2.24. Диаграммы Вейча для второго и третьего разрядов суммирующего десятичного счетчика и выходного переноса

Функции возбуждения старших разрядов и десятичного переноса имеют вид:

D2 Q3Q2 Q1Q0

D3 Q2Q1Q0

p10 Q3Q2

Для наращивания разрядности десятичного счетчика используется межразрядный десятичный перенос. Сигнал переноса Р возникает при коде цифры «9». Он формируется из каждого десятого счетного импульса при р10 = 1 и должен проходить на выход в течение длительности счетного импульса, т. е. активным для триггеров всех декад должен быть задний фронт счетного импульса. В приведенной на рисунке 2.24 схеме декадного счетчика для формирования выходного переноса используется элемент ИЛИ.

70

 

 

КЦ

 

 

 

Q0

Q1

Q2

 

Q3

 

D T

D T

D T

D T

 

 

C

C

C

C

Q2

 

 

 

 

 

1 Р

С

 

 

 

 

 

 

 

 

 

Рис. 2.25. Схема десятичного счетчика

В спроектированной схеме счетчика имеются шесть лишних состояний. Они исключены в том смысле, что не используются при нормальном функционировании счетчика. Но при сбоях или после подачи на схему напряжения питания в начале ее работы лишние состояния могут возникать. Поэтому полезно определить поведение схемы (автомата), в которой возникло лишнее состояние. Имея схему, можно полностью предсказать поведение схемы во всех возможных ситуациях. Сделаем это для полученной схемы счетчика с модулем 10.

Взяв каждое лишнее состояние, найдем для него функции возбуждения триггеров, определяющие их переходы в следующее состояние. При необходимости найдем таким же способом следующий переход и т. д. Для взятого примера лишними являются состояния 1001, 1010, 1011, 1101, 1110, 1111. Определяем переходы счетчика из каждого запрещенного состояния:

1001 → 0010; 1010 → 0110; 1011 → 0010; 1101 → 0000; 1110 → 0110; 1111 → 0000.

Удобно построить диаграмму состояний счетчика (граф переходов), в которой учтен не только рабочий цикл (его состояния на рисунке 2.25 показаны кружками), но и поведение автомата, попавшего в неиспользуемые состояния (эти состояния показаны прямоугольниками). Из диаграммы видно, что рассматриваемый счетчик обладает свойством самозапуска (самовосстановления после сбоя) – независимо от исходного состояния он приходит в рабочий цикл после начала работы.