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

ЦУМ / lbm1_19

.pdf
Скачиваний:
34
Добавлен:
28.03.2015
Размер:
941.83 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра информационных радиосистем

ПРОЕКТИРОВАНИЕ АВТОМАТОВ С ПАМЯТЬЮ ПРИ ИСПОЛЬЗОВАНИИ ЯЗЫКА VHDL И ТЕКСТОВОГО РЕДАКТОРА

САПР QUARTUS II

Методические указания к лабораторной работе № 19 по дисциплинам

"Цифровые устройства и микропроцессоры" (часть 1), "Вычислительная техника и информационные технологии"

для студентов специальностей 071900, 200700, 200800, 200900, 201100 всех форм обучения

Нижний Новгород 2005

1

Составители: А.Д.Плужников, Н.Н.Потапов, А.А.Цветков.

УДК 621.374 (075.8)

Проектирование автоматов с памятью при использовании языка VHDL и

текстового редактора САПР Quartus II: метод. указания к лабораторной работе № 19 по дисциплинам "Цифровые устройства и микропроцессоры" (часть 1), "Вычислительная техника и информационные технологии" для студентов специальностей 071900, 200700, 200800, 200900, 201100 всех форм обучения / НГТУ; Сост.: А.Д.Плужников, Н.Н.Потапов, А.А.Цветков. Н.Новгород, 2005. 34 с.

Изложены краткие сведения об автоматах с памятью, методике их проектирования и о языке VHDL описания цифровой аппаратуры. Рассмотрены вопросы использования текстового редактора системы автоматизированного проектирования Quartus II. Сформулированы варианты задания к лабораторной работе, требования к отчету, вопросы для самопроверки. Рекомендована дополнительная литература.

Научный редактор А.Г.Рындык

Редактор О.В.Пугина

Подп. к печ. 23.09.2005. Формат 60х841/16. Бумага

Печать офсетная.

Печ. л. 2,0. Уч.-изд. л. 1,8. Тираж 500. Заказ

 

 

 

 

 

 

Нижегородский государственный технический университет.

 

 

Типография НГТУ. 603600, Н.Новгород, ул. Минина, 24.

 

 

2

1. Цель работы и подготовка к работе

Целью работы является приобретение начальных сведений об автоматах с памятью, а также изучение некоторых возможностей проектирования цифровых узлов при использовании языка VHDL совместно с системой автоматизированного проектирования (САПР) Quartus II, ориентированной на применение программируемых логических интегральных схем (ПЛИС).

Подготовка к работе осуществляется до прихода в лабораторию и включает в себя изучение данных методических указаний и (если студенту этого не достаточно для прояснения изучаемого материала) рекомендованной в них литературы, подготовку ответов на приводимые вопросы для самопроверки, составление VHDL-описаний проектируемого устройства (см. 7.2.1, 7.2.2) и проработку контрольного примера для нее (см. 7.3.4) в соответствии со своим вариантом задания (см. 7.1).

2. Понятие об автоматах с памятью

По своему функционированию (по поведению) автоматы с памятью (АП) отличаются от автоматов без памяти тем, что значения выходных сигналов АП (состояние АП) зависят не только от значений поступающих на их входы сигналов, но и от того (исходного) состояния автомата, которое предшествует подаче этих входных сигналов и определяется ранее действовавшими на автомат входными сигналами (предысторией). Характерным признаком структуры АП является наличие внутренних обратных связей, т. е. замкнутых петель прохождения сигналов. К автоматам с памятью (последовательностным цепям или схемам) относят, в частности, такие цифровые узлы как триггеры, регистры, счетчики.

3. Триггеры цифровых устройств

Триггер цифрового устройства – это простейший автомат с памятью (элементарный автомат), а именно, цифровой узел, имеющий два устойчивых состояния и способный под влиянием входных сигналов скачком (т. е. достаточно быстро) переходить из одного состояния в другое. Одно из этих состояний называют нулем (0), другое – единицей (1). Триггеры цифровых устройств весьма разнообразны. Даже их классификация достаточно обширна. Для примера рассмотрим некоторые из них.

3.1. Асинхронный T-триггер с прямым динамическим управлением

Условное обозначение данного триггера показано на рис. 1. Здесь Q и Q

выходы триггера: Q – так называемый прямой выход, а Q – инверсный. Двоичные значения (0 или 1) сигналов на этих выходах противоположны в любом

3

 

 

 

 

 

 

 

состоянии триггера. Состоянием триггера называют дво-

 

 

T

 

 

Q

 

 

 

 

ичное значение сигнала Q . Например, при Q

говорят,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

что триггер находится в состоянии 1. При этом Q

