ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
811324
Evgeny_CD, Архитектор (23.01.2018 00:16, просмотров: 358)
[Forth, стековый процессор, мелкие дешевые FPGA, QSPI, HyperBus] = умная периферия? http://caxapa.ru/778579.html
http://caxapa.ru/799743.html
Софткор в FPGA универсального процессора общего назначения - методологически довольно глупая затея. Набор специфических для задачи аппаратных блоков и софткор, управляющий ими на ровне системы команд - методологически правильный вариант. => Софткор имеет переменную систему команд. => Компилер из ЯВУ надо делать автоматически собираемым под систему команд. Чтобы это было легко и просто. Forth и методология его универсального механизма расширения "слова" очень хорошо подходят под специфические аппаратные блоки. Есть стандартный набор слов, наклепал нужные расширения - система готова. Стековые процессоры, не раз о них писал, очень экономичны в реализации. 1000 LE - нормальный 32 битный стековый процессор и еще останется. Минус - они не так быстры, как регистр-ориентированные, но в нашем случае скорость достигается за счет аппаратных блоков, мы же лишь управляем их работой. И у нас есть QSPI флешки, которые ничего не стоят, но могут выдавать 133 Мгц 4 бита за такт в линейном режиме команды. И даже 160 Мгц. Есть DDR, но мы их трогать не будем. HyperBus - 11 или 12 сигналов! -> Есть мелкие FPGA - iCE40 и --> Они дешевые, и у них есть важное ограничение - количество лап. И есть некоторое количество блочной памяти - как память данных не так и мало. Стандартность Forth и наличие готовых средств разработки под ПК решают на корню проблему синтетической разработки. Вот пришла идея - что делать в виде спец блоков, что делать на универсальном АРМе. Вот и отлично! Пишешь на С программу "типа программу на АРМ", на Forth - "типа программу, которая командует будущими аппаратными блоками", ну и на SystemC модели самих блоков. Можно на Verilog -> Verilator -> исполняемый код эмулятора на ПК. Общие контуры решения. 1. Гибридный стеково - линейно-адресный процессор. Чтобы память была доступна по индексному регистру (регистрам), который и в стеке, и прямо адресуется при необходимости. 2. Нужное число аппаратных блоков. 3. Память команд - снаружи, память данных - внутри. 4. Forth подобный язык. Ответы на вопросы. 1. Так под Forth никакого нормального софта нету! - а что, есть ПО под Ваши кастомные аппаратные блоки? Все равно под них писать с нуля - почему бы не на Forth. 2. IP стек на Forth? - только если Вам нечего делать. ARM за $2 решит все Ваши проблемы в этой части. 3. Вот возьму я Cortex-M* и все на нем сделаю! - ога, и фильтр за 32 тапа с частотой взятия отсчетов 10 МГц заодно. И коррелятор. И блок синхронного взятия отсчетов от 4-х АЦП. И много чего еще. В ECP5 за $5 с небольшим на 12k LE чего только не влезет!