Решил поднять experience.
Как уже было раннее сказано:
Чего хочу в конечном:
- поднять свой уровень магических умений в языках "программирования" ПЛИС
- научиться писать тестбенчи на SV
- "поднять" оберон систему на современной плате (относительно, в данном случае ZedBoard, если получится "достучаться" тамошней периферии из PL части малой кровью)
- добавить цвета на дисплей, реализовать многопоточность (ну я так это называю), AXI шину - дабы можно было использовать инфраструктуру xilinx по доступным ip-ядрам (возможно и wishbone и тамошние ядра), симметричную многопроцессорную систему и др хотелки.
- возможно видоизменить язык (да здравствует очередной диалект).
- если я осилю первые две хотелку - то уже замечательно.
Что имеется в наличии:
- вивадо (webedition)
- демоплаты ZedBoard & "Avnet AES-A7EV-7A50T-G Kit". Обе они достаточно древние, но они собраны на плисах 7-семейства. Что немаловажно в моём случае (SV есть только в виваде, а он поддерживает только это семейство плис. 6-семейство поддерживает ISE, но там нет SV).
В первой плате есть видеовыход, звук, ком-порты и gpion в виде PMOD.
Во второй плате есть компорты, память DDR3, и др. Но нет видео и звука.
Основные первоисточники "мудрости"
https://people.inf.ethz.ch/wirth/index.html
https://people.inf.ethz.ch/wirth/Oberon/index.html
Отдельно взятый сайт про
http://www.projectoberon.com/
Есть "продолжатели дела Вирта":
это "A revision of the Project Oberon 2013 operating system and a compiler for the programming language Oberon-2 (2020 Edition)"
https://github.com/andreaspirklbauer?tab=repositories
Есть альтернативные реализации "железа"
https://github.com/hgeisse/THM-Oberon.git
ну и ещё ряд других сайтов.
Из "наших" сайтов есть
https://forum.oberoncore.ru/
ПС: "holy war" запрешёно, только аргументированные споры.
- - - Добавлено - - -
Тезисы:
1 - Просьба не путать RISC-V и RISC5. Оба являют собой процессоры, реализованные по принципу risc "reduced instruction set computer".
RISC-V - это опенсоурс в промышленных масштабах.
RISC5 - это творчество Вирта.
У них (у процессоров) разные системы команд, разные архитектурные решения.
- - - Добавлено - - -
Вирт реализовал несколько версий своего процессора. Дабы их различать они были названы RISC0, RISC5 (возможно были и другие оф. версии процессоров).
- - - Добавлено - - -
На текущий момент "реализовал" пару "проектов" на базе оригинальной реализации:
- полностью оргинальный проект для "Digilent Spartan 3"
http://www.projectoberon.net/zip/RISC5Verilog.zip
но с добавленным сигналом "сброс" - иныче сей проект совершенно не моделировался средствами вивадо.
- частично переделанный (по структуре исходных текстов). те например выделена часть "схемы" в отдельный модуль "АЛУ", модуль "системных регистров" итд. тк в исходном проекте весь функционал был "свален" в одну кучу. Это несколько затрудняло понимание "что, где и когда".
ПС: "мои" исходники нигде не выложены и на текущий момент оное не планируется.
- - - Добавлено - - -
На сегодняшний день пока есть загвоздка в том что : "Оберон собирается Обероном", другими словами если нет "работающей ОберонСтанции" - то нет возможности перекомпилировать исходники Оберона. В лучшем случае на текущий момент я могу "писать" в машинных кодах процессора RISC5. Ремарка: описание команд процессора у Вирта крайне скудное и не сильно подробное, некоторые вещи упомянуты вскользь, а некоторые в принципе не рассказаны. Докучи в документации перемешано описание для RISC0 и RISC5.
- - - Добавлено - - -
Была идея преобразовать исходный текст "обеон проект" в текст на Си, дабы уметь компилировать "Оберон исходник" в бинарник для RISC5 под виндами. Однако и здесь "грабли".
ofront+.exe "падает" на таком тексте в "BootLoad.Mod"
//вырезано лишнее
BEGIN
SYSTEM.LDREG(SP, stackOrg);
SYSTEM.LDREG(MT, MTOrg);
//вырезано лишнее
END BootLoad.
BootLoad.mod translating BootLoad
114:15 err 0 undeclared identifier
114:28 err 121 called object is not a procedure (or is an interrupt procedure)
115:15 err 0 undeclared identifier
115:25 err 121 called object is not a procedure (or is an interrupt procedure)
другими словами ofront+.exe судя по всему "не знает" LDREG либо SP либо MT тк это специфика данного железа, а не языка Оберон-7.
Наваял на СИ ассемблер машинных комад, сверяясь с "железной" реализацией.
- - - Добавлено - - -
Оффтоп:
"Зачем козе баян?"
Я вот прочитал сию тему и опечалился: если так пойдёт дальше "нынешние программисты" нафиг не нужны будут лет через десять.
https://semiengineering.com/high-lev...is-for-risc-v/
ПС: но сиё не отменяет моих изысканий про теме. Если кто хочет обсудить эту статью - идите во флуд (здесь не требуется оное обсуждение).