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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Full Adder vs DPS48, что быстрее.
count_enable
сообщение Oct 30 2015, 10:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Возник такой полутеоретический вопрос. Надо считать сумму ряда 18-битных чисел итерационно, Р(х)=Р(х-1)+А(х). Что будет быстрее: сумматор в CLB или DPS48 блок и корка Adder из CoreGen? Числа идут из BRAM.
"Возьми напиши сумматор, и сравни" - скажете вы. Но я не уверен что мой сумматор будет самый оптимальный и что размещение в ПЛИС не будет влиять на скорость. Рассматриваем 6 и 7 семейство Xilinx, а так же интересует результат для Altera Cyclone V, о которой я знаю только то что там DSP 9-битные.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Oct 30 2015, 10:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(count_enable @ Oct 30 2015, 16:15) *
Возник такой полутеоретический вопрос. Надо считать сумму ряда 18-битных чисел итерационно, Р(х)=Р(х-1)+А(х). Что будет быстрее: сумматор в CLB или DPS48 блок и корка Adder из CoreGen? Числа идут из BRAM.
"Возьми напиши сумматор, и сравни" - скажете вы. Но я не уверен что мой сумматор будет самый оптимальный и что размещение в ПЛИС не будет влиять на скорость. Рассматриваем 6 и 7 семейство Xilinx, а так же интересует результат для Altera Cyclone V, о которой я знаю только то что там DSP 9-битные.

На таких разрядностях ИМХО на логике будет как минимум не хуже. После БРАМки надо влепить промежуточный регистр - тайминги по выходу БРАМок всегда хромают. Гробить 35-битный аппаратный сумматор из DSP блока на такое жалко, мне кажется это расточительно. Кореген вам чудес не сделает - в конце концов он тоже применит один из двух вариантов. Ну а написать "неоптимальный" сумматор - это очень постараться надо.
З Ы Всё вышесказанное относилось к Xilinx.
Go to the top of the page
 
+Quote Post
Vascom
сообщение Oct 30 2015, 10:38
Сообщение #3


Местный
***

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



Суммировать в DSP48 скорее всего нет смысла. Они больше нужны для операций умножения, которые иначе занимали бы кучу места на логике.
А тут просто аккумулятор получается на одном сумматоре, даже не одновременное суммированием множества чисел.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Oct 30 2015, 11:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Цитата
Гробить 35-битный аппаратный сумматор из DSP блока на такое жалко
Чаго их жалеть, нехристей? Если на кристалле они уже есть и не используются в других модулях, несоразмерность задаче не важна.

Интересует только макс. скорость работы (pipeline произвольной длины если нужно), и оценка энергопотребления. DSP относительно прожорливы.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 30 2015, 11:27
Сообщение #5


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

To Bad0512,Vascom "учите матчасть Шура" DSP48 как раз для таких дел заточены -
можно легко сделать накаливающий сумматор с мак частотой 450-500 MHz. На CLB для этого ох как попотеть придется

Успехов! Rob.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Oct 30 2015, 11:37
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



А вот и ответ от Xilinx на мой вопрос: http://www.xilinx.com/support/documentatio...ru/c-accum.html

Виртекс7: Fabric: 615 MHz, 32 LUT, 43 FF. DSP: 544 MHz, 0 LUT,0 FF. На таких скоростях ограничивать будут другие элементы - тот же BRAM, хотя бы.

Виртекс5: на логике 410 МГц для 32-битного аккумулятора, на DSP 450 МГц. Так что вопрос не так прост как кажется.

Спасибо всем отписавшимся, еще расскажите мне об Альтере и получите большое спасибо sm.gif.
Go to the top of the page
 
+Quote Post
Vascom
сообщение Oct 30 2015, 11:42
Сообщение #7


Местный
***

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



Цитата(RobFPGA @ Oct 30 2015, 14:27) *
Приветствую!

To Bad0512,Vascom "учите матчасть Шура" DSP48 как раз для таких дел заточены -
можно легко сделать накаливающий сумматор с мак частотой 450-500 MHz. На CLB для этого ох как попотеть придется

Успехов! Rob.

Ну если это основная задача, и DSP48 не жалко, то конечно можно. Хотя узким местом по скорости может стать уже BRAM.
Зато логика позволяет более гибко и масштабируемо это выполнять.

Просто не сталкивался с задачами в 400-500МГц вычислительных на FPGA. У меня на 100-200МГц.

Цитата(count_enable @ Oct 30 2015, 14:37) *
... На таких скоростях ограничивать будут другие элементы - тот же BRAM, хотя бы.

Тогда стоит подумать над распараллеливанием задачи и использованием нескольких сумматоров/аккумуляторов, получающих данные из разных BRAM например.
Это же FPGA, надо пользоваться параллельностью.

Сообщение отредактировал Vascom - Oct 30 2015, 11:40
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Oct 30 2015, 11:46
Сообщение #8


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(count_enable @ Oct 30 2015, 14:37) *
Виртекс7: Fabric: 615 MHz, 32 LUT, 43 FF. DSP: 544 MHz, 0 LUT,0 FF. На таких скоростях ограничивать будут другие элементы - тот же BRAM, хотя бы.
Виртекс5: на логике 410 МГц для 32-битного аккумулятора, на DSP 450 МГц. Так что вопрос не так прост как кажется.

