Задача
Реализовать АЛУ с восемью операциями (сложение, вычитание, И, ИЛИ, ИИЛИ, НЕ, инкремент, декремент) и флагом нуля.
Тип схемы и среда
Комбинационная схема. 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.