ОСНОВЫ ПРОЕКТИРОВАНИЯ НА ПЛИС

Узнать стоимость написания работы

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

А.П.Аверченко, В.Г.Шахов

ОСНОВЫ ПРОЕКТИРОВАНИЯ НА ПЛИС

Учебное пособие

Омск, 2016


УДК 004.083

Рецензенты: д.т.н., профессор В.И.Потапов,

д.т.н., профессор В.П.Горелов


СОДЕРЖАНИЕ


ВВЕДЕНИЕ

В настоящее время программируемые логические интегральные схемы (ПЛИС) являются одним из перспективных направлений развития современной микроэлектроники. Это объясняется следующими факторами.

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

2. ПЛИС могут использоваться при тиражировании современных технических средств различного уровня, от бытовой техники до современных технических средств оперативного управления и контроля. Они могут обладать следующими положительными свойствами:

- независимость от импортных программных продуктов зарубежного производства, включая Windows, Apple, Cisco и прочие программно ориентированные корпорации, что позволяет защититься от внешних нежелательных воздействий и финансовых проблем, связанных с лицензированием и обновлениями программных продуктов;

- ограничения технического шпионажа или дистанционных нежелательных воздействий на оборудование и технологически процессы;

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

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

4. Разрабатываются новые приемы программирования и альтернативных операционных систем. Они могут включаться в новые системы автоматизированного проектирования (САПР) и способствуют созданию новых систем программирования и проектирования, включая блочное и объектно - ориентированное программирование. Удобством такого подхода является то, что любой автор собственной системы программирования является независимым владельцем и правообладателем своей системы программирования, предназначенной для решения узкого круга задач. Это не исключает создания тиражируемых систем программирования, которые могут являться объектами интеллектуальной собственности, следовательно, являются объектом коммерциализации.

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

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПЛИС

В этот раздел входят основные сведения из следующих направлений технической кибернетики:

- булева алгебра и исчисление высказываний;

- теория конечных автоматов;

- конечные динамические системы и машины Тьюринга;

- обучающиеся системы и искусственный интеллект.

Множество задач, входящих в эти разделы, слишком объемно, но авторы надеются, что означенные направления послужат толчком для дальнейшего самообразования и послужат основой для дальнейшего поиска в сети Интернет. Помните, что для корректной работы в любом направлении нужно умение корректно ставить задачи: на 70 – 80% это обеспечивает решение задачи. В ссылочных материалах приводятся некоторые данные об Интернет – ссылках по рассматриваемым проблемам.

1.1. Основы булевой алгебры и ее приложений

Несмотря на то, что основы этого направления были заложены еще в Древней Греции, принято считать, что его основоположником являлся Джордж Буль, преподаватель одного из колледжей Великобритании. В основе его теории лежала алгебра множеств, в то время уже достаточно разработанная, поэтому булева алгебра может считаться одним из ответвлений алгебры множеств.

В основе булевой алгебры лежит понятие двоичного аргумента - переменной, которая может принимать одно из двух значений: ноль или единица (0 или 1). В терминах Древней Греции это ассоциируется с понятиями «истина» (true) или «ложь» (false), что и было основой для раздела философии под названием «логика».

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

Булева функция оперирует с конечным множеством из каргументов. При этом, если каждый из аргументов принимает одно из двух значений, 0 или 1, возникает область определения, состоящая из конечного числа точек. Их количество оценивается как 2К, где К – количество аргументов.Обычно эту область называют пространством определения, а в булевой алгебре ассоциируют его с к– мерным кубом. В нем вершины определяют область определения, ребра имеют единичную длину, а координаты являются двоичными кодами этих вершин. При этом 0 – мерный куб представляет собой единственную точку с координатой 0, 1 – мерный куб – это отрезок единичной длины с координатами (0,1), двумерный куб – это квадрат с четырьмя координатами , трехмерный - это обычный куб в смысле Эвклида и т.д. Кубы большей мерности наглядно не воспринимаются (хотя алгоритм изображения кубов мерности 4 и выше можно записать в виде простого правила: для представления куба мерности к + 1 достаточно изобразить два к – мерных куба и соединить соответствующие вершины одномерными ребрами. Попробуйте изобразить эти кубы: после этого вы поймете технологии 4D).

ВариантыК- мерных кубов приведены на рис. 1.1.Здесь варианты а, б,в,г соответствуют нуль - одно - двух и трехмерным вариантам кубов.

Рисунок 1.1. - Варианты К - мерных кубов

Четырехмерный вариант куба не показан (хотя он освоен в технологиях типа 4D и их преемников). Остальные вариации пока считаются абстракцией, но это пока!

Вариантов задания булевых функций может быть несколько. Основными среди них можно считать табличный, алгебраический и графо - аналитический.

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

Приведем таблицу булевых функций одного аргумента. Всего таких функций может быть 4. Их описание и функции приведены на рис.1.2. Как видно из рисунка, всего функций одного аргумента четыре. Из них две вырожденные и являются константами. Первая константа - 0: она сохраняет свое значение независимо от значения аргумента. Вторая константа, константа 1, сохраняет свое значение, но с другим знаком. Это второстепенные функции, не представляющие интереса для математики.

Х

0

1

Обозначение

Наименование

Y1

0

0

0

Константа 0

Y2

0

1

Х

Повторение Х

Y3

1

0

Инверсия Х

Y4

1

1

1

Константа 1

Рис. 1.2. - Булевы функции одного аргумента

Вторая функция из таблицы повторяет значения аргумента. Она так и называется - повторение. Практического значения не имеет.

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

Булевы функции двух аргументов являются основополагающими для всей цифровой техники и современных приложений. Именно на функциях двух аргументов основаны все современные цифровые технологии и их многочисленные приложения.

Приведем развернутую таблицу булевых функций двух аргументов. Как следует из предыдущего, количество таких функций равно 16. Таблица функций и их описание приведены на рис. 1.3.

Булевы функции двух аргументов приведены на рис. 1.3. Среди них есть и функции одного аргумента. Это прежде всего константы Y0 = 0 и Y15 = 1. Кроме них, известны функции повторения Y3 = X2 и Y5 = X1, а также инверсии Y10 = \X1 и Y12 = \X2. Остальные функции нуждаются в дополнительных комментариях.

Х1

0

1

0

1

Обознач

Выраж

Наименование

Х2

0

0

1

1

Y0

0

0

0

0

Y=0

Х|X

Константа 0

Y1

0

0

0

1

X1&X2

X1X2

Конъюнкция

Y2

0

0

1

0

Х2←Х1

|X1X2

Запрет по Х1

Y3

0

0

1

1

X2

X2

Повторение Х2

Y4

0

1

0

0

Х1←Х2

X1|X2

Запрет по Х2

Y5

0

1

0

1

X1

X1

Повторение Х1

Y6

0

1

1

0

X1ѲX2

X1|X2+|X1X2

Неравнозначность

Y7

0

1

1

1

X1+X2

X1+X2

Дизъюнкция

Y8

1

0

0

0

Х1\ Х2

|X1|X2

Штрих Шеффера

Y9

1

0

0

1

Х1≈Х2

X1X2+|X1|X2

Равнозначность

Y10

1

0

1

0

│Х1

|X1

Инверсия Х1

Y11

1

0

1

1

Х2→Х1

|X1+X2

Имплик. от Х2 к Х1

Y12

1

1

0

0

│Х2

|X2

Инверсия Х2

Y13

1

1

0

1

Х1→Х2

X1+|X2

Имплик. от Х1 к Х2

Y14

1

1

1

0

X1↓X2

|X1|X2

Стрелка Пирса

Y15

1

1

1

1

Y=1

X + |X

Константа 1

Рисунок 1.3 - Булевы функции двух аргументов

Функция Y1 принимает значение 1 только в случае, когда оба аргумента равны 1. Она называется логическое умножение или конъюнкция и имеет большое прикладное значение. Ее также называют функция И.

Функция Y7 равна 1, если хотя бы один из аргументов принимает значение 1. Это логическое сложение, или дизъюнкция, а также функция ИЛИ.

Функция Y9 принимает значение 1, если оба аргумента одинаковы, или1, или 0. Это равнозначность.

Обратная равнозначности функция – неравнозначность, Y6. или исключающее ИЛИ. Функция также носит название сложение по модулю 2 и имеет большое прикладное значение в цифровых технологиях.

Очень важное значение имеют функции Y8 и Y14. Первая, штрих Шеффера, принимает значение 1 только в случае, если оба аргумента равны 0, и называется еще функцией И – НЕ; вторая, равная 0 только при обоих аргументах, равных 1, носит название стрелка Пирса, но чаще называется ИЛИ – НЕ. При проектировании ПЛИС они имеют первостепенное значение (и не только в ПЛИС: микропроцессоры, системы электронной памяти и цифрового управления в качестве базовых элементов используют триггеры, о которых будет сказано впоследствии. Они строятся на схемах И - НЕ и ИЛИ - НЕ).

Перечисленные выше функции относятся к классу симметричных: они не меняют значения при перемене значений аргументов (например, Х1&Х2 = Х2&Х1; Х1≈Х2 = Х2≈Х1 и т.д.). Четыре оставшиеся функции являются несимметричными. Рассмотрим, в частности, функцию Y2. Если Х1 равен 1, Y = 0, при Х1=0 Y повторяет значения Х2. Функция носит название запрет по Х1. Аналогично Y4 является запретом по Х2.

Функции Y11 и Y13 являются взаимообратными относительно Y4 и Y2 соответственно. Они называются импликацией и используются сравнительно редко.

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

Обратим внимание, что, если между функциями Y7 и Y8 провести горизонтальную линию, то функции, размещенные симметрично относительно нее, являются взаимно инверсными. Например, Y0 = \Y15 ; Y1 = \Y14 и т.д.

