Многофункциональная плата расширения на FPGA (ПЛИС)

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
justontime
Full Member
Сообщения: 264
Зарегистрирован: 10.09.2016,00:06
Откуда: СПб

Вклад в сообщество

Многофункциональная плата расширения на FPGA (ПЛИС)

Сообщение justontime » 17.05.2017,13:11

После того, как я поигрался со своим тестовым проектом, неожиданно появилось желание сделать что-то общественно-полезное, но при этом в интересующем меня ключе - на базе FPGA.

Вообще, конечно, что такое FPGA (или ПЛИС по-русски) лучше читать на специализированных ресурсах, но совсем на пальцах (если кто не знает) - это микросхема, внутренности которой можно практически произвольным образом менять путем изменения прошивки. Причем ресурсы современных FPGA такие, что туда с потрохами может поместиться целиком что-то типа PC XT со всей периферией. Единственное, обычно внутренняя RAM ограничена, особенно на младших моделях FPGA, поэтому в таких случаях ставят внешнюю память.
Прошивки для FPGA пишутся на языках с общим именем HDL, при этом в интернете есть куча готовых модулей или заготовок, на базе которых можно реализовать все, что придет в голову (если нет желание писать с нуля)

Хотелось бы понять, будет ли интересно для общественности 8-битная (принципиально хочу, чтобы работало с ISA 8) карта, в которой будет, например:

- CF слот (IDE CF)
- IDE разъем
- видеоадаптер (практически любой)
- расширение памяти (как основной, так и EMS)
- что-то для аудио (Covox делается за 5 минут программирования плюс микросхема ЦАП, но что-то типа Sound Blaster'а вызовет проблемы - я не знаю готовой реализации SB на HDL, а сам написать не потяну. Можно, конечно, поставить пару специализированных микросхем и сделать Adlib / CMS, но это уже не очень элегантное решение).
- контроллер дисковода однозначно потребует установки дополнительной специализированной микросхемы
- индикатор POST кодов
- почти все (в рамках разумного), что придет в голову

Вообще, рамки проекта ограничиваются следующим:
- наличие места под разъемы, особенно те, которые должны торчать наружу. Я с удивлением обнаружил, что после установки разъема для CF карты реально остается место только еще под один небольшой разъем (максимум, VGA). Понятно, что IDE наружу выводить не нужно, но вот с остальным могут быть проблемы...
- наличие желающих написать отсутствующие модули на HDL. В принципе, прелесть FPGA в том, что продукт можно допиливать постепенно, без модификации железа. Например, сейчас у меня написан только CGA контроллер, да и то не совсем полноценный. Но ничто не мешает либо написать свой, либо адаптировать уже имеющийся VGA контроллер (например).

Собственно говоря, хотелось бы услышать мнение общественности по вышенаписанному...

Разъяснение - данная деятельность для меня является (одним из многих других) развлечением, причем далеко не основным. Соответственно, никаких обязательств с точки зрения разработки и сопровождения моих устройств я на себя не беру вообще ни в какой форме. В большинстве случаев, если проект более-менее приведен в порядок, я выкладываю все материалы по нему в открытый доступ, и не более того. Никаких попыток "коммерции" (типа продажа готовых устройств или частей для изготовления) с моей стороны никогда не будет. При этом желающие (если таковые найдутся из-за специфики проектов) могут свободно пользоваться моими наработками в своих "коммерческих" целях (желательно, но необязательно ссылаясь на меня).

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

Сообщение Tronix » 17.05.2017,14:27

Хотелось бы уйти от CF в сторону SD. Потому что CF сейчас достать уже трудновато и цены не бюджетные. Конечно, есть китайские переходники IDE->SD, но это отдельный девайс. У меня так оно и работает, XT IDE и дальше через переходник SD. Но хочется нативно SD. Но ставить для этого MAX10 - из пушки по воробьям, я думаю в EPM7064 простой parralel bus -> spi конвертер со свистом влезет. А еще лучше и дешевле какой-нибудь EPM3032, там и логикшифтеров не надо - оно толеранто к 5V TTL которые на ISA и 3.3V, которые на SD. Ну и схемка в ней навроде такой от Ориона:

Изображение


А для MAX10 - да, нужно all-in-one звуковуху делать, чтоб содержала в себе все известные за историю , CMS, Innovation, Adlib, Sound Blaster и Гусь конечно. Переключаться с звуковухи на звуковуху должна програмно -)

justontime
Full Member
Сообщения: 264
Зарегистрирован: 10.09.2016,00:06
Откуда: СПб

Вклад в сообщество

Сообщение justontime » 17.05.2017,14:39

Tronix писал(а):Хотелось бы уйти от CF в сторону SD
Так у меня в XTC3 SD давно сделан, только BIOS допиливать нужно - я сляпал под конкретный образ диска, который у меня был (нет нормального пересчета CHS - LBA). А CF мне понравился тем, что:
1. Есть готовый, вроде нормально работающий BIOS
2. Все равно IDE контроллер может понадобиться
Tronix писал(а):Но хочется нативно SD. Но ставить для этого MAX10 - из пушки по воробьям
Так никто не говорит, что плата должна только одну функцию выполнять - наоборот, я как раз и хочу услышать идеи, что туда можно напихать (с учетом высказанных мною в первом сообщении ограничений).


Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

