logo
Работа с графическим редактором Quartus II

Алгебра логики и основные логические элементы

Математической основой цифровой электроники и вычислительной техники является алгебра логики или булева алгебра (по имени английского математика Джона Буля). В булевой алгебре независимые переменные или аргументы (Х) принимают только два значения: "0" или "1". Зависимые переменные или функции (Y) также могут принимать только два значения: "0" или "1". Функция алгебры логики (ФАЛ) представляется в виде:

Данная форма задания ФАЛ называется алгебраической.

Основными логическими функциями являются:

- логическое отрицание (инверсия):

- логическое сложение (дизъюнкция):

- логическое умножение (конъюнкция):

К более сложным функциям алгебры логики относятся:

- функция равнозначности (эквивалентности):

- функция неравнозначности (сложение по модулю два):

- функция Пирса (логическое сложение с отрицанием):

- функция Шеффера (логическое умножение с отрицанием):

Для булевой алгебры справедливы следующие законы и правила:

- распределительный закон:

,

- правило повторения:

- правило отрицания:

- теорема де Моргана:

- тождественности:

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

На рисунках 2.1 - 2.7 показаны логические элементы, реализующие рассмотренные ранее функции. Там же приведены так называемые таблицы состояний или таблицы истинности, которые описывают соответствующие логические функции в двоичном коде в виде состояний входных и выходных переменных. Таблица истинности является также табличным способом задания ФАЛ.

графический редактор quartus симуляция

На рисунке 2.1 показан элемент "НЕ", который реализует функцию логического отрицания .

Рис.2.1 Элемент "НЕ"

X

Y

0

1

1

0

Элемент "ИЛИ" (рисунок 2.2) и элемент "И" (рисунок 2.3) реализуют функции логического сложения и логического умножения соответственно.

Рис. 2.2 Элемент "ИЛИ"

X1

X2

Y

0

0

0

0

1

1

1

0

1

1

1

1

Рис. 2.3 Элемент "И"

X1

X2

Y

0

0

0

0

1

0

1

0

0

1

1

1

Функции Пирса и функции Шеффера реализуются при помощи элементов "ИЛИ-НЕ" и "И-НЕ", приведенных на рисунках 4 и 5 соответственно.

Рис. 2.4 Элемент "ИЛИ-НЕ"

X1

X2

Y

0

0

1

0

1

0

1

0

0

1

1

0

Рис. 2.5 Элемент "И-НЕ"

X1

X2

Y

0

0

1

0

1

1

1

0

1

1

1

0

Элемент Пирса можно получить последовательным соединением логических элементов "ИЛИ" и элемента "НЕ", а элемент Шеффера - в виде последовательного соединения логических элементов "И" и элемента "НЕ". На рисунках 2.6 и 2.7 показаны элементы "отрицающее ИЛИ" та "отрицающее ИЛИ-НЕ", которые реализуют функции неравнозначности и неравнозначности с отрицанием соответственно.

Рис. 2.6 Элемент "отрицающее ИЛИ"

X1

X2

Y

0

0

0

0

1

1

1

0

1

1

1

0

Рис. 2.7 элемент "отрицающее ИЛИ-НЕ"

X1

X2

Y

0

0

1

0

1

0

1

0

0

1

1

1

Логические элементы, которые реализуют операции конъюнкции, дизъюнкции, функции Пирса и Шеффера, могут быть, в общем случае, n-входовыми. В таблице истинности такого элемента количество возможных комбинаций входных переменных N, в общем случае равняется: N = 2 n, где n - число входных переменных.

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

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

Для реализации заданной функции на элементах "И-НЕ" используют двойную инверсию функции (теорему де Моргана):

Реализация проекта цифровой схемы в Quartus II.

Рассмотрим работу с графическим редактором Quartus II на примере реализации булевой функции: .

Шаг 1.

Запускаем Quartus II. Создаем новый проект. Для этого выбираем пункт меню FileNew Project Wizard.

Шаг 2.

Появляется диалоговое окно мастера-помошника создания проекта. Нажимаем кнопку Next.

Шаг 3.

Выбираем папку, где будет размещен проект, например: c: alteramarsohodflipflop_sim. И указываем название проекта flipflop.

Шаг 4.

Quartus II спрашивает, нужно ли создать папку которая еще не существует. Отвечаем "Да". Чтобы создать новый файл, принадлежащий проекту, выбираем пункт меню FileNew, или нажимаем кнопку New на панели инструментов.

Шаг 5.

Нужно создать файл, описывающий устройство. Это Design File. Выбираем создание схемы Block DiagramSchematic File.

Шаг 6.

Сохраняем наш новый файл под именем flipflop. bdf.

Шаг 7.

В поле графического редактора схем нажимаем правую кнопку мыши и в выпадающем меню выбираем пункты InsertSymbol - вставить элемент. Или на панели инструментов выбираем кнопку Symbol Tool.

Шаг 8.

Из библиотек Quartus II выбираем элементы примитивов primitiveslogic. Нужно два элемента "И" на 2 входа - это primitiveslogicand2, один элемент "И" на 3 входа - primitiveslogicand3, один элемент "И-НЕ" на 2 входа - primitiveslogic and2, один элемент "ИЛИ" на 4 входа - primitiveslogicor4, три элемента "Инверсия" - primitiveslogic ot.

Шаг 9.

Точно так же выбираем нужные нам входы и выходы primitivespininput и primitivespinoutput.

Шаг 10.

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

Шаг 11.

Выбирая на панели инструментов Orthogonal Node Tool, можно соединять элементы между собой. Добавим еще входы и выходы. Назовем их - клик правой кнопки мыши на элементе и выбираем пункт меню свойства Properties.

Создание проекта практически завершено - можно симулировать его.

Шаг 12.

Прежде чем делать симуляцию нужно откомпилировать проект. Выбираем пункты меню ProcessingStart Compilation (или выбрать на панели инструментов кнопку Start Compilation).

Шаг 13.

Создадим файл для симуляции. В нем можно будет описывать входные сигналы и задавать выходные сигналы. Выбираем пункт меню FileNew и затем в появившемся диалоге VerificationDebugging Files University Program VWF (Vector Waveform File).

Шаг 14.

Сигнальный редактор Quartus II.

Шаг 15.

Сохраним файл симуляции под именем, например, flipflop. vwf.

Шаг 16.

Надо выбрать элементы, которые будем смотреть и которые будем определять. Клик правой клавиши мыши на левой панели Names и в выпадающем меню выбираем пукнт InsertInsert Node or Bus.

Шаг 17.

Появилось диалоговое окно. В нем можно набрать имя выхода какого-нибудь сигнала или элемента. Полное имя сигнала может быть очень длинным и не всегда понятным. Поэтому лучше воспользоваться поиском сигнала в проекте. Нажимаем кнопку Node Finder.

Шаг 18.

Появляется диалоговое окно для поиска сигналов в проекте Node Finder. В поле Look указано имя нашего проекта - в нем будет поиск сигнала. Здесь ничего менять не нужно. В поле Named можно задать часть имени сигнала или провода.

Например, надо найти выход модуля с именем data, но в проекте несколько модулей с выходами/входами с таким именем. Тогда для поиска в этом поле Named нужно указать *data*.

Потом нажать кнопку List (произвести поиск) и в таблице Nodes Found будет показан список всех модулей содержащих такой сигнал. Если указать просто *, то это значит, что будут отображены вообще все сигналы, не зависимо от имени.

Еще важное поле - Filter. Здесь из списка можно выбрать тип сигналов для поиска. Выбираем сейчас Pins: All - то есть физические входы и выходы микросхемы.

Нажимаем кнопку List и видим список входов и выходов.

Шаг 19.

Выбираем все нужные сигналы слева в таблице найденных сигналов Nodes Found и переносим их вправо в таблицу выбранных сигналов Selected Nodes. Нажимаем кнопку "OK".

Шаг 20.

Прежде чем редактировать сами сигналы нужно задать временную сетку (для удобства кратную 2). Для этого надо зайти в пункт меню EditGrid Size или нажать на панели инструментов кнопку Count Value.

Шаг 21.

Запускаем симулятор из пункта меню ProcessingRun Functional Simulation (или на панели инструментов выбрать кнопку Run Functional Simulation).

Шаг 22.

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