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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Счетчики с большой разрядностью, Как лучше писать?
nice_vladi
сообщение Dec 14 2017, 12:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 7-09-16
Из: Томск
Пользователь №: 93 239



Всем привет!

Возник такой вопрос:
Нужно отмерить промежуток времени от события А до события Б с большой точностью (допустим, с точностью 100 МГц-го клока). Время между событиями составляет 500 000 +- 10 000 тактов 100 МГц. Получается счетчик на 3 байта.
Вроде не много, но если надо посчитать несколько таких отрезков времени независимо, да потом как-то обработать данные - выливается в кучу логики.

Как можно уменьшить размеры счетчиков?

Самое адекватное, что приходит в голову - это завести еще один счетчик, на низкой частоте, допустим, на 1 МГц. Этот счетчик будет отсчитывать основную длительность, и в конце, где примерно ожидается событие - включается первый, на 100 МГц-ах и досчитывает точное время до события. Потом результаты счетчиков суммируются.

Но при таком решении все равно нужно тратить место на медленный счетчик, на суммирование и т.д. По моим соображениям выигрыша не будет, либо он будет настолько мал, что не стоит всех этих заморочек. Да и момент запуска/остановки медленного счетчика завязан на клок 1 МГц и даст огромную (по меркам 100 МГц) ошибку.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Dec 14 2017, 12:12
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 660
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Вы сделали такие счётчики и они у вас не завелись на 100 Мгц?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 14 2017, 12:21
Сообщение #3


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

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



Делал недавно на похожей частоте на Воронежской плисине таймер, с времянкой проблемы были. Пришлось бить на несколько последовательных, суть следующая - при достижении максимального значения на первом формируется сигнал CE, записываемый в регистр, который служит разрешением счета для следующего.Таким образом, вместо одного счетчика разрядностью N соединяются последовательно два счетчика разрядностью N/2. Надеюсь суть описал понятно, кода под рукой нет.
PS/ Вспомнил - у des00 в статье было sm.gif http://embedders.org/content/timequest-dly...-litsom-k-litsu
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 14 2017, 12:21
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 3 848
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(nice_vladi @ Dec 14 2017, 15:06) *
Нужно отмерить промежуток времени от события А до события Б с большой точностью (допустим, с точностью 100 МГц-го клока). Время между событиями составляет 500 000 +- 10 000 тактов 100 МГц. Получается счетчик на 3 байта.
Вроде не много, но если надо посчитать несколько таких отрезков времени независимо, да потом как-то обработать данные - выливается в кучу логики.

Как можно уменьшить размеры счетчиков?

Самое адекватное, что приходит в голову - это завести еще один счетчик, на низкой частоте, допустим, на 1 МГц.

Прескейлер даст выигрыш только в том случае, если его выход будет использоваться еще где-то...
А если нет, то какая разница, где считать?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 14 2017, 12:21
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 150
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Одним таймером на 32 разряда считайте. А время измеряйте по захватам состояния таймера.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 14 2017, 12:24
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 3 848
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bogaev_roman @ Dec 14 2017, 15:21) *
Делал недавно на похожей частоте на Воронежской плисине таймер, с времянкой проблемы были. Пришлось бить на несколько последовательных, суть следующая - при достижении максимального значения на первом формируется сигнал CE, записываемый в регистр, который служит разрешением счета для следующего.Таким образом, вместо одного счетчика разрядностью N соединяются последовательно два счетчика разрядностью N/2. Надеюсь суть описал понятно, кода под рукой нет.

Это Вы разбили счетчик, чтобы получить перенос в группе.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 14 2017, 15:14
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(nice_vladi @ Dec 14 2017, 15:06) *
Как можно уменьшить размеры счетчиков?

Использовать умножители.

Go to the top of the page
 
+Quote Post
Maverick
сообщение Dec 14 2017, 19:46
Сообщение #8


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

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



Цитата(Tpeck @ Dec 14 2017, 17:14) *
Использовать умножители.

Поясните пожалуйста....
Или пример дайте...


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

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


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(Maverick @ Dec 14 2017, 22:46) *
Поясните пожалуйста....
Или пример дайте...


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 15 2017, 08:23
Сообщение #10


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

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



Умножитель != DSP block.
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 15 2017, 08:30
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(andrew_b @ Dec 15 2017, 11:23) *
Умножитель != DSP block.

В каких кристаллах?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 15 2017, 08:37
Сообщение #12


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

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



Цитата(Tpeck @ Dec 15 2017, 11:30) *
В каких кристаллах?

Не надо троллить. Не кормлю.
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 15 2017, 08:42
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(andrew_b @ Dec 15 2017, 11:37) *
Не надо троллить. Не кормлю.

?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Dec 15 2017, 08:58
Сообщение #14


Гуру
******

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



Цитата(Tpeck @ Dec 15 2017, 11:30) *
В каких кристаллах?

Вы что, никогда не видели внутренности DSP48? biggrin.gif

Там внутри кроме, собсно, умножителя, есть ещё много всякого:



Поэтому:

DSP == (Pre-adder + Multiplier + Pattern Detector + add/subtract/accumulate engine) != Multiplier..
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Dec 15 2017, 09:09
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(blackfin @ Dec 15 2017, 11:58) *
Вы что, никогда не видели внутренности DSP48? biggrin.gif

Там внутри кроме, собсно, умножителя, есть ещё много всякого:



Поэтому:

DSP == (Pre-adder + Multiplier + Pattern Detector + add/subtract/accumulate engine) != Multiplier..


Я с этим утверждением и не спорю. Просто может есть умножители без блока add/subtract/accumulate engine и люди их используют, а я об этом не знаю sm.gif
Мне всегда казалось, если есть умножители => есть сумматоры большой разрядности для интегрирования => можно подать 1 на интегратор и получить счетчик.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st April 2018 - 14:47
Рейтинг@Mail.ru


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