PDA

Просмотр полной версии : АГАТ-7 в FPGA



zebest
22.06.2021, 22:23
Oleg A. Odintsov (https://www.youtube.com/channel/UCrX5yCa-YEjdOLEPZcE_1Qw) 10 лет назад реализовал минимальный вариант Агат-7 в ПЛИС Spartan 3E

https://www.youtube.com/watch?v=UdAEWuIwAFs
Года четыре назад я портировал в более совремённую плис-ку Spartan 6
https://s.micp.ru/116A2.jpghttps://s.micp.ru/6MeJi.jpg

Ядро минимальное, загрузки файлов нет :(
Если конечно rom-файлы грузятся все с одного адреса, то наверное можно что-то придумать :)
Но это так, для истории. Портировать можно хоть на Uno, а хоть на DOS, вот только ..

Oleg N. Cher
23.06.2021, 11:15
Немного не по теме, но всё-таки спрошу. Насколько трудно адаптировать со Spartan 3 на Spartan 6?

В мире ZX-Uno никто не интересуется Оберон-технологиями. Однако Никлаус Вирт разработал полновесный RISC-процессор во FPGA (Spartan 3), содержащий 22 команды, и поверх него реализовал Оберон-систему, в которой можно программировать. Т.е. это могло бы быть 32-битной платформой поверх ПЛИС, с полноценной плоской адресацией памяти. Но и любители Uno, и любители DOS что-то вообще этим не интересуются. А мне мыслится, что лишённая проблем ретро-машинок (восьмибитность, страничная адресация памяти) и также лишённая проблем совместимости с предыдущим софтом такая платформа могла бы быть использована не только для развлечений и игр, т.к. она смотрится очень современно. Язык простой, система конечно специфическая, но всё же. Программировать можно прямо на борде. Будут какие-нить мысли? В идеале хотелось бы ядро и Оберон-систему для ZX-Uno. Но сам я не знаю как к этому приступить. Передайте мою идею потенциально заинтересованным людям, кто владеет программированием под FPGA.

Ссылки по теме:

https://habr.com/ru/post/259755http://www.projectoberon.comhttp://saanlima.com/forum/viewtopic.php?f=4&t=1246

^m00h^
23.06.2021, 11:22
Если использовать Rust, у него встроенный менеджмент памяти, и как кстати у Оберона с этим ?

Oleg N. Cher
23.06.2021, 11:27
В Обероне есть сборщик мусора, обычно консервативный, либо Mark & Sweep. Обычно данные он не уплотняет.
Т.е. можно запрашивать куски памяти, а когда на них не будет указателей, сборщик их соберёт. Сборщик можно вызвать явно (Kernel.GC) или же он вызывается сам неявно (обычно при вызове NEW).

Есть примеры использования Оберон-систем в задачах жёсткого реального времени, когда сборщик отключен.
Rust конечно предлагает свои подходы, может быть более интересные, но определённо более сложные.

zebest
23.06.2021, 11:51
Ссылки по теме:

http://saanlima.com/forum/viewtopic.php?f=4&t=1246

да, давно видел, вроде они(saanlima) реализовали Оберон в фпга. Но что-то с портированием у меня тогда не срослось чтобы быстро, ну и не очень то и хотелось, ибо для меня непонятно) Но проект был.
Аа, ну точно, вот
Digilent Spartan 3 Verilog Source zip (http://www.projectoberon.net/zip/RISC5Verilog.zip)
Ну там проекта как такового нет, просто кучка файлов, возможно я пробовал сложить, но чего то не хватало.
последний вариант (http://saanlima.com/forum/download/file.php?id=53)
Точно, там видео-выход как минимуум надо переделывать :(

Oleg N. Cher
23.06.2021, 12:22
Я согласен. Предлагаемый видео-режим один бит на точку выглядит странно. Хотя может Spartan 3 сильно урезанный по сравнению с 6 и не даёт больших возможностей?

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

Мне хотелось бы систему программирования на борде, в которой можно разрабатывать 32-битный код, возможно, игры. И конечно для расширенного ZX-Uno с 2 Мб ОЗУ и Wi-Fi на борту.

То есть, творчески надо подойти. В лоб и один-в-один не взлетит.