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

 
 
> Счетчики с большой разрядностью, Как лучше писать?
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
Ответов
iosifk
сообщение Dec 15 2017, 14:54
Сообщение #2


Гуру
******

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



Цитата(nice_vladi @ Dec 14 2017, 15:06) *
Всем привет!

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

А давайте представим не тупой счетчик с проблемами переноса, а счетчик совсем небольшой + память + автомат + аккумулятор + флаг...
Значит все действия разбиваем на такты-таймслоты. Автомат проверяет что счетчик выдал переполнение и начал делать следующее:
читает 4-6 бит ячейку памяти, делает инкремент аккумулятора и если есть флаг переполнения, то взводит флаг. результат записывает в эту ячейку, а в этот же такт в аккумулятор грузится число из другой ячейки памяти... И его содержимое инкрементирует с учетом флага...
И вот так, старшие биты обрабатываем по "микропроцессорному" за несколько тактов. И чтобы не было перерывов ровно настолько же тактов крутится счетчик. Думаю, что для автомата нужно 6-8 тактов. Аккумулятор скажем на 4 разряда. Память если на Ксайлинксе, то там есть как SRL так и распределенная память на 1 логической ячейке 32х1 (в старых было 16х1)... Так вот, 4 таких ячейки дадут 4 бита х 32 = разрядный счетчик... При этом немного экономится всего. И триггеров и межсоединений...
Причем, если надо, то к этому же автомату, если добавить память, то можно и 2 канала сделать...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 16 2017, 07:53
Сообщение #3


Гуру
******

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



Цитата(iosifk @ Dec 15 2017, 17:54) *
А давайте представим не тупой счетчик с проблемами переноса, а счетчик совсем небольшой + память + автомат + аккумулятор + флаг...
Значит все действия разбиваем на такты-таймслоты. Автомат проверяет что счетчик выдал переполнение и начал делать следующее:
читает 4-6 бит ячейку памяти, делает инкремент аккумулятора и если есть флаг переполнения, то взводит флаг. результат записывает в эту ячейку, а в этот же такт в аккумулятор грузится число из другой ячейки памяти... И его содержимое инкрементирует с учетом флага...
И вот так, старшие биты обрабатываем по "микропроцессорному" за несколько тактов. И чтобы не было перерывов ровно настолько же тактов крутится счетчик. Думаю, что для автомата нужно 6-8 тактов. Аккумулятор скажем на 4 разряда. Память если на Ксайлинксе, то там есть как SRL так и распределенная память на 1 логической ячейке 32х1 (в старых было 16х1)... Так вот, 4 таких ячейки дадут 4 бита х 32 = разрядный счетчик... При этом немного экономится всего. И триггеров и межсоединений...
Причем, если надо, то к этому же автомату, если добавить память, то можно и 2 канала сделать...

Либо даже вот так.
Делаем на SRL сдвиговый регистр. От него 4 бита переписываем в аккумулятор и инкрементируем. Результат переписываем обратно и потом регистр сдвигаем циклически. Причем сам регистр можно сдвигать на 1 бит, но писать-читать из него через 4 бита. А их как раз хватит для автомата.
Итого: SRL - 1 ячейка, аккумулятор на 4 бита, счетчик - ну скажем 5-8 разрядов, триггер разрешения счета и триггер готовности...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nice_vladi   Счетчики с большой разрядностью   Dec 14 2017, 12:06
- - Lmx2315   Вы сделали такие счётчики и они у вас не завелись ...   Dec 14 2017, 12:12
- - bogaev_roman   Делал недавно на похожей частоте на Воронежской пл...   Dec 14 2017, 12:21
|- - iosifk   Цитата(bogaev_roman @ Dec 14 2017, 15:21)...   Dec 14 2017, 12:24
|- - jcxz   Цитата(bogaev_roman @ Dec 14 2017, 14:21)...   Dec 16 2017, 13:55
|- - ViKo   Цитата(jcxz @ Dec 16 2017, 16:55) А в чём...   Dec 16 2017, 15:07
||- - jcxz   Цитата(ViKo @ Dec 16 2017, 17:07) Все рав...   Dec 16 2017, 15:24
||- - ViKo   Цитата(jcxz @ Dec 16 2017, 18:24) Огранич...   Dec 16 2017, 15:44
||- - jcxz   Цитата(ViKo @ Dec 16 2017, 17:44) В быстр...   Dec 16 2017, 16:08
||- - ViKo   Цитата(jcxz @ Dec 16 2017, 19:08) Так схе...   Dec 16 2017, 16:40
||- - jcxz   Цитата(ViKo @ Dec 16 2017, 18:40) Как пос...   Dec 17 2017, 00:03
||- - Александр77   Цитата(jcxz @ Dec 17 2017, 03:03) Всё име...   Dec 17 2017, 07:09
||- - jcxz   Цитата(Александр77 @ Dec 17 2017, 09:09) ...   Dec 17 2017, 15:32
|||- - ViKo   Цитата(jcxz @ Dec 17 2017, 18:32) Или я ч...   Dec 17 2017, 15:42
||- - _4afc_   Цитата(Александр77 @ Dec 17 2017, 10:09) ...   Dec 17 2017, 16:32
||- - ViKo   Цитата(_4afc_ @ Dec 17 2017, 19:32) Задер...   Dec 17 2017, 16:48
||- - _4afc_   Цитата(ViKo @ Dec 17 2017, 19:48) Такт по...   Dec 17 2017, 17:05
|- - 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
- - 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 Текстовая версия Сейчас: 30th July 2025 - 05:14
Рейтинг@Mail.ru


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