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

 
 
> Как передать все возможные значения счётчика из одного клокового домена в другой?
MegaVolt
сообщение Oct 20 2015, 10:51
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Есть первый клоковый домен. В нём реализован счётчик. Есть второй клоковый домен. Как можно передать все возможные значения счётчика во второй домен.

Классическая реализация подразумевает запрос - ответ с использованием синхронизаторов.

Есть ли решения позволяющие иметь на второй стороне все возможные значения счётчика.

Поясню. Для однобитного счётчика это позволяет реализовать обычный синхронизатор правда при условии что первая частота меньше второй.

Есть ли решения для большей разрядности и не зависящие от соотношения частот? Искажения кодов не допустимы. Пропуск кода или повторные коды само собой допустимы.

Т.е. вот такие результаты выходов вполне допустимы
1: 1-2-4-5-7-8-10-11-...
2: 1-1-2-2-2-3-3-4-4-4-4-...

Вопрос скорее теоретический. Любопытно возможно ли такое и как реализовать наиболее простым способом.
Возможно есть частные решения для передачи из домена с болей частотой в домен с меньшей. Или наоборот.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RobFPGA
сообщение Oct 20 2015, 11:33
Сообщение #2


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Ну понеслись решения .....
Смотрим требования TC

Цитата(MegaVolt @ Oct 20 2015, 13:51) *
... Искажения кодов не допустимы. Пропуск кода или повторные коды само собой допустимы.

Т.е. вот такие результаты выходов вполне допустимы
1: 1-2-4-5-7-8-10-11-...
2: 1-1-2-2-2-3-3-4-4-4-4-...


И почему тут классика не годится ???

Удачи! Rob.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Oct 20 2015, 12:16
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(EvgenyNik @ Oct 20 2015, 14:28) *
module cnt_copy
Это я так понял запрос ответ с синхронизацией. Многовато кодов пропускает sad.gif

Цитата(RobFPGA @ Oct 20 2015, 14:33) *
И почему тут классика не годится ???
Потому что классика с Греем искажает коды. И чем больше разрядность счётчика тем больше.
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 20 2015, 12:37
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(MegaVolt @ Oct 20 2015, 15:16) *
Потому что классика с Греем искажает коды. И чем больше разрядность счётчика тем больше.
Это с какого перепугу она искажает? Вы код Грея с бинарным не перепутали?

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

Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Oct 20 2015, 12:49
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(XVR @ Oct 20 2015, 15:37) *
Это с какого перепугу она искажает? Вы код Грея с бинарным не перепутали?
Упс.... я вообще с чем то своим перепутал.... Согласен коды грея подходят если при частоте счёта меньше второй частоты.

Как быть если счёт идёт на большей частоте. И потеря младших бит не выход?


Цитата(dima32rus @ Oct 20 2015, 15:43) *
У FIFO есть сигналы EMPTY, FULL. Если все сделать правильно, то пропусков не будет. Совсем.
Если не секрет как именно их использовать? Я пока плохо понимаю саму идею.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Oct 20 2015, 13:09
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 134
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



Цитата(MegaVolt @ Oct 20 2015, 15:49) *
Если не секрет как именно их использовать? Я пока плохо понимаю саму идею.


Если буфер FIFO пуст, то установится флаг EMPTY, прерываете чтение. Ждете, когда появятся данные. Это возникает, когда частота приемника выше частоты источника. Если наоборот, источник грузит данные быстрее, чем их выскребает приемник, то нужно увеличить размер буфера, чтобы не произошло переполнение (флаг FULL). Все зависит от конкретной задачи. Если же Вы хотите обрабатывать бесконечно длинную последовательность данных, то нужно обрезать младшие разряды, как правильно заметил XVR. Иначе никак.

Стесняюсь спросить, а зачем Вам гонять между доменами монотонно изменяющуюся последовательность? Проще передать сигнал запуска через синхронизатор, и, если надо, начальное значение. А считать уже на нужной частоте.
Go to the top of the page
 
+Quote Post
MegaVolt
сообщение Oct 20 2015, 13:33
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 3-01-05
Из: Минск
Пользователь №: 1 783



