Давайте предлагать в этой теме идеи новых проектов для марсоходов, в которых проявлялось бы практическое преимущество FPGA. Такие устройства, которые на том же Raspberry Pi достигались бы только с добавлением внешних модулей или были бы недостижимы совсем. Я знаю, что существует тема
marsohod.org/forum/razdel-predlozhenij/4...ya-domashnego-khobbi
, но предлагаю сузить рамки, т.е. не писать здесь о всех возможных проектах, а кратко перечислять только те, в которых проявятся именно преимущества. И пусть речь не идет о новых языках описания hardware, для которых любой проект просто проверка возможностей компилятора - это очень нужная, но отдельная тема.
1. Естественно, банальная первая позиция в списке, чтобы просто больше об этом не говорить - это SoC с неким минумумом интерфейсов, но включая usb host, который может работать под linux (или пусть даже каком-то более компактном ПО для встраиваемых решений), в которой в FPGA осталось бы место под что-то еще. Это для любителей чтобы было на одной плате и в одном чипе. Иначе пока проще припаять FPGA к Raspberry Pi.
ну а если серьезно, то пока вспомнил:
2. Процессор гитарных эффектов с анализатором спектра, эквалайзером и "примочками". Если возникнут сомнения в целесообразности реализации проекта на FPGA, а не на обычном SoC с "софтовыми" эффектами, то надо просто повысить частоту дискретизации или количество эффектов и тот же пресловутый raspberry pi "не потянет" и проиграет. У данного устройства может быть даже экран и настолько просто интерфейс, что не понадобится ОС, а можно будет написать все с нуля на Си или ассемблере или вообще обойтись без микропроцессора и программы (я знаю, на форуме, есть ценители такого подхода :)
3. Нейропроцессор. Любой - для распознавания звуков, изображений, для ИИ, для роботов. Т.е. чтобы учился, что-то воспринимал, управлял чем-то и был лишь с информацией о сети нейронов, но принципиально без программы!
4. SDR TV tuner аналогового телевидения (для метровых каналов хотя бы). И чтобы к нему можно было даже ЖК-экран с цифровым интерфейсом присоединить - т.е. кадры должны захватываться в буфер.
5. SDR TV coder и передатчик тоже в формате "старого" телевидения.
Вроде это легко сделать, но у меня, например, с первой попытки не получилось - только аналоговый телевизор что-то там вроде пытался показывать, а цифровой "не видел" сигнал. Наверное с модуляцией что-то не так.
6. Различное оборудование для домашней лаборатории, но без попыток соревноваться с промышленными образцами, с разумными возможностями:
осциллографы - модная тема
добавим еще
7. Анализатор спектра
8. Рефлектометр
9. Генератор сигналов. Стандартный набор сигналов (синус, пила, меандр) и произвольных
ниже в теме...
10. Leka предложил делать на марсоходах "универсальные преобразователи интерфейсов". Я так понимаю, это целый класс устройств. После этого я вспомнил как искал удлинители и добавил про них пункт 11. Наверное будем добавлять еще пункты с конкретными примерами конвертеров, так как я пока не понимаю, что значит "универсальный конвертер".
11. Хочется всяких удлинителей звука, изображения и USB клавиатур и мышек по проводу или без. Такие устройства существуют, но пока непонятно, что и как из этого реально именно на марсоходах. Есть мнение, что без сжатия данных по доступным к реализации на марсоходе физическим каналам нам столько данных даже для 720p не передать - поэтому добавляем пункт 13. Еще добавляем вариант - оставить передачу картинки HDMI кабелю (они бывают весьма длинные в продаже), но заводим туда удлинитель USB.
12. Leka предложил e-ink блокнот с удаленным доступом к домашнему компьютеру через включаемый иногда 4G LTE USB, как пример преобразователя интерфейса и как демонстрацию пользы от того факта, что FPGA очень быстро включается/выключается и может быть мостом между медленной экономичной частью схемы и быстрой или прожорливой. А по мне так в данном конкретном примере она может быть всей схемой. Короче это тоже может вырасти в целый ряд устройств. Пока e-ink блокнот.
13. Кодер видеоданных. Нужен для п. 11 и можно добавить в п.4. Можно расширить задачу - поиск способа захватить и передать в компьютер или в соседний марсоход видеосигнал (цифровой или аналоговый) с минимальными потерями или без оных. Можно даже сделать что-то свое, ни с чем не совместимое и возложить задачу упаковки данных в распространенных кодек при видеозахвате на компьютер. При передаче сигнала на соседний марсоход (для "игрового KMV") еще проще - делаем что угодно как можем.
14. Как это я сразу забыл - ретро игры! Спектрумы уже есть (два). Теперь надо:
14.1 NES (Денди),
14.2 Sega Genesis,
14.3 Atari (2500, 7200 а лучше 800 :)
Говорят, народ даже Сони первую уже делает. Есть еще и другие проекты. Т.е. много уже готовых, которых надо просто адаптировать к марсоходам. Многие проекты подразумевают наличие на плате вспомогательного микроконтроллера в основном для USB-Host для доступа к носителям данных. Давайте добавим...
15. Минималистичный микроконтроллер и USB-Host для доступа к данным на флешке хотя бы в FAT32. Куча проектов получит выгоду от такого. Думаю, что писать об этом отдельным пунктом правильно, так как под п. 1 про SoC многие понимают что-то более крупное.
16. Leka пробует математическое моделирование на ПЛИС - 2D системы притягивающихся и соударяющихся объектов. Причем автономное от компьютера, т.е. визуализацию результатов и вмешательство в состояние системы (передвижения объектов мышью) хочет сделать без компьютера. Мне кажется, может быть еще интересно сделать такой "реконфигурируемый вычислитель" получающим исходное состояние системы и возвращающим ее текущее состояние при моделировании через какой-то интерфейс с компьютером. Эдакий внешний сопроцессор. На более старших, чем в Марсоходах ПЛИС (кажется на Stratix) такие вычислители программируют через OpenCL и они приносят реальную пользу, обгоняя обычные процессоры.
17. Может быть целый ряд проектов, реализующих различные виртуальные машины, т.е. процессоры с принципом работы отличным от традиционного выполнения инструкции и реализующих, например, декларативную, а не императивную парадигму программирования. Это могут быть Пролог или Лисп машины, например.
:) пишите - буду обновлять шапку темы