Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Vivado 2017.2 DSP блоки
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Среды разработки - обсуждаем САПРы
el.d
Здравствуйте.

Подскажите пожалуйста, как сказать Виваде, чтобы в случае если все DSP блоки задействованы, то остальную математику пускай делает на LUTах? Покрутил настройки синтеза - не получилось никак ((
andrew_b
Было бы логично так и делать. А что-значит "никак"? Не разводится вообще? Ошибка какая?

Насколько я успел понять, потыкав Виваду палочкой, она заточена на скриптование. Соответственно, настройки синтеза/разводки в гуях весьма скудные. Все мало-мальски серьёзные и нетривиальные опции задаются через xdc. Почитайте руководство по xdc, может, там что-то будет.
el.d
Цитата(andrew_b @ Jan 23 2018, 12:51) *
Было бы логично так и делать. А что-значит "никак"? Не разводится вообще? Ошибка какая?

Насколько я успел понять, потыкав Виваду палочкой, она заточена на скриптование. Соответственно, настройки синтеза/разводки в гуях весьма скудные. Все мало-мальски серьёзные и нетривиальные опции задаются через xdc. Почитайте руководство по xdc, может, там что-то будет.

Угу, пишет что надо 137% DSP блоков, а больше 100% она естестно использовать не может, а додуматься перекинуть часть операций на луты сама не может.... При этом в 2016я Вивада додумывалась, но 16ю мне неудобно использовать по ряду причин...
Vascom
Вряд ли 2016я додумывалась до такого. Наверное просто код другой был.
В общем, если эти DSP в разных модулях, то ты можешь в коде указать где использовать блоки, а где логику.
el.d
Цитата(Vascom @ Jan 23 2018, 12:22) *
Вряд ли 2016я додумывалась до такого. Наверное просто код другой был.
В общем, если эти DSP в разных модулях, то ты можешь в коде указать где использовать блоки, а где логику.

Я вот прямо сейчас ради эксперимента откомпилил один и тот же проект в 2016.2 и в 2017.2. В 2016.2 проект собрался, в 2017.2 - нет.
Vascom
Так может он там вообще DSP не задействовал. Или не задействовал их для операций вычитания, например. Но если модули одинаковые и DSP блоки требуются одинаковые, то вивадо не сделает часть из них на логике.
el.d
Цитата(Vascom @ Jan 23 2018, 12:28) *
Так может он там вообще DSP не задействовал. Или не задействовал их для операций вычитания, например. Но если модули одинаковые и DSP блоки требуются одинаковые, то вивадо не сделает часть из них на логике.

В 2016.2 задействовано 100% DSP блоков.
Vascom
Ну значит не повезло.
Koluchiy
Осваивайте директивы синтеза.
_Ivan_33
Может попробовать использовать грязный трюк - использовать асинхронный резет на части кода и тогда синтезатор не сможет сделать DSP ячейки и придется луты?
Vascom
Ресет и так всегда лучше делать асинхронным. Это не влияет на способность синтезатора использовать DSP-блоки.
blackfin
Цитата(_Ivan_33 @ Jan 24 2018, 12:23) *
Может попробовать использовать грязный трюк - использовать асинхронный резет на части кода и тогда синтезатор не сможет сделать DSP ячейки и придется луты?

Зачем все эти трюки, если есть атрибут: (* use_dsp = "no" *) ?
_Ivan_33
Цитата(Vascom @ Jan 24 2018, 12:28) *
Ресет и так всегда лучше делать асинхронным. Это не влияет на способность синтезатора использовать DSP-блоки.


А можете аргументировать?
Вот ug901 страница 69 -
Coding Guidelines
•Do not set or reset Registers asynchronously.
°Control set remapping becomes impossible.
°Sequential functionality in device resources such as block RAM components and
DSP blocks can be set or reset synchronously only.


Цитата(blackfin @ Jan 24 2018, 12:38) *
Зачем все эти трюки, если есть атрибут: (* use_dsp = "no" *) ?


Забыл про него, спасибо!
Vascom
Цитата(_Ivan_33 @ Jan 24 2018, 18:44) *
А можете аргументировать?
Вот ug901 страница 69 -
Coding Guidelines
•Do not set or reset Registers asynchronously.
°Control set remapping becomes impossible.
°Sequential functionality in device resources such as block RAM components and
DSP blocks can be set or reset synchronously only.

Хм, заставили меня попотеть, почитать документацию...
Признаю свою частичную неправоту: действительно регистры в DSP-блоках могут быть только с синхронным ресетом, однако эти блоки всё равно могут использоваться для арифметических операций и использовать внешние регистры, только не оптимально с точки зрения FPGA получается.
Асинхронный ресет просто у нас в проекте используется. И, поскольку далее проект реализуется в виде ASIC, то на FPGA всё должно быть один в один.

Но всё же, даже если в коде регистры с асинхронным ресетом, то большой перемножитель всё равно будет сделан на DSP-блоке самим Vivado автоматом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.