Цитата(dima32rus @ Oct 20 2015, 16:09) *
Если буфер FIFO пуст, то установится флаг EMPTY, прерываете чтение. Ждете, когда появятся данные. Это возникает, когда частота приемника выше частоты источника.
Мне думается тут будут проблемы. Если я читаю по EMPTY то первое значение я вычитаю с задержкой на синхронизацию. Последующие насыпавшиеся в FIFO за время синхронизации я вычитаю уже без начальной задержки. Т.е. значения не совсем будут связаны с начальным счётчиком.
Цитата
Если наоборот, источник грузит данные быстрее, чем их выскребает приемник, то нужно увеличить размер буфера, чтобы не произошло переполнение (флаг FULL). Все зависит от конкретной задачи. Если же Вы хотите обрабатывать бесконечно длинную последовательность данных, то нужно обрезать младшие разряды, как правильно заметил XVR. Иначе никак.
Во втором случае в идеале хотелось бы чтобы лишние коды пропускались сами.

Опять же пока не очень понимаю чем FIFO отличается от схемы запрос ответ?
Цитата
Стесняюсь спросить, а зачем Вам гонять между доменами монотонно изменяющуюся последовательность? Проще передать сигнал запуска через синхронизатор, и, если надо, начальное значение. А считать уже на нужной частоте.
Ну например передача шкалы времени из одного домена в другой с минимальной погрешностью.

Цитата(XVR @ Oct 20 2015, 16:24) *
Имеет смысл зафиксировать состояние счетчика от строба в быстром домене (т.е. там, где расположен сам счетчик) и передать его в медленный домен, но это уже другая задача, а не передача текущего значения счетчика между доменами laughing.gif
Именно эта задача. Просто то что спрашиваю я выросло из этой.

1. Начальная задача: запрос - защёлкивание - ответ.
2. Мысленно увеличим число запросов до максимума. Логично предположить что это меандр с половинной частотой.
3. Сделаем два канала запросов сдвинутых на период
4. Объединим результаты запросов
5. На выходе имеем все возможные коды.


