Pull to refresh

Comments 33

Долго пытался вспомнить что такое производила Intel доступное людям, и удивлялся почему не планируется обзора на Altera, потом вспомнил что Intel купил Altera и теперь она тоже Intel.
Немного поправил название, чтобы не запутывать людей.
Жаль Xilinx не стала развивать схематик в Vivado. В ISE он был хоть и не фонтан, но я приноровился и топ уровень проекта любил рисовать в нем. И кто бы что ни говорил — это реально удобно в плане наглядности! Открываешь проект многолетней давности — и все понятно что с чем и как соединено без всякой докоментации, которая еще и не факт что актуальна.
Меня больше бесит, что тот же цинк сложно использовать как просто ПЛИС, т.к. он не ПЛИС с процессором, а процессор с ПЛИС.
А в виваде они много чего ещё поубивали…
Самое главное, что убили в Виваде — это возможность писать код в hdl-е на уровне примитивов и назначать (там же, в hdl-коде) этим примитивам иерархические атрибуты placement-а. С этого момента КПД запихивания больших регулярных структур в кристалл трагически упал, как по занимаемым ресурсам, так и по достижимой частоте.
Я уже не говорю про волшебный атрибут ROUTE, при помощи которого (а также низкоуровневого редактора, пива и такой-то матери) можно было в этих регулярных структурах ещё и развести руками критические локальные цепи у блоков нижнего уровня и не ждать потом часами, пока роутер пытается сделать то же самое (безуспешно, причём).
Да я смотрю не только у нас на работе на неё плюются все кому не лень. Зато в виваде сколько няшек стало: при синтезе или разводке и в верхнем углу что-то крутится, и внизу, и прогресс-бар переливается — ну прямо красота сплошная! А если открыть дебаггер, то вообще попадаешь в пульт управления космическим кораблём — куда уж тут старому и дряхлому чипскопу ;)

Нет, плюсы-то тоже есть. TCL полноценный. В HLC можно из Си сделать HDL описание — не сказать что бы оно хорошо, но когда надо сделать быстро, то, например, фильтры делаются довольно быстро и даже работают. Правда если нужна скорость, я чую, всё равно руками придётся всё описывать. Но как-то… всё равно создаётся ощущения что писали САПР индусы для менеджеров, а инженеров, как всегда, спросить забыли)
Можете рассказать о примерах практического использования подобных плат, именно в использовании fpga-части?
Например, на fpga делается обработка сигналов в осциллографах и других приборах.
Реализация сложной математики — это будет не очень интересно. Есть квадратурный аналоговый сигнал на входе. Его надо принят с АЦП, отфильтровать, фазовую подстройку сделать если надо, демодулировать, накопить и скореллировать для выделения какого-нибудь синхросигнала. Всё это реально можно слелать именно в ПЛИСе на хороших скоростях. Для разработки и оценки вполне может пригодиться какая-то макетная плата.

Для новичков есть интересный проект — марсоход. Там в блоге много чего доступно расписано. У меня статья есть, где я с этой платкой поигрался немного — вот простой и понятный практический пример именно ПЛИСовой части.

Во-первых это платы, предназначенные для обучения, т.е. практического применения от них ожидать некорректно, но сделать можно многое, лишь бы позволяла периферия. Во-вторых, если речь о самих системах на чипе, ардуинщику-любителю такие девайсы не актуальны. Чуть более актуальны для радиолюбителей, которые хотят собрать свой SDR-трансивер (тысячи их, уже готовых и продающихся). Для каких еще "домашних" хобби это может понадобиться я не знаю. На работе занимаюсь парой проектов на ПЛИС, там и SDR и демодуляторы. До SoC пока не докатились, хотя отладочная плата с цинком есть, и, похоже, все к ним и движется. Ну и еще одно — для вашего домашнего использования может оказаться оправданным использование отдельных микроконтроллера и ПЛИС, это сделает проект дешевле, проще в сборке и снизит временные затраты на изучение всего этого барахла.

UFO just landed and posted this here
Несправедливость. Но вместо жалоб стоит не полениться и написать годную статью на ресурс — и плюсы подтянутся, и минусы будут реже раздавать.
Спасибо! Цены порадовали. По другому стал смотреть на Zynq. Остался только вопрос — на многих платах нет JTAG. А как без него прошивку в FPGA заливать? Через ARM?
Имеется в виду, что там нет моста USB-JTAG. Физические линии JTAG есть везде.
Но можно и через ARM. Можно даже поднять ftp, и кидать файл прошивки туда.
кстати, а какие накладные расходы по заливки кода FPGA? есть ли какие то лимиты? возможно ли обновление на лету только части?
Не понял вопрос. В каком смысле накладные расходы?
Я не уверен насчёт части, может быть, и можно. Я не пробовал. Заливка прошивки полностью делается довольно просто.
Может быть количество перепрошивок ограничено?
Или процесс прошивки очень длинный?
нет, не оганичено, и не длинный
Быстро, длинно — это не ответ, все же относительно.

