Minimig
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Minimig_rev1.jpg/300px-Minimig_rev1.jpg)
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 и ПО эмулируемого компьютера.
- 3× 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 году.
Примечания
- ↑ Minimig rev 1.0 PCB . Архивировано из оригинала 9 апреля 2012 года.
- ↑ «Minimig available» announcement by Acube Systems . Дата обращения: 16 октября 2009. Архивировано 5 октября 2011 года.
- ↑ HCC Commodore GG meet . Архивировано из оригинала 28 сентября 2007 года.
- ↑ PIC18F252 . Архивировано из оригинала 9 апреля 2012 года.
- ↑ Minimig schematics v1 Page3
- ↑ Photo Album . Архивировано из оригинала 9 апреля 2012 года.
- ↑ AROS Kickstart ROM Replacement bounty (Phase II) Архивировано 25 сентября 2008 года.
- ↑ News . Архивировано из оригинала 9 апреля 2012 года.
- ↑ 1 2 Forum . Архивировано из оригинала 9 апреля 2012 года.
- ↑ YouTube — ARM Controller for the Minimig . Дата обращения: 2 октября 2017. Архивировано 7 апреля 2016 года.
- ↑ youtube.com . Дата обращения: 2 октября 2017. Архивировано 7 апреля 2016 года.
- ↑ Forum . Архивировано из оригинала 9 апреля 2012 года.
- ↑ Mini-ITX MiniMig Архивировано 18 апреля 2009 года.
- ↑ Individual Computers at CeBit, Clone-A presentation on 2007-03-31 Архивная копия от 27 сентября 2007 на Wayback Machine 2007-03-09 amigaworld.net
- ↑ S Like Suska . Дата обращения: 17 октября 2009. Архивировано 9 сентября 2009 года.
Ссылки
- Официальный дискуссионный форум MiniMig Архивная копия от 27 мая 2010 на Wayback Machine (англ.)
- Группа в Yahoo посвящённая дочерным проектам Altera DE1 & DE2 (англ.)
- Minimig Wiki Архивная копия от 20 июля 2011 на Wayback Machine (англ.) со списком совместимого ПО Архивная копия от 3 марта 2009 на Wayback Machine
- Сайт содержащий материалы проекта Minimig (англ.)
- Комплект разработчика Xilinx ISE Webpack (англ.)
- Проект AROS по разработке замещения микропрограммы Kickstart (англ.) (находится в фазе II)
- Анонс проекта MiniMig (англ.)
- Описание проекта MiniMig в электронном журнале Jurassic Pack #17 (англ.)
- Неофициальная версия Mini-ITX (англ.)
- Неофициальный Mini Minimig (англ.)
- Обзор MiniMig (фр.)
- Первый обзор (часть 1) выпускаемого ACube Minimig rev 1.1 плюс список совместимого ПО, февраль 2008 и Часть 2 (англ.)
- Loriano Pagni представляют первый промышленный корпус для Minimig (англ.) июль 2008