Minimig

Из Википедии, бесплатной энциклопедии

Minimig 120×120 мм (форм-фактор Nano-ITX)[1]

Minimig (сокращение от Mini Amiga) — открытое аппаратное обеспечение, реализующее ПК, совместимый с Amiga 500 на базе ППВМ (FPGA).

Проект Minimig был начат приблизительно в январе 2005 года как концепт голландского инженера-электронщика Дэнниса ван Веерена (Dennis van Weeren). Он задумывал Minimig как ответ на дискуссию происходившую в сообществе пользователей ПК Amiga о принципиальной возможности обратного реверсинга чипсета OCS и его воспроизведения (эмуляции его работы) на базе ППВМ. Исходные коды проекта и принципиальные электрические схемы были опубликованы автором 25 июля 2007 года под лицензией GPLv3.

9 февраля 2008 ACube Systems анонсировала начало продаж окончательной версии материнской платы Minimig v1.1 стоимостью 138 евро.[2]

Прототип[править | править код]

Прототип проекта Minimig был основан на комплекте Xilinx Spartan-3 Starter Kit и воспроизводил чипсет Original Amiga Chipset (использовавшийся в младших моделях семейства ПК Amiga) путём его синтеза в ППВМ. Две печатные платы подсоединялись в порты расширения комплекта разработчика ППВМ. Первая из них содержала в себе процессор MC68000 требующий питание 3,3 В. Вторая плата имела MMC-слот с маленьким микроконтроллером PIC используемым как контроллер дисков с поддержкой файловой системы FAT16 и «на лету» выполняющий декодирование файлов образов дискет Amiga в формате .ADF.

     VGA-+-PS2  (джойстик и т.д.)          | ЦП <-> ППВМ <-> Микроконтроллер <-> Флеш-память          |         ОЗУ 

Прототип был представлен на одной из встреч сообщества пользователей Amiga[3] и загружал большинство программ существующих для Amiga 500, хотя ошибки в эмуляции также присутствовали. Ван Веерен по личным мотивам использовал язык Verilog вместо VHDL на IBM PC-совместимом ПК, а также ПО Xilinx Webpack для разработки исходного кода проекта.

Ряд пользователей предложили упаковать Minimig в устройство аналогичное компьютеру в корпусе джойстика C64 Direct-to-TV и предназначенное для лиц желающих играть в старые игры на Amiga или запускать старое ПО. Однако единичная версия печатной платы нового прототипа разрабатывалась без учёта этих пожеланий, а также произошёл уход от инструментария предоставляемого Xilinx Spartan-3 Starter Kit .

Цели, преследовавшиеся проектом[править | править код]

  • Запуск специфичного ПО для Amiga позволяющего конвертировать файлы на другие платформы;
  • Запуск ПО доступного только на Amiga;
  • Запуск игр для Amiga;
  • Получение опыта разработки на базе ППВМ с использованием языка Verilog;
  • Принесение пользы сообществу;
  • Доказательство принципиальной возможности проекта;
  • Получение возможности создания новых игр которые могли бы воспользоваться новыми возможностями Minimig (быстрой памятью, большим объёмом памяти для спрайтов, палитры и т. д.), при этом сохранив полную обратную совместимость с классической Amiga.

Основные характеристики[править | править код]

Платформа[править | править код]

Для платы Minimig rev1.0:

  • ППВМ Xilinx Spartan-3 (XC3S400-4PQ208C) использован примерно на 82 %.
  • Процессор Freescale MC68SEC000, 3,3 В, на частоте 7,09379 МГц.
  • Шины Amiga ChipRAM и FastRAM объединены в единую синхронизированную шину с частотой 7,09379 МГц.
  • 2 Мб 70-нс асинхронной SRAM организованы как 2× 524288 × 16-битные банки.
  • MCU PIC 18LF252-I/SP[4] (альтернативой мог бы стать Atmel AVR) осуществляет эмуляцию работы с диском FAT16 и управляет загрузкой конфигурации ППВМ и Kickstart. Эмуляция дисковода Amiga происходит «на лету» чтением данных из файлов образов дискет Amiga в формате .ADF
  • MMC-память используется для хранения конфигурации ППВМ, kickstart и ПО эмулируемого компьютера.
  • LED-дисплей отображающий дисковую активность, состояние питания и состояние Amiga (не реализованного в Minimig audio-фильтра). Светодиод состояния Amiga может менять свой статус в зависимости от интенсивности использования аудиофильтра.
  • ВидеоЦАП содержит 4 резистора для каждого из цветов: красного, зелёного и синего (4 бита/цвет) и осуществляет вывод на разъём VGA.[5]
  • Звук от 8-битного дигитайзера с сигма-дельто конвертором и 2 аналоговыми фильтрами подряд.
  • +5V БП обеспечивает питание платы (~200 mA).