В булевой алгебре вводится понятие функционально полная система: такой набор, с помощью которого можно описать любую функцию любого числа аргументов. Доказано, что для такого набора достаточно не больше четырех функций. Наиболее распространен набор из трех функций: И, ИЛИ, НЕ. Его особенностью является прежде всего то, что он вытекает непосредственно из алгебры множеств, предшественницы алгебры логики. Алгебра, основанная на этой системе функций, называется исчислением высказываний. Она основана на системе аксиом, т.е., правил, не доказываемых в рамках этой алгебры и являющихся основой для дальнейших преобразований и доказательства теорем.

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

Таблица аксиом исчисления высказываний приведена на рис. 3. Она включает две группы аксиом, относительно логического умножения & и логического сложения +. Для упрощения записи знаки &, как в обычной алгебре, опускаются.

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

&

Наименование

+

Х1Х2 = Х2Х1

коммутативность

Х1+Х2 = Х2+Х1

Х1(Х2Х3) = (Х1Х2)Х

ассоциативность

(Х1+Х2) +Х3 = Х1+(Х2+Х3)

Х1(Х2+Х3)=Х1Х2 + Х1Х3

дистрибутивность

Х1+(Х2Х3) = (Х1+Х2)(Х1+Х3)

ХХХ……Х=Х

идемпотентность

Х+Х+Х+…..+Х=Х

//Х=Х

Х&/Х= 0

Х+/Х=1

Х&1=Х

Х+0=Х

Х&0=0

Х+1=1

/(Х1Х2) = /Х1+/Х2

Де Моргана

/(Х1+Х2) = /Х1/Х2

Рисунок 1.4 – Аксиомы булевой алгебры

Возможны и другие функционально полные системы. В частности, функции Y8 (И-НЕ) и Y14 (ИЛИ-НЕ) каждая представляют функционально полную систему, но получаемые при этом выражения намного длиннее, чем при использовании классического исчисления высказываний. Кроме того, для исчисления высказываний разработан мощный математический аппарат, используемый в ряде программных продуктов, в том числе в САПР.

Совершенные нормальные формы

Являются как доказательством возможности описания любой булевой функции, так и основанием для их упрощения.

Существуют две основных формы такого описания: совершенная дизъюнктивная нормальная форма (сокращенно СДНФ) и совершенная конъюнктивная нормальная форма, или СКНФ. Более предпочтительна СДНФ, на которой мы и остановимся.

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

Х3

Х2

Х1

Y

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

1

Рисунок 1.5. – Пример функции трех аргументов

Введем теперь определение конституента единицы. Это произведение всех аргументов, причем значению 1 аргумента в записи произведения будет сам аргумент, а значению 0 – его инверсия. Так, вторая строка таблицы с координатами 001 соответствует конституенте /Х3/Х2Х1. В соответствии с аксиомой коммутативности чаще пишут аргументы в порядке возрастания индексов, т.е. Х1/Х2/Х3.

СДНФ представляет собой дизъюнкцию всех конституент, для которых описываемая функция равна 1. В данном примере в описание входят 5 конституент, а общая запись принимает вид:

Y = Х1/Х2/Х3 + Х1Х2/Х3 + /Х1/Х2Х3 + Х1/Х2Х3 + Х1Х2Х3

Чтобы доказать равенство левой и правой частей, достаточно подставить в них все возможные точки из области определения функции. При этом используется следующее свойство конституенты: она равна 1 только для одного набора значений аргументов, называемого соответствующим. Нетрудно убедиться, что при такой записи СДНФ левая и правая части совпадают.

СКНФ булевой функции проще получить из СДНФ, используя принцип двойственности: достаточно получить СДНФ, после чего заменить умножения сложениями и наоборот. Так, для приведенной выше функции СКНФ будет иметь вид:

Y = (Х1+/Х2+/Х3)(Х1+Х2+/Х3)(/Х1+/Х2+Х3)(Х1+Х2+Х3).

Эта форма по некоторым причинам не нашла особого применения.

Попробуем провести упрощение приведенной СДНФ, используя алгебраические преобразования. Объединим первый член со вторым, а третий – с четвертым:

Y= Х1/Х3(/Х2+Х2) + /Х2Х3(/Х1+Х1) + Х1Х2Х3.

Выражения в скобках равны 1, поэтому окончательно:

Y = Х1/Х3 + /Х2Х3 + Х1Х2Х3.

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

Методы минимизации булевых функций

Для описания методов минимизации необходимо ввести понятие накрытия. Пусть заданы две функции, Y1 и Y2. При произвольном наборе аргументов обе функции принимают одно из двух значений, 0 или 1. При этом, если значения функций совпадают и равны 1, говорят, что функция Y2 накрывает своей единицей функцию Y1. Для минимизации необходимо и достаточно, чтобы единицы минимальной функции накрывали все единицы исходной. При этом допускается неоднократное накрытие некоторых единиц, что и составляет «изюминку» неалгебраических методов.

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

Геометрический метод минимизации

В основе геометрического метода лежит представление области определения булевой функции как вершин К – мерного куба. Наиболее наглядно это выглядит для К=3, т.е. для куба в классическом представлении.

Рисунок 1.6. – Разметка трехмерного куба (а) и нанесение единиц (б)

На рис. 1.6,а показана разметка трехмерного куба с координатами вершин. Дадим дополнительные объяснения модели. Каждая вершина трехмерного куба имеет три координаты, Х1, Х2 и Х3. Совокупность этих координат сопоставляется с трехбуквенным произведением, причем если аргумент в этой точке равен 1, соответствующий аргумент записывается без инверсии, если 0 – с инверсией. Так, точке А соответствует произведение /Х1/Х2/Х3; точке С – Х1Х2/Х3; точке Н - /Х1Х2Х3.

Любое ребро на кубе (а их всего 12) соединяет две смежные точки и соответствует двухбуквенному произведению, для которого две координаты неизменны. Например, ребру DH соответствует произведение /Х1Х2; ВС – Х1/Х3.

Грани на кубе (всего их 8) накрываются однобуквенными произведениями, соответствующими аргументам, не меняющимся на этой грани. Так, BFGC накрывается аргументом Х1, EHGF – Х3, HGFE – Х2.

Тогда алгоритм минимизации функции трех аргументов запишется в виде.

1. Размещаем единицы исходной функции в вершинах трехмерного куба.

2. Ищем на кубе грани с единицами во всех вершинах и накрываем их однобуквенными произведениями.

3. Среди оставшихся не накрытыми единиц ищем ребра с единицами в вершинах и накрываем их двухбуквенными произведениями.

4. Оставшиеся одиночные единицы накрываются трехбуквенными произведениями.

Применим алгоритм к приведенной в качестве примера функции. Размещаем на кубе единицы и помечаем их, как показано на рис. 1.6, б (п. 1 алгоритма). Ищем и находим грань с единицами: это ABED. Накрываем грань однобуквенным произведением Х1. Оставшуюся не накрытой единицу С объединяем с D и накрываем произведением /Х2Х3. Таким образом, окончательно Y = Х1 + /Х2Х3.

Как видим, для функции трех аргументов геометрический метод достаточно прост и эффективен. Наиболее сложным является вариант, когда для функции с 6 единицами нули размещены на главной диагонали. Таких вариантов 4. Рассмотрим один из них (см. рис. 1.6 в). Граней с единицами здесь нет, т.е. отсутствуют однобуквенные произведения. Зато существует два варианта минимизации с использованием граней. Первый соответствует набору ребер, помеченных одним штрихом, второй – двумя. Легко можно получить эти варианты:

Y1 = |X2X3 + X1X2 + |X1|X3 ;

Y2 = |X1|X2 + X1C3 + X2|X3 .

Отсюда видно, что при минимизации теряется взаимно однозначное соответствие.

Прежде, чем переходить к интерпретации геометрического метода для функций с числом аргументов больше 3, приведем алгоритм построения куба мерности К+1. Для этого изображаются два куба мерности К, после чего ребрами соединяются все их соответствующие вершины. В качестве примера на рис. 1.7 приведено построение четырехмерного куба. Несмотря на внешнюю простоту построения, трудно представить такой куб.

Рисунок 1.7.- Графическое представление четырехмерного куба

Обобщенный алгоритм минимизации функции К аргументов записывается в следующей форме.

1. На вершины К – мерного куба наносятся единицы исходной функции.

2. На К – мерном кубе ищутся кубы мерности К-1 с единичными вершинами. Они накрываются однобуквенными произведениями.

3. Среди оставшихся не накрытыми ищутся единицы, лежащие в вершинах кубов мерности К-2 и накрываются дкухбуквенными произведениями.

……………………………………………………………………………..

К+1 Одиночные единицы накрываются К – буквенными произведениями .

Геометрический метод, хотя и претендует на наглядность, трудно формализуется.

Метод Карно

Метод хорош для функций 3 и 4 аргументов. Классическим считается четырехмерный вариант. Для реализации метода строится специальная таблица – карта Карно. Она приведена на рис. 1.8, а.

Рисунок 1.8. – Карта Карно

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

Упрощенное изображение карты Карно показано на рис. 1.8, б. Здесь линиями показаны строки (столбцы), для которых соответствующие аргументы равны 1.

На карте Карно своеобразное понятие соседства. Соседними являются первая и последняя строка и первый и последний столбцы, так как таблица размещена на торе.

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

Y = /Х1Х2Х4 + Х1/Х2Х3 + Х1/Х2Х4 + Х1Х2/Х4 +/Х1/Х2Х4 +/Х2/Х3Х4

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

/Х1Х2Х4 = /Х1Х2Х4(Х3+/Х3) = /Х1Х2Х3Х4 + /Х1Х2/Х3Х4

Продолжая эту процедуру для оставшихся членов сокращенной формы, в итоге получаем СДНФ:

Y = |X1X2X3X4 + |X1X2|X3X4 + X1|X2X3X4 + X1|X2X3|X4 + X1|X2|X3X4 + X1X2X3|X4 + X1X2|X3|X4 + |X1|X2X3X4 + |X1|X2|X3X4

Размещаем теперь конституенты на карту Карно (см. рис.1.9).

Сформулируем теперь сам алгоритм.

1. Наносим единицы функции на карту Карно

