|
Full Adder vs DPS48, что быстрее. |
|
|
|
Oct 30 2015, 10:29
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Oct 30 2015, 11:26
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384

|
Цитата Гробить 35-битный аппаратный сумматор из DSP блока на такое жалко Чаго их жалеть, нехристей? Если на кристалле они уже есть и не используются в других модулях, несоразмерность задаче не важна. Интересует только макс. скорость работы (pipeline произвольной длины если нужно), и оценка энергопотребления. DSP относительно прожорливы.
|
|
|
|
|
Oct 30 2015, 11:37
|
Местный
  
Группа: Свой
Сообщений: 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 МГц. Так что вопрос не так прост как кажется. Спасибо всем отписавшимся, еще расскажите мне об Альтере и получите большое спасибо  .
|
|
|
|
|
Oct 30 2015, 11:42
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 30 2015, 11:46
|
Профессионал
    
Группа: Свой
Сообщений: 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, триггеры, сумматоры, память) в даташитах прописаны.
|
|
|
|
|
Oct 30 2015, 12:20
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384

|
Цитата(bogaev_roman @ Oct 30 2015, 15:46)  Ps/ я для стратикса IV делал схожий сумматор на частоту 250МГц, отдельно все замечательно работало, вставлял несколько таких в проект - все разваливалось, пока жестко не зафиксировал разводку отдельных кусков Вот этого я и побаиваюсь при работе с логикой. Цитата Тогда стоит подумать над распараллеливанием задачи и использованием нескольких сумматоров/аккумуляторов, получающих данные из разных BRAM например. Конечно, будет массив памяти и массив аккумуляторов. В общем, пока буду делать на DSP. Благо coregen позволяет сгенерить корку на DSP и на логике с одинаковым интерфейсом, если что поменять можно как кубик лего. Побочный вопрос по альтеровских DSP. Неоднократно слышал что по производительности и удобности не хуже Xilinx DSP48, но т.к. они 9-битные, как так может быть что каскадирование не влияет на производительность?
|
|
|
|
|
Oct 30 2015, 12:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Timmy @ Oct 30 2015, 13:57)  Где тут потеть, по-моему накапливающий сумматор с латентностью 2-3 делается так же, как и простой сумматор с разбивкой цепи переноса на несколько ступеней конвейера. Работы на 5 минут  , ну или 10. Только сигнал сброса аккумулятора тоже надо конвейеризовать и синхронизировать с разными ступенями аккумулятора. Ага - а потом подождать 2-5 часов пока PR пыхтит и открыв результаты его труда вспотеть холодным потом и начать ваять констрэйны для фиксации расползшихся по кристаллу частей сумматоров, ограничения fanout для сигналов сброса или инициализации аккумулятора.  Успехов! Rob.
|
|
|
|
|
Nov 2 2015, 03:40
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(RobFPGA @ Oct 30 2015, 17:27)  Приветствую!
To Bad0512,Vascom "учите матчасть Шура" DSP48 как раз для таких дел заточены - можно легко сделать накаливающий сумматор с мак частотой 450-500 MHz. На CLB для этого ох как попотеть придется
Успехов! Rob. Напомню, что речь в изначальной задаче шла об аккумулировании 18-битных чисел. Это значит что с учётом накопления разрядности при суммировании, итоговая разрядность аккумулятора будет много меньше 35 бит. И соответственно обычный сумматор порвёт по скорости DSP блок как тузик грелку. Про то, кто на что заточен, видимо глупо указывать - умение читать документацию не является уникальным, многие обладают этим ремеслом. З Ы Автору - сколько чисел планируете суммировать? Важно для расчёта разрядности аккумулятора.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|