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

 
 
> сумматор при сложении возникают ошибки
sergey sva
сообщение May 17 2015, 16:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Нужно усреднять значение полученные из счетчика 32 разрядного. счетчик считает на частоте 200мгц. После значения суммируются в регистр 32 разряда 10 раз на 11 раз делятся на 10. каждый раз результат получается разный. Вместо значения из счетчика на модуль усреднения подал константу, тоже значение меняется в случайном порядке. Может сумматор не успевать суммировать на частоте 200мгц ep3c5e c8 ? Сложение деление записаны плюсиками может нужно сделать специальный сумматор на битовых операциях или есть специальные модули усреднения ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение May 17 2015, 18:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



если 1 сумматор должен за 16 тактов сложить 16 значений, то 2 сумматора должны за 16 тактов сложить уже 8 значений, то есть по 2 такта на значение.
И так далее... то есть можно поставить в параллель 4 сумматора...

но у вас реально какие-то запредельные частоты, скорее всего что-то не правильно описано, или выбрано не то железо...
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 18 2015, 04:11
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Golikov A. @ May 17 2015, 22:04) *
если 1 сумматор должен за 16 тактов сложить 16 значений, то 2 сумматора должны за 16 тактов сложить уже 8 значений, то есть по 2 такта на значение.
И так далее... то есть можно поставить в параллель 4 сумматора...
Хороший метод!
Есть еще один, он описан в XST User Guide от Xilinx, специально для ускорения в сумматорах с большой разрядностью.
Там отдельно суммируются старшие и младшие части, с разрывом переноса. Младшие части суммируются как обычно на одном сумматоре, а вот для суммирования старших применяют уже два отдельных сумматора. При этом на один подают единицу переноса в младший разряд, а на второй нет. Потом выходы сумматоров старших частей поступают на двух-входовой коммутатор, управляемый сигналом выхода переноса с сумматора младших частей, и на выходе коммутатора сформируется реальная сумма старших частей.
Таким образом, избегают сквозного переноса вдоль всего много разрядного сумматора.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Bad0512
сообщение May 18 2015, 06:46
Сообщение #4


Знающий
****

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



Цитата(Serhiy_UA @ May 18 2015, 11:11) *
Хороший метод!
Есть еще один, он описан в XST User Guide от Xilinx, специально для ускорения в сумматорах с большой разрядностью.
Там отдельно суммируются старшие и младшие части, с разрывом переноса. Младшие части суммируются как обычно на одном сумматоре, а вот для суммирования старших применяют уже два отдельных сумматора. При этом на один подают единицу переноса в младший разряд, а на второй нет. Потом выходы сумматоров старших частей поступают на двух-входовой коммутатор, управляемый сигналом выхода переноса с сумматора младших частей, и на выходе коммутатора сформируется реальная сумма старших частей.
Таким образом, избегают сквозного переноса вдоль всего много разрядного сумматора.

По моему опыту работы с продукцией Xilinx (про Альтеру молчу ибо не имел опыта) сквозной перенос через 32 бита будет по времянке гораздо лучше, чем перенос через 16 бит плюс внешний _асинхронный_ мультиплексор 2 в 1. Видимо эта рекомендация относилась к очень старым семействам Xilinx. В современных архитектурах логика переноса настолько разогнана по времянке, что пользовать какие-то трюки для ускрения переноса становится бессмысленно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 10:26
Рейтинг@Mail.ru


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