PDA

Просмотр полной версии : Мечта: АГАТ на ПЛИС



LeoN65816
18.09.2016, 13:10
Нашел в сети интереснейшие проекты PC XT на новый лад (http://www.phantom.sannata.ru/forum/index.php?t=22715&a=stdforum_view&o=&st=0) и Орион на Альтере с настоящим ВМ80А (http://www.nedopc.org/forum/viewtopic.php?f=94&t=10688). Суперпроекты!
Попытался заинтересовать автора нашей архитектурой - увы, не получилось...
Еще теплится надежда, что может с этим проектом (http://zx-pk.ru/threads/26720-retrobyte-universalnaya-modulnaya-platforma-dlya-postrojki-replik-retro-kompyuterov.html) что-то "выгорит"... ;)
А так хочется 65C816@14MHz, VGA-выход, RAM 1MB+, SD/CF, ЯЗС+Covox, эмулятор FDC+FDD, цифровые джойстики/gamepad... :v2_yahoo:

BYTEMAN
18.09.2016, 13:28
http://zx-pk.ru/threads/16282-kompyuter-quot-agat-7-quot-realizatsiya-na-plis-(de1).html

Santechnik
20.09.2016, 06:53
Плата расширения Агат для Retrobyte уже разработана и заказана. Сейчас в пути из Китая. Существующий проект буду перетаскивать на Retrobyte. Надеюсь сделать Агат-7 и -9 в одном устройстве. Вывел на заказанной плате один разъем для родных плат расширения. У меня экзамен 24 октября, так что начну паять все равно только после этого. Надеюсь перенос проекта на новую платформу тоже не займёт много времени. Так же на плате есть разъем FDD (34 пин) с расчётом использовать эмулятор дисковода HxC для 140К и 840К дисков.

LeoN65816
20.09.2016, 07:02
С нетерпением ждём! :v2_dizzy_punk:

Wierzbowsky
24.09.2016, 23:40
Я конечно любитель оригинального железа, но если будет возможность, тоже соберу себе такую штучку.

Santechnik
25.09.2016, 06:00
А кто-нибудь смог бы купить и выслать мне несколько новых разъемов для агатовских карт расширения? Может быть даже десяток, чтобы два раза не вставать. :rolleyes: Кажется они называются ОНп-КС-23-Р. А то у меня есть один, но он похоже б/у и все контакты окислены. Не хотелось бы его запаивать без крайней необходимости. Да и вдруг придется плату переделывать, а у меня второго уже не будет. Пытался купить сам, но никто не хочет высылать за границу. :| Оплатить все расходы правда похоже смогу только с PayPal. Пишите пожалуйста в личку кому не сложно это сделать. :v2_cheer:

Wierzbowsky
25.09.2016, 15:19
Я бы тоже не отказался от 2-3 таких разъёмов так как хочу сделать клон платы линка номер 2 для 840 кб дисководов. Похоже что защита от копирования не обходится при конвертировании AIM в HFE для эмулятора флопа Gotek. Где эти разъёмы продаются?

LeoN65816
25.09.2016, 18:31
Дядюшка Яндекс говорит, что есть еще в продаже эти ОНп-КС-23 и вилки и розетки и недорого. А есть и аналог СНП342 - http://www.elektrodetal.com/catalog/SNP342/, http://www.tkd.com.ua/item.php?item=1711&item_type=8 - но, похоже, дорого...
Я бы несколько вилок приобрел бы.
А если мы всем хором Игоря попросим закупить партию (в Московии-то однозначно легче будет) да разослать, разумеется с возмещением всех издержек и каким-либо вознаграждением?

- - - Добавлено - - -

Александр, быть может тебе будет интересно по теме - VGA для АГАТа (http://vak.ru/doku.php/proj/bk-fpga/bk-vga).

Santechnik
26.09.2016, 13:24
Платы сегодня пришли. Получились неплохо.

LeoN65816
02.10.2016, 09:55
Александр, в дополнение к ссылке выше еще материал и мысли "в тему": http://www.tinyvga.com/vga-timing/1024x768@60Hz и файл в аттаче.

Выбираем режим XGA 1024х768.

По горизонтали: В Т64 и МГДП каждую точку рисуем дважды (дублируем). В Т32, ЦГВР, МГВР каждую точку рисуем четырежды. В ЦГСР рисуем каждую точку восемь раз.
По вертикали: В Т64, Т32, МГДП, ЦГВР, МГВР рисуем каждую строку трижды. В ЦГСР каждую строку рисуем шесть раз.
Таким образом получаем родные 4:3. Ну и конечно монитор должен быть именно с такой матрицей (1024х768) и таким соотношением, а это, в основном, пятнашки. Или широкоформатные 19" с матрицей 1366х768 с переключалкой "Aspect rate".

Apple-режимы еще надо "обкурить", "обкашлять" и т.д.

Вот здесь (http://www.quartz1.com/price/group.php?p1=28600&group=405) есть генератор на 28.6 МГц. Да можно заказать программируемые. Берем его как основной генератор для ПЛИС. Из него легко получаем 7.15 МГц и 1.021 МГц для видеорежимов Apple (будем кумекать), а также 2.042 для КНГМД. Ну и для проца и памяти легко получаем как обычный клок, так и много разных турбо.
Внутри ПЛИСины через PLL умножаем его на 2 и получаем 57.2 МГц - берем за пиксельклок.
Возьмем B+C+D+E=1375 пиксельклоков. Возьмем P+Q+R+S=832 строк. 1375 "точек" х 832 строки х 50 кадров = 57.2 МГц!!!
NMI берем с кадрового СИ. Для IRQ строчную делим на 64, получаем NMI х 13.

Про поддержку кадровой ~ 50 Гц мониторов "заимствуем" у ZX-Evo (в аттаче).

Как Вам идея/мысли?

GARNIZON
03.10.2016, 00:03
А если мы всем хором Игоря попросим закупить партию

Да я все выполню что скажете, но чуть позже - медицинские проблемы сейчас у меня.


По горизонтали: В Т64 и МГДП каждую точку рисуем дважды (дублируем). В Т32, ЦГВР, МГВР каждую точку рисуем четырежды.

Для однозначности, Т32 это 224х256 точек Т64 это 448х256 точек.

Santechnik
03.10.2016, 00:14
Я эти проблемы в своем Агате уже решил, но все равно спасибо. Напомню, что у меня уже работающий Агат-7 есть, который даже читал с 140К образов дисков. Я даже в некоторые игрушки смог поиграть на нем ;) Кстати, я выбрал именно этот видеорежим для VGA. ;) Оставалось доделать:

Поддержку родной клавы
Поддержку пультов
Запись на 140К образы
Поддержка 840К образов
Поддержка слота расширения
Тестирование и шлифовка

Здесь-то и приходилось переделывать железо. Потому я и решил перенести проект на Retrobyte, чтобы получить модульную конструкцию и облегчить/удешевить переделки.
Для того чтобы получить частоты компьютера нет нужды подбирать кристаллы. К примеру, 14.3МГц легко получаются PLL из стандартных 50МГц (* 123 / 430).
Что касается видео, то все не так просто. Мой Агат уже сейчас умеет выводить и на VGA и на TV, но программы использующие NMI/IRQ для смены видео режимов на лету не работают как надо. Чтобы добиться совместимости, после переноса проекта на Retrobyte, я хочу так же переделать видео выход, чтобы все тайминги совпадали с оригиналом на TV выходе. Выход же на VGA будет реализован через frame-buffer. Тогда сохраниться совместимость со всеми программами. Кстати, получить любой пиксель клок, если понадобится, можно со второй PLL или при помощи фазового аккумулятора (http://www.electronicsfun.net/RU/archives/699).

LeoN65816
03.10.2016, 00:48
Александр, вопрос: ты для XGA (1024x768) используешь пиксельклок 32.5 МГц, это кадровая 30 Гц выходит, так что ли?

Santechnik
03.10.2016, 01:16
У меня пиксель сделан сдвоенный, что фактически дает разрешение 512х768 и кадровая получается 60Гц.

LeoN65816
03.10.2016, 06:23
Логично. И что же я "не допер" до этого... ;)

Santechnik
03.10.2016, 06:55
;) Это еще что! Я на своем "Микро-80" использую почти тот же режим, но пиксель там не кратен 1024, так как разрешение там 384х256 (1024 / 384 = 2.66(6)). И чтобы сохранить пропорции, я для эксперимента сделал пиксель клок под размер реального пикселя (28.125 МГц). Кадровую правда пришлось сделать 70Гц, потому что мой монитор Samsung почему-то срывался иногда при 60Гц после некоторого времени работы. При 70Гц же все телевизоры и мониторы в доме показывают картинку без проблем, так что так и оставил в окончательном варианте :cool:

LeoN65816
03.10.2016, 14:55
Для однозначности, Т32 это 224х256 точек Т64 это 448х256 точек.
А в семерке тоже также?

GARNIZON
03.10.2016, 21:39
А в семерке тоже также?

1 в 1

LeoN65816
04.10.2016, 06:59
1 в 1
Ха! Тогда как же работает совмещение экранов графика+текст (например, на семерке в Рапире), раз у них разные развертки?
Судя по толстому толмуду (цветастый такой) от девятки, у текста и графики разные времянки. Как переключается режим ДК, так происходит кратковременный срыв синхры. А у семерки совмещенный-то работает, и срыва нет (это еще из середины 80-х помню)...

LeoN65816
08.10.2016, 14:36
Может кто-нибудь посоветует недорогую девборду FPGA(Cyclone I-V)/CPLD(MAX II,V,10), чтобы на борту было: шустрая статика до 20нс (4-8 Mbits), VGA-разъем и VGA-ЦАП (хоть на резисторах) от 3 бит на каждый цвет (лучше 4-8), PS/2 (на будущее), SD-держатель, около (думаю) сотни userpins на доступном разъеме, "легкая" стыковка с сигналами TTL/CMOS 5V.
Типа DE1 и т.д. - никак не "потяну"...
Хочется попробовать реализовать мечту в реальность.

LeoN65816
08.10.2016, 15:05
2, максимум 3 килорубля... Указанная - идеальна, но не по моему карману...

Santechnik
08.10.2016, 15:09
Мне кажется, что под такие требования, к сожалению, ничего нет (потому я и сделал Retrobyte). На мой взгляд, самая дешевая плата со всей обвязкой и большим количеством пинов - http://www.waveshare.com/coreep4ce10.htm. Я ее как раз и использовал. Но весь навес самому придется делать (память, SD и пр.). К тому же Cyclone не очень любят 5V (включая DE1) и преобразователи все равно очень желательны. MAX в этом смысле подходят лучше, но они по объему маленькие и пинов у них не так много. Если хочется начать осваивать, то я все же посоветовал бы DE1 за $150: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=83. Ну или на крайний случай DE0 за $119, но у нее нет SRAM: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=364

UA3MQJ
08.10.2016, 18:37
Вчера нагуглил четвертые циклоны на 5 и 10 тыс ячеек: http://ali.onl/8w1 , http://ali.onl/8w4 В своих поделках буду переходить на них. До этого ориентировался и использовал эти http://ebay.to/2daO0d1

LeoN65816
18.10.2016, 13:33
Нашел "вкусную" девборду (https://ru.aliexpress.com/item/CPLD-FPGA-altera-fpga-board-fpga-development-board-fpga-altera-boardcpld-development-board-cpld-altera-development/1895888744.html?spm=2114.30010708.3.2.U5k6WO&s=p&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10 068_10069_10017_10080_10082_10081_10060_10061_1006 2_10039_10056_10055_10037_10054_10033_10059_10032_ 10078_10079_10077_10073_10070_421_420_10052_10053_ 10050_10051,searchweb201603_6&btsid=005511f8-85f8-4041-b9ec-45861b55c32a), частично уже с конвертерами уровней. Только не гуглится ни разу... Плюс на ней не только FPGA, но и CPLD. Но цена... :(

Santechnik
18.10.2016, 13:50
Похоже, что всего 42 пина с FPGA выведено. Маловато будет :v2_dizzy_stupid:
Ну и чтобы два раза не вставать, заодно апдейт: плату Retrobyte для Агата спаял, установил на нее Микро-80 и протестировал с его помощью всю плату. Все работает и готово к Агату :v2_dizzy_roll: Теперь еще надо плату расширения спаять.

LeoN65816
18.10.2016, 15:04
Похоже, что всего 42 пина с FPGA выведено. Маловато будет :v2_dizzy_stupid:
Посмотри внимательнее: 2 нижних разъема с конвертерами уровней - 32 пина, верхний разъем - 32 пина, чуть правее разъем, расшаренный с CPLD - 19 пинов.


плату Retrobyte для Агата спаял, установил на нее Микро-80 и протестировал с его помощью всю плату. Все работает и готово к Агату :v2_dizzy_roll: Теперь еще надо плату расширения спаять.
:v2_dizzy_punk:

Santechnik
19.10.2016, 00:49
Хм-м. В описании написано USER IO 42, что означает 42 пина доступны пользователю. :v2_dizzy_botan: Про остальные ничего не вижу. :v2_confu: Но если 83 доступны, то тогда должно хватить. Хотя 32 вывода с конверторами все равно мало - процессор плюс разъем расширения съедят больше...

OrionExt
19.10.2016, 02:02
Хм?) 32 пина. За такие деньги маловато) Однако.

