Hacker News Digest

13 сентября 2025 г. в 14:52 • nand2mario.github.io • ⭐ 190 • 💬 51

OriginalHN

#fpga#verilator#ddr3#sdram#ide#verilog#x86#dos#gowin

486Tang – 486 on a credit-card-sized FPGA board

486Tang — 486 на FPGA размером с банковскую карту.

Вчера выложил на GitHub 486Tang v0.1: порт ядра ao486 (MiSTer) на китайскую Tang Console 138K. Первый запуск x86 вне Altera.

Архитектура

  • SDRAM вместо DDR3: 16-бит, читаем по 32 бита за такт (2× частота).
  • IDE на SD: BIOS, VGA-BIOS, CMOS и IDENTIFY в первых 128 КБ карты; загрузчик FPGA читает их сам.
  • DDR3 отдана только фреймбуферу.

Отладка

  • Verilator: загрузка до DOS за минуту, полные вейвформы.
  • Bochs-BIOS пишет в порт 0x8888; вывод в терминал симулятора и UART.
  • Флаги --sound, --ide для быстрого трассирования подсистем.
  • 90 % багов — новый «клей»; пара сломалась из-за странного поведения синтезатора Gowin.

Производительность

Из коробки — 25 МГц 386-уровня.
Ускоряли:

  1. Разбили сеть сброса (5 000 фан-аут → репликация вручную).
  2. Укоротили путь выборки: в decoder_regs.v вынесли расчёт consume_count из критического пути, добавив регистр.
  3. Проверяли изменения тестом test386.asm.

Цель — 33 МГц 486DX2.