Аннотация:
Предметно-ориентированные системы, использующие ускорители на базе программируемых логических интегральных схем (ПЛИС), все чаще проектируются при помощи инструментов высокоуровневого синтеза и конструирования аппаратуры. В настоящее время разработчикам доступно множество таких инструментов, как открытых, так и коммерческих. В данной работе проведено экспериментальное сравнение нескольких существующих решений (языков и инструментов), а именно: Verilog (базовое решение), Chisel, Bluespec SystemVerilog (Bluespec Compiler), DSLX (XLS), MaxJ (MaxCompiler) и C (Bambu и Vivado HLS). Сравнение и анализ производились на примере алгоритма обратного дискретного косинусного преобразования матрицы 8$\times$8 (ОДКП), широко используемого, в том числе, в JPEG- и MPEG-декодерах. В качестве метрик сравнения реализаций алгоритма ОДКП использовались: 1) степень автоматизации (насколько меньше исходного кода требуется для описания алгоритма по сравнению с Verilog); 2) контролируемость (возможность достижения заданных характеристик аппаратуры, а именно соотношения производительности к занимаемой площади); 3) гибкость (легкость внесения изменений в реализацию с целью достижения определенных характеристик). Для оценки характеристик синтезированных схем в реальном окружении были разработаны AXI-Stream-адаптеры. В исследовании показано, как отдельные оптимизации (настройки инструментов и модификации исходного кода) влияют на производительность системы и занимаемую площадь. Продемонстрировано, насколько важно уметь управлять балансом между пропускной способностью интерфейса и производительностью вычислительного ядра; даны рекомендации по разработке новых инструментов проектирования систем, использующих ускорители на основе ПЛИС.