- - - Добавлено - - -

Гоу. В Раздел Орион там 89 пинов доступною за 15$. А еще я подозреваю, можно FPGA платы между собой соединять за такие денги.

Santechnik
23.10.2016, 04:47
Закончил паять плату расширения "Агат-7/9" для Retrobyte. Надо еще ее протестировать, что сигналы идут куда надо и с правильными уровнями. После этого можно будет установить процессор и состыковать ее с Retobyte. Разъем для оригинальных плат пока просто поставил, но не припаял, так как он не очень хорошего качества. Вот так примерно компьютер будет выглядеть в сборе.

LeoN65816
26.10.2016, 11:03
Нашел "вкусную" девборду (https://ru.aliexpress.com/item/CPLD-FPGA-altera-fpga-board-fpga-development-board-fpga-altera-boardcpld-development-board-cpld-altera-development/1895888744.html?spm=2114.30010708.3.2.U5k6WO&s=p&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10 068_10069_10017_10080_10082_10081_10060_10061_1006 2_10039_10056_10055_10037_10054_10033_10059_10032_ 10078_10079_10077_10073_10070_421_420_10052_10053_ 10050_10051,searchweb201603_6&btsid=005511f8-85f8-4041-b9ec-45861b55c32a), частично уже с конвертерами уровней.
Продаван любезно предоставил копию CD из комплекта поставки, оттуда доки в аттаче.
Да, "маловато, маловато будет!"... :)
И с конвертерами непонятка: 3.3В <-> 3.3В