. При

 

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Q

 

) триггер в состоянии 0. T – вход триггера.

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Каждый входной импульс (его действие на вход T или

 

Рис. 1

 

 

 

 

иной вход рассматриваемых ниже триггеров соответствует

 

 

 

 

 

 

 

логической единице) вызывает изменение состояния триг-

гера на противоположное (срабатывание, опрокидывание), причем изменение состояния происходит при формировании фронта входного импульса. Изменение состояния триггера при формировании фронта или среза импульса является признаком соответственно прямого или инверсного динамического управления. Очевидно, что T -триггер можно использовать как делитель частоты импульсов на два.

 

 

Приведенное в текстовой форме поведенческое описание рассматриваемо-

 

 

T

 

 

 

го триггера позволяет представить такое описа-

 

 

0

1

 

 

ние в форме диаграммы состояний так, как это

T

T показано на рис. 2. Здесь 0 и 1 – символы состоя-

 

 

T

ний триггера. Стрелками показаны возможные

переходы из состояния в состояние. Рядом с каж-

Рис. 2

дой стрелкой в общем случае записывается усло-

 

вие перехода в форме некоторого выражения. Определенный переход осуществляется при том условии, когда соответствующее выражение принимает значение логической единицы. Для рассматриваемого частного случая триггера с прямым динамическим управлением по входу T на диаграмме состояний (рис. 2) T соответствует формированию фронта входного импульса, т. е. перепада от уровня логического нуля к уровню логической единицы. Заметим, что диаграмма состояний для асинхронного T -триггера с инверсным динамическим

управлением может быть получена из диаграммы (рис. 2) путем замены T на T

 

 

 

 

 

 

 

 

 

 

и T на T (при этом T

соответствует формированию среза входного импуль-

са).

 

 

 

 

 

 

 

 

 

 

Таблица 1

Поведенческое описание рассматриваемого триг-

 

 

 

 

гера может быть представлено и таблицей истинности

 

 

 

T

Q

Q

– табл. 1, которая составлена в соответствии с приве-

 

0

0

0

 

 

денными выше текстовой формой описания и диа-

 

0

1

1

 

 

граммой состояний (рис. 2). Данная

таблица

 

1

0

1

 

 

ет функцию Q от двух аргументов: T и Q . Причем,

 

1

1

0

 

 

как и в диаграмме состояний (рис. 2), T

соответст-

 

 

 

вует формированию фронта входного импульса, а Q

 

 

 

 

 

 

 

 

совпадает со значением выходного сигнала Q в исходном состоянии триггера. По табл. 1 можно составить совершенную дизъюнктивную нормальную

форму поведенческого (аналитического) описания триггера:Q T Q T Q.

4

Отраженная таблицей истинности и аналитическим описанием зависимость выходного сигнала от его значения в исходном состоянии является общим свойством всех АП и реализуется обратными связями в их структурах [1].

3.2. Синхронный T-триггер с прямым динамическим управлением

Условное обозначение данного триггера показано на рис. 3. Здесь C – так называемый синхронизирующий вход. Наличие такого входа характерно для всех так называемых синхронных (синхронизируемых, тактируемых) триггеров. Остальные входы в них называют информационными. Срабатывание любого синхронного триггера возможно лишь при условии дейст-

 

T

T

 

 

Q

вия синхроимпульса (синхронизирующего, тактирующего

 

 

 

 

или тактового импульса) на синхронизирующий вход. Ди-

 

 

 

 

 

 

 

намическое управление в синхронных триггерах осущест-

 

C

 

 

 

Q

 

 

 

 

вляется именно по синхронизирующему входу. В частно-

 

 

 

 

 

 

 

 

 

 

сти, триггер (рис. 3) функционирует следующим образом.

 

Рис. 3

 

 

 

 

 

 

 

 

 

Фронт каждого синхроимпульса вызывает опрокидывание

 

 

 

 

 

 

 

триггера при условии действия логической единицы на вход T во время формирования этого фронта. Если же это условие не выполняется, то синхроимпульсы не влияют на состояние триггера. Для данного триггера рис. 4 показывает диаграмму состояний, табл. 2 является таблицей истинности, а поведенческое описание в аналитической форме имеет следующий вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q T C Q T C Q T C Q T C Q .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

С

Q

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TC

 

 

 

 

 

 

 

 

0

 

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

0

 

1

0

0

T

 

 

T

 

 

 

 

 

TC

 

 

 

 

 

 

 

0

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

0

0

 

 

 

 

 

Рис. 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

1

0

