nice_vladi 2 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Всем привет! Возник такой вопрос: Нужно отмерить промежуток времени от события А до события Б с большой точностью (допустим, с точностью 100 МГц-го клока). Время между событиями составляет 500 000 +- 10 000 тактов 100 МГц. Получается счетчик на 3 байта. Вроде не много, но если надо посчитать несколько таких отрезков времени независимо, да потом как-то обработать данные - выливается в кучу логики. Как можно уменьшить размеры счетчиков? Самое адекватное, что приходит в голову - это завести еще один счетчик, на низкой частоте, допустим, на 1 МГц. Этот счетчик будет отсчитывать основную длительность, и в конце, где примерно ожидается событие - включается первый, на 100 МГц-ах и досчитывает точное время до события. Потом результаты счетчиков суммируются. Но при таком решении все равно нужно тратить место на медленный счетчик, на суммирование и т.д. По моим соображениям выигрыша не будет, либо он будет настолько мал, что не стоит всех этих заморочек. Да и момент запуска/остановки медленного счетчика завязан на клок 1 МГц и даст огромную (по меркам 100 МГц) ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Вы сделали такие счётчики и они у вас не завелись на 100 Мгц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Делал недавно на похожей частоте на Воронежской плисине таймер, с времянкой проблемы были. Пришлось бить на несколько последовательных, суть следующая - при достижении максимального значения на первом формируется сигнал CE, записываемый в регистр, который служит разрешением счета для следующего.Таким образом, вместо одного счетчика разрядностью N соединяются последовательно два счетчика разрядностью N/2. Надеюсь суть описал понятно, кода под рукой нет. PS/ Вспомнил - у des00 в статье было :) http://embedders.org/content/timequest-dly...-litsom-k-litsu Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Нужно отмерить промежуток времени от события А до события Б с большой точностью (допустим, с точностью 100 МГц-го клока). Время между событиями составляет 500 000 +- 10 000 тактов 100 МГц. Получается счетчик на 3 байта. Вроде не много, но если надо посчитать несколько таких отрезков времени независимо, да потом как-то обработать данные - выливается в кучу логики. Как можно уменьшить размеры счетчиков? Самое адекватное, что приходит в голову - это завести еще один счетчик, на низкой частоте, допустим, на 1 МГц. Прескейлер даст выигрыш только в том случае, если его выход будет использоваться еще где-то... А если нет, то какая разница, где считать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Одним таймером на 32 разряда считайте. А время измеряйте по захватам состояния таймера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Делал недавно на похожей частоте на Воронежской плисине таймер, с времянкой проблемы были. Пришлось бить на несколько последовательных, суть следующая - при достижении максимального значения на первом формируется сигнал CE, записываемый в регистр, который служит разрешением счета для следующего.Таким образом, вместо одного счетчика разрядностью N соединяются последовательно два счетчика разрядностью N/2. Надеюсь суть описал понятно, кода под рукой нет. Это Вы разбили счетчик, чтобы получить перенос в группе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Как можно уменьшить размеры счетчиков? Использовать умножители. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 14 декабря, 2017 Опубликовано 14 декабря, 2017 · Жалоба Использовать умножители. Поясните пожалуйста.... Или пример дайте... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба Поясните пожалуйста.... Или пример дайте... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба Умножитель != DSP block. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба Умножитель != DSP block. В каких кристаллах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба В каких кристаллах? Не надо троллить. Не кормлю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба Не надо троллить. Не кормлю. ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба В каких кристаллах? Вы что, никогда не видели внутренности DSP48? Там внутри кроме, собсно, умножителя, есть ещё много всякого: Поэтому: DSP == (Pre-adder + Multiplier + Pattern Detector + add/subtract/accumulate engine) != Multiplier.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 15 декабря, 2017 Опубликовано 15 декабря, 2017 · Жалоба Вы что, никогда не видели внутренности DSP48? Там внутри кроме, собсно, умножителя, есть ещё много всякого: Поэтому: DSP == (Pre-adder + Multiplier + Pattern Detector + add/subtract/accumulate engine) != Multiplier.. Я с этим утверждением и не спорю. Просто может есть умножители без блока add/subtract/accumulate engine и люди их используют, а я об этом не знаю :) Мне всегда казалось, если есть умножители => есть сумматоры большой разрядности для интегрирования => можно подать 1 на интегратор и получить счетчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться