Кстати, я вот тут подумал про этот Оберон-компьютер, и про Оберон-ОС и язык, и как это все взаимодействует, и мне пришла в голову мысль: с точки зрения того кто работает на FPGA, все эти приложения в машкодах писанные на C++/C/Ada/Oberon суть скрипты да конфиги, которые собственно дирижируют работой "железных" модулей писанных на Verilog/VHDL. Разница в производительности между кодом в машкода и "кодом" FPGA примерно такая же, или даже больше, чем разница в производительности между С++ и какой-нибудь Lua/Python.
Соответственно и подход тут примерно тот же что и в случае "скриптовых" языков -- основные исполняемые модули пишутся на чем-то более производительном (Verilog в случае FPGA vs Native, и на C++ в случае Native VS Interpretation), и для них пишется гламурная оберточка для чего-то более гибкого, но более тормозного (скажем для C++ в случае FPGA vs Native, и для Python в случае Native vs Interpretation). Более гибкое - это значит можно быстрее переконфигурировать, быстрее поправить и залить, перезапустить.
В случае компьютера Вирта, который описан в книжке, все становится на самом деле на свои места - Oberon там достаточно безопасный язык, который совершенно не претендует на какую-то сверхпроизводительность, реализация его там - более-менее безопасна, есть проверки индексов и прочие радости, сборщик мусора опять же. CPU в том компе также максимально прост, жрет минимум ресурсов FPGA'шки и на скорострельность особо и не претендует. Ведь его задача - исполнять высокоуровневый простой скрипт (ну компилятор там, операционку) :-)
Таким образом, если нам нужен скажем декодинг h264, то просто берем и вставляем/реализуем модуль декодирования h264 на самой FPGA, делаем гламурную обертку для него в виде модуля на Обероне, и смотрим видео. Более того, FPGA можно переконфигурировать в зависимости от текущей выполняемой задачи ;-)
Вот такие вот мысли, да.
PS. А после того как мне эта мысль пришла в голову, я немного погуглил - мысль оказалась не оригинальной - и для xilinx и для altera есть так называемые softcore - простейшие RISC CPU-ядра (в виде Verilog кода), которые как раз используются когда нужно поскриптовать скажем на С++ другие кастомные модули FPGA. В общем, такой подход уже давно в мейнстриме :-) Но у Оберона конечно это проявлено несколько ярче, с особым упором на то, что язык программирования это безопасный тормоз :-)