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

Передача данных с одной отладочной платы в другую

4 minutes ago, excly said:

Вообще все от платы отключил. SIgnalTap дает такую же картину. Понизил частоту тактирования SignalTap с 200MHz до 50MHz. Дребезг исчез. Как это можно объяснить?

Сэмплировать висящие в воздухе ножки бессмысленно. Сделайте счётчик на плате с циклоном, выведите пару бит и заведите их обратно в ПЛИС (кольцо) и посмотрите что получится.

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

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


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

Я вот недавно экспериментировал, передавал данные по одному коаксиалу однополярный сигнал от SERDES, обрубок сантиметров 30-ть, с пол пинка получил 110 мегабит/с со своими пакетами, защищенными CRC-16. Вижу автор пытается макетными проводочками соединять платы. Есть ли возможность взять коаксиал (сделав там штырьки на концах) и соединить земли через оплетку (вторая пара штырьков)? Надеюсь я не "вредный совет" сейчас выдал.

Потому что 2 МГц не может работать с проблемами, мне трудно представить как можно не принять.

Еще вот советую промоделировать такую связку, добавить имитацию задержки линии, могу даже модули скинуть готовые на Verilog-е. А то мне кажется дело не в качестве сигнала, а в какой-то логике приема и передачи.

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


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

1 час назад, excly сказал:

Перед тем как подключать выход ко входу решил измерить напряжение на выходе. Получается 2,5В независимо от того, какие настройки ставлю в Pin Planner. Почему так получается?

напряжение на ножках зависит только от питающего напряжения соответствующего банка.

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


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

10 minutes ago, Lmx2315 said:

напряжение на ножках зависит только от питающего напряжения соответствующего банка.

а для чего тогда этот пункт настроек в Pin Planner?

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


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

46 minutes ago, excly said:

для чего тогда этот пункт настроек в Pin Planner?

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

И все же - попробуйте для частоты 200 МГц прописать констрейнты. 50 МГц для этого циклона - небольшая частота. Как устроен внутри сигналтап - не интересовался, может - не успевает корректно данные в память передавать на 200 мегагерцах.

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


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

15 hours ago, excly said:

а для чего тогда этот пункт настроек в Pin Planner?

Потому что одно и то же напряжение бывает у множества разных стандартов. Иными словами, там не только напряжение меняется, видимо выбирается еще какой-то отдельный варианты схемы ввода-вывода, а там это напряжение всё же важно знать, ведь сама ПЛИС не обладает интеллектом это узнать самостоятельно.

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


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

15 hours ago, Yuri124 said:

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

И все же - попробуйте для частоты 200 МГц прописать констрейнты. 50 МГц для этого циклона - небольшая частота. Как устроен внутри сигналтап - не интересовался, может - не успевает корректно данные в память передавать на 200 мегагерцах.

Сделал счетчик на циклоне, вывел его на ножки и с этих ножек же снял. Signal Tap нв 200MHz показывает все без дребезга. Дальше делаю тоже самое, только счетчик вывожу со второй платы. В циклоне входные ноги соединил с выходными(с помощью assign). Цепляюсь Signal Tap'ом на выходные ноги - все норм(первая картинка). После этого параллельно стал на входные ножки и появился дребезг. Причем везде(вторая картинка). Может никакого дребезга нет, а это просто signal tap так некорректно себя ведет?

 

По поводу констрейтов. Прописать достаточно только для клока на данном этапе? То есть описать что за клок и откуда берется. Прошу прощения, если эти вопросы звучать глуповато, просто я не совсем уверенно ими пользуюсь. Буду очень благодарен, если подскажете, что можно почитать по этому вопросу(можно и на английском)

1.jpg

2.jpg

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

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


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

 

11 minutes ago, excly said:

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

Хм, так вторая плата - и есть кит на циклоне - см. Ваш первый пост.

Непонятно написали.

1. 

15 minutes ago, excly said:

Сделал счетчик на циклоне, вывел его на ножки и с этих ножек же снял

Т.е. 3-битный счетчик на циклоне тактируется 200 МГц, выходы счетчика выведены на ноги ПЛИС, к ногам (т.е. к pin-ам) подключен сигналтап - все норм.

2. Дальше непонятно.

200 МГц откуда берутся? С внешнего генератора сразу 200  или какая-то частота с генератора (100 или 125 МГц), а дальше - PLL?

sdc файл выложите.

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


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

2 minutes ago, Yuri124 said:

 

Хм, так вторая плата - и есть кит на циклоне - см. Ваш первый пост.

