Лабораторная работа 5, Генератор кодов 2010

5. СИНТЕЗ ГЕНЕРАТОРОВ КОДОВ


Системные требования: САПР Quartus II V9.0 и выше; лабораторный стенд DiLaB с подключенной платой Cyclone II.
Базовые знания: курс Информатика ч.2, выполнение вводной работы, работ исследование триггеров и синтез конечных автоматов.
Трудоемкость работы: 4 часа (1 час С1 и 3 часа в лаборатории).

5.1. Общие сведения

Операционные узлы типа генераторов кодов формируют на своих выходах последовательно во времени двоичные коды. Они, являясь разновидностью управляющих автоматов, широко используются как устройства управления работой различных узлов и блоков цифровых систем. При этом каждый из генерируемых кодов представляет собой микрокоманду, которая вызывает выполнение определенной микрооперации (суммирование, сдвиг и т.п.), реализуемой узлами и блоками системы. Последовательность кодов обеспечивает выполнение ряда микроопераций, которые в совокупности производят определенную процедуру преобразования двоичной информации, реализуя заданную микропрограмму обработки.
Структурно генератор кодов представляет собой синхронный конечный автомат, представленный на рис.4.1. Требуемая длина последовательности формируемых кодов задает число внутренних состояний такого КА и определяет количество тактов, подаваемых на вход синхронизации блока памяти, после которого последовательность кодов на выходе генератора повторяется.
Если синтезируемый генератор предназначен для формирования одной периодически повторяющейся последовательности кодов заданной длины, то входы X в структуре КА на рис.4.1 отсутствуют, таблица переходов КА вырождается в одну строку, а сами КА называются автономными.
В отличие от этого, управляемые генераторы кодов реализуются по общей структуре рис.4.1 и при подаче на входы X управляющих кодов (команд) формируют на своих выходах различные последовательности кодов, соответствующие поданной команде. Таким образом, на базе управляемого генератора кодов можно осуществить аппаратно реализованное устройство управления цифровой системой. Такое устройство обеспечивает поочерёдное выполнение последовательности команд - программы, поступающей из запоминающего устройства или от внешних устройств, например, с пульта оператора.
Если в генераторе кодов вход синхронизации рассматривать как счётный вход, то это устройство превращается в счётчик - операционный узел, сигналы на выходах которого отображают в определённом коде число импульсов, поступивших на его счётный вход. Если счётчик реализуется по общей структурной схеме рис.4.1, то подавая на входы X управляющие коды, можно изменять характеристики счётчика: направление счёта (суммирование или вычитание), модуль счёта, производить начальные установки и др. В интегральном исполнении наиболее распространены счётчики, работающие в двоичном коде - двоичные счётчики. Для получения счётчика, работающего в другом коде (коде Джонсона, Грея и др.), разработчики часто используют объединение двоичного счётчика и комбинационной схемы преобразователя двоичного кода в требуемый. Однако, такое решение может быть хуже по быстродействию и аппаратурным затратам, чем решение этой задачи непосредственно по структуре генератора кодов.
Генераторы кодов могут использоваться как тактовые устройства, формирующие на своих выходах импульсные последовательности с заданными временными диаграммами. Такие устройства необходимы при построении систем синхронизации и управления работой других операционных устройств. При этом легко осуществляется переход от заданных временных диаграмм к соответствующей последовательности кодов и наоборот (см. пример синтеза).
Как уже отмечалось, число внутренних состояний генератора кодов однозначно определяется длиной заданной последовательности. Для реализации такого автомата требуется минимум m=E(log2R) триггеров (см.раздел 4). Если при этом длина каждой кодовой комбинации не превышает m двоичных символов, то синтез генератора упрощается: внутренние состояния КА могут быть закодированы непосредственно заданными кодовыми комбинациями, а выходные сигналы снимаются непосредственно с выходов триггеров. Если же количество символов в кодовых комбинациях больше или введены дополнительные переменные, то часть выходных сигналов приходится формировать как функцию состояний с помощью комбинационной схемы КС2 или увеличивать число триггеров.
Индивидуальные задания на проведение исследований в этом разделе сформулированы в виде последовательности десятичных чисел определённой длины, а также условиями на дополнительную переменную Y. Синтезируемый генератор должен сформировать эту последовательность в двоичном коде. Состояния КА целесообразно кодировать двоичными кодами, соответствующими заданным числам. При этом легко строятся граф переходов и таблица переходов синтезируемого генератора. Дальнейший синтез КА, а также его наладка и исследование ведётся по методике, изложенной в разделе 4.

5.2 . Пример синтеза генератора кодов

Требуется синтезировать генератор двоичных кодов, заданных числовой последовательностью: 4-1-2-6-7-5-0-3.
Дополнительная переменная Y равна единице, если формируемые числа равны 5, 6 или 7.
Длина формируемой последовательности - восемь тактов, диапазон изменения чисел от 0 до 7, значит, для обеспечения требуемого числа внутренних состояний (всех кодовых комбинаций) потребуются три триггера, и основные сигналы можно получить с выходов этих триггеров без комбинационной схемы, формируя комбинационно только дополнительный сигнал Y. Поставив в соответствие формируемым числам коды внутренних состояний КА Q3Q2Q1, получим граф переходов (см. рис.5.1):







Рис.5.1.

Временная диаграмма работы синтезируемого генератора приведена на рис.5.2.




Рис.5.2.

На основании графа переходов строим таблицу переходов синтезируемого КА
rt
000
001
010
011
100
101
110
111

rt+1
011
010
110
100
001
000
111
101

Используя для реализации КА JK-триггеры с функцией возбуждения (см. п.4.2):

Q(t)(Q(t+1)

Входы
0(0
0(1
1(0
1(1

J
0
1
H
H

K
H
H
1
0


построим таблицу возбуждения КА и дополним её таблицей истинности функции Y:

Значение кода
Q3Q2Q1
J3K3
J2K2
J1K1
Y

0
0 0 0
0 H
1 H
1 H
0

1
0 0 1
0 H
1 H
H 1
0

2
0 1 0
1 H
H 0
0 H
0

3
0 1 1
1 H
H 1
H 1
0

4
1 0 0
H 1
0 H
1 H
0

5
1 0 1
H 1
0 H
H 1
1

6
1 1 0
H 0
H 0
1 H
1

7
1 1 1
H 0
H 1
H 0
1


Ориентируясь на использование JKFF-триггера

Приложенные файлы

  • doc 15873516
    Размер файла: 221 kB Загрузок: 0

Добавить комментарий