1lytics

Создание мультиплексера 4-в-1 с использованием Lua

Что такое мультиплексор

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

Мультиплексор 4-в-1 имеет 4 входных линии, сигнал с которых передается на выход, и 2 линии выбора (адресные линии), которые определяют, с какой входной линии сигнал будет передаваться на выход.

Версии Gorgeous Karnaugh с поддержкой Lua

Замечание: Не все версии программного обеспечения Gorgeous Karnaugh поддерживают Lua. Проверьте возможности вашей версии тут.

Написание Lua-скрипта для задания таблицы истинности

Так как таблица истинности для 6 входных переменных будет содержать 64 строки и потребует слишком много ручной работы для ее заполнения, используем возможности программы Gorgeous Karnaugh по заданию таблицы истинности при помощи скрипта Lua. Запустите программу Gorgeous Karnaugh, выберите пункт меню “File” — “New” — “Empty set for scripting” и введите приведенный ниже скрипт:

gkAddInputVar('a', 2)
gkAddInputVar('x', 4)
gkAddFunction('y')
MaxInput = gkGetMaxInputVector()
for InputVec = 0, MaxInput do
    addrBits = gkGetBits( InputVec, 4, 2 )
    if addrBits==0 then
       gkSetFunctionValue(InputVec,'y',gkGetInputValue(InputVec, 'x1'))
    elseif addrBits==1 then
       gkSetFunctionValue(InputVec,'y',gkGetInputValue(InputVec, 'x2'))
    elseif addrBits==2 then
       gkSetFunctionValue(InputVec,'y',gkGetInputValue(InputVec, 'x3'))
    elseif addrBits==3 then
       gkSetFunctionValue(InputVec,'y',gkGetInputValue(InputVec, 'x4'))
    end
end

Карты Карно для минимизации

После выполнения скрипта Lua будут получены следующие карты Карно:

Карта Карно для выхода мультиплексора 4-в-1

Минимизация карт Карно

Минимизируем карты Карно по 0 для получения КНФ:

Минимизированная по 0 Карта Карно для выхода мультиплексора 4-в-1

получим минимальную форму для выходных функций:

y = (!a1|!a2|x4) (!a1|a2|x3) (a1|!a2|x2) (a1|a2|x1);

Минимизируем карты Карно по 1 для получения ДНФ:

Минимизированная по 1 Карта Карно для выхода мультиплексора 4-в-1

получим минимальную форму для выходных функций:

y = !a1 !a2 x1 | !a1 a2 x2 | a1 !a2 x3 | a1 a2 x4;

Построение схемы на логических вентилях

В панели “Coverage sets” выберите необходимый набор покрытий. Затем, выберите пункт меню: “Coverages” — “Open Schematic”. В появившемся диалоговом окне выберите нужные параметры генерации схемы, и нажмите кнопку “Ok”. После этого откроется окно со схемой.

Схемы по результатам минимизации по 0 и 1:

Схема мультиплексора 4-в-1 на логических вентилях - минимизация по 0 Схема мультиплексора 4-в-1 на логических вентилях - минимизация по 1

Проверка работоспособности схемы на логических вентилях в симуляторе

Вы можете использовать программу “CEDAR Logic Simulator” для проверки работоспособности вашей схемы. Для этого, выберите пункт меню “File” — “Save for CedarLogic” в программе Gorgeous Schematic, сохраните файл “.CDL” и откройте его в программе “CEDAR Logic Simulator”.

Замечание: Не все версии программного обеспечения Gorgeous Karnaugh поддерживают экспорт схем на логических вентилях в формат программы CedarLogic. Проверьте возможности вашей версии тут.

Версии Gorgeous Karnaugh

Вы можете узнать о возможностях программы Gorgeous Karnaugh и сравнить различия между различными версиями Gorgeous Karnaugh на странице сравнения версий.