ZZZRF413
Sep 22 2014, 06:30
Всем доброго дня!
Посоветуйте пожалуйста что-нибудь по следующему вопросу: интересует оценка быстродействия работы цифрового фильтра на ПЛИС, т.е. какая максимальная тактовая частота ПЛИС может быть, как она определяется/вычисляется и т.п. Желательно на примере БИХ(с бесконечной импульсной характеристикой) цифровых фильтров. Может быть кому-нибудь статьи попадались на эту тематику.
WitFed
Sep 22 2014, 07:32
ПЛИС и статьи -- дела ортогональные, в основном практика -- критерий истины, как получится !
Всё зависит от самой ПЛИСины и реализатора алгоритма на ней -- можно намудрить на 2 порядка разницы.
Но 100-200 МГц должно получиться железно, бывают дорогие экземпляры и на порядок быстрей, опять же если параллелить процесс на весь объём и кучу аппаратных умножителей, гигабитные каналы ввода-вывода, ещё 2 порядка можно прибавить.
bogaev_roman
Sep 22 2014, 10:38
Цитата(ZZZRF413 @ Sep 22 2014, 10:30)

Посоветуйте пожалуйста что-нибудь по следующему вопросу: интересует оценка быстродействия работы цифрового фильтра на ПЛИС, т.е. какая максимальная тактовая частота ПЛИС может быть, как она определяется/вычисляется и т.п.
Сильно от реализации зависит - порядок фильтра, разрядность ну и тип самого кристалла.
Если допустим брать первый порядок стандартной архитектуры, то за один такт должны последовательно выполниться 2 суммирования и 1 умножение. Выбрав разрядностть, можно посмотреть максимальное быстродействие на каждый элемент по документации, далее просуммировать и получить общую задержку и помножить на 2 (из-за задержки на элементах) - вот и получиться примерная задержка.
Если использовать умножители на логике - частота упадет, если уйти от них в сторону изменения коэффициентов и умножитель реализовать через сумматор и сдвиги - то вырастет.
Так что о конкретных цифрах без архитектуры и фильтра и кристалла говорить бессмысленно.
Цитата(ZZZRF413 @ Sep 22 2014, 08:30)

Всем доброго дня!
Посоветуйте пожалуйста что-нибудь по следующему вопросу: интересует оценка быстродействия работы цифрового фильтра на ПЛИС, т.е. какая максимальная тактовая частота ПЛИС может быть, как она определяется/вычисляется и т.п. Желательно на примере БИХ(с бесконечной импульсной характеристикой) цифровых фильтров. Может быть кому-нибудь статьи попадались на эту тематику.
Ну если на словах - оценка быстродествия работы цифрового фильтра производится на этапе синтеза и разводки проекта. Т.е. исходя из заданной структуры фильтра, его разрядности, синтезатор пакует всю логику в наличествующие ресурсы ПЛИС. Затем на этапе разводки, имплементатор пытается все это дело впихнуть как можно компактнее, чтобы уменьшить задержки сигнала между блоками. После этого с учетом характеристик конкретной ПЛИС (максимальная скорость распространения сигналов, время переключения логики, рабочие температуры и напряжения) анализатор производит расчет задержки сигнала между блоками для каждого пути и на основании этого выдает максимальную рабочую частоту данного фильтра в данной ПЛИС.
Этого достаточно, или вопрос был про другое?
ZZZRF413
Sep 23 2014, 04:48
Цитата(bogaev_roman @ Sep 22 2014, 14:38)

Если допустим брать первый порядок стандартной архитектуры, то за один такт должны последовательно выполниться 2 суммирования и 1 умножение. Выбрав разрядностть, можно посмотреть максимальное быстродействие на каждый элемент по документации, далее просуммировать и получить общую задержку и помножить на 2 (из-за задержки на элементах) - вот и получиться примерная задержка.
Вот что-то поближе к тому что надо. Наверное я слишком общий вопрос задал... Хотя он тоже интересен.
Я уточну на конкретном примере:
Пусть есть набор БИХ фильтров 10 порядка выполненные в виде каскадного соединения пяти звеньев второго порядка. Реализация структуры для фильтров одинаковая. Разрядность фильтров 16, 8, 4. Необходимо оценить теоретический выигрыш в производительности от изменения разрядности. С объемом ресурсов ПЛИС все более менее ясно. Для простоты качество характеристик фильтров (АЧХ, ФЧХ) не учитываем.
анатолий
Sep 23 2014, 09:07
Для фильтров период тактовой частоты зависит от критического пути от одного регистра до другого. Если фильтр рекурсивный и за 1 такт обрабатывается 1 отсчет, то такой крит. путь будет довольно длинный. Тогда разрядность арифметики мало влияет на критический путь - межсоединения съедают бОльшую долю задержки.
Если фильтр 10-го порядка, то разрядность нужна порядка 20, а тогда у фильтров что 16-разрядных, что 24-разрядных задержки сумматоров отличаются незначительно.
Влияет, если используются умножители. Тогда при переходе с 18 разрядов на 20 крит. путь может удвоиться.
ZZZRF413
Зависит от аппаратной платформы. Если использовать хотя бы Spartan 6, то фильтры можно реализовать на блоках DSP48A1 и BRAM. Тогда разрядность и длина фильтра ограничена практически только Ваше фантазией (аккумулятор 48 бит). Обеспечить скорость в 100 МГц можно легко. Вот и считайте скорость в зависимости от ёмкости.
ZZZRF413
Sep 23 2014, 12:36
Цитата(анатолий @ Sep 23 2014, 13:07)