tnt23
05.11.2016, 14:30
Santechnik, приехали платы. Большое спасибо! :)

58674

tnt23
12.11.2016, 11:06
Гнездо подошло :)

58720

Santechnik
12.11.2016, 12:31
У меня тоже проект продвигается. Закончил видео-контроллер (пока только графические режимы). Пришлось переписать с нуля, чтобы соблюсти точные тайминги оригинала и совместимость с буфером кадров. Сейчас, имея картинку в ТВ режиме, прикручиваю буфер кадров. Как следствие, приходится переписать и контроллер SDRAM, чтобы успевать писать/читать в буфер кадров :D Чувствую в итоге от предыдущей версии Агата ничего не останется ;) Но зато получается точнее к оригиналу и компактнее.
Из проблем - по какой-то причине все цвета на телевизоре сдвинуты вправо на пару пикселей от картинки - как-будто сдвиг яркостной и цветовой составляющих. Получается каша когда цвета соседствуют. Черно-белая картинка однако отображается идеально. Эффект одинаков и на S-Video, и на RCA. Схему по сравнению с предыдущим Агатом не менял. Использую AD725. В ТВ сигналах не силен - курю мануалы. В принципе проблема не велика, так как с новыми точными таймингами и буфером кадров никакого резона использовать ТВ выход нет - все прекрасно будет показываться и на VGA - даже с лучшим качеством! Но все же хотелось бы разобраться...