2. Ищем на карте группы из 8 соседних единиц. Это или две соседние строки с единицами, или два соседних столбца. Они накрываются однобуквенными произведениями, для которых соответствующий аргумент неизменен.

3. Из оставшихся не накрытыми единиц ищем группы из четырех соседних. Это или строка, или столбец, или квадрат на торе. Они заменяются двухбуквенными произведениями.

4. Из оставшихся не накрытыми ищем группы из двух соседних единиц и накрываем их трехбуквенными произведениями.

5. Одиночные единицы накрываются четырехбуквенными произведениями.

Применим этот алгоритм к нашему примеру (см.рис. 1.9). Групп из 8 элементов не обнаруживается. Зато есть две группы из 4 элементов: abkh (соответствует произведению \Х1Х4) и khec (произведение /Х2Х4). Оставшиеся единицы накрываются трехбуквенными произведениями: fd (Х1Х3/Х4) и fg (X1X3|X4). Таким образом минимальная ДНФ имеет вид:

Y = |X1X4 + |X2X4 + X1X3|X4 + X1X3|X4.

Возможен и второй вариант минимальной ДНФ, если выбрать другой вариант двухбуквенных накрытий: cd и fg. Тогда получим:

Y = |X1X4 + |X2X4 + X1X3|X4 + Х1/Х2Х3.

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

Основное поле , обведенное жирной линией, размещается на поверхности цилиндра, на которой соседними являются первая и последняя строка. Алгоритм минимизации такой же, только пропущен п.2. В качестве примера рассмотрим ту же функцию, что и при рассмотрении геометрического метода минимизации. Размещение единиц показано на том же рисунке с теми же обозначениями. Ищем и находим группу из 4 соседних единиц: beda. Накрываем ее однобуквенным произведением Х1. Оставшуюся ненакрытой единицу с объединяем с d, что соответствует двухбуквенному произведению /Х2Х3. Итак, Y = X1 + |X2Х3, что совпадает с результатами минимизации геометрическим методом.

К сожалению, метод Карно ограничен рамками нашего восприятия. Уже для К=5 трудно представить четырехмерную поверхность и тем более отношения соседства на ней.

Метод Квайна

В отличие от предыдущих методов минимизации, метод Квайна позволяет минимизировать функции произвольного числа аргументов. Плата за это – излишняя громоздкость. С другой стороны, метод легче формализовать и следовательно автоматизировать.

Метод основан на двух процедурах: неполного склеивания и поглощения. Аксиома неполного склеивания имеет вид:

Ах + А/х = Ах + А/х +А.

Здесь под А подразумевается любое алгебраическое выражение, в том числе и произведение нескольких аргументов. Правую часть можно упростить и довести ее просто до А, но это не делается сознательно. Несмотря на кажущуюся тавтологию, аксиома имеет смысл вследствие того, что в этом случае не теряются сокращаемые члены, как в обычной алгебре. Благодаря этому возможно исследование всех вариантов сокращения с последующим выбором оптимального. Для выбора используется вторая аксиома, поглощения:

АХ +А = А

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

Наконец, на завершающем этапе минимизации строится таблица Квайна, с помощью которой делается окончательный выбор минимальной ДНФ.

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

Х4

Х3

Х2

Х1

Y

0

0

0

0

1

0

0

0

1

1

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

1

0

0

1

1

0

1

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

1

1

1

1

0

0

1

1

1

1

0

Рисунок 1.11. - Функция четырех аргументов

Запишем ее СДНФ:

Y = |X1|X2|X3|X41 + X1|X2|X3|X42 + |X1X2X3|X43 + X1X2X3|X44 + |X1|X2|X3X45 + X1|X2|X3X46 + |X1|X2X3X47 + X1|X2X3X48 .

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

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

Итак, первый член СДНФ можно склеить со вторым:

/Х1/Х2/Х3/Х4 + Х1/Х2/Х3/Х4 = А + /Х2/Х3/Х4.

Здесь А – выражение слева. Кроме того, первый член склеивается и с пятым:

/Х1/Х2/Х3/Х4 + /Х1/Х2/Х3Х4 = В + /Х1/Х2/Х3.

Продолжая ту же процедуру, проводим следующие склеивания: 2 и 6; 3 и 4; 5 и 6; 6 и 8; 7 и 8. В результате получаем:

Y = Q + |X2|X3|X49 + |X1|X2|X310 + X1|X2|X311 + Z2Z3|X412 + |X1|X2X413 + |X2|X3X414 + X1|X2X415 + |X2X3X416 .

Продолжаем склеивания в полученных сокращенных формах, помня упомянутое выше правило. При этом возможно склеивание следующих проиндексированных членов: 9 и 14, 13 и 15, 14 и 16. Получается выражение:

Y = W + |X2|X3 + |X2X4 + |X3X4.

Отметим, что на первом этапе склеиваний участвовали все члены СДНФ, а на втором не участвовали члены с номерами 10, 11 и 12. При составлении таблицы Квайна они должны учитываться.

Таблица Квайна строится следующим образом. Первый столбец содержит сокращенные формы, оставшиеся после поглощения. Первая строка перечисляет все конституенты СДНФ. Тело таблицы заполняется так: если рассматриваемая сокращенная форма входит в состав данной конституенты, на пересечении ставится значок (например, +) , если нет, делается пропуск. На рис. 10 приведена таблица для рассматриваемого примера.

1

2

3

4

5

6

7

8

|X2|X3

+

+

+

+

|X2X4

+

+

+

+

X1|X2|X3

+

+

X2X3|X4

+

+

Рисунок 1.12. – Таблица Квайна

Необходимо, чтобы минимальным набором сокращенных произведений накрывались все столбцы. Формальное правило требует, что в минимальную форму обязательно входили такие сокращенные произведения, которые содержат хотя бы один плюсик, единственный в одном из столбцов. В нашем примере это первое, второе и четвертое произведение. Третье можно исключить как избыточное. Таким образом, минимальная ДНФ имеет вид:

Y = |X2|X3 + |X2X4 + X2X3|X4

Элементы теории конечных автоматов

Теория конечных автоматов была разработана в средине ХХ века группой ученых, в состав которой входили Н.Винер, А.Тюринг, Дж. Фон Нейман и др. Созданная ими теория послужила основанием для создания всего семейства цифровой техники. ПЛИС также входят в это семейство.

Конечный автомат (КА) является частным случаем конечной динамической системы (КДС). Последняя имеет следующие отличительные признаки:

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

2. КДС имеет конечное число входов и выходов. Количество состояний по каждому входу (т.е. количество различных входных воздействий), а также количество различных выходных состояний КДС также конечно.

3. Реакция КДС на входные воздействия также конечна, т.е. длится конечное число тактов.

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

КА можно считать простейшим вариантом КДС по крайней мере по одному показателю: его динамические свойства распространяются только на два соседних такта. Один из них называется настоящее (Н), второй – прошлое (П).

Различают два типа КА. Первый тип обладает следующим свойством: его текущее состояние (т.е. в такт Н) зависит от предыдущего состояния и воздействия на него в настоящее время. Такой КА называется автоматом типа П – Н, или автоматом Мура. Второй тип зависит также от предыдущего состояния, но от воздействия в предыдущий такт. Это – автоматы типа П – П, или автоматы Мили.

Способы задания конечных автоматов

Существует три основных способа описания (задания) КА. Первый, табличный, является основным. Таблица КА – это прямоугольная таблица размером N*M, где N – количество выходных состояний, а М – количество входных состояний. Пример таблицы приведен на рис. 1.13. Здесь через YI обозначены выходные состояния КА, через XJ- входные воздействия.

X1

X2

X3

X4

X5

Y1

Y2

Y4

Y1

Y4

Y1

Y2

Y1

Y1

Y2

Y3

Y3

Y3

Y2

Y3

Y4

Y1

Y2

Y4

Y1

Y1

Y4

Y2

Y4

Рисунок 1.13. – Пример таблицы конечного автомата

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

Второй тип описания – диаграммы состояния, или диаграммы переходов. Это направленные графы, в которых число вершин равно числу выходных состояний, а направленные дуги соответствуют переходам КА при соответствующем входном воздействии. Воздействия надписываются над дугами, причем для КА типа П –П надписи делаются в началах дуг, а П – Н в концах, Так как граф получается громоздким, допускается кратные дуги заменять одной с записью входного воздействия в виде суммы. Пример диаграммы состояний приведем из таблицы по рис 1.14. Диаграмма приведена в предположении, что автомат – типа П – Н.

Рисунок 1.13 – Диаграмма состояний конечного автомата

Третий вариант задания КА – перечислением триад – совокупностей троек значений YP-1 XP YP, т.е. предыдущего состояния, воздействия и конечного состояния. Это – для автомата типа П – Н; для автомата П – П в триаду включается ХР-1.

Этот метод используется редко из – за громоздкости, но применяется в задачах синтеза.

Синтез конечных автоматов

Используется разработчиками для разработки и реализации КА по формальному описанию его работы. Такое описание называется лента работы. Это полубесконечная таблица из двух строк: в первой записываются значения ХI , во второй – YJ. По имеющейся записи на ленте осуществляется заполнение таблицы КА, причем способ просмотра ленты зависит от типа КА. Для автоматов типа П – П и П – Н считывание проводится по форме, показанной на рис. 1.14, что соответствует принципам их работы.

Синтез осуществляется следующим образом. Составляется шаблон таблицы, исходя из списка на ленте и производится заполнение таблицы, начиная с левой ее части. Выбираем автомат типа П – П. Пара X4Y2 имеет результат Y3. Заполняем соответствующий элемент в таблице и смещаем шаблон вправо на шаг. Результат, Y1 также заносим в таблицу. Продолжая заполнение таблицы аналогичным образом, доходим до противоречия: пара X2Y1 по ленте должна давать Y1, но это место в таблице занято элементом Y2. Здесь возможны два решения: или считать КА нереализуемым, или переопределить состояние на ленте. Выберем второй вариант: заменим элемент на ленте табличным вариантом и продолжим просмотр. В результате после просмотра выделенного фрагмента ленты таблица принимает вид, показанный на рис. 1.15. Она заполнена не до конца, поэтому нужно или продолжать просмотр, или считать незаполненные ячейки недопустимыми состояниями.

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

