Проект начался в феврале 2021 года, когда в Техасе отключили свет, и автор решил создать свой собственный калькулятор на HP-41CV. Любое серьёзное дело проходит этап поиска пути: ты выбираешь направление, врезался в стену и ищешь другое решение. Сначала доказали, что тангенс, логарифм, экспонента и квадратный корень можно вычислять только через сложение, вычитание и умножение. Следующая задача — реализовать это правильно с точностью до 16 знаков. Перед написанием кода нужно было протестировать несуществующее железо, поэтому подготовили фреймворк, который запускает Verilog без изменений в четырёх средах: ModelSim для имитации сигналов, Verilator для моделирования на тактах, Qt для десктопного прототипа и WebAssembly, чтобы приложение работало прямо в браузере. Всё инструменты бесплатные. После подтверждения логики в симуляции заказали первую печатную плату с клавишами и OLED-дисплеем, подключенными к dev-board EP2C5 через шлейф. Железо показало, работает ли тайминг и ведут ли компоненты себя как в даташите. Так как ни один CPU не имеет байт-адресуемую память и режимы адресации для шестнадцатизначной мантиссы, автор спроектировал свой процессор с фиксированными 12-битными инструкциями, моделью Харварда и 14 операциями ALU, включая инструкции корректировки BCD, заимствованные у 8086. Прототипы на C++ позволили перенести проверенную реализацию на ассемблер, протестировав тысячи векторов. Затем написали полный микрокод калькулятора и интерпретатор скриптов, где операции типа y в степени x занимают всего шесть токенов. Отладку проводят через симулятор Qt с точечными прерываниями. В последующем превратили проект из платы на EP2C5 в корпус с впаянным FPGA, 3D-печатной оболочкой и клавишами в желто-красной цветовой схеме HP. Два разъёма для программирования — JTAG для быстрой итерации и Active Serial для постоянного хранилища — позволили быстро проходить цикл редактирования, синтеза и тестирования. Версия 2021 года давала точность около 12 знаков, поэтому в 2025 году перепидали арифметический движок с нуля, добавив правильную работу со старшими разрядами, банковское округление, полный набор тригонометрических функций, регистры памяти STO/RCL и аппаратный генератор случайных чисел. Добавили прерывания просто ради интереса к дизайну логики. Итоговый результат — научный калькулятор из 1593 логических ячеек, что составляет 35% от дешёвого FPGA. Клавиши всё ещё не такие приятные, как у винтажных HP, а перепайка корпуса вызвала нервозность, но радость от результата осталась неизменной.
В Техасе создали научный калькулятор без электричества
18.05.2026 00:26 · hackernews