AFON//Радиотехник
AHDL · проект 25/50

Арифметико-логическое устройство

8 операций над двумя 8-битными словами

Задача

Реализовать АЛУ с восемью операциями (сложение, вычитание, И, ИЛИ, ИИЛИ, НЕ, инкремент, декремент) и флагом нуля.

Тип схемы и среда

Комбинационная схема. CASE по коду операции выбирает результат, отдельный компаратор даёт флаг zero.

Алгоритм работы

op[2..0] выбирает одну из восьми функций над a[] и b[]. Флаг zero = (y[]==0) вычисляется по результату.

Код на AHDL

% Проект 25: 8-разрядное АЛУ на 8 операций %
SUBDESIGN ahdl_25_alu
(
    a[7..0]  : INPUT;
    b[7..0]  : INPUT;
    op[2..0] : INPUT;
    y[7..0]  : OUTPUT;
    zero     : OUTPUT;
)
BEGIN
    CASE op[] IS
        WHEN 0 => y[] = a[] + b[];
        WHEN 1 => y[] = a[] - b[];
        WHEN 2 => y[] = a[] & b[];
        WHEN 3 => y[] = a[] # b[];
        WHEN 4 => y[] = a[] $ b[];
        WHEN 5 => y[] = !a[];
        WHEN 6 => y[] = a[] + 1;
        WHEN 7 => y[] = a[] - 1;
    END CASE;
    zero = (y[] == 0);
END;

Пояснения

АЛУ — ядро любого процессора. Расширяется флагами переноса и знака; здесь показан флаг нуля как простейший.

📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.

Что дальше

Скачайте ahdl_25_alu.tdf, создайте проект в MAX+PLUS II или Quartus, назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в разделе проектов на AHDL.