Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
75
Добавлен:
24.11.2017
Размер:
2.76 Mб
Скачать

Рис.1. Полный граф переходов 4-разрядного сдвигового регистра

71

PDF created with pdfFactory Pro trial version www.pdffactory.com

Рис.2. Замкнутый путь из 13 вершин на графе переходов

Если сдвиговый регистр, реализующий выбранный цикл, в исходном состоянии находится в какой-либо вершине графа, то ровно за 13 тактов он вернётся в эту же вершину. Поведение сдвигового регистра полностью определяется состоянием самого младшего триггера, поэтому после выбора маршрута на графе переходов необходимо задать логику работы для входов младшего триггера сдвигового регистра.

Воспользуемся характеристической таблицей для JK-триггера (табл.1). Используя её, заполним таблицу переходов (табл.2). Согласно выбранному маршруту, показанному на рис.2, сдвиговый регистр из состояния «0» (0000) должен перейти в состояние «1» (0001), следовательно, младший триггер должен принять значение Q0t+1 = 1. Из характеристической таблицы видно, что для перехода 0 → 1 входы J0K0 должны принять значения «1» и «×» соответственно, что и записано в табл.2 в строчке с номером набора «0».

Таблица 1

Характеристическая таблица JK-триггера

Qt Qt+1

J0

K0

0

0

0

×

 

 

 

 

0

1

1

×

 

 

 

 

1

0

×

1

 

 

 

 

1

1

×

0

 

 

 

C: 1 → 0

 

 

 

 

 

 

72

PDF created with pdfFactory Pro trial version www.pdffactory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

Таблица переходов для младшего JK-триггера

 

 

 

 

сдвигового регистра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

Q3 Q2 Q1

Q0

 

 

Q0t+1

J0

 

K0

 

 

 

 

набора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

 

 

1

1

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

1

 

 

1

×

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

0

0

1

1

 

 

1

×

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

0

1

1

1

 

 

1

×

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

1

1

1

1

 

 

0

×

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

1

1

1

0

 

 

1

1

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

1

1

0

1

 

 

0

×

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

1

0

1

0

 

 

1

1

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

0

1

0

1

 

 

1

×

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

1

0

1

1

 

 

0

×

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

0

1

1

0

 

 

0

0

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

1

1

0

0

 

 

0

0

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

1

0

0

0

 

 

0

0

 

×

 

 

 

 

 

 

 

 

 

 

Перенесём J0 и K0 на карты Карно с целью минимизации функций алгебры логики J0 и K0. Выбираем по-

крытия, показанные на рис.3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J0

 

Q1

 

 

 

K0

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q3

1

 

-

0

 

Q3

1

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

0

Q2

 

 

 

1

 

 

1

Q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

-

 

 

 

 

 

0

0

-

 

-

 

 

1

 

 

 

 

-

0

0

 

 

 

Q0

 

 

 

 

 

 

 

 

 

Q0

 

 

 

а

 

 

 

 

 

 

 

 

 

б

 

 

 

Рис.3. Карты Карно: а - для J0; б - для K0

 

 

 

В результате минимизации получаем:

J0 = Q3Q1 + Q3 Q1 ; K0 = Q3 .

Теперь, когда выбраны покрытия, определяющие значения входов J0 и K0 на всех наборах, включая нерабочие, следует выполнить проверку, подтверждающую, что сдвиговый регистр является самовосстанавливающимся, т.е. за конечное число тактов он войдёт в рабочий цикл. Так как в нашем рабочем цикле используется 13

73

PDF created with pdfFactory Pro trial version www.pdffactory.com

различных состояний из 16 возможных, необходимо проверить оставшиеся 16–13 = 3 нерабочих состояния: «2», «4» и «9».

Начнём с состояния «2». Так как клетка с номером набора «2» не попала ни в один из контуров в покрытиях карт Карно на рис.3, то состояния сигналов J0 и K0 на этом наборе доопределились до J0 = «0» и K0 = «0». По определению работы JK-триггера [2], если на входы J, K подать комбинацию «0», «0», то он сохранит своё значение выхода. В наборе «2» (0010) Q0 принимает значение логического «0», значит, после перехода в новое состояние он также должен принять значение логического «0». Из графа переходов на рис.1 видно, что это соответствует переходу из вершины «2» в вершину «4», которая также является нерабочей.

Рассуждая аналогично, для «4» состояния видим, что на этом наборе J0 и K0 доопределились до J0 = «1» и K0 = «0». Это приведёт к тому, что выход триггера установится в логическую «1». Это соответствует переходу из вершины «4» в «9», которая тоже не является рабочей.

Ввершине «9» входы J0 и K0 доопределились до J0 = «0» и K0 = «1». Это означает сброс младшего триггера после прихода тактового импульса. Это обеспечит переход из вершины «9» в вершину «2».

Витоге получился паразитный цикл, показанный на рис.4.

Состояние “2”

0

0

1

0

 

0

Состояние “4”

0

1

0

0

 

 