Возможности ввода-вывода и подключения периферии[править | править код]

Эмулируется[править | править код]

  • Процессор типа Motorola 68000;
  • OCS/ECS PAL & NTSC видео.
  • 512 Кб SRAM для Kickstart используется как ПЗУ.
  • 512 Кб SRAM SlowRAM.[6]
  • 1024 Кб SRAM ChipRAM.
  • OSD-врезка позволяет выбрать образ диска представленный файлом в формате .ADF и загрузить его с MMC-карты используя клавиатуру или джойстик.

История создания[править | править код]

Дата Событие
6 марта 2005 Старт проекта. Программирование на языке Verilog.
5 декабря 2005 Проект анонсирован для широких масс.
Лето 2006 Закончено программирование на языке Verilog.
11 июня 2006 Опубликована фотография принципиальной схемы платы v1.0.
15 октября 2006 Закончена принципиальная схема платы v1.0.
Июнь 2007 Невыполненное обещание публикации исходных кодов.
4 июля 2007 Последнее редактирование исходников (ядра).
13 июля 2007 Создаётся веб-сайт для проекта.
24 июля 2007 Исходные коды Minimig опубликованы на официальном веб-сайте.

Недостатки[править | править код]

  • Необходимость использования файла содержащего бинарную копию Kickstart настоящей Amiga 500 защищённого копирайтом. Свободная версия этого ПО существует в проекте AROS, но не является полностью совместимой.
  • Микропрограмма Minimig имеет ограничения (проистекающие из использования FAT16): один корневой каталог и имена файлов, отвечающие правилу 8.3.

Инструментарий автора проекта[править | править код]

  • Компьютер: Shuttle barebone, Prescott 3 ГГц, 1 Гб ОЗУ,
  • ПО: Xilinx Webpack версии 6.3.03i (2007-07-22 9.1). Время чтения исходного конфигурационного файла .bit = 2 минуты. Кеш и скорость доступа к памяти достаточна для Synthesis + Place & Route Silicon compiler в ПО, генерирующем ППВМ.

Перспективы развития[править | править код]

  • Возможна доразработка для поддержки более быстрого процессора, чипсетов ECS и AGA, жёсткого диска, Ethernet, маленького RISC-ядра для расширения функций AROS и т. д.
  • Использование свободной замены для Kickstart (например, AROS).[7]
  • Сетевая версия избавила бы от необходимости замены флеш-памяти.

Обновления[править | править код]

Поддержка Ввода/Вывода[править | править код]

3 сентября 2008 года новое ядро ППВМ включило исправление обнаруженных ошибок в поддержке ввода-вывода, а также некоторые исправления в графике.[8]

Замена контроллера PIC на ARM[править | править код]

22 декабря 2008 года всем желающим была анонсирована замена плат с микроконтроллером PIC (MCU). Такая замена позволяет использовать жёсткий диск и 4 дисковода (вместо 2) и добавляет поддержку записи.[9] Ядро ППВМ остаётся при обновлении тем же самым, меняется только микроконтроллер PIC на новый ARM. Обновление также позволяет выбирать увеличение частоты процессора с 7,09 до 28,36 МГц, что однако не рекомендуется, так как вся нагрузка ложится на ядро (и так работающее с чипом 68SEC000 на частоте 16 МГц).[10]

Поддержка винчестера доступна в стиле виртуальной A600/A1200, обладающей параллельным ATA-интерфейсом, который в классической Amiga обеспечивался чипом GAYLE. Также, как и у реальной Amiga, возможен разгон до 551 килобайт/сек[11] после незначительной модификации интерфейсу. По умолчанию же возможен трансфер только ~300 Кб/сек.[12]

Дополнительные 2 Мб ОЗУ[править | править код]

