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

 
 
> сумматор при сложении возникают ошибки
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
Ответов (1 - 11)
Maverick
сообщение May 17 2015, 16:53
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(sergey sva @ May 17 2015, 19:32) *
Нужно усреднять значение полученные из счетчика 32 разрядного. счетчик считает на частоте 200мгц. После значения суммируются в регистр 32 разряда 10 раз на 11 раз делятся на 10. каждый раз результат получается разный. Вместо значения из счетчика на модуль усреднения подал константу, тоже значение меняется в случайном порядке. Может сумматор не успевать суммировать на частоте 200мгц ep3c5e c8 ? Сложение деление записаны плюсиками может нужно сделать специальный сумматор на битовых операциях или есть специальные модули усреднения ?

таймквест, что пишет?

Если Вы моделируете бехавриал (без учета задержек) модель, то кристал и тактовая частота не имеет принципиального значения...
такая симуляция без учета задержек, что показывает? так называемое функциональное моделирование
если при симуляции без учета задержек есть ошибка, то нужно искать в ошибку в описании


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
des00
сообщение May 17 2015, 17:07
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sergey sva @ May 18 2015, 00:32) *
суммируются в регистр 32 разряда 10 раз на 11 раз делятся на 10..... на частоте 200мгц ep3c5e c8 ? Сложение деление записаны плюсиками

сумматор 32 бита на 200МГц на третьем сыклоне с8 это фантастика.

ЗЫ. и разрядность его должна быть 36 бит, либо счетчик должен быть 28 ми битным.

ЗЗЫ. лучше складывайте 16ть, а не 10т.


--------------------
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 17 2015, 17:11
Сообщение #4


Гуру
******

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



Тамквест на некоторые цепи которые работают от другого плл на частоте 360мгц говорит что не удается получить такие тайминги но те модули работают как нужно без ошибок. Эти цепи вроде проходят, сейчас еще раз попробую.
Думал что лишнее биты будут отбрасываться, попробую сделать счетчик 16 разрядный.
Имеете ввиду усреднять 16 раз вместо 10? А можно как то ускорить сумматор ?
Go to the top of the page
 
+Quote Post
Александр77
сообщение May 17 2015, 17:48
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Цитата(sergey sva @ May 17 2015, 20:11) *
Имеете ввиду усреднять 16 раз вместо 10? А можно как то ускорить сумматор ?

Усреднение кратное степени двойки, производится сдвигом вправо на число равное степени (для усреднения по 16, надо сдвинуть вправо на 4 разряда).
Данные на 300МГц поступают или реже? Если на 300, то сумматор скорее всего не ускорить никакой конвейеризацией - слишком высока частота.
Go to the top of the page
 
+Quote Post
des00
сообщение May 17 2015, 17:50
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sergey sva @ May 18 2015, 01:11) *
Тамквест на некоторые цепи которые работают от другого плл на частоте 360мгц говорит что не удается получить такие тайминги но те модули работают как нужно без ошибок.

сыклон 3, самый медленный. 360МГц ? не верю. У него триггерная на средней логике 250МГц максимум.
Цитата
Думал что лишнее биты будут отбрасываться, попробую сделать счетчик 16 разрядный. Имеете ввиду усреднять 16 раз вместо 10? А можно как то ускорить сумматор ?

код смотреть надо, что бы знать что вы там изобрели. на 16 делить проще, чем на 10. Сумматор ускорить можно, но аккумулятор с суммированием слова за такт нет. Нужно использовать сумматор + дециматор + аккумулятор. Тогда можно что-то выжать.


--------------------
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 17 2015, 18:04
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 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
des00
сообщение May 18 2015, 06:31
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Serhiy_UA @ May 18 2015, 11:11) *
Есть еще один, он описан в XST User Guide от Xilinx, специально для ускорения в сумматорах с большой разрядностью.

аккумулятор таким образом не разогнать, вам же нужен именно он.


--------------------
Go to the top of the page
 
+Quote Post
Bad0512
сообщение May 18 2015, 06:46
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 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
Serhiy_UA
сообщение May 18 2015, 07:14
Сообщение #11


Знающий
****

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



Цитата(Bad0512 @ May 18 2015, 09:46) *
...что пользовать какие-то трюки для ускрения переноса становится бессмысленно.

Возможно, так. Но метод такой есть, и я его применял лет 6 назад на FLEX10K (Альтера), что очень мне тогда помогло.
Интересно так же и то, что в последних XST User Guide от Xilinx этот метод уже не упоминается..
Хотя кто его знает, может, кому и сгодится, скажем, при суммировании на очень больших разрядностях...
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 19 2015, 07:30
Сообщение #12


Гуру
******

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



Переделал счетчик на 16 разрядный на 100мгц считает нормально, еще поэкспериментирую что получится, может удастся еще увеличить частоту.
Go to the top of the page
 
+Quote Post

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

 


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


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