Триггеры как конечные автоматы

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

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

Рассмотрим простейший тип Т – асинхронные RS – триггеры. Асинхронными они называются вследствие того, что срабатывают сразу при поступлении управляющего сигнала. Они имеют два управляющих входа: S (от слова set – включить) и R (от слова reset – выключить). Любой триггер имеет два устойчивых состояния: 0 или 1. Обычно Т имеет два взаимно инверсных выхода, Q (от слова quit – выход) и |Q.

В дальнейшем будем рассматривать Т, реализованные на элементах И – НЕ и ИЛИ – НЕ. Схема RS – триггера на элементах ИЛИ – НЕ приведена на рис. 1.16. Использованы два элемента 2ИЛИ – НЕ, D1 и D2. Они, как видно из рисунка, охвачены перекрестной ПОС: выход D1 присоединен ко второму входу D2, а выход D2 – ко второму входу D1.

Рисунок 1.16. – Схема RS – триггера

Рисунок 1.17. - Временные диаграммы

На рис. 1.17 приведены временные диаграммы работы триггера. Предположим, вначале триггер находится в состоянии 0: на выходе D2 ноль, на выходе D1- единица. Благодаря тому, что единица с выхода D1 поступает на вход D2, состояние D2 подтверждается, и триггер сохраняет свое состояние.

Если в момент времени t1 на входе S (вход D1) появится единица, элемент D1 переключается в 0, а за счет ПОС с выхода D1 на вход D2 это переключение происходит очень быстро. Повторная подача 1 на вход S (момент времени t1 на временной диаграмме) состояние триггера не меняет. Он будет в единице до поступления управляющего воздействия на S – вход (момент t2 на временной диаграмме). В это время он устанавливается в 0. Дальнейшая часть диаграммы просто повторяет процесс работы триггера.

Обязательным условием устойчивой работы RS – триггера является недопустимость одновременной подачи единиц на оба входа. Такая ситуация называется коллизия и приводит к неопределенному состоянию триггера. Для устранения коллизий иногда используют триггеры с преобладанием или по R, или по S – входу, но такой вариант используется редко.

Второй тип RS – триггеров – использование элементов И – НЕ. Схема такого триггера приведена на рис.1.18. В отличие от предыдущего варианта, триггер имеет инверсные входы, т.е. управляется нулями. Здесь запрещенной является одновременная подача нулей на оба входа.

Опишем RS – триггер как конечный автомат. Таблица состояний такого КА будет иметь вид, показанный на рис.1.19. При нулях на входах триггер сохраняет предыдущее состояние, при подаче управляющих воздействий на один из входов он безусловно переключается, а одновременная подача единиц запрещена.

Рисунок 1.19. – Таблица состояний

Диаграмма состояний RS – триггера приведена на рис. 1.20. Из нее видно, во – первых, что триггер относится к КА типа П – Н (надписи - у концов дуг), а во – вторых, что повторная подача управляющего воздействия не изменяет состояния триггера (петли на графе).

Рисунок 1.20. – Диаграмма состояний

На практике Т часто используются для формирования коротких фронтов импульсов: используется эффект ПОС. Еще одно важное применение Т – устранение «дребезга» контактов. При механическом замыкании или размыкании контактов при наличии напряжения возникают микроэлектрические дуги. Они и называются дребезгом. При маломощной коммутации особого вреда может не наблюдаться, но для работы подключенного к ним оборудования это недопустимо. Для устранения этого эффекта используют свойство триггера не реагировать на повторное управление. Схема такого подключения приведена на рис.1.21.

Рисунок 1.20. - Устранение дребезга

Еще один вариант RS – триггеров – введение в них синхронизации. Схема синхронизируемого RS – триггера приведена на рис. 1.22. Схема выполнена на трехвходовых элементах 3И - НЕ. При этом добавляется вход синхронизации С, дающий тот эффект, что переключение триггера возможно только при подаче 0 на вход С импульса синхронизации. Описание Т как конечного автомата не изменяется, только вместо входов R и S появляются входы CR и CS.

Рисунок 1.22. - Синхронизация триггера

Другая разновидность Т – JK – триггеры. В отличие от триггеров RS, они не имеют запрета на одновременную подачу управляющих воздействий на оба входа. При таком воздействии JK – триггеры переходят в противоположное состояние, что позволяет использовать их в новом качестве.

Таблица состояний JK – триггера показана на рис. 1.23. В отличие от RS, изменился последний элемент нижней строки. На диаграмме состояний (см. рис. 1.24) при неизменном внешнем виде изменились надписи над двумя дугами.

Рисунок 1.23. – Таблица состояний

Рисунок 1.24. – Диаграмма состояний

Несмотря на кажущуюся легкость в описании, реализация JK – триггера значительно сложнее, чем RS. На рис. 1.25 приведена схема синхронизируемого JK – триггера с дополнительными установочными входами.

Рисунок 1.25. – Схема синхронизируемого JK – триггера

По структуре триггер двухтактный. Он фактически состоит из двух триггеров: первого на элементах D1и D2 и второго, на элементах D4 и D5. Вход синхронизации С подается через инвертор D3 на вторую часть схемы, что и обеспечивает двухтактность (второй триггер срабатывает по противоположному фронту управляющего импульса). Наличие обратных связей с выхода D5 на вход D1 и с выхода D4 на вход D2 обеспечивает главное отличие триггера, а именно его переход в противоположное состояние при одновременной подаче единиц на входы J и K. Управляющие воздействия S и R на дополнительные входы второго триггера обеспечивают его безусловную установку.

На рис 24,б показано изображение JK – триггера на принципиальных схемах.

Триггеры такого типа используются редко ввиду своей громоздкости. Обычно идут на пути уменьшения количества входов (оставляют один установочный вход, чаще R) или переходят на более практичные D – триггеры.

D – триггер, или триггер задержки, обычно имеет четыре входа: D, C, S и R. Последние являются установочными и необязательными. Сущность работы D – триггера состоит в том, что он переключается по входу С (точнее, по переднему или заднему фронту управляющего импульса на этом входе) и переходит в состояние, которое в этот момент присутствует на входе D. В этом и состоит сущность задержки.

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

Практические приложения ПЛИС

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

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

Эти недостатки серьезно снижают возможности систем с быстрой тактностью или требуют дополнительных мероприятий по компенсации нежелательных явлений.

Системы с медленной тактностью основаны прежде всего на внешней синхронизации. Это намного снижает риск коллизий и зависимость от внешних условий.

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

Комбинационные схемы

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

Двоичные шифраторы предназначены для преобразования позиционного кода в двоичный. Позиционный код – это множество из N входов, на каждом из которых может быть 0 или 1. Количество разрядов двоичного кода К определяется по формуле: К ≥ log2 N.

Предположим, N = 12. Тогда К = 4. Составляем таблицу номеров позиционного кода и эквивалентных им двоичных кодов (рис. 27).

23

22

21

20

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

10

1

0

1

0

11

1

0

1

1

12

1

1

0

0

Рисунок 1.27. – Таблица кодов

Чтобы получить двоичный шифратор, в данном случае необходимо иметь К схем ИЛИ (в данном случае 4) с числом входов у каждой, равным количеству 1 в соответствующем столбце. В данном случае в первом и втором столбцах по 5 единиц, а в третьем и четвертом – по 6,следовательно, необходимы две 5 – входовых и две 6 – входовых схемы ИЛИ. Схема шифратора примет вид, приведенный на рис. 1.28.

Рисунок 1.28. – Шифратор на 12 входов

При этом может возникнуть сложность, связанная с тем, что таких схем может не быть; тогда они могут синтезироваться из схем с меньшим числом входов. Например, схема ИЛИ на 6 входов при наличии только двухвходовок примет .

Рисунок 1.29.- Схема 6 ИЛИ

вид, изображенный на рис. 1.29.

Дешифраторы выполняют функцию, противоположную шифраторам. Они имеют К входов двоичного кода и N выходов позиционного и реализуются на К – входовых схемах И. Количество схем И равно количеству выходов. Дополнительно в них вводятся К инверторов Схема дешифратора кода из предыдущего примера, т.е. (4,12) приведена на рис. 1.30. Для упрощения изображения на входе рисуется жгут. Поясним принцип работы дешифратора по схеме. Он содержит 12 четырехвходовых схем И D1,…D12 и 4 инвертора D12….D16. Логика работы следующая. Допустим, D1 настроен на единицу. Двоичный код единицы 0001. Для того, чтобы сработала схема D1, нужно , чтобы на всех ее входах были единицы. Поэтому младший разряд на вход D1 подключается непосредственно, а старшие – через инверторы. Соответственно и маркировка выходов из жгута: 1.2.3.8. Код цифры 9 – 1001, поэтому маркировка выходов 5,2,3,8.

Рисунок 30. – Дешифратор

Для реализации многовходовых схем И используется или параллельное, или каскадное включение. Здесь также возможны варианты. Например, для создания 6 – входовой схемы И из двухвходовок можно применить параллельное включение, как это показано на рис. 31, в можно и каскадное, по типу рис. 32. Последний вариант удобнее для программирования.

Рисунок 1.31. – Схема 6И

Рисунок 1.32 – Схема 6И, каскадная

Возможности конструирования логических устройств еще больше увеличиваются при использовании схем типа И – НЕ и ИЛИ – НЕ. При этом широко используются аксиомы Де Моргана: |(X1 + X2) = |X1&|X2 и |(X1&X2) = |X1 +|X2. На практике это называется инверсная логика: функция И преобразуется в ИЛИ и наоборот. Например, функцию 7И можно реализовать по типу рис.1.33, а функцию 6ИЛИ – по варианту рис. 1.34. Отметим, что это – не лучшие варианты реализации. Вентили D4 и D8 на рис.1.33 и D7 на рис. 1.34 выполняют функции инверторов и показаны здесь для иллюстрации возможностей схем.

Рисунок 1.33. - Схема 7И, вариант 1