Цитата(RobFPGA @ Oct 20 2015, 16:06) *
Уже легче
blush.gif
Цитата
В каждом dual-clock FIFO стоит как минимум 2 классики для передачи указателей write/read соответственно на сторону read/write
и при этом отношение частот может быть как read > write так и read < write.
Само собой. Но скорость работы самих синхронизаторов вполне стандартная. И не очень понятно как получить все коды.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MegaVolt   Как передать все возможные значения счётчика из одного клокового домена в другой?   Oct 20 2015, 10:51
- - litv   FIFO   Oct 20 2015, 10:58
- - RobFPGA   Приветствую! Классика :Код ---clk_1--- |...   Oct 20 2015, 11:02
|- - MegaVolt   Цитата(RobFPGA @ Oct 20 2015, 14:02) Клас...   Oct 20 2015, 11:26
- - dima32rus   1. Код Грея (хорошо подходит для счетчиков). 2. Ме...   Oct 20 2015, 11:06
- - EvgenyNik   FIFO не подойдёт, т.к. подразумевается разница час...   Oct 20 2015, 11:28
|- - dima32rus   Цитата(EvgenyNik @ Oct 20 2015, 14:28) FI...   Oct 20 2015, 12:43
- - MegaVolt   Память двухпортовая само собой.   Oct 20 2015, 11:29
|- - EvgenyNik   Цитата(MegaVolt @ Oct 20 2015, 15:16) Это...   Oct 20 2015, 12:28
||- - MegaVolt   Цитата(EvgenyNik @ Oct 20 2015, 15:28) Чт...   Oct 20 2015, 12:32
|- - XVR   Цитата(MegaVolt @ Oct 20 2015, 15:49) Как...   Oct 20 2015, 12:52
||- - MegaVolt   Цитата(XVR @ Oct 20 2015, 15:52) В этом с...   Oct 20 2015, 13:01
||- - XVR   Цитата(MegaVolt @ Oct 20 2015, 16:01) Поч...   Oct 20 2015, 13:24
|- - RobFPGA   Приветствую! Цитата(MegaVolt @ Oct 20 20...   Oct 20 2015, 13:06
|- - dima32rus   Цитата(MegaVolt @ Oct 20 2015, 16:33) Мне...   Oct 20 2015, 13:46
|- - RobFPGA   Приветствую! Цитата(MegaVolt @ Oct 20 201...   Oct 20 2015, 13:59
|- - MegaVolt   Цитата(RobFPGA @ Oct 20 2015, 16:59) ...   Oct 20 2015, 14:15
|- - des00   Цитата(MegaVolt @ Oct 20 2015, 22:15) Инт...   Oct 20 2015, 15:05
||- - MegaVolt   Цитата(des00 @ Oct 20 2015, 18:05) сделат...   Oct 20 2015, 15:20
||- - des00   Цитата(MegaVolt @ Oct 20 2015, 22:20) Циф...   Oct 20 2015, 15:31
|- - EvgenyNik   Цитата(MegaVolt @ Oct 20 2015, 17:15) Про...   Oct 20 2015, 15:07
- - blackfin   FYI   Oct 20 2015, 12:57
|- - MegaVolt   Цитата(blackfin @ Oct 20 2015, 15:57) FYI...   Oct 20 2015, 13:15
- - XVR   ЦитатаИменно эта задача. Просто то что спрашиваю я...   Oct 20 2015, 13:43
|- - MegaVolt   Цитата(XVR @ Oct 20 2015, 16:43) Все, тут...   Oct 20 2015, 13:59
- - XVR   Поправка - сами коды счетчика можно передать в пар...   Oct 20 2015, 13:46
- - krux   если значение счетчика нужно прям кровь из носу - ...   Oct 20 2015, 14:30
|- - MegaVolt   Цитата(krux @ Oct 20 2015, 17:30) в поряд...   Oct 20 2015, 14:36
|- - RobFPGA   Приветствую! Цитата(MegaVolt)Пропуски и повто...   Oct 20 2015, 15:41
- - krux   ЦитатаКак выбирать из регистров если частоты не кр...   Oct 20 2015, 14:48
|- - MegaVolt   Цитата(krux @ Oct 20 2015, 17:48) по изве...   Oct 20 2015, 14:56
- - krux   счетчик из 100 МГц домена переведён на 9 МГц. испо...   Oct 20 2015, 15:55
- - MegaVolt   Правильно сформулированная задача - половина решен...   Oct 20 2015, 16:27
|- - des00   Цитата(MegaVolt @ Oct 20 2015, 23:27) а д...   Oct 20 2015, 16:33
||- - MegaVolt   Цитата(des00 @ Oct 20 2015, 19:33) а поде...   Oct 20 2015, 16:51
|- - RobFPGA   Приветствую! Цитата(MegaVolt @ Oct 20 20...   Oct 20 2015, 17:12
|- - MegaVolt   Цитата(RobFPGA @ Oct 20 2015, 20:12) Еще ...   Oct 20 2015, 18:51
|- - RobFPGA   Приветствую! Цитата(MegaVolt @ Oct 20 20...   Oct 20 2015, 19:12
- - Golikov A.   по моему хэнд шейк позволит передавать данные из 1...   Oct 20 2015, 19:24
|- - RobFPGA   Приветствую! Цитата(Golikov A. @ Oct 20 ...   Oct 20 2015, 19:32
- - Golikov A.   ЦитатаИ с чего это Вы решили что так будет ? Да эт...   Oct 20 2015, 19:46
- - EvgenyNik   Надеюсь, что будет понятно в продолжение о двух сч...   Oct 20 2015, 20:05
- - Golikov A.   а у вас недурная подпись в сообщениях ЦитатаПоче...   Oct 20 2015, 20:07
- - EvgenyNik   Цитата(Golikov A. @ Oct 20 2015, 23:07) а...   Oct 20 2015, 21:42
- - MegaVolt   Цитата(EvgenyNik @ Oct 21 2015, 00:42) им...   Oct 21 2015, 09:03


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

 


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


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