Народ!
Проблема следующая.
Есть программа на Vivado HLS со структурой как на рисунке:
Верхняя функция - controll, в вызывает 3 разные подпрограммы function1, function2 и function3.
Те в свою очередь обращаются к одной функции kernel, где происходит обработка данных.
Функция kernel должна быть одна (на уровне RTL), потому как ресурсов она жрет немерено (1024 одних DSP блоков).
Vivado HLS на этапе Sinthesis делает 3 RTL копии этой функции.
Директива Allocation не помогает, она видит только функции в той подпрограмме, в которую вставлена.
Кто-нибудь с этой проблемой сталкивался? Это решаемо?