Рисунок 1.34. - Схема 7И, вариант 2

В заключение этого раздела приведем пример реализации ДНФ из ранее приведенного примера раздела «минимизация методом Квайна». Имеем функцию вида:

Y = |X2|X3 + |X2X4 + X2X3|X4 .

Так как осталось для реализации 3 аргумента, устройство имеет три входа и один выход. Схема для его реализации приведена на рис. 1.35. Она содержит 3 инвертора D1, D2 и D3, схемы D4 – D6, реализующие умножения. и D7 для сложения.

Рисунок 1.35. - Пример реализации ДНФ

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

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

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

Устройства с использованием триггеров

В принципе эта тема достаточно обширна и может рассматриваться в специальных дисциплинах по схемотехнике. Здесь приводится остаточно компактный набор типичных схем, которые впоследствии могут реализовываться на ПЛИС.

Элементы задержки

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

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

Более целесообразна тактируемая задержка. Она реализуется последовательно включенной цепочкой D – триггеров, как показано на рис. 1.36. Количество триггеров S определяет время задержки ТЗ = ST, где Т – период следования тактовых импульсов.

Рисунок 1.36. – Схема задержки на S тактов

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

Регистры

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

Обычно принято выделять последовательные и параллельные регистры. Они отличаются методами занесения, хранения и выдачи кодов. Возможны универсальные, последовательно – параллельные регистры.

Аппаратная реализация регистров может быть различной, включая из физическую природу. Мы основной упор сделаем на D – триггерах, поскольку они наиболее благоприятны для ПЛИС.

Универсальный последовательно – параллельный регистр на 4 разряда изображен на рис. 1.37. Регистр состоит из 4 D – триггеров D1 – D4. Вход первого триггера (Вх 1) может служить для ввода последовательного кода. Для этого одновременно с кодом на управляющий вход подаются 4 продвигающих импульса. Требование к ним: они должны подаваться с частотой импульсов последовательного кода, причем желательно, чтобы фронты продвигающих импульсов приходились на средины импульсов входного кода. Это позволит снизить зависимость от дрожания фронтов.

Перед началом работы регистра его нужно очистить, т.е. привести все триггеры в 0, для чего на все их входы R подается импульс «Сброс».

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

Рисунок 1.37. – Универсальный регистр

Если Вх 1 не задействовать, а подавать параллельный код на входы безусловной установки S, то регистр просто сохранит эту информацию. При этом она может быть считана в любое время, т.е. асинхронно по вых 2 или считается в последовательном коде с Вых 2. При этом регистр очищается. Это и есть преобразование параллельного кода в последовательный.

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

При использовании ПЛИС легко можно увеличить емкость такого регистра до любого нужного числа разрядов.

На электрических схемах регистры часто изображаются в виде, приведенном на рис. 1.39. В особых комментариях это изображение не нуждается.

Рисунок 1.38. - Параллельный регистр

Рисунок 1. 39 - Изображение регистра

Счетчики

Среди множества различных типов счетчиков рассмотрим простейший – счетчик двоичного кода на D – триггерах. Схема четырехразрядного двоичного счетчика приведена на рис. 1.40. D –триггеры D1…. D4 работают в счетном режиме за счет обратных связей на D – входы. Триггеры включены последовательно, в результате чего каждый последующий триггер образует как бы старший разряд относительно предыдущего. Общая шина «Сброс» заводится на все R - входы триггеров. Счетчик легко можно синтезировать на любое число разрядов.

Рисунок 1.40. - Четырехразрядный двоичный счетчик

На рис. 1.41 показано изображение счетчика на принципиальных схемах.

Рисунок 1.41. – Изображение счетчика

Распределители импульсов

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

Возможны два варианта реализации распределителей: на D – триггерах и на счетчиках с дешифраторами. Первый вариант, на D – триггерах, приведен на рис. 1.42. Триггеры D1 – D3 образуют последовательную сдвиговую цепочку, а элементы D4 и D5 реализуют обратную связь для автоматического продолжения работы. При подаче импульса «Запуск» единица последовательно перемещается по цепочке триггеров. Когда единица проходит последний триггер, на выходе D4 появляется 1, повторно запускающая схему. Обязательное условие при этом – ограничение на длительность запускающих импульсов. Если она превышает период тактовой частоты. Выходные импульсы распределителя взаимно перекрываются.

Рисунок 1.42. - Распределитель импульсов на D - триггерах

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

Рисунок 1.43. - Распределитель, 2 вар.

Генераторы псевдослучайных последовательностей

Генераторы псевдослучайных последовательностей (далее ПСП) являются очень важной составляющей инженерной практики. Они используются в множестве практических приложений, в том числе при испытании новой техники, моделировании внешних воздействий, отказов элементов и т.д.

Генераторы ПСП объективно сравниваются по следующим характеристикам.

1. Период повторения ТП. Как правило, после некоторого цикла работы выходные коды генератора повторяются. Чем длиннее период, тем качественнее генератор. Если генератор вырабатывает кодовые последовательности размером в R разрядов, максимальный период повторения составляет 2Rслов.

2. Равномерное распределение значений в выделенном диапазоне. Чаще всего это диапазон от 0 до 1; в противном случае его нормируют.

3. Соседние члены ПСП не должны быть связанными друг с другом. Это выражается в том, что корреляционная функция ПСП должна быть близкой к δ - функции, а ее спектральная плотность должна быть равномерной в достаточно большом диапазоне.

На рис. 1.44 приведен классификатор шумовых последовательностей

Рисунок 1.44. - Классификатор шумовых последовательностей

Как видно из классификатора, существует два типа генераторов. Первая группа, собственно генераторы шума, используют естественные источники и не применимы для ПЛИС. Остановимся более подробно на второй составляющей классификатора. Среди множества линейных генераторов ПСП наиболее применимы генераторы последней группы.

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

1. Выбираются два числа, А и В. Числа должны быть взаимно простыми, т.е. не иметь общих сомножителей. Производится деление А на В с получением частного С.

2. Выбирается часть частного и делится на В.

Далее процедура 2 повторяется до получения результата, совпадающего с первым частным. Очевидно, что следующие деления приведут к повторению последовательности.

Недостатком этого метода является трудность подбора делимого и делителя, так как от этого зависит период повторения. Кроме того, сама операция деления достаточно продолжительная, что ограничивает производительность генератора.

Модификация этого метода - целочисленное деление в кольце по модулю 2. При этом используется деление полубесконечного кода 1000000... на образующий полином []. Процедура и схемотехника деления будут показаны в разделе "корректирующие коды". В данном разделе отметим следующие особенности метода.

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

б) Желательно производить поиск для полиномов нечетных степеней, так как при нечетных степенях количество неприводимых полиномов больше.

в) Следует учитывать один недостаток метода: если текущий остаток начинается с 0, следующий определится обычным сдвигом кода на разряд влево, т.е. неслучаен. То же наблюдается для двух и более 0 в начале остатка. Это влияет на корреляционную функцию потока случайных кодов.

Для автоматизации поиска неприводимых полиномов следует использовать следующие особенности неприводимых полиномов.

1. Код неприводимого полинома степени s начинается и оканчивается 1. Это сокращает время поиска, так как количество претендентов снижается вчетверо.

2. Неприводимый полином является нерегулярным и несимметричным. Например, коды типа 10000...1 или 10101...01 можно не рассматривать при поиске.

3. Если некоторый полином оказался неприводимым, то неприводим и полином с инверсией его разрядов. Простой пример: полином 1011 неприводим; тогда и полином 1101 также неприводим

Алгоритм поиска неприводимых полиномов выглядит достаточно просто. Из множества претендентов на неприводимость составляется список претендентов с учетом предыдущих ограничений. Выбирается первый элемент из списка, после чего проводится деление на него кода 10000000... с вычислением количества полученных остатков. Если оно составляет для полинома степени S значение 2S- 1, полином неприводим, как и его зеркальное отображение. После этого проверяется следующий претендент из списка. Отметим, что при возрастании S количество неприводимых полиномов возрастает в показательной зависимости, причем для четной и нечетной степеней показатели различны.

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

1. Пусть задано некоторое множество неприводимых полиномов степени S. Произведение двух и более таких полиномов может быть взято за основу генератора ПСП. Пусть полученный при этом полином степени 2S приводим, в качестве генератора ПСП он будет иметь более высокие характеристики, чем исходный.

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

3. Основной признак окончания ПСП - появление не его выходе кода 1000000.... Дальше коды ПСП повторяются. Поэтому в любом случае появление такого кода на выходе автоматически должно приводить к изменению режима работы генератора одним из описанных выше способов.

3 Лабораторный практикум на базе ПЛИС XC9572XL

3.1. Описание стенда

Микросхема XC9572XL была выбрана из-за ряда преимуществ, таких как:

1) ПЛИС с архитектурой CPLD;

2) самое большое количество циклов запись/стирание (не менее 10 тыс.);

3) доступность и относительная дешевизна;

4) большой срок хранения конфигурации;

5) поддержка JTAG;

6) простота программирования;

7) бесплатное программное обеспечение для разработок;

8) наличие большой библиотеки элементов.

Микросхема XC9572XL – высокопроизводительная ПЛИС семейства XC9500XL, емкостью 1600 логических вентилей и минимальной задержкой распространения сигнала контакт – контакт (5 нс). Состоит из четырех 54V18 функциональных блоков. [7] На рис. 3.1 изображена структурная схема стенда.

Рисунок 3.1 – Структурная схема стенда

На рис.3.2 изображен внешний вид стенда

Рисунок 3.2 - Внешний вид стенда

Здесь (дальше описание всех элементов стенда)

3.2. Принципиальная схема платы ПЛИС

На рисунке 3.3 изображена принципиальная схема ПЛИС.

Рисунок 3.3 – Принципиальная схема ПЛИС

Плата ПЛИС состоит из:

-Микросхемы ПЛИС (D1);

- Кварцевого генератора на 50 МГц (D2, L1, C1);

- Светодиодного индикатора подачи напряжения на плату (VD1, R1);