Santechnik
28.12.2016, 00:07
Приехал из отпуска, а тут посылка от tnt23 ждет! Спасибо!!!
59141:v2_dizzy_christmas: :v2_dizzy_roll: :v2_thumb:

Wierzbowsky
28.12.2016, 16:28
AD725 вообще вещь капризная. Намучался с ней когда делал свой RGB-to-Svideo конвертор. Не любит она разделённый синхросигнал. К тому же появляются "бегунки" на некоторых цветах, как мне сказали из-за несоответствия частоты энкодера с частотой проца. Видимо просачивается что-то по питанию. Но стандартные фильтры по питанию не помогли. Вы кстати YTRAP делали?

Sergei Frolov
28.12.2016, 16:52
Мне тоже платка приехала. А где вы разъемы ОНП покупаете?

Santechnik
28.12.2016, 23:53
AD725 вообще вещь капризная. Намучался с ней когда делал свой RGB-to-Svideo конвертор. Не любит она разделённый синхросигнал. К тому же появляются "бегунки" на некоторых цветах, как мне сказали из-за несоответствия частоты энкодера с частотой проца. Видимо просачивается что-то по питанию. Но стандартные фильтры по питанию не помогли. Вы кстати YTRAP делали?

Да вроде до этого особых проблем не было. Только вот в реализации Retrobyte почему-то проблемы вылезли. Про синхросигнал очень интересно! Он у меня как раз разделен. Попробую объединить. "Бегунков" вроде нет - просто цветовая составляющая расплывается на соседние пиксели. YTRAP сделал, но он только на RCA влияет. S-Video выход его вроде как не использует. У меня картинка почти не отличается на этих двух выходах, так что скорее всего не в нем дело.

