|
|
|
Vivado 2017.2 DSP блоки |
|
|
|
Jan 23 2018, 11:18
|
Участник
Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600
|
Здравствуйте.
Подскажите пожалуйста, как сказать Виваде, чтобы в случае если все DSP блоки задействованы, то остальную математику пускай делает на LUTах? Покрутил настройки синтеза - не получилось никак ((
|
|
|
|
|
Jan 23 2018, 11:56
|
Участник
Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600
|
Цитата(andrew_b @ Jan 23 2018, 12:51) Было бы логично так и делать. А что-значит "никак"? Не разводится вообще? Ошибка какая?
Насколько я успел понять, потыкав Виваду палочкой, она заточена на скриптование. Соответственно, настройки синтеза/разводки в гуях весьма скудные. Все мало-мальски серьёзные и нетривиальные опции задаются через xdc. Почитайте руководство по xdc, может, там что-то будет. Угу, пишет что надо 137% DSP блоков, а больше 100% она естестно использовать не может, а додуматься перекинуть часть операций на луты сама не может.... При этом в 2016я Вивада додумывалась, но 16ю мне неудобно использовать по ряду причин...
|
|
|
|
|
Jan 23 2018, 12:25
|
Участник
Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600
|
Цитата(Vascom @ Jan 23 2018, 12:22) Вряд ли 2016я додумывалась до такого. Наверное просто код другой был. В общем, если эти DSP в разных модулях, то ты можешь в коде указать где использовать блоки, а где логику. Я вот прямо сейчас ради эксперимента откомпилил один и тот же проект в 2016.2 и в 2017.2. В 2016.2 проект собрался, в 2017.2 - нет.
|
|
|
|
|
Jan 23 2018, 12:30
|
Участник
Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600
|
Цитата(Vascom @ Jan 23 2018, 12:28) Так может он там вообще DSP не задействовал. Или не задействовал их для операций вычитания, например. Но если модули одинаковые и DSP блоки требуются одинаковые, то вивадо не сделает часть из них на логике. В 2016.2 задействовано 100% DSP блоков.
|
|
|
|
|
Jan 24 2018, 15:44
|
fpga designer
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928
|
Цитата(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" *) ? Забыл про него, спасибо!
--------------------
|
|
|
|
|
Jan 25 2018, 10:54
|
Местный
Группа: Свой
Сообщений: 232
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534
|
Цитата(_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 автоматом.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|