Архитектура цифровых устройств базируется на многократном повторении относительно простых базовых логических элементов. Связи между этими элементами строятся на основе формальных методов булевой алгебры (названной так по имени автора – английского математика Джорджа Буля, 1815–1864 гг.) или алгебры логики.
В отличие от обычной алгебры булева алгебра оперирует с логическими переменными, которые могут иметь только два значения: логический нуль «0» и логическая единица «1».
В алгебре логики существуют три простейших операции (функции) над логическими переменными:
1. Логическое отрицание, или инверсия – изменяет значение логической переменной на противоположное значение. В булевых выражениях обозначается чертой над переменной:
. В схемотехнике устройство, реализующее операцию отрицания, обозначается словом «NOT», в отечественном варианте «НЕТ». В табл. 1.1 приведены все возможные значения логического отрицания;
Таблица 1.1
Таблица истинности операции логического отрицания (инверсии)
| Х | Y |
2. Логическое умножение, или конъюнкция. Выражение записывается следующим образом
или
или
. Все возможные варианты логического умножения двух переменных приведены в табл. 1.2.
Таблица 1.2.
Таблица истинности операции логического умножения (конъюнкции)
| Х1 | Х2 | Y1 |
3. Логическое сложение, или дизъюнкция. Выражение записывается следующим образом
или
. Варианты для двух переменных приведены в табл. 1.3.
Таблица 1.3
Таблица истинности операции логического сложения (дизъюнкции).
| Х1 | Х2 | Y1 |
По существу рассмотренные переменные являются булевыми функциями. Первая от одной переменной, последние от двух переменных. Функции, так же как и переменные, могут принимать только два значения «1» и «0».
Для двух переменных существуют 16 функций табл. 1.4.
Таблица 1.4
Булевы функции двух переменных 
| Функция | Значение функции при: | Обозначение функции | Название функции | |||
| Х1 =0 | Х1 =0 | Х1 =1 | Х1 =1 | |||
| Х2 =0 | Х2 =1 | Х2 =0 | Х2 =1 | |||
| Y0 | 0 | Константа 0 | ||||
| Y1 | Х1Х2 | Конъюнкция | ||||
| Y2 | Х1DХ2 | Запрет по Х2 | ||||
| Y3 | Х1 | Переменная Х1 | ||||
| Y4 | Х2DХ1 | Запрет по Х 1 | ||||
| Y5 | Х2 | Переменная Х2 | ||||
| Y6 | Х1ÅХ2 | Исключающее ИЛИ | ||||
| Y7 | Х1+Х2 | Дизъюнкция | ||||
| Y8 | Х1¯Х2 | Стрелка Пирса | ||||
| Y9 | Х1~ Х2 | Эквивалентность | ||||
| Y10 |
| Отрицание Х2 | ||||
| Y11 | Х2®Х1 | Импликация от Х2 к Х1 | ||||
| Y12 |
| Отрицание Х1 | ||||
| Y13 | Х1®Х2 | Импликация от Х1 к Х2 | ||||
| Y14 | Х1/Х2 | Штрих Шеффера | ||||
| Y15 | 1 | Константа 1 |
Для решения конкретных задач могут быть сконструированы новые булевы функции из других булевых функций с помощью суперпозиции. Она состоит в подстановке вместо аргументов других булевых функций. Такая подстановка возможна, так как булевы функции, как и переменные, могут принимать только значения «1» и «0».
В практике, наибольшее применение находят в первую очередь простейшие, а именно Y1 – конъюнкция и Y7 – дизъюнкция, а также еще три, полученные путем суперпозиции простейших:
ü
- исключающее ИЛИ(«сумма по модулю 2»);
ü
- штрих Шиффера («И-НЕ»);
ü
- стрелка Пирса («ИЛИ-НЕ»).
В современных условиях для проектирования цифровых устройств на ПЛИС разработчику достаточно знать условные обозначения элементов и их функции. Эти данные представлены в табл.1.5.
Таблица 1.5
Схемные элементы, реализующие логические функции
| № п/п | Название функции | Отечественный вариант | Пакет Quartus II | ||
| название элемента | схемное обозначение | название элемента | схемное обозначение | ||
| 1. | Общий корпус |
| gnd |
| |
| 2. | +5В, и т.п. |
| vcc |
| |
| 3. | Х | Повторитель |
| buf |
|
| 4. | Инвертирование Х (НЕ) | НЕ |
| not |
|
| 5. | Умножение (операция И) | 2И, 3И, … |
| and2, and3, … |
|
| 6. | Сложение (операция ИЛИ) | 2ИЛИ, 3ИЛИ, … |
| or2, or3, … |
|
| 7. | Исключающее ИЛИ |
| xor |
| |
| 8. | Умножение и отрицание (И-НЕ) | 2И-НЕ, 3И-НЕ, … |
| nand2, nand3, … |
|
| 9. | Сложение и отрицание (ИЛИ-НЕ) | 2ИЛИ-НЕ, 3ИЛИ-НЕ, … |
| nor2, nor3, … |
|
Прежде чем реализовать требуемую функцию с помощью схемных элементов, логическое выражение, представляющее функцию, необходимо привести к виду с минимальным количеством операций. Для этого исходное выражение подвергают преобразованиям в соответствии с законами булевой алгебры. Эти законы, кроме 4 и 5, имеют две формы: для конъюнкции и дизъюнкции. Законы представлены ниже.






