Комментарии 13
Подожду, пока свой отзыв о статье даст Юрий Панчул @YuriPanchul . Потом буду знать - стоит читать и вникать или нет ?
Оригинальный материал в общем-то хороший. Перевод статьи неплохой, разве что я никогда не видел, чтобы LUT называли "таблицей поиска" (я бы перевел как таблицу подстановок).
Несколько месяцев назад делал на основе оригинала материал для студентов МИЭТ, но дополнил его информацией о D-триггерах и сумматорах, которые вместе с лутами составляют основу логических ячеек ПЛИС.
Если интересно, можно посмотреть здесь.
Кроме того, есть самописный материал о том, как происходит преобразование HDL-файлов в битстрим для прошивки ПЛИС.
Сумматоры в ПЛИС не встречал -- вот дополнительный элемент "исключающее ИЛИ" вкупе со специальной цепью переноса, что позволяет намного легче строить сумматор, чем чисто на ЛУТах, -- это да (у Хилинха, в частности).
Ну, сам по себе элемент "исключающее ИЛИ" является однобитным четвертьсумматором. Вообще в логических ячейках зайлинкс ставятся блочки типа такого. По идее, это логика для реализации быстрого переноса. Правда я пару дней над этой схемой посидел, но так и не придумал как с ее помощью синтезировать сумматор, поэтому не стал писать то, в чем сам не смог до конца разобраться. Вместо этого написал, что где-то может ставиться сумматор, а где-то логика, упрощающая его реализацию (например в пикче структурной схемы логической ячейки с википедии, которая приведена в том материале, стоит полный сумматор).
Для обзорного материала, это не то чтобы принципиально важно, стоит ли там схема реального сумматора, или схема ускоренного переноса, скорее в том, что логическая ячейка содержит луты, для синтеза какой-то комбинационной логике, дополнительную логику для арифметики и D-триггер для синтеза синхронной схемы.
Реально это даже не ускоренный перенос в его классическом виде (как, скажем, для АЛУ SN74181, она же К155ИП3, с выходами генерации и распространения переноса, подаваемыми на схему ускоренного переноса) -- это просто выделенная цепь для распространения обычного последовательного переноса. Просто, поскольку она выделенная, в ней намного меньше мультиплексоров и прочего ПЛИСостроительного железа -- соответственно, задержка распространения переноса по ней много меньше, чем по обычным линиям, связывающим ЛУТы.
Что вопрос для обзора не особо принципиален, согласен. Просто я б написал, что, помимо ЛУТов, в реальных ПЛИС обычно есть дополнительные блоки, без которых можно обойтись (всё можно сделать на одних ЛУТах), но которые упрощают реализацию типичных задач. Как-то так :)
Существуют FPGA, которые можно запрограммировать только один раз. И переконфигурировать её не получится. Конфигурация будет храниться в PROM.
FPGA обычно дороги. Самые крупные легко могут стоить тысячи долларов за чип. Это связано с большим количеством микросхем для их производства,что?
высокая цена полностью определяется малыми объемами выпуска и скорее всего это сделано специально, по политическим причинам, чтобы не развивать отрасль (контроль за высокоскоростными вычислениями).
По логике, fpga модуль должен был бы быть уже в каждом чипе, тем более мобильным, доступный пользовательским приложениям (обработка видео например, когда сырой поток с камеры предобрабатывается программируемым чипом)… нет популяризации -> нет стандартов -> 99% программистов не знают об этом
Ну, DSP, а то и несколько давно уже доступны в мобильных чипах (обработка камеры, какие-то AI модули). Они для целей быстрой обработки большого кол-ва данных и предназначены, зачем там FPGA?
Даже 3д графон можно рендерить на дсп: VideoCore IV в чипах Broadcom (первый Raspberry Pi), насколько я знаю, именно DSP. Не отдельное ядро для декодирования видео DSP, а сам GPU в т.ч растеризатор и есть DSP
Камон. На каждый программируемый вентиль в FPGA приходится ещё и управляющая электроника. Это напрямую влияет на площадь чипа, а значит на процент выхода годных и на стоимость.
А высокие скорости достигаются кастомными вычислительными ядрами. У FPGA по сравнению с ними по определению будет оверхэд из-за менее оптимального распределения логики по чипу.
Про однократные (как правило, радстойкие) ПЛИС уже сказали выше.
Помимо ПЛИС есть ещё ПАИС (аналоговая). Например, серия 5400ТР от ДЦ Союз.
Если кому-то будет интересна история программируемой логики, вот тут накидал видосик для вас
SDR приёмники можно например. А вот физическое моделирование музыкальных инструментов? Струна, дека и т.п.?
Как работает FPGA?