Причем везде C соответствует формированию фронта синхроимпульса. Поведенческое описание рассматриваемого триггера в форме временных диаграмм представлено на рис. 5. Здесь диаграммы изображены без учета инерционности реального триггера. Эта инерционность ограничивает быстродействие триггера, т. е. приводит к взаимным задержкам входных и выходных сигна-

лов и к ненулевым длительностям фронтов перепадов.

5

T

t

C

t

Q

Рис. 5

t

 

3.3. D-триггер с прямым динамическим управлением

T

D

C

Рис. 6

Условное обозначение данного триггера показано на Q рис. 6. Триггер функционирует следующим образом:

фронт каждого синхроимпульса вызывает установку

Qгера в состояние, при котором выходной сигнал Q совпадает с двоичным значением сигнала D , действующего во время формирования этого фронта.

4.Регистры

4.1. Параллельные регистры

Одно из основных назначений параллельных регистров – хранение кодовых слов, например, промежуточных результатов вычислений. Параллельный регистр представляет собой набор триггеров с независимыми информационными входами. Эти информационные входы триггеров являются информационными входами регистра, на которые подается вводимое в параллельном коде слово. Синхронизирующие входы триггеров объединяются и образуют синхронизирующий вход регистра. Выходы триггеров являются выходами регистра.

4.2. Последовательные регистры

Эти регистры называют также сдвиговыми регистрами или регистрами сдвига. Они осуществляют операцию (микрооперацию) сдвига кодового слова по разрядной сетке.

Пусть имеется 6-разрядное двоичное число (слово двоичного кода) 001100 . Сдвиг этого слова вправо на один разряд означает его преобразование

в слово 000110 , т. е. двоичное значение каждого разряда заменяется значением

соседнего старшего разряда.

Сдвиг исходного слова на два разряда вправо приводит к слову 000011. Сдвиг исходного слова влево на один разряд приводит к слову 011000 . Таким

образом, двоичное значение каждого разряда заменяется значением соседнего младшего разряда.

Сдвиг исходного слова влево на два разряда приводит к слову 110000 .

6

3-разрядный последовательный регистр со сдвигом вправо может быть построен так, как показано на рис. 7. Здесь in – информационный вход регистра

in

D

T Q

2

D

T

Q

D

T

Q

0 out

 

 

1

 

 

C

C

 

 

C

 

 

C

 

 

 

Рис. 7

(последовательный вход), C – вход синхронизации, out – выход (последовательный выход).

Полагая, что в исходном состоянии все триггеры регистра установлены в нуль, изобразим временные диаграммы (рис. 8) при последовательном вводе 3- разрядного слова 101. Согласно рис. 8 в данном случае выводится из регистра в последовательном коде то же слово 101, которое вводилось в регистр. Причем выходное слово задержано относительно входного на 3 такта (3 периода синхроимпульсов, один из которых может быть неполным), т. е. каждый триггер регистра обеспечивает задержку на 1 такт. В каждом такте осуществляется сдвиг записанного в регистр слова Q 2 Q1Q 0 вправо на один разряд: в первом

такте в регистр записывается слово 100 , во втором – 010 .

Аналогичный регистр со сдвигом влево получается, если входом регистра сделать информационный вход крайнего правого триггера, а выходом регистра

– выход крайнего левого триггера. Тогда выход каждого триггера нужно соединить с информационным входом соседнего левого триггера. В реверсивных регистрах осуществляется управление направлением сдвига (изменение направления сдвига).

Заметим, что в слове Q 2 Q1Q 0 , записанном в регистр (например, рис. 7), Q0 является самым младшим разрядом при любом направлении сдвига.

in

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

Q

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На основе сдвиговых регистров строятся также параллельнопоследовательные (последовательно-параллельные) регистры, в которых до-

7

полнительно обеспечивается возможность ввода и вывода слов в параллельном коде.

5.Счетчики

5.1.Понятие о счетчиках и делителях, их поведенческое описание

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

В общем случае счетчик строится из n связанных между собой разрядных схем, каждая из которых содержит триггер и, кроме того, может содержать дополнительные логические элементы. При этом n называют количеством разрядов или разрядностью счетчика, а сам счетчик называют n -разрядным.

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

разрядного счетчика M n . Коэффициент счета последовательного соединения нескольких счетчиков равен произведению их коэффициентов счета.

Счетчики классифицируют по значению коэффициента счета, по направлению счета и по способу организации межразрядных связей.

По значению коэффициента счета различают двоичные счетчики (у них

M n ), двоично-кодированные (с произвольной величиной M и кодированием состояний двоичным кодом) и др. Двоично-кодированный счетчик при

M 10m ( m целое) называют двоично-десятичным либо декадным или десятичным.

