PC XT на новый лад
-
- Full Member
- Сообщения: 264
- Зарегистрирован: 10.09.2016,00:06
- Откуда: СПб
-
Вклад в сообщество
PC XT на новый лад
Не уверен, в какой раздел правильнее разместить тему - вроде и о XT разговор, но совсем уж на современной базе...
Неоднократно видел разговоры о том, как хорошо было бы сделать нечто подобное, но почти всегда это была чистая маниловщина - кроме разговоров, дело дальше не двигалось. Мне же больше интересно что-то действительно сделать, в результате родился проект XTC3 - аналог PC XT со всеми настоящими "большими" микросхемами, но с мелочевкой, запиханной в FPGA Cyclone III.
Предвосхищая вопросы, отмечу некоторые моменты сразу:
- проект практически не ограничен с точки зрения запихивания внутрь FPGA разных штучек - в настоящее время работает самый минимум, но охватывающий всю систему
- некоторые вещи, которые хотел сразу сделать (например, слот для CF карты, чтобы сразу IDE диск получился), не поместились по банальной причине отсутствия свободных пинов FPGA
- только один ISA слот - размеры моей печки для пайки не позволяли сделать плату больше (хотя сейчас очень жалею - нужно было постараться и еще один поставить)
И еще (просто устал уже слышать одни и те же вопросы):
1. Разработка электронных штучек для меня - исключительно хобби, одно из многих других. Никакого профессионального образования в этой области я не имею, никогда ничем подобным в качестве работы (зарабатывания денег не занимался).
2. Меня НЕ интересует практическое применение моих проектов. Т.е. вообще никак не интересует - ни с точки зрения зарабатывания денег, ни с точки зрения использования мною этих проектов для каких-то полезных целей.
3. Исходя из п.2, единственное, на мой взгляд, что может быть полезного хоть для кого-то - если что-то из моих разработок будет использовано еще кем-то для своих (любых законных) целей
4. Исходя из п. 1 - 3, я буду выкладывать в свободный доступ всю информацию по проектам - схемы, платы, исходники прошивок и т.д. Единственное, я предпочитаю делать это на этапе, когда уже проект приведен хоть в какой-то порядок
5. Большая просьба - если есть какие-то вопросы не совсем уж личного/индивидуального плана - задавайте их в теме, а не пишите личные сообщения...
Итак, есть следующее устройство (надеюсь, не будете слишком ругать за большой размер картинки - так лучше все нюансы видны):
Внутри FPGA в настоящий момент сделана практически 100% архитектура PC XT. В качестве BIOS используется "родная" прошивка XT, за исключением обработчика INT 13 - я эмулирую диск на SD-карте, поэтому INT 13 написан свой.
Из дополнительного - так как на плате есть скоростной видео-ЦАП, то внутри FPGA также сделан CGA-контроллер, но с выводом на VGA монитор. Т.е. с точки зрения программ это CGA, но чисто физически сигнал на монитор уходит в режиме VGA 640х400, точки просто удваиваются.
Естественно, ничто не мешает отключить эти расширения, и вставить в слот соответствующий контроллер (диск, видео или вообще что-угодно)
Из плат расширения я пока потестировал два разных VGA адаптера и два SoundBlaster'а (тоже разных) - ничего другого у меня пока нет. Никаких отличий от настоящей XT ни с одной из опробованных программ не заметил.
Что со всем этим делать дальше - не уверен. Проект планировался, как проверка идеи (в частности, сопряжения 3.3-вольтовой FPGA с 5-вольтовыми остальными микросхемами с помощью резисторов/диодов). Были мысли потом взять FPGA с бОльшим количеством выводов, добавить все остальные хотелки и развести плату какого-то стандартного размера, чтобы можно было установить в обычный корпус. Но, честно говоря, после того, как все заработало, энтузиазм как-то угас - самая интересная часть сделана, а на рутину особо времени и настроения нет...
[update]
Так как уже несколько раз вижу повторяющиеся вопросы, то ниже привожу список того, что принципиально рассматривал, но по разным причинам (в первую очередь, ограничение размера платы и отсутствие свободных пинов FPGA) не сделал в этой версии (соответственно, если руки дойдут до нового проекта, то там оно должно быть в дополнение к уже имеющемуся):
Основной список (я знаю, как это делать, т.е. вопрос только найти время на это)
- плата под какой-то стандартный корпус (скорее всего, из ATX серии, если ISA-шные платы расширения влезают в эти корпуса - еще не смотрел)
- минимум (и, наверное, максимум) 3 ISA слота. Слишком много почти гарантированно начнут плохо работать из-за нагрузочной способности, которую мне лень считать. Ставить еще и шинные формирователи точно лень. Думаю, 3 слота должно хватить для любого разумного применения (особенно с учетом того, что на самой плате тоже многие интерфейсы будут)
- разъем под CF карту - сразу внутри FPGA делается IDE интерфейс для эмуляции IDE диска на CF карте
- IDE разъем - чтобы можно было настоящие жесткие диски подключать
- панелька под сопроцессор (просто чтобы было)
- пару 7-сегментных индикаторов - несмотря на все SignalTap'ы и прочие анализаторы/осциллографы, очень много отладки делал с помощью двух светодиодов на имеющейся плате. Наличие пары нормальных индикаторов очень облегчило бы процесс
- пара блоков DIP switch'ей - оперативное задание конфигурации и т.д. Также оперативное отключение динамика - иногда задалбывает
- разъем для подключения к телевизору (скорее всего, SCART)
- RTC/CMOS
- порты (параллельнй, последовательный, джойстик). Вот с этим не уверен - делаются элементарно, но нужны ли хоть кому ?
Дополнительный список (пока до конца не разобрался с предметной областью)
- микросхема контроллера дисковода
- что-то для звука
- USB-интерфейс для клавиатуры/мыши
Неоднократно видел разговоры о том, как хорошо было бы сделать нечто подобное, но почти всегда это была чистая маниловщина - кроме разговоров, дело дальше не двигалось. Мне же больше интересно что-то действительно сделать, в результате родился проект XTC3 - аналог PC XT со всеми настоящими "большими" микросхемами, но с мелочевкой, запиханной в FPGA Cyclone III.
Предвосхищая вопросы, отмечу некоторые моменты сразу:
- проект практически не ограничен с точки зрения запихивания внутрь FPGA разных штучек - в настоящее время работает самый минимум, но охватывающий всю систему
- некоторые вещи, которые хотел сразу сделать (например, слот для CF карты, чтобы сразу IDE диск получился), не поместились по банальной причине отсутствия свободных пинов FPGA
- только один ISA слот - размеры моей печки для пайки не позволяли сделать плату больше (хотя сейчас очень жалею - нужно было постараться и еще один поставить)
И еще (просто устал уже слышать одни и те же вопросы):
1. Разработка электронных штучек для меня - исключительно хобби, одно из многих других. Никакого профессионального образования в этой области я не имею, никогда ничем подобным в качестве работы (зарабатывания денег не занимался).
2. Меня НЕ интересует практическое применение моих проектов. Т.е. вообще никак не интересует - ни с точки зрения зарабатывания денег, ни с точки зрения использования мною этих проектов для каких-то полезных целей.
3. Исходя из п.2, единственное, на мой взгляд, что может быть полезного хоть для кого-то - если что-то из моих разработок будет использовано еще кем-то для своих (любых законных) целей
4. Исходя из п. 1 - 3, я буду выкладывать в свободный доступ всю информацию по проектам - схемы, платы, исходники прошивок и т.д. Единственное, я предпочитаю делать это на этапе, когда уже проект приведен хоть в какой-то порядок
5. Большая просьба - если есть какие-то вопросы не совсем уж личного/индивидуального плана - задавайте их в теме, а не пишите личные сообщения...
Итак, есть следующее устройство (надеюсь, не будете слишком ругать за большой размер картинки - так лучше все нюансы видны):
Внутри FPGA в настоящий момент сделана практически 100% архитектура PC XT. В качестве BIOS используется "родная" прошивка XT, за исключением обработчика INT 13 - я эмулирую диск на SD-карте, поэтому INT 13 написан свой.
Из дополнительного - так как на плате есть скоростной видео-ЦАП, то внутри FPGA также сделан CGA-контроллер, но с выводом на VGA монитор. Т.е. с точки зрения программ это CGA, но чисто физически сигнал на монитор уходит в режиме VGA 640х400, точки просто удваиваются.
Естественно, ничто не мешает отключить эти расширения, и вставить в слот соответствующий контроллер (диск, видео или вообще что-угодно)
Из плат расширения я пока потестировал два разных VGA адаптера и два SoundBlaster'а (тоже разных) - ничего другого у меня пока нет. Никаких отличий от настоящей XT ни с одной из опробованных программ не заметил.
Что со всем этим делать дальше - не уверен. Проект планировался, как проверка идеи (в частности, сопряжения 3.3-вольтовой FPGA с 5-вольтовыми остальными микросхемами с помощью резисторов/диодов). Были мысли потом взять FPGA с бОльшим количеством выводов, добавить все остальные хотелки и развести плату какого-то стандартного размера, чтобы можно было установить в обычный корпус. Но, честно говоря, после того, как все заработало, энтузиазм как-то угас - самая интересная часть сделана, а на рутину особо времени и настроения нет...
[update]
Так как уже несколько раз вижу повторяющиеся вопросы, то ниже привожу список того, что принципиально рассматривал, но по разным причинам (в первую очередь, ограничение размера платы и отсутствие свободных пинов FPGA) не сделал в этой версии (соответственно, если руки дойдут до нового проекта, то там оно должно быть в дополнение к уже имеющемуся):
Основной список (я знаю, как это делать, т.е. вопрос только найти время на это)
- плата под какой-то стандартный корпус (скорее всего, из ATX серии, если ISA-шные платы расширения влезают в эти корпуса - еще не смотрел)
- минимум (и, наверное, максимум) 3 ISA слота. Слишком много почти гарантированно начнут плохо работать из-за нагрузочной способности, которую мне лень считать. Ставить еще и шинные формирователи точно лень. Думаю, 3 слота должно хватить для любого разумного применения (особенно с учетом того, что на самой плате тоже многие интерфейсы будут)
- разъем под CF карту - сразу внутри FPGA делается IDE интерфейс для эмуляции IDE диска на CF карте
- IDE разъем - чтобы можно было настоящие жесткие диски подключать
- панелька под сопроцессор (просто чтобы было)
- пару 7-сегментных индикаторов - несмотря на все SignalTap'ы и прочие анализаторы/осциллографы, очень много отладки делал с помощью двух светодиодов на имеющейся плате. Наличие пары нормальных индикаторов очень облегчило бы процесс
- пара блоков DIP switch'ей - оперативное задание конфигурации и т.д. Также оперативное отключение динамика - иногда задалбывает
- разъем для подключения к телевизору (скорее всего, SCART)
- RTC/CMOS
- порты (параллельнй, последовательный, джойстик). Вот с этим не уверен - делаются элементарно, но нужны ли хоть кому ?
Дополнительный список (пока до конца не разобрался с предметной областью)
- микросхема контроллера дисковода
- что-то для звука
- USB-интерфейс для клавиатуры/мыши
Хорошая весчь получилась. Слот ISA я так понимаю всего один, но в него можно зафигачить "гребенку" на 8 слотов ISA (или на 7) и уже туда устанавливать любые совместимые с ISA карты вплоть до "специальных". А "производительность" эта машина может увеличивать (число операций в секунду) главное чтоб периферия (карты и всё что к ним будет подсоединено) поспевали за ней?
Есть компьютерные завалы от которых (уже НЕ)избавляюсь (и редко) за деньги, по мере их "наступления" на моё жизненное пространство
-
- Full Member
- Сообщения: 264
- Зарегистрирован: 10.09.2016,00:06
- Откуда: СПб
-
Вклад в сообщество
Как я в самом начале писал, слот только один по причине ограниченного размера платы. А так да, вроде особых ограничений на "гребенку" не вижу. Единственное, затрудняюсь оценить нагрузочную способность системы.jugandar писал(а):Слот ISA я так понимаю всего один
Вся структура "материнской платы" внутри FPGA, поэтому никто не мешает сделать прошивку с турбо-режимом - все ограничено только тем, какую максимальную частоту потянет установленный на плате процессорjugandar писал(а):А "производительность" эта машина может увеличивать
Это под 8237 - контроллер DMA. В момент, когда фотографировал, у меня еще ПДП не работал, не успел написать прошивкуpahan писал(а):А пустая кроватка в верхнем правом углу подо что?
-
- Full Member
- Сообщения: 264
- Зарегистрирован: 10.09.2016,00:06
- Откуда: СПб
-
Вклад в сообщество
Да как-то особо не думал. С технической точки зрения, там сложностей вообще нет, и не особо интересно. Соответственно, даже не парился по этому поводуpahan писал(а):А под сопр места на плате не хватило или изначально не предполагался?
Там вроде видно - стоит микросхема памяти на 2М. Внутри FPGA я сделал некий аналог этой EMS карты, только, естественно, на 1М. Драйвер используется оттуда же.pahan писал(а):Памяти 1 Мб или меньше?
В принципе, еще есть некоторое количество памяти внутри FPGA, я ее под BIOS и видеобуфер использую.
Да знания приходят в процессе, было бы желание...La Forge писал(а): Ну почему у меня нет таких знаний
Картинка платы со всеми исправлениями/добавлениями (было несколько ляпов, которые уже пришлось исправлять проводами):
-
- Full Member
- Сообщения: 264
- Зарегистрирован: 10.09.2016,00:06
- Откуда: СПб
-
Вклад в сообщество