- Преобразователя напряжения (C2,C3,C4,C5,D3);

- Пользовательских разъемов (Х1, Х2, Х3, Х4).

3.2. Принципиальная схема стенда

На рисунке 3.4 изображена принципиальная схема стенда

Рисунок 3.4. – Принципиальная схема стенда

Плата учебного стенда имеет в своем составе разъемы:

- X1 – для подключения к компьютеру;

- X2 – для подключения к плате ПЛИС (разъем программирования);

- X3, X4 – пользовательские разъемы.

Также на плате расположены:

- Программатор, состоящий из блока X1, резисторов R1 - R14, диодов VD1, VD2, конденсаторов C1 – C5, блока X2, D1,D2;

- Четырехсимвольный семисегментный индикатор (VT1, VT2,VT3, VT4);

- Блок светодиодов (VD3, VD4, VD5, VD6, VD7, VD8, VD9, VD10);

- Блок переключателей (SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8);

- Блок кнопок (BTN1, BTN2, BTN3, BTN4, BTN5, BTN6).

3.3. Составляющие элементы стенда

Светодиоды

Восемь отдельных светодиодов подключены к выходам ПЛИС (LD1- P27, LD2- P28, LD3- P29, LD4- P30, LD5- P31, LD6- P32, LD7- P33, LD8- P34.

На рис. 3.5 изображена схема подключения светодиодов.

Рисунок 3.5. – Схема подключения светодиодов

Кнопки

Пять кнопок подключены к выходам ПЛИС (BTN1- P44, BTN2- P43, BTN3- P42, BTN4- P40, BTN5- P41,). Кнопки присоединены к VCC3.3 через резистор 47кОм. Когда кнопка нажата, ее контакты подключаются к «земле» через резистор 4.7кОм. На делителе напряжения 47кОм - 4.7кОм (1/10 от VCC3.3) возникает сигнал логического нуля и держится все время пока кнопка нажата. Подавление дребезга обеспечивают RC - фильтр и триггер Шмитта D1. Эта схема создает высокий логический сигнал, когда кнопка нажата.

На рис. 3.6 изображена схема подключения кнопок.

Рисунок 3.6. – Схема подключения кнопок

Переключатель

Восемь переключателей подключены к выходам ПЛИС (SW1- P19, SW2- P18, SW3- P16, SW4- P14, SW5- P36, SW6- P37, SW7- P38, SW8-P39). Переключатели используют 4.7 кОм резистор для токовой защиты входов ПЛИС.

На рис.3.7 изображена схема подключения переключателей.

Рисунок 3.7. – Схема подключения переключателей

Светодиодный дисплей

Семисегментный светодиодный дисплей подключен к выходам ПЛИС (a- P13, b- P22, c- P23, d- P5, e- P12, f- P8, g- P6, dp-P7, A1- P20, A2- P21, A3- P3, A4- P2).

Катоды всех 32 сегментов (см. рис. 3.8) на дисплее собраны в 8 групп (СА, СВ, СС, CD, CE, CF, CG, DP). Аноды всех 32 сегментов на дисплее собраны в 4 группы.

.

Рисунок 3.8. – Схема подключения светодиодного дисплея

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

Лабораторная работа №1

Изучение системы проектирования Xilinx ISE Design Suite 14.4.

1. Создание нового проекта.

1.1.Для запуска программы находим на рабочем столе ISE Design Suite 14.4.

На рис. 3.9 изображен ярлык программыISEDesignSuite 14.4.

Рисунок 3.9 -Ярлык программы ISE Design Suite 14.4.

1.2.В верхнем левом углу панели управления программы (см. рис. 3.10) выберите: Project Setting Project.

.

Рисунок 3.10. - Панель NewProject

1.3. На экране появится окно для указания места \

На рис. 3.11 изображена панель Create New Project.


Рисунок 3.11 - Панель Create New Project

1.Введите имя проекта: Name

2. Укажите место расположения: Location

3.Выберите основной тип проекта:Schematic

4.Затем нажмите:Next

1.4.Окно настройки проекта: Project Setting

На рис. 3.12 изображено окно Project Setting

Рисунок 3.12 - Окно Project Setting

1.В строке (Family) выберите семейство ПЛИС:XC9500XLCPLDs.

2.В строке (Device) выберите ПЛИС Данного устройства:XC957XL.

3.Укажите (VQ44) комплектацию XC957XL (ПЛИС).

4.Выберите (Speed) скорость работы.

5. Выберите (PreferredLanguage) подходящий язык перевода вашей схемы.

6. Нажмите (Next).

2. Работа с проектом

Описание созданного проекта: Project Summary

На рис. 3.13 изображена панель Project Summary

Рисунок 3.13. - Окно Project Summary

Для завершения создания проекта нажмите :Finish

Выберите на панели управления :NewSource

На рис. 3.13 изображено окно New Source

Рисунок 3.13 - Окно New Source

На рис. 3.14 изображено окно Select Source Type

Рисунок 3.14 - Окно Select Source Type

В данном окне выберите основной тип создания проекта «Schematic» затем «File Name» после чего нажните «Next→Finish».

3. Работа со схемами.

3.1 Панель управления

На рис.3.15 изображена панель управления

Рисунок 3.15 - Панель управления

Здесь обозначено:

1-Добавить проводник.

2-Изменение имени компонентов схемы.

3-Добавление шин.

4-Задание выходов(входов).

5-Выбор элементов. 6-Выбор размера рабочей области.

3.2 Выбор элементов

Для выбора элемента в панели инструментов нажмите на значок «Add Symbol». Элементы расположены по категориям. Выберите элемент и переместите курсор в рабочую область. Затем в нужном вам месте двойным нажатием левой кнопки мыши поставьте элемент

На рис.3.16 изображена панель выбора элементов.

Рисунок 3.16 - Панель выбора элементов

На рис. 3.17 приведен пример выбранного элемента and2.

Рисунок 3/17/ - Пример выбора элемента

Для того, чтобы соединить элементы в панели инструментов, нажмите «AddWire» затем соедините необходимые вам элементы.

На рис. 3.18 изображен пример схемы.

Рисунок 3.18 - Пример схемы

Затем, используя «AddI/OMarker», задайте для вашей схемы входы и выходы.

На рис.3.19 изображен пример использования AddI/OMarker

Рисунок 3.19. - Пример AddI/OMarker

1.Функция «AddName» используется для определения названий цепей и шин.

2. Строка определения имени.

Конфигурация входов (выходов).

На рисунке 3.20 приведен пример конфигурации входов.

Для того, чтобы связать схему с устройством, необходимо соотнести ее входы (выходы) с входами (выходами) ПЛИС. Это делается следующим образом.

1. Выберите вход (выход) вашей схемы; двойным нажатием вызывается окно «Object Properties-Net Attributes».

2. В разделе «Nets» выбираем нужный вход (выход).

3. В правом верхнем углу окна нажимаем «New».

4. В строке «Attribute value» задаем нужный вход (выход). ( Название входов и выходов начинается с английской буквы «Р», что означает Pin (вывод), далее идет его номер).

5. Нажимаем «Ok».

Рисунок 3.20 - Конфигурация входов.

Перенос схемы на устройство

На рисунке 3.21 изображен перенос схемы на устройство. Для этого нужно выполнить следующие действия.

1. В левом нижнем углу программы нажимаем «Design»

2., 3. Двумя нажатиями левой кнопки мыши выберите «ImplementDesign» старт проверки схем.

4. «Synthesize-XSI» программа осуществляет синтез вашей схемы.

5. «Translate» эта операция переводит созданный проект (схему) на язык VHDL.

6. «Fit» определение ресурсов, занятых вашей схемой на ПЛИС(XC9572XL).

7. «GenerateProgramming» - генерация файла проекта.

8. Двойным щелчком запустите «Manage Configuration Project (IMPACKT)» - средство переноса программного кода ПЛИС.

Рисунок 3.21 - Перенос схемы на устройство

6. Перенос программного кода на ПЛИС.

На рисунке 3.22 изображен перенос программного кода.

Рисунок 3.22 - Перенос программного кода

1. Программа переноса кода «ISEIMPACT».

2. Двойным щелчком выберите«Boundary Scan».

3. Выберете «InitializeChain» - инициализацию цепи.

4. Определение файла с вашим проектом.

5. Нажмите «Ok».

На рисунке 3. 23 изображено окно выбора схемы

Рисунок 3.23 - Выбор схемы

1. Двойным нажатием откройте «Assign New Configuration File».

2. Найдите свою схему.

3. Нажмите «Открыть».

На рисунке 3.24 изображено окно программирования.

Рисунок 3.24 - Программирование

Проделайте все пункты программирования для заданного вам варианта схемы.

Лабораторная работа №2

Элементы стандартной логики

Цель работы: ознакомление с элементами стандартной логики. ИзучитьэлементыAND2, AND3, AND3B1, NAND2, OR2, NOR2, NOR3, XOR2, XOR4, INV.

Общие указания

1. Элемент AND2. Назначение выводов: I0, I1-входы, О-выход. Выполняемая функция О=I0&I1. Таблица истинности элемента AND2 приведена в таблице 1.

Таблица 1- таблица истинности элемента AND2

Входы

Выход

I0

I1

O

0

X

0

X

0

0

1

1

1

2. Элемент AND3.Назначение выводов: I0, I1, I2-входы, О-выход. Выполняемая функция О=I0&I1&I2.Таблица истинности элемента AND3приведена в таблице 2.

Таблица 2- таблица истинности элемента AND3

Входы

Выход

I0

I1

I2

O

0

X

X

0

X

0

X

0

X

X

0

0

1

1

1

1

3. Элемент AND3B1.Назначение выводов: I0, I1, I2-входы, О-выход. Выполняемая функция О=~I0&I1&I2. Таблица истинности элемента AND3B1 приведена в таблице 3.

Таблица 3-таблица истинности элемента AND3B1

Входы

Выход

I0

I1

I2

O

1

X

X

0

X

0

X

0

X

X

0

0

0

1

1

1

4. Элемент NAND2. Назначение выводов: I0, I1- входы, О- выход. Выполняемая функция О=~(I0&I1).таблица истинности элемента NAND2 приведена в таблице 4.

Таблица 4-таблица истинности элемента NAND2

Входы

Выход

I0

I1

O

0

X

1

X

0

1

1

1

0

5. Элемент OR2. Назначение выводов: I0, I1-входы, О-выход. Выполняемая функция О=I0│I1. Таблица истинности элемента OR2 приведена в таблице 5.

Таблица 5- таблица истинности элемента OR2

Входы

Выход

I0

I1

O

1

X

1

X

1

1

0

0

0

6. Элемент NOR2.Назначение выводов: I0, I1-входы, О-выход. Выполняемая функция О=~(I0│I1). Таблица истинности элемента NOR2 приведена в таблицу 6.

Таблица 6- таблица истинности элемента NOR2

Входы

Выход

I0

I1

O

1

X

0

X

1

0

0

0

1

7. Элемент NOR3. Назначение выводов: I0, I1,I2-входы, О-выход. Выполняемая функция О=~(I0│I1│I2). Таблица истинностиэлемента NOR3 приведена в таблице 7.

Таблица 7- таблица истинностиэлемента NOR3

Входы

Выход

I0

I1

I2

O

1

X

X

0

X

1

X

0

X

X

1

0

0

0

0

1

8. Элемент XOR2. Назначение выводов: I0, I1,-входы, О-выход. Выполняемая функция О=I0^I1. Таблица истинности элемента ХOR2 приведена в таблице 8.

Таблица 8- таблица истинности элемента ХOR2

Входы

Выход

I0

I1

О

0

0

0

1

0

1

0

1

1

1

1

0

9. Элемент XOR4. Назначение выводов: I0, I1,I2, I3 -входы, О-выход. Выполняемая функция О=I0^I1^I2^I3.Таблица истинности элемента XOR4 может быть получена из предыдущих материалов.

Содержание отчета

Отчет по каждой работе должен содержать: название работы, ее цель, результаты, схемы и вывод по работе.

Лабораторная работа №3

Комбинационная схема

Цель: Изучение способов комбинирования логических элементов в схемы.

Приборы: Стенд на основе ПЛИС XC9572XL, программа XilinxISEDesignSuite14.4

Общие указания:

1. При нажатии кнопки BTN3 происходит зажигание светодиодов LD8-LD1 в соответствии с положением переключателей SW8-SW1 соответственно.

На рисунке 32 изображен первый вариант комбинационной схемы для исследования

Рисунок 3.25. - Схема 1

2. При нажатии кнопки BTN5 светодиоды LD8-LD5 загораются в соответствии с инвертирующими значениями переключателей SW8-SW5 соответственно. Светодиоды LD4-LD1 загораются в соответствии с положением переключателей SW4-SW1.

На рисунке 3.26 изображен второй вариант исследований (см. рис. 3.26)

Рисунок 3.26 - Схема 2

3. При нажатии BTN1 загорание светодиодов LD8-LD5 происходит в соответствии с переключателями SW8-SW5, а загорание светодиодов LD4-LD1 происходит в соответствии с инвертирующим значением переключателей SW4-SW1.

На рисунке 3.27 изображена схема 3

Рисунок 3.27-Схема 3

4. Принажатии кнопки BTN4 или BTN2 загорание всех светодиодов происходит в соответствии с инвертированными значениями соответствующих переключателей.

На рисунке 3.28 изображена схема 4

Рисунок 3.28 - Схема 4

Содержание ответа: Отчет по каждой работе должен содержать: название работы, ее цель, результаты, схемы и вывод по работе.

Лабораторная работа №4

Конечно – автоматные структуры

Цель: Ознакомление с программированием и использованием триггеров. Изучение элементов: FD, LD, FDCP, FTC, CB4CE, CD4CE, COMP4, D2_4E, D3_8E, D4_E16, M2_1, M4_1E.

Общие указания:

1. FD- D триггер. Назначение выводов:D - информационный вход; D. С - вход синхронизации; Q – выход. Таблица истинности элемента FD приведена в таблице 1

Таблица 1- Таблица истинности элемента FD

Вход С

Вход D

Выход Q

Режим Работы

/

0

0

Загрузка 0 (сброс)

/

1

1

Загрузка 1 (установка)

0

Х

Хранение

1

Х

Хранение 0

2. LD– D Триггер с потенциальным управлением (D- защелка). Назначение выводов:D - информационный вход ; G - вход синхронизации; Q – выход. В отличие от предыдущего варианта, вход синхронизации отсутствует. Обычно такие триггеры используются как последовательные регистровые схемы или элементы задержки.

Таблица истинности элемента LD приведена в таблице 2.

Таблица 2- Таблица истинности элемента LD

Вход G

Вход D

Выход Q

Режим работы

1

0

0

Передача данных со входа D(0) на выход триггера

1

1

1

Передача данных со входа D(1) на выход триггера

/

0

0

Фиксация входных данных (0) в триггере

/

1

1

Фиксация входных данных (1) в триггере

0

Х

Хранение

3. FDCP- D триггер с асинхронным сбросом и асинхронной установкой. Назначение выводов: D-информационный вход D; C-Вход синхронизации; CLR-вход сброса; PRE-вход установки,Q- выход. Таблица истинности элемента FDCP приведена в таблице 3.

Таблица 3- Таблица истинности элемента FDCP

Вход CLR

Вход PRE

Вход С

Вход D

Выход Q

Режим работы

0

0

/

0

0

Загрузка 0 (сброс)

0

0

/

1

1

Загрузка 1(установка)

0

0

0

Х

Хранение

0

0

1

Х

Хранение

0

1

Х

Х

1

Асинхронная установка

1

Х

Х

Х

0

Асинхронный сброс

4. FTC- Tриггер с асинхронным сбросом. Назначение выводов: С-вход синхронизации; Т-вход разрешения переключений; CLR-вход сброса; Q- выход.

Таблица истинности элемента FTC приведена в таблице 14.

Таблица 4- Таблица истинности элемента FTC

Вход CLR

Вход Т

Вход С

Выход Q

Режим Работы

0

1

/

Переключение

0

0

Х

Хранение

0

Х

0

Хранение

0

Х

1

Хранение

1

Х

Х

0

Асинхронный Сброс

5. СВ4СЕ- четырехразрядный двоичный счетчик с асинхронным сбросом и входом разрешения счета.

Таблица 5- Таблица истинности элемента СВ4СЕ

С

CLR

СЕ

QI

TC

CEO

Режим работы

Х

1

Х

0

0

0

Асинхронный сброс

/

0

1

Счет

0

0

Счет (Q[3;0]#1111)

/

0

1

Счет

1

1

Счет Q[3;0]=1111)

Х

0

0

0

Хранение

Назначение выводов: С- тактовый вход; СЕ- вход разрешения счета; CLR-вход сброса; Q0-Q3- выходы (0-3 разряды); ТС-выход переноса (выход завершения счета); СЕО- выход разрешения счета (СЕО=ТС&СЕ).

Таблица истинности СВ4СЕ приведена в таблице 5.

6.СD4СЕ- четырехразрядный двоично-десятичный счетчик с асинхронным сбросом и входом разрешения счета. Назначение выводов: С- тактовый вход, СЕ-вход разрешения счета, CLR-вход сброса, Q0-Q3- выходы (0-3 разряды), ТС-выход переноса (выход завершения счета), СЕО-выход разрешения счета (СЕО=ТС&СЕ).Таблица истинности элемента СD4СЕ приведена в таблице 6.

Таблица 6- таблица истинности элемента СD4СЕ

C

CLR

СЕ

QI

TC

CEO

Режим работы

Х

1

Х

0

0

0

Асинхронный сброс

/

0

1

Счет

0

0

Счет (Q[3;0]=1111)

/

0

1

Счет

1

1

Счет (Q[3;0]=1111)

Х

0

0

0

Хранение

7.СОМР4 - цифровой четырехразрядный компаратор. Назначение выводов: А0-А3-выходы первого операнда(разряды 0-3), В0-В3-выходы второго операнда(разряды 0-3), EQ- выход А=В. Таблица истинности элемента СОМР приведена в таблице 7.

Таблица 7- таблица истинности элемента СОМР

Соотношение значений сигналов на входах А0-А3, В0-В3

Выход EQ

IA0=IB0 и IA1=IB1 и IA2=IB2 и IA3=IB3

1

IA0#IB0 или IA1#IB1 или IA2#IB2 или IA3#IB3

0

8. D2_4E- дешифратор с 2 на 4 со входом разрешения, преобразующий двухразрядный двоичный код, поступающий на входы А0 А1, в напряжение высокого уровня, появляющиеся на одном из четырех входов D0-D3, при наличии сигнала высокого уровня на входе Е. Таблица истинности элемента D2_4E приведена в табл. 8.

Таблица 8- Таблица истинности элемента D2_4E

Е

А0

А1

D0

D1

D2

D3

Режим работы

1

0

0

1

0

0

0

Преобразование двоичного кода в напряжение высокого уровня на соответствующем выходе

1

1

0

0

1

0

0

1

0

1

0

0

1

0

1

1

1

0

0

0

1

0

Х

Х

0

0

0

0

Стробирование

9. D3_8E- дешифратор с 3 на 8 со входом разрешения, преобразующий трехразрядный двоичный код, поступающий на входы А0-А2, в напряжение при наличии сигнала высокого уровня на входе Е.

10. D4_16E- дешифратор с 4 на 16 со входом разрешения, преобразующий двухразрядный двоичный код, поступающий входы А0-А3, в напряжение высокого уровня, появляющиеся на одном из четырех входов D0-D15, при наличии сигнала высокого уровня на входе Е. Назначение выводов: Е-вход разрешения, А0-А3-входы (разряды 0-3), D0-D15-выходы(0-15 разряды).

11. М2_1- двухвходовый мультиплексор (2 в 1) с инверсией по одному входу. Назначение выводов D0, D1- информационные входы,S0-вход выбора, O-выход.

12. М4_1Е-четырехвходовый мультиплексор (4 в 1) со стробированием. Назначение выводов: D0-D3-информационные входы,S0,S1- входы выбора,O-выход.

Лабораторная работа №5

Делитель частоты

Цель:ознакомиться с принципами деления частоты.

Общие указания: Построить делитель частоты, чтобы 50МГц делилось в 5*106 раз , чтобы получить в итоге 1Гц. Построить делитель частоты на D-триггерах. Необходимо выбрать количества триггеров и собрать схему, соответствующую заданию.

1. Деление будет производиться в 2 этапа. На первом этапе частота делится на 25000000 раз, в итоге получаются короткие импульсы с частотой в 2 Гц. На следующем этапе импульсы подаются на Т-триггер для формирования меандра с частотой 1Гц.

3.Необходимо составить схему, состоящую из 25 D- триггеров, т.к.

4. Необходимо организовать элемент, который будет сбрасывать все триггеры в ноль по приходу 25000000-ого импульса. Сигнал сброса будет подаваться на Т-триггер.

На рисунке 3.30 изображена схема делителя частоты.


Рисунок 3.30 - Схема делителя частоты.

Лабораторная работа №6

Семисегментный индикатор с динамической индикацией.

Цель: собрать схему динамической развертки на данном стенде для вывода четырехзначного числа.

Общие указания:

На рисунке 3.31 изображена схема динамической индикации.

Рисунок 3.31- Динамическая индикация

На рис. 3.32 схема подключения преобразователя к семисегментному индикатору

Рисунок 3.32- Схема подключения преобразователя к семисегментному индикатору

1. Выбираем дешифратор D4_16E. Дешифратор имеет 4 входа и 16 выходов.

2. Собираем схему семисегментного преобразователя на элементах стандартной логики.

3. На рисунке 3.33 изображена схема динамической развертки.

Рисунок 3.33 - Блок-схема динамической развертки

4. Собранную схему проверить на стенде.

Лабораторная работа №7

Кодер BСD-код

Цель: построить схему кодера BDC кода.

Общие указания:

BCD- схема двоично-десятичного преобразователя (англ. binary-coded decimal), BCD, 8421-BCD — форма записи рациональных чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода

На рисунке 41 изображен BCD код с таблицей истинности

Рисунок 3.34. а)BCD – кодер; б) таблица истинности .

