1
Железо / Mister project
« : 21 Августа 2026, 11:20:55 »
Я не только программист и разработчик эмуляторов, но и разработчик железа. Я прекрасно знаю, как работает FPGA. И уверен, что не путаюсь в терминах. Разница не в транзисторах и VM. Разница в том, что Mega Drive 2 сделан на базе оригинальной спецификации, на основе доработанной схемы, как развитие основы. А программные эмуляторы и FPGA-реплики сделаны с (частичной) утратой этого знания. В случае с любительскими эмуляторами — на основе догадок, измерений, декапов, анализа косвенных признаков. И результат их работы — по определению имитация; догадки в основе = имитация, подражание. Эмуляция — синоним этих слов. И я не называю FPGA эмулятором, я называю это FPGA-репликами. Но каким бы реальным железо не было (можно подумать, ПК или RPi в конечном счёте не реальны), оно занимается имитацией. То есть эмуляцией. И разделение эмуляции на программную и аппаратную — это совершенно нормальная практика, появившаяся в 60-х. Собственно, изначально «эмуляцией» называли аппаратное решение, чтобы отличать от программного, которое тогда называли «симуляцией». Потом, как водится, у любителей всё перевернулось.
Дальнейшие попытки вывернуть сказанное до абсурда показывают проблемы в понимании. К программному эмулятору реальные устройства подключить затруднительно, потому что он не работает в реальном времени. В нём нет реальных сигналов и таймингов шины, только верхняя логика. Он работает с максимальной скоростью, отсчитывая такты в программном счётчике и синхронизируя эмулируемые устройства по нему, а лишнее время ждёт. Если сделать программный эмулятор всей архитектуры, но взять реальный процессор, соединить его с программным эмулятором будет крайне сложно. Хорошие FPGA-реплики опускаются до этого уровня, воспроизводят логику работы шины, все тайминги. К ним можно подключить внешние устройства, хоть процессор, хоть что угодно, причём не зная заранее, что. Например, хорошая реплика Сеги с возможностью подключения картриджа уже позволяла бы запускать Paprium задолго до его появления. Но если ей потребовались бы доработки, это явно указывает на эмуляцию.
Многие ядра для FPGA игнорируют оригинальную архитектуру и тайминги, и воспроизводят не детальное внутреннее устройство, а конечный логический результат, как программные эмуляторы. Некоторые действительно честно пытаются воспроизвести оригинальную логику на самом низком уровне, ориентируясь по транзисторным схемам, полученным из декапа. Но физика там совсем другая, другая технология и процесс, другие логические уровни. Для информации, во всём 6502, который изначально был разработан на транзисторном уровне, 4500 транзисторов, тогда как в одном блоке современной FPGA порядка тысячи транзисторов. В среднем FPGA-ядре 6502 порядка 700 блоков, то есть на два порядка больше реальных транзисторов, чем в оригинале — говорить про такую же физику процесса просто не приходится.
Дальнейшие попытки вывернуть сказанное до абсурда показывают проблемы в понимании. К программному эмулятору реальные устройства подключить затруднительно, потому что он не работает в реальном времени. В нём нет реальных сигналов и таймингов шины, только верхняя логика. Он работает с максимальной скоростью, отсчитывая такты в программном счётчике и синхронизируя эмулируемые устройства по нему, а лишнее время ждёт. Если сделать программный эмулятор всей архитектуры, но взять реальный процессор, соединить его с программным эмулятором будет крайне сложно. Хорошие FPGA-реплики опускаются до этого уровня, воспроизводят логику работы шины, все тайминги. К ним можно подключить внешние устройства, хоть процессор, хоть что угодно, причём не зная заранее, что. Например, хорошая реплика Сеги с возможностью подключения картриджа уже позволяла бы запускать Paprium задолго до его появления. Но если ей потребовались бы доработки, это явно указывает на эмуляцию.
Многие ядра для FPGA игнорируют оригинальную архитектуру и тайминги, и воспроизводят не детальное внутреннее устройство, а конечный логический результат, как программные эмуляторы. Некоторые действительно честно пытаются воспроизвести оригинальную логику на самом низком уровне, ориентируясь по транзисторным схемам, полученным из декапа. Но физика там совсем другая, другая технология и процесс, другие логические уровни. Для информации, во всём 6502, который изначально был разработан на транзисторном уровне, 4500 транзисторов, тогда как в одном блоке современной FPGA порядка тысячи транзисторов. В среднем FPGA-ядре 6502 порядка 700 блоков, то есть на два порядка больше реальных транзисторов, чем в оригинале — говорить про такую же физику процесса просто не приходится.
.