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).

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

  • Spare 3x обычный I/O из ППВМ (GPIO)
  • JTAG для программирования микросхем (TMS, TDI, TDO, TCK);
  • Последовательный порт RS-232;
  • 2 порта для джойстиков типа Atari 2600 DE-9M;
  • VGA видеоразъём типа DE-15F (может выводить PAL-совместимые сигналы при подсоединении к SCART);
  • Слот для MMC флеш-карты памяти;
  • PS/2-совместимые интерфейсы для клавиатуры и мыши;
  • 3,5 мм аудиоджеки;
  • 2,1 мм джек для +5V БП.

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

  • Процессор типа 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 году.

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

Ссылки[править | править вики-текст]