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

 
 
> Счетчики с большой разрядностью, Как лучше писать?
nice_vladi
сообщение Dec 14 2017, 12:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 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
 
Start new topic
Ответов
bogaev_roman
сообщение Dec 14 2017, 12:21
Сообщение #2


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

Группа: Свой
Сообщений: 1 088
Регистрация: 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
jcxz
сообщение Dec 16 2017, 13:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

Всё изобретено много десятилетий назад и называется схемой ускоренного (параллельного) переноса в сумматорах. Изучается давным-давно уже студентами профильных специальностей.
Видимо Вы не учились..... laughing.gif

Цитата(ViKo @ Dec 15 2017, 12:59) *
Ну, как в таймерах на микроконтроллерах сделано. Счетчик крутится непрерывно. Пришло событие - захватываем состояние счетчика в регистр. Пришло другое - снова (можно в другой регистр). Дальше находим разность между ними, это можно делать где угодно, хоть в микроконтроллере или компьютере, к которому подключен.

А в чём выигрыш-то? Ну хорошо - счётчик один, но раз автору нужно независимо друг от друга посчитать несколько таких отрезков (видимо для каждого учитываемого отрезка Oi, есть своя пара сигналов Ai и Bi, задающих начало и конец отрезка Oi, и эти отрезки O0...Oi могут по времени как угодно накладываться друг на друга).
А значит потребуется для каждого отрезка завести как минимум один регистр хранения (содержимого счётчика на момент Ai) и один сумматор в доп. коде.
А это однозначно больше чем просто один счётчик на один отрезок.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 15:07
Сообщение #4


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

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



Цитата(jcxz @ Dec 16 2017, 16:55) *
А в чём выигрыш-то?...
А это однозначно больше чем просто один счётчик на один отрезок.

Может, и нет. Смотря куда результат выдавать.

Цитата(jcxz @ Dec 16 2017, 16:55) *
Всё изобретено много десятилетий назад и называется схемой ускоренного (параллельного) переноса в сумматорах. Изучается давным-давно уже студентами профильных специальностей.

Все равно есть ограничение на длину счетчика.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 16 2017, 15:24
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 16 2017, 17:07) *
Все равно есть ограничение на длину счетчика.

Ограничение в чём? В количестве входов элемента "И"?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 15:44
Сообщение #6


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

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



Цитата(jcxz @ Dec 16 2017, 18:24) *
Ограничение в чём? В количестве входов элемента "И"?

В быстродействии, естественно.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 16 2017, 16:08
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 16 2017, 17:44) *
В быстродействии, естественно.

Так схема параллельного переноса как раз и нужна для снятия ограничений по скорости.
Как она может ограничить быстродействие? поясните.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 16:40
Сообщение #8


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

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



Цитата(jcxz @ Dec 16 2017, 19:08) *
Так схема параллельного переноса как раз и нужна для снятия ограничений по скорости.
Как она может ограничить быстродействие? поясните.

Как последовательный перенос имеет некую задержку для создания переноса (особенно, для последнего разряда), так и параллельный перенос имеет задержку.
А что вам непонятно? Вы знаете, к примеру, 32-разрядный элемент "И"? Как его сделать в ПЛИС? Какое у него будет быстродействие?
А предыдущему триггеру нужна 31-разрядная схема "И", и т.п. Ох... много.

Поэтому и разбивают таймер на части, делают лишний такт при переходе с одной части на другую, зато считают долгие времена.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 17 2017, 00:03
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 16 2017, 18:40) *
Как последовательный перенос имеет некую задержку для создания переноса (особенно, для последнего разряда), так и параллельный перенос имеет задержку.

Всё имеет задержку, только разница в разы: для параллельной схемы задержка будет равна задержке одного разряда + задержка на "И", а в последовательной - суммарной задержке всех разрядов.

Цитата(ViKo @ Dec 16 2017, 18:40) *
А что вам непонятно? Вы знаете, к примеру, 32-разрядный элемент "И"? Как его сделать в ПЛИС? Какое у него будет быстродействие?

Многовходовой "И" легко делается из нескольких меньших.
Последовательно-параллельный перенос тоже возможен. Для уменьшения используемых элементов. Но разве в современных ПЛИС (не знаком с ними) не хватит ресурсов на несколько полноценных 24-разрядных счётчиков с параллельным переносом???
Go to the top of the page
 
+Quote Post
Александр77
сообщение Dec 17 2017, 07:09
Сообщение #10


Знающий
****

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



Цитата(jcxz @ Dec 17 2017, 03:03) *
Всё имеет задержку, только разница в разы: для параллельной схемы задержка будет равна задержке одного разряда + задержка на "И", а в последовательной - суммарной задержке всех разрядов.
Многовходовой "И" легко делается из нескольких меньших.

Когда будете делать слоеную "И", задержка составит не меньше чем n*dt, где n - число слоев. Тут все и полезет в сторону снижения частоты.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 17 2017, 16:32
Сообщение #11


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(Александр77 @ Dec 17 2017, 10:09) *
Когда будете делать слоеную "И", задержка составит не меньше чем n*dt, где n - число слоев. Тут все и полезет в сторону снижения частоты.

Задержка не перейдёт в снижение частоты если после каждого слоя поставить тригер.


Цитата(ViKo @ Dec 17 2017, 18:42) *
Нет. 4-входовые.


Если говорить за все современные ПЛИС - думаю у Xilinx всё же 6-входовые.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2017, 16:48
Сообщение #12


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

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