22 декабря 2008 года переразводка печатной платы позволила установить другой набор чипов SRAM что дало увеличение ОЗУ до 4 Мб.[9]

Аналогичные проекты[править | править код]

Illuwatar[13], частный энтузиаст-разработчик из Швеции, воспользовался правами предоставляемые свободной лицензией и воспроизвёл Minimig в форм-факторе Mini-ITX. Его материнская плата помещается в стандартных корпусах Mini-ITX и имеет размеры 17 × 17 см. Часть разъёмов портов в этой версии Minimig были перемещены на другую сторону материнской платы чтобы выдержать требования стандарта Mini-ITX в части размеров.

В сентябре 2008 года, компания ACube Systems анонсировала начало производства материнской платы Minimig v1. Маркетинговые материалы компании описывают процессор как имеющий частоту 16 МГц, однако в действительности он работает на частоте 7,09379 МГц что соответствует частоте процессора настоящей Amiga 500.

11 октября 2006 года Йенс Шёнфелд (Jens Schönfeld) из компании Individual Computers продемонстрировал, что они работали над коммерческим Amiga-совместимым ПК, свёрнутым в ППВМ, весь 2006 год, и проект под рабочим названием «Clone-A» получился в целом аналогичным Minimig. Однако, в отличие от Minimig, материнская плата Clone-A была разработана с привлечением команд разработчиков из третьих фирм и потребовала в производстве очень мощного логического анализатора. Получившаяся система использовала клоны чипов на замену известных чипов CIA, Paula, Gary, Agnus и Denise использованных в настоящей классической Amiga производства Commodore. Также использовался оригинальный процессор производства Motorola. Финальные версии чипов представленные на CeBIT поддерживали чипсет AGA и рабочий параллельный порт для поддержки игр для 4 игроков.[14]

Wolfgang Förster[15] несколько раньше завершил проект Atari ST, свёрнутой в ППВМ.

Natami (расшифровывается как Native Amiga, что значит «настоящая Amiga», а также созвучно женскому имени Наталия) — проект Amiga-совместимого ПК с закрытыми исходниками, позволяющего пользователям запускать ПО для классической Amiga, а также позиционируемый как приведение дизайна классической Amiga к современным стандартам.

Во вводных материалах по Natami рассказывается об использовании нового 3D-ядра служащего для ускорения трёхмерной графики, а также процессора известного как «68050» и являющегося «довеском» по отношению к семейству процессоров m68k. Основная черта «68050»: он более совместим с 68000, чем с 68060, однако имеет более развитую систему команд и работает на более высоких частотах. Используя технологию ППВМ, создатели Natami стремились воссоздать следующее поколение классических ПК Amiga которое по-мысли команды разработчиков Commodore начала бы производить если бы не обанкротилась в 1994 году.

Примечания[править | править код]

  1. Minimig rev 1.0 PCB. Архивировано из оригинала 9 апреля 2012 года.
  2. «Minimig available» announcement by Acube Systems. Дата обращения: 16 октября 2009. Архивировано 5 октября 2011 года.
  3. HCC Commodore GG meet. Архивировано из оригинала 28 сентября 2007 года.
  4. PIC18F252. Архивировано из оригинала 9 апреля 2012 года.
  5. Minimig schematics v1 Page3
  6. Photo Album. Архивировано из оригинала 9 апреля 2012 года.
  7. AROS Kickstart ROM Replacement bounty (Phase II) Архивировано 25 сентября 2008 года.
  8. News. Архивировано из оригинала 9 апреля 2012 года.
  9. 1 2 Forum. Архивировано из оригинала 9 апреля 2012 года.
  10. YouTube — ARM Controller for the Minimig. Дата обращения: 2 октября 2017. Архивировано 7 апреля 2016 года.
  11. youtube.com. Дата обращения: 2 октября 2017. Архивировано 7 апреля 2016 года.
  12. Forum. Архивировано из оригинала 9 апреля 2012 года.
  13. Mini-ITX MiniMig Архивировано 18 апреля 2009 года.
  14. Individual Computers at CeBit, Clone-A presentation on 2007-03-31 Архивная копия от 27 сентября 2007 на Wayback Machine 2007-03-09 amigaworld.net
  15. S Like Suska. Дата обращения: 17 октября 2009. Архивировано 9 сентября 2009 года.

Ссылки[править | править код]