Перейти к содержанию
    

Нужна помощь по Vivado HLS

Здравствуйте коллеги. Добрался наконец до HLS и сходу наткнулся на не очевидные проблемы (для меня не очевидные, видимо). Проект исключительно тестовый, с целью разобраться в новом САПРе. Суть -

Хочу умножать 2 вектора поэлементно, суммировать результат и выдавать его на выход. Требуется максимальная производительность, соответственно нужно параллельно загрузить как можно больше умножителей (в кач-ве чипа Виртекс 7 с умножителями проблем нет, хватает за глаза). В Верилоге использовал 4 RAM (2 на коэффициенты и 2 на исходные данные) с шиной данных 1024, которая представляет собой вектор из 128 8-разрядных элементов, соответственно выставляю адрес и имею 256 умножений за такт. Как это описать в HLS (на Си) ? Пробовал играть с директивами (разворачивал вложенный цикл, использовал ARRAY_PARTITION для входных данных), в результате производительность выросла, но появляется соответствующее кол-во интерфейсов, а хотелось бы иметь все это добро компактно в нескольких BRAM.

Но и это еще не самое печальное, при попытке разбить входные массивы с фактором 64, проект перестает синтезироваться.

 

Как объяснить Vivado, что я от нее хочу ? Доки и читал, пробовал и так и сяк, чего то не выходит ничего. Может кто уже проходил это ? Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне нужна максимальная и производительность и я хочу писать ее на С :a14:

Тут на Veriloge пока у многих куча проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне нужна максимальная и производительность и я хочу писать ее на С :a14:

Тут на Veriloge пока у многих куча проблем.

Ну пусть не максимальная, тут я замахнулся, конечно ) Нужен компромисс между производительностью и временем разработки. Я готов потерять процентов 20 ) Но как описать это на НLS ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот тут и суть. Как бы на С время такой оптимизации не превысила время обычной работы c verilog.

И тогда преимущества С окажутся не нужны.

Я бы еще стал проводить время с С для скажем блока декодера какогонибудь Рида Соломона или Витерби

или где то взять исходники какогонибудь телекоммуникационного стандарта.

А на чистой формульной математике я думаю не в коня будет корм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот тут и суть. Как бы на С время такой оптимизации не превысила время обычной работы c verilog.

И тогда преимущества С окажутся не нужны.

Я бы еще стал проводить время с С для скажем блока декодера какогонибудь Рида Соломона или Витерби

или где то взять исходники какогонибудь телекоммуникационного стандарта.

А на чистой формульной математике я думаю не в коня будет корм.

Видимо вы правы и придется откатываться на Верилог. Обидно. Элементарная схема и вдруг не реализуется. Ну что казалось бы сложного ? RAM и его шина данных идет напрямую на умножители...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...