Wierzbowsky
29.12.2016, 11:40
Пардон, я как раз хотел поправиться - с разделённым она лучше работает, чем со смешанным. Так что ничего не меняйте. Например смешанный синхро с Амстрада эта микросхема не кушает нормально - на экране текст виден, но плавают размеры по вертикали и фоновой цвет. С Ямахи ей тоже смешанная синхра не нравилась - пришлось ставить LM1881 для разделения.

А вот с Агатом и его разделённым синхро мой конвертор почему-то не работает. Амерский скандаблер работает, но только в агатовских режимах. При переключении в режим Эппл слетает кадровая синхронизация. Хз почему...

Если композит по качеству как s-video, то улучшать нечего.

LeoN65816
14.03.2017, 17:44
На мой взгляд, самая дешевая плата со всей обвязкой и большим количеством пинов - http://www.waveshare.com/coreep4ce10.htm.
Комрады, спасибо за советы по девбордам. Для прототипа очень понравилась вот эта (http://www.waveshare.com/product/fpga-tools/altera/altera-boards/openep4ce10-c-standard.htm).

LeoN65816
31.03.2017, 18:05
Имею определенный и успешный опыт работы с CPLD MAX7000S (схематик- и совсем чуть-чуть AHDL-дизайн), и до сегодняшнего дня боялся "браться" за FPGA (ввиду их сложности)... Однако, ничего страшного/сложного в них нет!
Мой первый, тестовый проект XGA 1024x768@60 - https://yadi.sk/d/sFluusw_3GXZqs.
Сразу учел два важных совета гуру по ПЛИСкам с различных форумов:
1. Не схематик-, а HDL-дизайн проекта, Verilog наиболее "вкусен". Существенно ускоряет и упрощает создание/модификацию проекта!
2. Максимально синхронный проект.

Следующий шаг - АГАТовская развертка 512x256 (МГДП и Т64, остальные режимы получаем дублированием строк и столбцов) в полезных 512x768@50Гц (полный растр 611x936@50) при пиксельклоке 28.6 МГц.

PS. Рядом с ПЛИСкой есть конффлэш EPCS16, что-то никак "не вкурю", как житагом ее шить... Александр (Santechnik), подскажи, пожалуйста.

OrionExt
31.03.2017, 18:41
Шить через обычный USB-Blaster (JTAG). Вкратце готовится прошивка с загрузчиком EPCS16 из ПЛИС + сама прошивка для ПЛИС. Сборка прошивки проделывается в Quartus II, несколькими кликами. Подробности можете найти в интернете. Лень искать, да и вам полезней будет:)