1

 

 

Состояние “9”

1

0

0

1

 

0

 

 

Состояние “2”

0

0

1

0

 

 

 

 

Рис.4. Паразитный цикл, приводящий к неработоспособности делителя частоты

Подобное состояние эквивалентно отказу, поэтому необходимо скорректировать логику работы сдвигового регистра так, чтобы обеспечить вход в рабочий цикл. Для этого скорректируем цикл так, чтобы, например, из состояния «9» произошёл переход в состояние «3», которое является рабочим (рис.5). В связи с этим изменим в карте Карно для набора номер «9», внеся туда комбинацию ×,0. В результате изменений выбираем новые покрытия для функций J0 и K0 (рис.6).

Состояние “2”

0

0

1

0

 

0

 

Состояние “4”

0

1

0

0

 

 

1

 

 

Состояние “9”

1

0

0

1

 

1

 

 

Состояние “3”

0

0

1

1

 

 

 

 

Рис.5. Скорректированная логика работы сдвигового регистра

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

J0 = Q3Q1 + Q3 ×Q1 ;

K0 = Q3Q1 + Q3Q2 .

Следует помнить, что делитель частоты - это двухполюсник, у которого есть вход (ТИ) и выход. На выходе делителя частоты должны появляться переходы в 13 раз реже, чем на входе (делитель частоты на 13). Для синтеза функции выхода достаточно сформировать осведомительный сигнал о том, что сдвиговый регистр находится в каком-либо наборе из рабочего цикла. Выберем для этого, например, набор номер «11» (10112). Оче-

74

PDF created with pdfFactory Pro trial version www.pdffactory.com

видно, что Fвых = Q3Q2Q1Q0 принимает значение логической «1» только на «11» наборе. Таким образом,

окончательная схема делителя частоты показана на рис.7.

J0

Q1

K0

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q3

 

1

 

 

 

0

 

 

Q3

 

1

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

0

 

Q2

1

 

 

 

1

 

 

 

Q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

-

 

 

 

 

0

 

0

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

1

 

 

 

 

-

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

 

 

 

 

 

Q0

 

 

 

 

 

 

 

 

а

 

 

 

 

 

б

 

 

 

 

Рис.6. Модифицированные карты Карно: а - для J0; б - для K0

Рис.7. Делитель частоты на D-триггерах

Временная диаграмма работы делителя частоты показана на рис.8. На ней основными сигналами являются ТИ (входной сигнал) и Fвых (выходной сигнал). Необязательные сигналы Q3, Q2, Q1, Q0 представлены для пояснения работы сдвигового регистра.

ТИ

Q0

Q1

Q2

Q3

Fвых

Рис.8. Временная диаграмма работы делителя частоты

Используя D-триггеры, разработаем 4-разрядный параллельный регистр, выполняющий микроопера-

ции:

-приём данных;

-логическое «И»;

75

PDF created with pdfFactory Pro trial version www.pdffactory.com

- «счётный режим».

Разрабатываемый регистр должен знать, какая операция выполняется в тот или иной момент. Для этого введём дополнительные сигналы A1, A0, которые однозначно зададут режим работы. Двух сигналов достаточно, чтобы задать 4 операции. В нашем случае операций 3, поэтому одна из комбинаций будет не определена. Способ кодирования микроопераций показан в табл.3. В общем случае порядок операций в таблице может быть произвольным.

Таблица 3

Кодирование микроопераций

Микрооперация

A1

A0

 

Примечание

 

 

 

 

 

 

 

Хранение данных

0

0

 

Qt+1 = Qt

Лог. «И»

0

1

 

Qt+1 = Xt Qt

 

 

 

 

Qt +1 =

 

 

«Счётный режим»

1

0

 

Qt

-

1

1

 

Не определена

 

 

 

 

 

 

 

Для создания 4-разрядного регистра достаточно спроектировать один разряд, оформить его в виде отдельного компонента и продублировать его на одной схеме 4 раза. Поэтому дальнейшие рассуждения будут вестись касательно одного разряда регистра. Заполним таблицу переходов одного разряда (табл.4). A1, A0 - входы, задающие микрооперацию, Q - выход регистра, X - входные данные регистра (все двухместные операции выполняются между X и Q). Левая половина таблицы до двойной черты заполняется простым перебором всех возможных значений. Правая часть заполняется с использованием таблицы микроопераций табл.3. Сначала заполним столбец «Микрооперация», в соответствии с ним заносятся правильные значения в столбец Qt+1, он же будет входом D*. Там, где операция не определена, ставится знак «×» - безразличное состояние, которое при минимизации функции доопределится до значений «1» или «0».

Таблица 4

Таблица переходов одного разряда регистра

Номер

A1

A0

X it

Qit

 

 

Qit+1

 

Микрооперация

набора

 

 

 

 

 

 

Di*

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

Хранение данных:

1

0

0

0

1

 

1

 

 

 

 

 

 

 

 

 

 

Qit+1 = Qit

2

0

0

1

