Перейти к содержанию
    

Обмен данных по КС LVDS. Verilog.

Добрый день! Заранее извините за неправильные термины. В работе с ПЛИС я новичок.

Я передаю пакет данных с частотой CLOCK 112 MHz. Затем мне присылают ответный пакет на такой же частоте 112 MHz, при таких условиях всё работает. 

Вопрос такой. Как мне принять данные если ответный пакет может мне поступить на частоте от 100 MHz до 115 MHz?

Просто я не представляю от чего оттолкнуться.

Изменено пользователем KefiroK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, KefiroK said:

Просто я не представляю от чего оттолкнуться.

от типа интерфейса: с передачей тактовой источника или нет. Если тактовая источника есть и это именно тактовая, то проблем особых нет. Если же передача асинхронная, тогда возможны варианты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если тактовой частоты отдельно не передается:

Как вариант, гнать в канале все время какую-нибудь случайную проследовательность, по которой подстраивать тактовую частоту приемника. И по ней уже принимать данные. 

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

Подробности расскажете? Какая ПЛИС? Описание интерфейса? Протокола?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14.01.2022 в 14:02, des00 сказал:

от типа интерфейса: с передачей тактовой источника или нет. Если тактовая источника есть и это именно тактовая, то проблем особых нет. Если же передача асинхронная, тогда возможны варианты

Передача происходит синхронно. Вместе с пакетом данных передается и тактовая частота 112 MHz. Ответный пакет приходит так же синхронно, но есть вероятность того что ответная тактовая может быть плавающей от 100-115 MHz. Плисина Altera MAX 10.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, KefiroK said:

Передача происходит синхронно. Вместе с пакетом данных передается и тактовая частота 112 MHz. Ответный пакет приходит так же синхронно, но есть вероятность того что ответная тактовая может быть плавающей от 100-115 MHz. Плисина Altera MAX 10.

То есть  у вас разная тактовая передается в оба  направления?  На передачу есть шина данных и  тактовая и на прием отдельная шина данных и отдельная линия тактовой? 
Нужно конкретно понимать структуру вашего дизайна чтобы не гадать что и как.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15.01.2022 в 17:11, RobFPGA сказал:

То есть  у вас разная тактовая передается в оба  направления?  На передачу есть шина данных и  тактовая и на прием отдельная шина данных и отдельная линия тактовой? 
Нужно конкретно понимать структуру вашего дизайна чтобы не гадать что и как.

 

Да, у передачи две шины тактовая и данные, и на прием две шины тактовая и данные. Только по линии передачи тактовая точно 112 MHz. А на ответной шине может быть плавающая от 100 - 115.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, KefiroK said:

Да, у передачи две шины тактовая и данные, и на прием две шины тактовая и данные. Только по линии передачи тактовая точно 112 MHz. А на ответной шине может быть плавающая от 100 - 115.

Поставить по приему ФИФО, по заголовку пакета его сбрасывать, потом копить в нем весь пакет и вычитывать-обрабатывать. Если "плотность" пакетов не сильно большая - должно взлететь.

Либо даже не весь пакет, а первые сколько-то слов. Что бы быть уверенным, что не будет underflow буфера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17.01.2022 в 10:21, nice_vladi сказал:

Поставить по приему ФИФО, по заголовку пакета его сбрасывать, потом копить в нем весь пакет и вычитывать-обрабатывать. Если "плотность" пакетов не сильно большая - должно взлететь.

Либо даже не весь пакет, а первые сколько-то слов. Что бы быть уверенным, что не будет underflow буфера.

Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую

Изменено пользователем KefiroK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 minutes ago, KefiroK said:

Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую

Если частоты сопоставимы - то фифо самый простой вариант. Если есть перетактирование - то можно попытаться детектировать фронт тактового сигнала и по этому фронту защелкивать шину данных.

Поставить два регистра последовательно и пропустить через них принимаемую шину данных. Курите на тему clock domain crossin. Например это

ЗЫ. телепат в действии)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 minutes ago, KefiroK said:

Спасибо большое!! Этот вариант работает. Но можно ли как-то обойтись без FIFO, чтобы перейти из одного клокового домена в другой. Ну чтобы как-то перейти с одной тактовой частоты на другую

Можно на базе двухпортовой памяти организовать двойной буффер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, nice_vladi said:

Поставить два регистра последовательно и пропустить через них принимаемую шину данных.

Это может исправить только фазовые ошибки. При расхождении частот не сработает.

Здесь можно на входной частоте принять байт (или сколько нужно по протоколу), затем сформировать готовность данных и по этому сигналу перетаскивать эти данные в другой домен (112 МГц). Частота обработки должна быть заведомо выше, чем максимальная входная (деленная на количество бит в приеме).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, Alex11 said:

Это может исправить только фазовые ошибки. При расхождении частот не сработает

Ну да, это я погорячился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...