Лабораторная работа №8

Сумматор двоичного кода

На рисунке 42 приведена схема сложения двух четырехразрядных чисел.

Рисунок 3.25. - Схема двоичного сумматора

1. Схема сумматора строится на базовых элементах, находящихся в библиотеке САПР ISEDesignSuite 14.4.

2. Проверить работу сумматора, подключив BCD и динамическую развертку (см. лабораторные №6 и №7)

На рисунке 3.26 изображена схема полного сумматора.

Рисунок 3. 26. - Схема полного сумматора

Процесс разработки комплекса лабораторных работ был разбит на несколько этапов:

- Выбор стенда (ПЛИС XC9500XL);

- Разработка лабораторных работ;

- Решение лабораторных работ.

Применение лабораторных работ предназначено для изучения:

- систем на базе программируемых логических интегральных схем фирмы XILINX с архитектурой CPLD;

- принципов логического проектирования несложных узлов цифровых систем с использованием языков структурно–функционального описания аппаратуры;

- периферийных блоков вычислительных систем;

- подсистем ввода-вывода встраиваемых систем.

Возможно проведение данных лабораторных работ по следующим дисциплинам:

- цифровая схемотехника;

- цифровая обработка сигналов;

- цифровые устройства и микропроцессоры;

БИБЛИОГРАФИЧЕСИКЙ СПИСОК