Cкажем так, возможна технология, по аналогией с jit компиляцией, на лету, оптимизирующая куски кода в виде fpga прошивки? имеет ли она смысл?
Я не слышал про такие технологии, и не думаю, что это имеет смысл.

Есть OpenCL для генерации FPGA (активно рекламируется, но далеко не любой код будет преобразован в эффективную схему). Основная проблема для использования "на лету" — очень высокая длительность синтеза схемы (также требуется очень много памяти и у вендоров обычно нет полного комплекта PAR утилит, работающих на ARM).
https://www.altera.com/en_US/pdfs/literature/wp/wp-01173-opencl.pdf
Пример JIT на Zynq 7020:
https://arxiv.org/pdf/1705.02730.pdf Resource-Aware Just-in-Time OpenCL Compiler for Coarse-Grained FPGA Overlays


Most vendor OpenCL tools simply generate intermediate RTL that must still be mapped through the FPGA backend flow. Unfortunately, the size and fine granularity of modern FPGA fabrics means that PAR (place and route) times are very long, thereby preventing runtime compilation of OpenCL kernels.
The first (blue) bar shows the PAR time using Vivado 2014.2 running on a HP Z420 workstation with an Intel Xeon E5-1650 v2 CPU running at 3.5 GHz with 16 GB of RAM, targeting the Zynq FPGA fabric.
Заливка прошивки происходит непосредственно в FPGA по аналогии с RAM — там нет ограничений на запись (время сильно меньше секунды). Частичная запись тоже возможна (Partial Reconfiguration). Насколько я знаю при этом часть прошивки которая не меняется продолжает работать.
Из-под Linux, работающий на ARM, заливается на ура. Я тоже не занимался прошивкой по частям: FPGA маленькая, чтобы таким заниматься.
P.S. Из интересных особенностей (если про них вопрос). Можно ресетить FPGA или прошивать FPGA только когда нет передачи данных (и нет неотвеченных запросов) по AXI-шине (внутренние шины от ARM к FPGA и обратно), а то может нарушиться протокол AXI и ARM зависнет.
Спасибо за отличный обзор! Последние дня 4 как раз искал devkit: adc+fpga+arm (заказал red pitaya).
1) Наверное, стоило бы добавить в обзор и Xilinx ZC702 Evaluation Kit, хотя он и стоит заметно дороже.
2) SDK работает у меня на Debian с XFCE отлично, если перед запуском сказать export SWT_GTK3=0.
3) Хотелось бы еще увидеть в статье ссылки на ресурсы (кроме сайтов самих плат). Например, мне очень помог www.wiki.xilinx.com.
Спасибо за ваш комментарий.
Я смотрел информацию по Xilinx ZC702 Evaluation Kit, и решил не добавлять, т.к. эта плата ничем особым не лучше, чем, например, Zedboard, при большей цене.
Ресурсы, согласен, надо добавить. Добавлю во вторую часть обзора. В качестве ресурса также рекомендую Adam Taylor’s MicroZed Chronicles (https://forums.xilinx.com/t5/Xcell-Daily-Blog/bg-p/Xcell/label-name/zynq).
Отличный обзор!
Как скоро ожидать Часть 2. Мир Intel (Altera)?
Спасибо!
На следующей неделе, более точно пока не могу сказать.
Фотографии piSmasher SBC и breakyBreaky малость перепутаны.
piSmasher SBC
image
breakyBreaky
image
Спасибо, исправил.
Также хочу напомнить, что о замеченных ошибках, опечатках и т.п. здесь принято писать в личку.

Как раз задумывался о том чтобы побаловать себя платой производства Digilent (типа Arty Z7-10), но внезапно у них на сайте обнаружил, что регистрация аккаунта со страной проживания "россия" невозможна, а в условиях экспорта сказано что россиянам нужно дополнительно согласовывать возможность покупки (что вряд ли возможно, если аккаунт не создать). Неужели всё настолько плохо, и достать их по разумной цене в россии невозможно?

Я покупал аналогичные платы на ebay. Даже если продавец не отправляет посылку в Россию (хотя многие отправляют), можно воспользоваться услугами компании-форвардера. Т.е. у вас будет почтовый адрес в США, а они уже отправят к нам за дополнительную плату. Я пользуюсь компанией Shipito, но сейчас есть и другие, они постоянно рекламируются на гиктаймсе. Те же компании могут сделать покупку за вас в любом магазине, в т.ч. и у digilent.
Так что всё реально.
Sign up to leave a comment.

Articles