0

 

0

 

3

0

0

1

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

4

0

1

0

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

Лог. «И»:

5

0

1

0

1

 

0

 

 

 

 

 

 

 

 

 

 

Qit+1 = X it *Qit

6

0

1

1

0

 

0

 

7

0

1

1

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

76

 

 

PDF created with pdfFactory Pro trial version www.pdffactory.com

8

1

0

0

0

 

1

 

 

 

 

 

 

 

 

 

 

«Счётный режим»:

9

1

0

0

1

0

 

 

 

 

 

 

 

 

Qit+1=Qit

10

1

0

1

0

1

11

1

0

1

1

 

0

 

 

 

 

 

 

 

 

 

 

 

12

1

1

0

0

 

×

 

 

 

 

 

 

 

 

 

 

 

13

1

1

0

1

×

 

Не определена

 

 

 

 

 

 

 

 

14

1

1

1

0

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

15

1

1

1

1

×

 

 

 

 

 

 

 

 

 

 

 

Переносим табл. 4 на карту Карно и минимизируем функцию D* (рис.9). Выбранные покрытия доопределяют неопределённые состояния «×» до логической «1», если «×» попало хотя бы в один контур, до логического «0», если «×» не попало ни в один контур.

D*

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

1

 

0

 

0

1

 

 

 

 

 

 

 

 

 

 

A0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

 

 

Рис.9. Карты Карно для разряда регистра

В результате минимизации получаем

D* = A1Q + A1 XQ + A1 A0Q = A1Q + A1Q(X + A0 ) .

Теперь можно нарисовать схему одного разряда регистра, выполняющего заданные микрооперации

(рис.10).

Рис.10. Схема одного разряда регистра

4-разрядный регистр получается использованием четырёх одноразрядных регистров с общим кодом микрооперации A1A0.

77

PDF created with pdfFactory Pro trial version www.pdffactory.com

Построим временную диаграмму работы разряда регистра (рис.11)

ТИ

A1

A0

Xi

Qi

Рис.11. Временная диаграмма работы одного разряда регистра

Используя методические указания к предыдущим работам, приступим к практической реализации схемы делителя частоты (см. рис.7) в среде МАХ+ PLUS II. Нарисуем сдвиговый регистр (рис.12).

Рис.12. Схема сдвигового регистра в среде МАХ+ PLUS II

Создадим из него компонент, который установим в новую схему. Добавим также необходимые входные и выходные сигналы, не забыв про функцию выхода Fвых = Q3Q2Q1Q0 . Результат показан на рис.13.

Рис.13. Схема делителя частоты с использованием созданного компонента

78

PDF created with pdfFactory Pro trial version www.pdffactory.com

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

Рис.14. Симуляция работы делителя частоты

Для наглядности сгруппируем сигналы Q3, Q2, Q1, Q0 в одну группу с отображением представления в десятичном виде (рис.15). Этот результат наглядно покажет пути смены состояний сдвигового регистра делителя частоты.

Рис.15. Симуляция работы делителя частоты с сгруппированными сигналами Q3...Q0

Полученные диаграммы (см. рис.14 и 15) в случае правильного проектирования должны быть одинаковыми с расчётными (см. рис.11). При несовпадении временных диаграмм с заданием необходимо найти ошибки синтеза или ошибки в схеме и исправить их, после чего снова выполнить симуляцию работы проекта.

Приступим к сборке полученных схем для второго задания. Соберём схему одного разряда регистра (см. рис.10) в среде MAX+PLUS II. Результат приведён на рис.16.

79

PDF created with pdfFactory Pro trial version www.pdffactory.com

Рис.16. Схема одного разряда регистра в среде MAX+PLUS II

После успешной компиляции проекта с одним разрядом регистра для удобства использования создадим новый компонент, выполнив несложные команды в меню File -> Create Default Symbol. Компоненты удобны в использовании и могут содержать огромные схемы, которые реализуют сложные вычисления.

Теперь создадим новый файл в графическом редакторе. Для получения 4-разрядного регистра вставим в него полученный компонент 4 раза. Для этого сделаем двойной клик левой клавишей мышки в рабочей области графического редактора, в появившемся окне в поле symbol Files выбираем имя добавляемого компонента. Добавив необходимые входы и выходы, получаем результат, показанный на рис.17.

Сохраним полученный проект и просимулируем его работу. Для наглядности на временной диаграмме оставим информационные сигналы одного разряда регистра. Подадим на входные сигналы A1, A0, X, ТИ те же уровни, что и на расчетной временной диаграмме (см. рис.11). Тогда результат симулирования Q, показанный на рис.18, должен быть таким же, как и на рис.11.

При несовпадении временных диаграмм с рассчитанными необходимо найти ошибки синтеза или ошибки в схеме и исправить их, выполнить компиляцию и симуляцию проекта снова и убедиться в правильности новых результатов.

80

PDF created with pdfFactory Pro trial version www.pdffactory.com

Соседние файлы в папке Учебники и методички