1 Описание ПЛИС :http://plis.ru/docum#63& (дата обращения: 3.04.2015).

2 Зотов В.Ю. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPACK ISE / В.Ю. Зотов. - М.: Горячая линия-Телеком, 2003. - 624 с.

3 Фирма Altera: http://www.altera.ru/s-chego-nachat.html (дата обращения: 11.04.2015).

4Зотов В. Разработка встраиваемых микропроцессорных систем на основе ядра MicroBlaze, реализуемых в ПЛИС семейств FPGA фирмы Xilinx, с помощью «мастера» BaseSystemBuilderWizard // Компоненты и технологии. 2005. №№ 3–4

5 Зотов В.Ю. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx в САПР WebPACK ISE / В.Ю. Зотов. - М.: Горячая линия-Телеком, 2006. - 520 с.

6 Разработка устройства на ПЛИС: http://knowledge.allbest.ru

7. ПЛИС:https://ru.wikipedia.org/wiki/%D0%9F%D0%9B%D0%98%D0%A1

8 Программируемые логические схемы и их применение: http://fpga-faq.narod.ru/ (дата обращения 15.04.2015).

Источник: портал www.KazEdu.kz

Другие материалы

  • Проектирование цифровых устройств в САПР ISE
  • ... проекта Основные методы и приемы работы с САПР ISE рассмотрим на примере простейшей схемы D –триггера. Использование простейшей схемы позволяет отвлечься от особенностей самой схемы и сосредоточиться только на самом процессе проектирования. Создание нового проекта инициируется последовательным ...

  • Конструирование ПЛИС
  • ... остаются только те связи, которые необходимы для выполнения требуемых функций. На практике эта задача весьма непростая, так как современные ПЛИС содержат в среднем нес­колько десятков тысяч перемычек. Поэтому для проектирования обяза­тельно применяют системы автоматизированного проектирования (САПР ...

  • Проектирование устройств фильтрации
  • ... формате VCD (Value Change Dump), воспринимаемом всеми системами работы с временными диаграммами. [1] 2.МЕТОД ПРОЕКТИРОВАНИЯ УСТРОЙСТВ ФИЛЬТРАЦИИ ПО РАБОЧИМ ПАРАМЕТРАМ Методика проектирования фильтров по рабочим параметрам основана на нахождении значений элементов, нармированных по частоте ...

  • Средства автоматизации проектирования
  • ... EMC, следует отметить канадскую компанию Quantic EMC предлагающую на рынок продукт Omega PLUS. Этот пакет не является системой проектирования, зато имеет средства импорта проектов из всех вышеперечисленных САПР. Помимо обычного анализа целостности сигналов и перекрестных искажений, здесь могут быть ...

  • Информационные технологии при проектировании высокомоментного линейного привода с цифровым программным управлением
  • ... профиля, приведена в Приложении А. Глава 2. Современные компьютерные технологии при проектировании высокомоментного линейного привода с цифровым программным управлением Привод линейный синхронный представляет собой комплектный привод прямого действия на базе однокоординатного синхронного ...

  • ПЛИС Xilinx семейства Virtex™
  • ... : аааа : сссс : сссс : ссс1, где v — код корпуса, f— код семейства кристаллов (03h для семейства Virtex), а — число строк матрицы КЛБ (от 010h для XCV50 до 040h для XCV1000), с — код компании производителя (49h для фирмы «Xilinx») В Табл. 8 приведены идентификационные коды (IDCODEs), присвоен­ные ...

  • Модуль накопления для задач многомерной мессбауэровской спектрометрии
  • ... и управления ресурсами, с учётом необходимой и достаточной степени доступа к конечной аппаратуре. Модуль накопления для задач многомерной мессбауэровской спектрометрии спроектирован с учётом следующих условий: -  Синхронизация накопителя с системой доплеровской модуляции осуществляется ...

  • Анализ алгоритма работы специализированного вычислителя
  • ... , следовательно, необходимый объем накопителя увеличится в два раза и составит 4 Гб. 1.3 Анализ конструкции Разрабатываемая конструкция предназначена для сохранения в процессе натурных испытаний специализированного вычислителя информации. Блок должен быть совместим как механически, так и ...

  • Разработка двоичного сумматора по модулю 13
  • ... логической последовательности Десятичный сумматор с кодом 7-4-2-1. Этот код позиционный. Каждому разряду кодовой комбинации сопоставляется определенный весовой коэффициент, зависящий от позиции этого разряда. Если задана кодовая комбинация , где  – двоичные символы, то десятичную цифру, ...

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

  • Контроллер угловой информации
  • ... Блок самоконтроля SAMOCONTROL _1 Формируемые, в результате работы устройства сопряжения, сигналы МАИ и СЕВЕР, несут в себе важную информацию об угловом положении антенной системы локатора, поэтому любые изменения их параметров (временного расположения, длительности, периода следования), могут ...

  • Цифровой фильтр высокой частоты
  • ... и амплитуда входного воздействия принята равной 100). (Как получены отрицательные значения?) Заключение В данной работе был спроектирован цифровой фильтр высокой частоты, удовлетворяющий всем требованиям технического задания. Проект занял на интегральной схеме 60% ресурсов или 694 логических ячеек ...

  • Радиолокация: обнаружение и распознавание. Средства постановки помех и помехозащиты РЛС
  • ... защиты от УП является введение в РЛС режима сопровождения слабого сигнала, при котором при воздействии ответной помехи (первый этап в постановке УП) продолжается сопровождение менее мощного сигнала от цели. 5. Анализ эффективности применения комплекса помех и средств помехозащиты   При ...

  • Моделирование работы приемника циклового синхросигнала аппаратуры ЦСП
  • ... приёмника циклового синхросигнала аппаратуры ИКМ-30С-4 находится в приложениях(приложение №2). САПР МАХ+plusII фирмы ALTERA САПР MAX+plusII представляет собой архитектурно независимую среду проектирования, которая легко приспосабливается к конкретным проектным требованиям и может работать на ...

  • Радиолокационные системы и средства помехозащиты
  • ... Кп è, подавление помехи максимально. Рисунок 22. Структурная схема квадратурного компенсатора. Анализ эффективности применения комплекса помех и средств помехозащиты Следует, заметить, что никакое устройство для подавления помех не является универсальным. Каждое устройство защиты ...

Каталог учебных материалов

Свежие работы в разделе

Наша кнопка

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

Контакты

Если у вас возникли какие либо вопросы, обращайтесь на email администратора: admin@kazreferat.info