LeoN65816
31.03.2017, 19:03
Дык, в некоторых демах от платы в окне программатора сразу же есть файлы прошивок и плиски и пзушки. В некоторых файл прошивки (output_file.jic) для программирования можно добавить, при компиляции он создается. А в некоторых демах его нет и не создается.
Весь "Device and Pin Options" облазил, включил там галку "Use configuration device: EPCS16", а файлик все равно не создается...

OrionExt
31.03.2017, 19:38
После компиляции проекта создаются файлы .sof и .pof. Файл .jic готовится отдельно. Он нам и нужен. Создается в главном меню File > Convert Progamming Files.

LeoN65816
31.03.2017, 19:56
Ага, спасибо, получилось.
А как сделать, чтобы после компиляции проекта оно само автоматом конвертилось?

OrionExt
31.03.2017, 20:08
Не знаю. А зачем? Это операция с прошивкой EPCS16 нужна не так часто. Ресурс EPCS16 хоть и большой, но не бесконечный. На этапе разработки проекта в ПЛИС заливается файл .sof. И это можно делать бесконечно:)

LeoN65816
01.04.2017, 10:59
Следующий шаг - АГАТовская развертка 512x256 (МГВП и Т64, остальные режимы дублированием строк и столбцов) в 512x768@50Гц.
Результат лежит там же. Пиксельклок 28.6 МГц, полный растр 611x936@50Гц. 936 строк потому, что на каждой 24-ой строке будет генериться IRQ (39xNMI=1.95КГц).

Прикрутил четыре графрежима. Есть вертикальные артефакты. Это от того, что видеоконтроллер полностью синхронный (пиксельклок 28.6 МГц) и заточен под выборку данных из асинхронной памяти, а битмапы храню в псевдоПЗУ на основе внутренней памяти ПЛИСки. И оно там только синхронное, и выдает данные на такт позже, и это проявляется на границах 16-разрядных слов...
Теперь возьмусь за текстовые режимы.
Т64 тоже прикрутил. В код символа из-за запаздывания лезет мусор, и еще знакогенератор на такт позже отдает данные. Ваааще жуть... :)

Миниотчет по мониторам:
1. Benq FP531. 50 Гц не держит, необходимый ему минимум по спецификации (и подтвержденный опытно) 56 Гц.
2. Samsung SyncMaster 710MP. 50 Гц держит, но "давится"! Изо не умещается на экране (справа и снизу обрезано), настройки не помогают.
3. NEC MultiSync 2080UX+. Отлично справляется! Что с натуральными 1024x768 (в центре экрана), что с масштабированием на полный экран (1600x1200) с теми же 4:3.

Update.
Скорректировал под синхронное ROM - https://yadi.sk/d/GfEq9Ipc3GjAS8. Образы знакогенератора и всех текстовых и графических режимов одновременно не умещаются во внутренней памяти FPGA ("аппетит разгорается во время еды" ;)), поэтому дема из двух кусков.

shurik-ua
07.04.2017, 02:24
И оно там только синхронное, и выдает данные на такт позже, и это проявляется на границах 16-разрядных слов...
а почему не попросить у него данные на такт раньше ?

LeoN65816
07.04.2017, 02:35
В посте #46 (http://zx-pk.ru/threads/26944-mechta-agat-na-plis.html?p=906882&viewfull=1#post906882) по "Update" - для графики так и сделано. И даже на 2 такта раньше для текстовых режимов. Повторюсь: изначально он затачивался под асинхронную память. И в новоделе будет асинхронная двухпортовка, а знакогенератор упрячу также в ПЛИСку.

LeoN65816
29.08.2017, 19:06
http://forum.agatcomp.ru//viewforum.php?id=21