KefiroK 0 14 января, 2022 Опубликовано 14 января, 2022 (изменено) · Жалоба Добрый день! Заранее извините за неправильные термины. В работе с ПЛИС я новичок. Я передаю пакет данных с частотой CLOCK 112 MHz. Затем мне присылают ответный пакет на такой же частоте 112 MHz, при таких условиях всё работает. Вопрос такой. Как мне принять данные если ответный пакет может мне поступить на частоте от 100 MHz до 115 MHz? Просто я не представляю от чего оттолкнуться. Изменено 14 января, 2022 пользователем KefiroK Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 января, 2022 Опубликовано 14 января, 2022 · Жалоба 3 minutes ago, KefiroK said: Просто я не представляю от чего оттолкнуться. от типа интерфейса: с передачей тактовой источника или нет. Если тактовая источника есть и это именно тактовая, то проблем особых нет. Если же передача асинхронная, тогда возможны варианты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slkhome 0 15 января, 2022 Опубликовано 15 января, 2022 · Жалоба Если тактовой частоты отдельно не передается: Как вариант, гнать в канале все время какую-нибудь случайную проследовательность, по которой подстраивать тактовую частоту приемника. И по ней уже принимать данные. Данные, конечно, в свою очередь должны быть упакованы в пакет с преамбулой и контрольной суммой, так как нужно определять начало информационного пакета и наличие возможных ошибок при таком типе обмена. Подробности расскажете? Какая ПЛИС? Описание интерфейса? Протокола? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KefiroK 0 15 января, 2022 Опубликовано 15 января, 2022 · Жалоба 14.01.2022 в 14:02, des00 сказал: от типа интерфейса: с передачей тактовой источника или нет. Если тактовая источника есть и это именно тактовая, то проблем особых нет. Если же передача асинхронная, тогда возможны варианты Передача происходит синхронно. Вместе с пакетом данных передается и тактовая частота 112 MHz. Ответный пакет приходит так же синхронно, но есть вероятность того что ответная тактовая может быть плавающей от 100-115 MHz. Плисина Altera MAX 10. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 15 января, 2022 Опубликовано 15 января, 2022 · Жалоба 2 hours ago, KefiroK said: Передача происходит синхронно. Вместе с пакетом данных передается и тактовая частота 112 MHz. Ответный пакет приходит так же синхронно, но есть вероятность того что ответная тактовая может быть плавающей от 100-115 MHz. Плисина Altera MAX 10. То есть у вас разная тактовая передается в оба направления? На передачу есть шина данных и тактовая и на прием отдельная шина данных и отдельная линия тактовой? Нужно конкретно понимать структуру вашего дизайна чтобы не гадать что и как. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KefiroK 0 17 января, 2022 Опубликовано 17 января, 2022 · Жалоба 15.01.2022 в 17:11, RobFPGA сказал: То есть у вас разная тактовая передается в оба направления? На передачу есть шина данных и тактовая и на прием отдельная шина данных и отдельная линия тактовой? Нужно конкретно понимать структуру вашего дизайна чтобы не гадать что и как. Да, у передачи две шины тактовая и данные, и на прием две шины тактовая и данные. Только по линии передачи тактовая точно 112 MHz. А на ответной шине может быть плавающая от 100 - 115. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 17 января, 2022 Опубликовано 17 января, 2022 · Жалоба 1 hour ago, KefiroK said: Да, у передачи две шины тактовая и данные, и на прием две шины тактовая и данные. Только по линии передачи тактовая точно 112 MHz. А на ответной шине может быть плавающая от 100 - 115. Поставить по приему ФИФО, по заголовку пакета его сбрасывать, потом копить в нем весь пакет и вычитывать-обрабатывать. Если "плотность" пакетов не сильно большая - должно взлететь. Либо даже не весь пакет, а первые сколько-то слов. Что бы быть уверенным, что не будет underflow буфера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KefiroK 0 19 января, 2022 Опубликовано 19 января, 2022 (изменено) · Жалоба 17.01.2022 в 10:21, nice_vladi сказал: Поставить по приему ФИФО, по заголовку пакета его сбрасывать, потом копить в нем весь пакет и вычитывать-обрабатывать. Если "плотность" пакетов не сильно большая - должно взлететь. Либо даже не весь пакет, а первые сколько-то слов. Что бы быть уверенным, что не будет underflow буфера. Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую Изменено 19 января, 2022 пользователем KefiroK Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 19 января, 2022 Опубликовано 19 января, 2022 · Жалоба 16 minutes ago, KefiroK said: Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую Если частоты сопоставимы - то фифо самый простой вариант. Если есть перетактирование - то можно попытаться детектировать фронт тактового сигнала и по этому фронту защелкивать шину данных. Поставить два регистра последовательно и пропустить через них принимаемую шину данных. Курите на тему clock domain crossin. Например это ЗЫ. телепат в действии) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 января, 2022 Опубликовано 19 января, 2022 · Жалоба 53 minutes ago, KefiroK said: Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую Можно на базе двухпортовой памяти организовать двойной буффер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 19 января, 2022 Опубликовано 19 января, 2022 · Жалоба 31 minutes ago, nice_vladi said: Поставить два регистра последовательно и пропустить через них принимаемую шину данных. Это может исправить только фазовые ошибки. При расхождении частот не сработает. Здесь можно на входной частоте принять байт (или сколько нужно по протоколу), затем сформировать готовность данных и по этому сигналу перетаскивать эти данные в другой домен (112 МГц). Частота обработки должна быть заведомо выше, чем максимальная входная (деленная на количество бит в приеме). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 19 января, 2022 Опубликовано 19 января, 2022 · Жалоба 27 minutes ago, Alex11 said: Это может исправить только фазовые ошибки. При расхождении частот не сработает Ну да, это я погорячился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться