Приоритетный шифратор 4-2
Таблица 2.1 представляет собой таблицу истинности приоритетного шифратора 4-2.
Таблица 2.1 – Таблица истинности приоритетного шифратора 4-2
Входы |
Выходы |
||||||
x3 |
x2 |
x1 |
x0 |
a1 |
a0 |
G |
|
1 |
X |
X |
X |
1 |
1 |
1 |
|
0 |
1 |
X |
X |
1 |
0 |
1 |
|
0 |
0 |
1 |
X |
0 |
1 |
1 |
|
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Для каждого выхода была составлена формула, согласно данной таблице:
a1 = x3
∩
x2;a0 = x3 ∩
∩
x1;G = x3
x1
x0.
Данные формулы были преобразованы в базис И-НЕ:
a1 =
;
a0 =
;G =
.
Схема приоритетного шифратора, построенная по базисным формулам, приведена на рисунке 2.1.
Рисунок 2.1 – Схема приоритетного шифратора
На рисунках 2.2 – 2.3 представлено моделирование работы данной схемы в двух режимах.
Рисунок 2.2 – Моделирование схемы в режиме Timing
Рисунок 2.3 – Моделирование схемы в режиме Functional
Далее схема шифратора была описана на языке описания аппаратуры VHDL. Результат представлен на рисунке 2.4.
Рисунок 2.4 – Код модуля шифратора на VHDL
По данному коду было построено схемотехническое представление при помощи инструмента RTL Viewer (рисунок 2.5).
Рисунок 2.8 – Схема по коду в RTL Viewer
Работа схемы, описанной в виде кода, также была промоделирована в 2 режимах (рисунки 2.6 – 2.7). Комбинации входных данных аналогичны тем, что использовались при прошлом моделировании.
Рисунок 2.9 – Моделирование схемы в режиме Timing
Рисунок 2.10 – Моделирование схемы в режиме Functional
Можно заметить, что результаты моделирования, проведенного по изначальной схеме и по коду, написанному на VHDL, абсолютно идентичны, а также совпадают с построенной таблицей истинности для приоритетного шифратора, из чего можно сделать вывод, что построение и моделирование схемы было произведено без ошибок. Полученная схема была сохранена в виде символа для дальнейшего использования.
Реализация функций 11, 12, 13, 14
Для 4 функций, заданных по была построена совмещенная таблица истинности (таблица 3.1).
Таблица 3.1 – Совмещенная таблица истинности
Входы |
Выходы |
||||||
A |
B |
C |
D |
F11 |
F12 |
F13 |
F14 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
Функция F13 будет реализована на мультиплексоре lpm_MUX.
Функция F12 будет реализована на дешифраторе. Так как нулей в результатах функции меньше, то реализация осуществляется «по нулям».
Функция
F11
будет реализована через формулу СКНФ:
(A∨B∨C∨D)
∧
(A∨B∨
∨D)
∧
(A∨
∨C∨D)
∧
(
∨
∨
∨D)
Ф
ункция
F14
будет реализована по собственной
формуле: .
Выбор результата будет осуществляться не двоичным кодом на мультиплексоре (lpm_mux). Также будет использован символ приоритетного шифратора.
Схема, построенная по указанным входным данным, изображена на рисунке 3.1.
Рисунок 3.11 – Функциональная схема
Для моделирования был создан VWF файл, в который были перенесены имеющиеся на схеме входы и выход. Для функций были заданы следующие комбинации входных данных (переменных A, B, C, D):
F11: (0;0;0;1) для 1, (0;0;0;0) для 0;
F12: (0;0;1;1) для 1, (0;0;1;0) для 0;
F13: (0;1;0;1) для 1, (0;1;0;0) для 0;
F14: (1;0;0;0) для 1, (0;1;1;1) для 0.
Результаты моделирования схемы в двух режимах представлены на рисунках 3.2 – 3.3.
Рисунок 3.12 – Моделирование схемы в режиме Timing
Рисунок 3.13 – Моделирование схемы в режиме Functional
Далее схема была описана на языке описания аппаратуры VHDL Результат представлен на рисунке 3.4.
Рисунок 3.14 – Описание схемы на VHDL
По данному коду было построено схемотехническое представление при помощи инструмента RTL Viewer (рисунок 3.5).
Рисунок 3.15 – Схема по коду в RTL Viewer
Работа схемы, описанной в виде кода, также была промоделирована в 2 режимах (рисунки 3.6 – 3.7). Комбинации входных данных аналогичны тем, что использовались при прошлом моделировании.
Рисунок 3.16 – Моделирование схемы в режиме Timing
Рисунок 3.17 – Моделирование схемы в режиме Functional
Можно заметить, что результаты моделирования, проведенного по изначальной схеме и по коду, написанному на языке VHDL, абсолютно идентичны, а также совпадают с построенной таблицей истинности, из чего можно сделать вывод, что построение и моделирование схемы было произведено без ошибок.