Для фильтров период тактовой частоты зависит от критического пути от одного регистра до другого. Если фильтр рекурсивный и за 1 такт обрабатывается 1 отсчет, то такой крит. путь будет довольно длинный. Тогда разрядность арифметики мало влияет на критический путь - межсоединения съедают бОльшую долю задержки.
Если фильтр 10-го порядка, то разрядность нужна порядка 20, а тогда у фильтров что 16-разрядных, что 24-разрядных задержки сумматоров отличаются незначительно.
Влияет, если используются умножители. Тогда при переходе с 18 разрядов на 20 крит. путь может удвоиться.
Цитата(ASN @ Sep 23 2014, 13:32)

ZZZRF413
Зависит от аппаратной платформы. Если использовать хотя бы Spartan 6, то фильтры можно реализовать на блоках DSP48A1 и BRAM. Тогда разрядность и длина фильтра ограничена практически только Ваше фантазией (аккумулятор 48 бит). Обеспечить скорость в 100 МГц можно легко. Вот и считайте скорость в зависимости от ёмкости.
На Spartan 6 пока не смотрел. На Spartan 3AN с уменьшением разрядности фильтра, тактовая частота немного, но растет. Действительно надо попробовать по исследовать на разных платформах...
Большое спасибо всем за ответы!
Я так понял, что ТС спрашивал о возможности аналитического расчета теоретической максимальной частоты работы фильтра в зависимости от различных факторов и прежде всего разрядности. Так?
И я так понимаю, что такой путь дает возможность получить лишь очень приблизительный результат, так как даже в конкретном случае иногда увеличение разрядности на пару бит может дать совсем другой результат, например, если разрядность превысит возможности одного умножителя.
Поэтому я так понимаю, что ответ в виде - "вот этот фильтр на 6-ом спартане будет работать с тактовой в 270МГц, а на 3N - где-то 125-140МГц" может дать либо ксайлинкс после синтеза и разводки данного фильтра в каждом из кристаллов, либо очень опытный спец по ПЛИСам и фильтрам, взглянув на схему, и после того, как он развел как минимум 20 похожих проектов. Правильно?
WitFed
Sep 24 2014, 10:43
Конечно, но примерный порядок может назвать сразу специалист, зная задание и dest микросхему.
Нужны несколько конкретных наборов параметров и даже постановка задачи на понятном языке типа С, намёки понимают немногие, тогда "гуру" выскажутся лучше.
Хоть у ПЛИС частота на порядок слабей, за них -- возможность занять весь объём одними и теми же операциями количеством в сотни, что у процов делается через SIMD и с архитектурным ограничением по количеству.
Плюс можно пипелинизировать мелкие атомарные операции в разные такты -- умножил в одном, сложил в другом, сравнил в третьем -- мне давно уже говорили про 400 МГц, на которые могут развестись МАС-операции в кристалле, который "типовые" вещи еле успевает на 100.
На большом объёме ПЛИС будет очень важно обеспечить массовую подачу данных и выгрузку результатов, чтобы всё вертелось и было максимально занято -- в одном такте могут вычисляться десятки значений.
ZZZRF413
Sep 25 2014, 10:35
Цитата("syoma")
Я так понял, что ТС спрашивал о возможности аналитического расчета теоретической максимальной частоты работы фильтра в зависимости от различных факторов и прежде всего разрядности. Так?
Да, так.
Я попробую исследовать этот вопрос на разных ПЛИС.
WitFed
Sep 25 2014, 13:44
А ещё бывают аналоговые вычисления -- в течение недели топик такой всплывал.
Там ещё в разы всё ускоряется, но вроде как ПЛИС заставить работать в таких режимах трудно.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.