Для DSP это реальная скорость, которая практически не будет зависеть от заполненности кристалла, для логики - максимально возможная, при большой заполненности достичь такой частоты нереально и тут никакое дублирование логики не спасет с конвейером да и разводится будет долго. Так что на таких скоростях однозначно DSP, если есть возможность.
Ps/ я для стратикса IV делал схожий сумматор на частоту 250МГц, отдельно все замечательно работало, вставлял несколько таких в проект - все разваливалось, пока жестко не зафиксировал разводку отдельных кусков.
Pss все данные по максимальному быстродействию для отдельных элементов (DDR, DSP, триггеры, сумматоры, память) в даташитах прописаны.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Oct 30 2015, 11:57
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(RobFPGA @ Oct 30 2015, 14:27) *
To Bad0512,Vascom "учите матчасть Шура" DSP48 как раз для таких дел заточены -
можно легко сделать накаливающий сумматор с мак частотой 450-500 MHz. На CLB для этого ох как попотеть придется
Где тут потеть, по-моему накапливающий сумматор с латентностью 2-3 делается так же, как и простой сумматор с разбивкой цепи переноса на несколько ступеней конвейера. Работы на 5 минут 1111493779.gif , ну или 10. Только сигнал сброса аккумулятора тоже надо конвейеризовать и синхронизировать с разными ступенями аккумулятора.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Oct 30 2015, 12:20
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Цитата(bogaev_roman @ Oct 30 2015, 15:46) *
Ps/ я для стратикса IV делал схожий сумматор на частоту 250МГц, отдельно все замечательно работало, вставлял несколько таких в проект - все разваливалось, пока жестко не зафиксировал разводку отдельных кусков
Вот этого я и побаиваюсь при работе с логикой.

Цитата
Тогда стоит подумать над распараллеливанием задачи и использованием нескольких сумматоров/аккумуляторов, получающих данные из разных BRAM например.
Конечно, будет массив памяти и массив аккумуляторов.

В общем, пока буду делать на DSP. Благо coregen позволяет сгенерить корку на DSP и на логике с одинаковым интерфейсом, если что поменять можно как кубик лего.

Побочный вопрос по альтеровских DSP. Неоднократно слышал что по производительности и удобности не хуже Xilinx DSP48, но т.к. они 9-битные, как так может быть что каскадирование не влияет на производительность?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 30 2015, 12:33
Сообщение #11


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(Timmy @ Oct 30 2015, 13:57) *
Где тут потеть, по-моему накапливающий сумматор с латентностью 2-3 делается так же, как и простой сумматор с разбивкой цепи переноса на несколько ступеней конвейера. Работы на 5 минут 1111493779.gif , ну или 10. Только сигнал сброса аккумулятора тоже надо конвейеризовать и синхронизировать с разными ступенями аккумулятора.


Ага - а потом подождать 2-5 часов пока PR пыхтит и открыв результаты его труда вспотеть холодным потом и начать ваять констрэйны для фиксации расползшихся по кристаллу частей сумматоров, ограничения fanout для сигналов сброса или инициализации аккумулятора. sm.gif

Успехов! Rob.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Oct 30 2015, 12:51
Сообщение #12


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(count_enable @ Oct 30 2015, 15:20) *
Побочный вопрос по альтеровских DSP. Неоднократно слышал что по производительности и удобности не хуже Xilinx DSP48, но т.к. они 9-битные, как так может быть что каскадирование не влияет на производительность?

Да одинаково все примерно, Вы просто сравниваете семейства разной весовой категории. Сравните не с циклоном, а стратиксом, у альтеры и документация приятней sm.gif
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Nov 2 2015, 03:40
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(RobFPGA @ Oct 30 2015, 17:27) *
Приветствую!

To Bad0512,Vascom "учите матчасть Шура" DSP48 как раз для таких дел заточены -
можно легко сделать накаливающий сумматор с мак частотой 450-500 MHz. На CLB для этого ох как попотеть придется

Успехов! Rob.

Напомню, что речь в изначальной задаче шла об аккумулировании 18-битных чисел. Это значит что с учётом накопления разрядности при суммировании, итоговая разрядность аккумулятора будет много меньше 35 бит.
И соответственно обычный сумматор порвёт по скорости DSP блок как тузик грелку. Про то, кто на что заточен, видимо глупо указывать - умение читать документацию не является уникальным, многие обладают этим ремеслом.

З Ы Автору - сколько чисел планируете суммировать? Важно для расчёта разрядности аккумулятора.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Nov 2 2015, 09:14
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



От 100 до 1000. Архитектура массивно-параллельная, т.е. аккумуляторов будет несколько сотен на кристалл. И я не уверен в гениальности P&R ISE14.7 настолько чтобы развести такое количество аккумуляторов с максимально одинаковыми временными характеристиками. На дсп проверил - масштабируется практически без потерь скорости.
Go to the top of the page
 
+Quote Post
Vascom
сообщение Nov 2 2015, 09:30
Сообщение #15


Местный
***

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



Почему не уверен? Сумматор же копейки занимает на логике + один регистр - вот и аккумулятор готов.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 02:08
Рейтинг@Mail.ru


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