Непонятно написали.

1. 

Т.е. 3-битный счетчик на циклоне тактируется 200 МГц, выходы счетчика выведены на ноги ПЛИС, к ногам (т.е. к pin-ам) подключен сигналтап - все норм.

2. Дальше непонятно.

200 МГц откуда берутся? С внешнего генератора сразу 200  или какая-то частота с генератора (100 или 125 МГц), а дальше - PLL?

sdc файл выложите.

Ошибся, имел ввиду с первой

3-битный счетчик тактируется 2МГц, Signal Tap - 200МГц. Обе частоты беру с pll. Констрейты еще не успел прописать

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


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

32 minutes ago, excly said:

Прописать достаточно только для клока на данном этапе?

Да. Описать, что за клок приходит на входной пин микросхемы. Например

create_clock -period "100 MHz" -name {refclk_clk} {*refclk_clk*}

Дальше, если используете PLL - просто напишите

derive_pll_clocks -create_base_clocks

 

Почитайте Дениса Шехалева статьи про sdc.

На английском -

 Ryan Scoville     TimeQuest User Guide

Ну и Альтеровский док есть:

SDC and TimeQuest API Reference Manual

 

 

Раз при частоте сигналтапа 50 МГц сигналы с Мах10 показываются правильно - подозреваю, что что-то не то с сигналтапом на 200 МГц.

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

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


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

8 minutes ago, Yuri124 said:

Например

create_clock -period "100 MHz" -name {refclk_clk} {*refclk_clk*}

Обзовите входную частоту, которая приходит на циклон, refclk_clk, или в это выражение вместо refclk_clk впишите название частоты в Вашем проекте.

Имею в виду опорную частоту, из которой PLL делает остальные.

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

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


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

1 hour ago, Yuri124 said:

Обзовите входную частоту, которая приходит на циклон, refclk_clk, или в это выражение вместо refclk_clk впишите название частоты в Вашем проекте.

Имею в виду опорную частоту, из которой PLL делает остальные.

 

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

1. У меня с первой платы подается clock. Его, как я понимаю, тоже нужно прописать в кострейтах. А входом всегда берется ножка ПЛИС или если будет стоять синхронизатор, то в кострейтах источником указывать выход синхронизатора?

2. По поводу CDC. Как я понимаю это обработка входных сигналов клоком приемной плис на частоте в n раз больше той, которая приходит? Как выбирать это n? И есть ли ссылки, где эта тема более-менее объясняется?

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


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

3 minutes ago, excly said:

с первой платы подается clock. Его, как я понимаю, тоже нужно прописать в кострейтах

да, описываете со своим именем и его реальной частотой и остальными параметрами при необходимости (скважность, например).

Описываете именно ногу ПЛИС, на которую приходит клок. Дальше Квартус сам разберется.

5 minutes ago, excly said:

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

Нет. CDC - передача данных из домена (части схемы) с одним клоком в другой домен с другим клоком. Клоки могут быть больше, меньше или равны (но не синхронны). Т.е скажем есть две схемы (даже если реализованы в одной ПЛИС), но со своими генераторами одинаковой частоты - это разные клоковые домены. Т.к. соотношение фаз тактвых частот будет меняться. Передать данные от одной схемы в другую - это задача разработчика.

Даже на одной и той же частоте можно представить себе вариант, что это будет как будто работа в разных клоковых доменах, и разработчик должен придумать, как корректно доставить даннные из точки А в точку Б.

Про CDC хорошая есть статья Иосифа Каршенбойма на его сайте.

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


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

16 minutes ago, excly said:

После прописывания констрейтов для clock проблема исчезла. Как это можно объяснить?

Квартус зная частоту правильно развел внутренний логический анализатор.

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


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

On 10/10/2018 at 12:52 PM, Yuri124 said:

Квартус зная частоту правильно развел внутренний логический анализатор.

Спасибо огромное за помощь. Надеюсь, что не откажете и сейчас. Подцепил первую плату(ту, которая передает) к логическому анализатору. Проблема указана на прикрепленной картинке. Напомню, что все сигналы выведены через обычные i/o(в том числе и clock). Квартус из-за этого ругается на клок. Я понимаю, что это возможно из-за проводов, но почему тогда это происходит только на линии clock? И подскажите пожалуйста какие констрейнты нужно прописать на для этих сигналов на передающей и приемной плате(и нужно ли вообще для такой частоты(clock - 30MHz)). Ну и можно ли вообще использовать для клока обычную i/o ножку.

1.jpg

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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