По направлению счета счетчики делят на счетчики прямого счета (суммирующие), счетчики обратного счета (вычитающие) и реверсивные (с изменением направления счета).

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

Основными режимами работы счетчиков являются регистрация количества поступивших входных импульсов и деление частоты. В первом из этих режимов регистрируется состояние (содержимое) счетчика. Во втором режиме (деления частоты) используются только выходные импульсы последнего (в цепочке разрядных схем) триггера. Эти импульсы следуют с частотой fout in/ M ,

где fin – частота входных импульсов. Каждый счетчик может использоваться в

8

качестве делителя на M . Поэтому любой счетчик называют счетчикомделителем.

Состояние n -разрядного счетчика можно определить либо некоторым десятичным числом N либо соответствующим n -разрядным двоичным числом

Q n

Q n

...Q 0 ,

в

котором

Qk

– состояние

триггера k -го

разряда

( k

0,1, ..., n ). Эти два числа связаны между собой соотношением

 

 

 

N

Q n

2n

Q n

2n

...

Q 0 20 ,

 

где

n – разрядность счетчика;

Q 0, Q1, ... , Q n

– совокупность состояний

триггеров.

 

 

 

 

 

 

 

 

 

В суммирующем счетчике каждый входной импульс увеличивает записан-

ное в счетчик число N или Q n

Q n

...Q 0

на единицу (содержимое счет-

чика инкрементируется). Обычно исходное

состояние такого

счетчика

Q0

Q1 ...

Q n

 

. При этом содержимое

N счетчика является количе-

ством поступивших входных импульсов с точностью до слагаемого iM , где i – целое число.

Ввычитающем счетчике каждый входной импульс уменьшает записанное

всчетчик число N на единицу (содержимое декрементируется). Обычно ис-

ходное состояние такого счетчика Q0 Q1

... Q n

. Тогда содержимое

N счетчика является разностью числа 2n

n

... 0

n

и коли-

чества поступивших входных импульсов с точностью до слагаемого iM , где i

– целое число.

Значит, например, для 3-разрядных двоичных счетчиков должна быть справедлива табл. 3.

 

 

Таблица 3

 

 

 

Количество

Состояние суммирующего

Состояние вычитающего

входных

счетчика

счетчика

импульсов

Q2 Q1 Q0

Q2 Q1 Q0

0

000

111

1

001

110

2

010

101

3

011

100

4

100

011

5

101

010

6

110

001

7

111

000

8

000

111

9

001

110

9

При заполнении таблицы учтено, что после 2n 3 входных импульсов двоичный счетчик возвращается в исходное состояние (как говорят, переполняется). Согласно табл. 3 диаграмму состояний для 3-разрядного суммирующего двоичного счетчика можно представить так, как показано на рис. 9. Причем in соответствует действию очередного импульса на счетный вход in счетчика, а для приведенных ниже (см. 5.2, 5.3) схем построения счетчиков – формированию фронта этого импульса.

in

in

 

in

000

001

010

011

in

 

 

in

111

110

101

100

in

in

 

in

Рис. 9

5.2. Структура двоичных счетчиков с последовательным переносом

Табл. 3 показывает, что триггер младшего разряда у суммирующего и вычитающего счетчиков должен опрокидываться при каждом очередном входном импульсе: нули и единицы чередуются (поодиночке) в столбцах Q 0 . В столб-

цах Q1 нули и единицы чередуются парами, т. е. вдвое реже. В столбцах Q 2

они чередуются четверками – еще вдвое реже. Следовательно, и суммирующий, и вычитающий двоичные счетчики можно построить как цепочку последовательно соединенных делителей на 2 , т. е. асинхронных T -триггеров. Причем входным должен быть триггер младшего разряда, выходным – триггер старшего разряда. Кроме того, согласно табл. 3, какой-либо триггер суммирующего счетчика (за исключением триггера самого младшего разряда) изменяет свое состояние на противоположное при опрокидывании триггера соседнего младшего разряда из единицы в нуль. В вычитающем счетчике это происходит, наоборот, при опрокидывании триггера соседнего младшего разряда из нуля в единицу.

С учетом проведенного анализа табл. 3 суммирующий счетчик может быть реализован по схеме (рис. 10). Вычитающий счетчик получится, если подключить вход каждого последующего триггера к прямому (а не к инверсному) выходу предыдущего триггера.

Такие счетчики называют счетчиками с последовательным переносом. Главное достоинство этих счетчиков – простота. Кроме того, они мало нагружают предшествующие элементы и узлы, так как входные импульсы поступают только на вход триггера младшего разряда. Их недостаток – низкое быстродействие, что обусловлено поочередным срабатыванием триггеров.

10

Соседние файлы в папке ЦУМ