Задача
Преобразовать 8-разрядное двоичное число (0…255) в три десятичные тетрады.
Тип схемы и среда
Комбинационная схема разложения на десятичные разряды.
Алгоритм работы
Сотни = bin/100, десятки = (bin/10) mod 10, единицы = bin mod 10. Разложение даёт три BCD-тетрады для вывода на индикатор.
Код на AHDL
% Проект 42: двоично-десятичный преобразователь 8 бит (double dabble) % SUBDESIGN ahdl_42_bin2bcd ( bin[7..0] : INPUT; hund[3..0] : OUTPUT; tens[3..0] : OUTPUT; ones[3..0] : OUTPUT; ) VARIABLE h[3..0], t[3..0], o[3..0] : NODE; BEGIN h[] = 0; t[] = bin[] DIV 10 MOD 10; o[] = bin[] MOD 10; hund[] = bin[] DIV 100; tens[] = t[]; ones[] = o[]; END;
Пояснения
Арифметика деления/остатка опирается на средство синтеза. Классическая аппаратная альтернатива без деления — алгоритм double dabble (сдвиг с добавлением 3).
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_42_bin2bcd.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.