Сообщение Tronix » 17.05.2017,21:28

justontime писал(а):Так у меня в XTC3 SD давно сделан, только BIOS допиливать нужно
Ну так приведите схему, я же спрашивал у вас на недо-пс, но ответ получил "образный". Можно в виде схемы это получить? Напишем свой BIOS. говно делов. Только хочется чтоб байт реально сдвигался в обе стороны без задержек.

Anonymous1
Advanced Member
Сообщения: 2727
Зарегистрирован: 22.11.2011,09:41
Откуда: Москва(Россия)

Вклад в сообщество

Сообщение Anonymous1 » 17.05.2017,21:32

justontime писал(а):принципиально хочу, чтобы работало с ISA 8
Интересно было бы платку наоборот иметь, чтоб не современные фичи в ISA8 подключать, а в pci-express древние устройства...

justontime
Full Member
Сообщения: 264
Зарегистрирован: 10.09.2016,00:06
Откуда: СПб

Вклад в сообщество

Сообщение justontime » 17.05.2017,21:51

Tronix писал(а):Ну так приведите схему, я же спрашивал у вас на недо-пс
Так там даже два варианта я давал - на дискретных элементах в схеме PC1-88 и на VHDL в исходниках XTC3.
На VHDL прикольнее будет - я там сделал блочные чтение/запись, поэтому скорость приличнее получается.
Но вообще с SD картами есть некая проблема - по хорошему, для нормальной скорости, их нужно подключать через родной интерфейс (а не через SPI), но описание этого интерфейса дается только зарегистрированным разработчикам. Я его в открытом доступе так и не нашел (возможно, плохо искал).
Кстати, если беретесь написать приличный BIOS для SD-карты, то я могу специально под это сделать максимально простой адаптер...

justontime
Full Member
Сообщения: 264
Зарегистрирован: 10.09.2016,00:06
Откуда: СПб

Вклад в сообщество

Сообщение justontime » 17.05.2017,22:00

Anonymous писал(а):Интересно было бы платку наоборот иметь, чтоб не современные фичи в ISA8 подключать, а в pci-express древние устройства...
Такое устройство по сложности будет сравнимо с материнской платой XT, если не сложнее. Кроме того, в большинстве случаев я даже не представляю, зачем это - какой софт и под какой ОС это будет использовать ?

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

Сообщение Tronix » 17.05.2017,22:15

Спасибо, возможно просто был не внимателен, изучу завтра на свежую голову. Пока не совсем понимаю про "блочную чтение/запись", и как это влияет на скорость пересылки байта через ISA8. В моем понимании - хоть считай сразу всю SD в RAM плисины, быстрее чем побайтно по шине не передашь. Или DMA, но я с ним не очень дружу.

По поводу скорости - хендшейк по традиции нужно произвести на 400кГц. Дальше парсить ответ карты и на современных можно до 20-40МГц. Это речь о SPI все идет. Может XT на 4.7MHz через шину прокачать такую скорость? - конечно нет. Так и зачем запариваться насчет родного SD и-фейса? SPI для XT - за глаза. Главное не дергать самому ногами- послал байт на ШД, девайсина его последовательно передала и вернула с следующим тактом SPI ответ. Остальное делает бивис.

Да я сам такую железку хочу сделать, на упомянутой выше EPM3032 и вышеприведенной схемой. Пока времени нет (дача/лопата/копать/сажать). Чтоб на плате три микросхемы - epm3032 (можно в TFQP), 555АП6 и ПЗУ. Ну и еще LDO 1117 на 3.3V. И держатель SD.

justontime
Full Member
Сообщения: 264
Зарегистрирован: 10.09.2016,00:06
Откуда: СПб

Вклад в сообщество

Сообщение justontime » 17.05.2017,22:24

Tronix писал(а):555АП6
А это зачем ?

Аватара пользователя
Tronix
Advanced Member
Сообщения: 3625
Зарегистрирован: 15.01.2008,11:00
Откуда: Москва

Вклад в сообщество

Сообщение Tronix » 17.05.2017,22:34

justontime писал(а): А это зачем ?
Ну перестраховка, чтоб ПЗУ сильно ШД/ША не садила. Хорошо, если это будет CMOS какое-нить, а если РФ6 - то афаик буферок не помешает. Но надо чтить этикетки что там у них по нагрузочной, а мне лениво, поэтому проще АП6 все-таки поставить. Хуже не будет, а не повредит. Тем более копейки стоит, не чета max10 -)

Аватара пользователя
alecv
Advanced Member
Сообщения: 6993
Зарегистрирован: 05.10.2004,11:13
Откуда: Санкт-Петербург
Контактная информация:

Вклад в сообщество

Сообщение alecv » 17.05.2017,22:37

SPI есть для 6502 в исходниках VHDL.
Только надо фазу Ф2 оторвать в исходниках.
http://6502.org/users/andre/spi65b/index.html

Ответить