Цитата(_4afc_ @ Dec 17 2017, 19:32) *
Задержка не перейдёт в снижение частоты если после каждого слоя поставить тригер.

Такт потеряли. Желаете считать через такт-другой?
Цитата
Если говорить за все современные ПЛИС - думаю у Xilinx всё же 6-входовые.

Ага, у них много чего есть, но цепи переносов не выбрасывают.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 17 2017, 17:05
Сообщение #13


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(ViKo @ Dec 17 2017, 19:48) *
Такт потеряли. Желаете считать через такт-другой?

Желаю узнать результат с задержкой в такт - другой.

Цитата(ViKo @ Dec 17 2017, 19:48) *
Ага, у них много чего есть, но цепи переносов не выбрасывают.

Не знаю, в чём проблемы иметь многоразрядный счётчик. В XC6SLX9 просто 32 разрядный счётчик спокойно считает на частоте 375МГц.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nice_vladi   Счетчики с большой разрядностью   Dec 14 2017, 12:06
- - Lmx2315   Вы сделали такие счётчики и они у вас не завелись ...   Dec 14 2017, 12:12
|- - iosifk   Цитата(bogaev_roman @ Dec 14 2017, 15:21)...   Dec 14 2017, 12:24
||- - jcxz   Цитата(Александр77 @ Dec 17 2017, 09:09) ...   Dec 17 2017, 15:32
|||- - ViKo   Цитата(jcxz @ Dec 17 2017, 18:32) Или я ч...   Dec 17 2017, 15:42
|- - iosifk   Цитата(jcxz @ Dec 16 2017, 16:55) Всё изо...   Dec 16 2017, 15:28
- - iosifk   Цитата(nice_vladi @ Dec 14 2017, 15:06) Н...   Dec 14 2017, 12:21
- - ViKo   Одним таймером на 32 разряда считайте. А время изм...   Dec 14 2017, 12:21
- - Tpeck   Цитата(nice_vladi @ Dec 14 2017, 15:06) К...   Dec 14 2017, 15:14
|- - Maverick   Цитата(Tpeck @ Dec 14 2017, 17:14) Исполь...   Dec 14 2017, 19:46
|- - Tpeck   Цитата(Maverick @ Dec 14 2017, 22:46) Поя...   Dec 15 2017, 07:57
|- - andrew_b   Умножитель != DSP block.   Dec 15 2017, 08:23
|- - Tpeck   Цитата(andrew_b @ Dec 15 2017, 11:23) Умн...   Dec 15 2017, 08:30
|- - andrew_b   Цитата(Tpeck @ Dec 15 2017, 11:30) В каки...   Dec 15 2017, 08:37
||- - Tpeck   Цитата(andrew_b @ Dec 15 2017, 11:37) Не ...   Dec 15 2017, 08:42
|- - blackfin   Цитата(Tpeck @ Dec 15 2017, 11:30) В каки...   Dec 15 2017, 08:58
|- - Tpeck   Цитата(blackfin @ Dec 15 2017, 11:58) Вы ...   Dec 15 2017, 09:09
|- - blackfin   Цитата(Tpeck @ Dec 15 2017, 12:09) .. ест...   Dec 15 2017, 09:20
|- - Tpeck   Цитата(blackfin @ Dec 15 2017, 12:20) Так...   Dec 15 2017, 09:35
|- - Tpeck   Цитата(blackfin @ Dec 15 2017, 12:20) С т...   Dec 15 2017, 09:42
- - Bad0512   Цитата(nice_vladi @ Dec 14 2017, 19:06) В...   Dec 15 2017, 09:14
|- - bogaev_roman   Цитата(Bad0512 @ Dec 15 2017, 12:14) ИМХО...   Dec 15 2017, 09:42
|- - Lmx2315   Цитата(Bad0512 @ Dec 15 2017, 12:14) У ва...   Dec 15 2017, 14:26
- - nice_vladi   Цитата(Lmx2315 @ Dec 14 2017, 13:12) Вы с...   Dec 15 2017, 10:48
|- - ViKo   Цитата(nice_vladi @ Dec 15 2017, 13:48) Н...   Dec 15 2017, 10:59
- - iosifk   Цитата(nice_vladi @ Dec 14 2017, 15:06) В...   Dec 15 2017, 14:54
|- - iosifk   Цитата(iosifk @ Dec 15 2017, 17:54) А дав...   Dec 16 2017, 07:53
- - Maksim   https://ru.m.wikipedia.org/wiki/Регистр_сдв...обра...   Dec 16 2017, 12:25
- - ViKo   В современных и несовременных ПЛИС есть специальны...   Dec 17 2017, 07:11
- - svedach   ЦитатаНе знаю, в чём проблемы иметь многоразрядный...   Dec 17 2017, 17:26
- - _4afc_   Цитата(nice_vladi @ Dec 14 2017, 15:06) Н...   Dec 17 2017, 18:20
- - ViKo   Я в Cyclone III делал таймер, цитирую свои коммент...   Dec 18 2017, 05:50
- - jcxz   Цитата(ViKo @ Dec 18 2017, 07:50) 30 247....   Dec 19 2017, 21:29
- - _Anatoliy   Цитата(jcxz @ Dec 20 2017, 00:29) Это над...   Dec 20 2017, 04:19
- - ViKo   Цитата(jcxz @ Dec 20 2017, 00:29) Это над...   Dec 20 2017, 04:54


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

 


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


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