реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Vivado 2017.2 DSP блоки
el.d
сообщение Jan 23 2018, 11:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600



Здравствуйте.

Подскажите пожалуйста, как сказать Виваде, чтобы в случае если все DSP блоки задействованы, то остальную математику пускай делает на LUTах? Покрутил настройки синтеза - не получилось никак ((
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jan 23 2018, 11:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Было бы логично так и делать. А что-значит "никак"? Не разводится вообще? Ошибка какая?

Насколько я успел понять, потыкав Виваду палочкой, она заточена на скриптование. Соответственно, настройки синтеза/разводки в гуях весьма скудные. Все мало-мальски серьёзные и нетривиальные опции задаются через xdc. Почитайте руководство по xdc, может, там что-то будет.
Go to the top of the page
 
+Quote Post
el.d
сообщение Jan 23 2018, 11:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600



Цитата(andrew_b @ Jan 23 2018, 12:51) *
Было бы логично так и делать. А что-значит "никак"? Не разводится вообще? Ошибка какая?

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

Угу, пишет что надо 137% DSP блоков, а больше 100% она естестно использовать не может, а додуматься перекинуть часть операций на луты сама не может.... При этом в 2016я Вивада додумывалась, но 16ю мне неудобно использовать по ряду причин...
Go to the top of the page
 
+Quote Post
Vascom
сообщение Jan 23 2018, 12:22
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534



Вряд ли 2016я додумывалась до такого. Наверное просто код другой был.
В общем, если эти DSP в разных модулях, то ты можешь в коде указать где использовать блоки, а где логику.
Go to the top of the page
 
+Quote Post
el.d
сообщение Jan 23 2018, 12:25
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600



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

Я вот прямо сейчас ради эксперимента откомпилил один и тот же проект в 2016.2 и в 2017.2. В 2016.2 проект собрался, в 2017.2 - нет.
Go to the top of the page
 
+Quote Post
Vascom
сообщение Jan 23 2018, 12:28
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534



Так может он там вообще DSP не задействовал. Или не задействовал их для операций вычитания, например. Но если модули одинаковые и DSP блоки требуются одинаковые, то вивадо не сделает часть из них на логике.
Go to the top of the page
 
+Quote Post
el.d
сообщение Jan 23 2018, 12:30
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600



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

В 2016.2 задействовано 100% DSP блоков.
Go to the top of the page
 
+Quote Post
Vascom
сообщение Jan 23 2018, 12:31
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534



Ну значит не повезло.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jan 23 2018, 18:23
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Осваивайте директивы синтеза.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Jan 24 2018, 09:23
Сообщение #10


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Может попробовать использовать грязный трюк - использовать асинхронный резет на части кода и тогда синтезатор не сможет сделать DSP ячейки и придется луты?


--------------------
Go to the top of the page
 
+Quote Post
Vascom
сообщение Jan 24 2018, 09:28
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534



Ресет и так всегда лучше делать асинхронным. Это не влияет на способность синтезатора использовать DSP-блоки.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 24 2018, 09:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(_Ivan_33 @ Jan 24 2018, 12:23) *
Может попробовать использовать грязный трюк - использовать асинхронный резет на части кода и тогда синтезатор не сможет сделать DSP ячейки и придется луты?

Зачем все эти трюки, если есть атрибут: (* use_dsp = "no" *) ?
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Jan 24 2018, 15:44
Сообщение #13


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" *) ?


Забыл про него, спасибо!


--------------------
Go to the top of the page
 
+Quote Post
Vascom
сообщение Jan 25 2018, 10:54
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 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 автоматом.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th April 2024 - 03:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01673 секунд с 7
ELECTRONIX ©2004-2016