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

Простой калькулятор

Четыре операции с защёлкой результата

Задача

Выполнять над двумя 8-битными числами одну из операций (+, −, И, ИЛИ) и защёлкивать результат по кнопке.

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

Комбинационное вычисление + регистр результата, защёлкиваемый по фронту eq.

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

CASE op[] выбирает операцию, результат вычисляется комбинационно. По фронту eq он фиксируется в выходном регистре.

Код на AHDL

ahdl_44_kalkulyator.tdf↓ скачать .tdf
% Проект 44: простой калькулятор (+ - & #) 8 бит %
SUBDESIGN ahdl_44_kalkulyator
(
    clk, clrn : INPUT;
    a[7..0]   : INPUT;
    b[7..0]   : INPUT;
    op[1..0]  : INPUT;
    eq        : INPUT;
    result[7..0] : OUTPUT;
)
VARIABLE
    reg[7..0] : DFF;
    eqp       : DFF;
    y[7..0]   : NODE;
BEGIN
    reg[].clk = clk; reg[].clrn = clrn;
    eqp.clk   = clk; eqp.clrn   = clrn;
    eqp.d     = eq;

    CASE op[] IS
        WHEN 0 => y[] = a[] + b[];
        WHEN 1 => y[] = a[] - b[];
        WHEN 2 => y[] = a[] & b[];
        WHEN 3 => y[] = a[] # b[];
    END CASE;

    IF eq & !eqp.q THEN
        reg[].d = y[];
    ELSE
        reg[].d = reg[].q;
    END IF;

    result[] = reg[].q;
END;

Пояснения

Фронт кнопки eq детектируется через триггер eqp, чтобы одно нажатие давало одну фиксацию. Расширяется до многоразрядного ввода и индикации.

Инструменты и справочники по теме

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

Что дальше

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