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

Стыковка FPGA kintex 7 и DSP tms320c6678 с использованием SRIO gen2

Здравствуйте!

Используем самостоятельно изготовленную плату с установленной ПЛИС xc7k410t и DSP tms320c6678. На данном этапе идет отладка взаимодействия ПЛИС и DSP с использованием интерфейса SRIO gen 2 v1.7.

 

Включением питания на плате управляет мк stm8. Сначала контроллер открывает питание на ПЛИС, затем ПЛИС конфигурируется и "дает" мк разрешение на включение питаний dsp. dsp включается в соответствии с документом TMDXEVM6678L_EVM_A102_1.pdf стр 4.

Далее мк сообщает ПЛИС о том, что DSP включен и плис прогружает PLL1 и PLL2 необходимые для работы DSP (в своем изделии повторена схема на стр. 7).

 

После чего, ПЛИС ожидает захвата pll1 и pll2, а затем сигналы сбросов dsp подтягиваются к единице в соответствии со схемой на стр.4.

 

Как только DSP сброшен выставляется сигнал DSP_RESET_STATISTIC.

 

Ну и наконец) Проблема в том, что инициализация порта SRIO в режиме 1gb/s 1x проходит от включения к включению платы. То есть, я могу запустить изделие, затем после прогрузки ПЛИС, вкл. DSP, после захвата PLL сконфигурировать DSP и в chipscope увидеть "работающий порт" или увидеть "нечто", что представлена на рисунке ниже.

post-65614-1415886159_thumb.png

 

контуры питаний на плате были тщательно проверены, PLL-ки гарантированно всегда в захвате.

 

Как думаете, в каком направлении копать? :cranky:

 

Применительно к DSP хочу отметить, что если инициализация порта прошла успешно после включения, то разные режимы работы 4x 3.125gb/s, 4x 5gb/s, 1x 2gb/s, 1x 5gb/s работают адекватно, порты инициализируются.

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

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


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

Могу порекомендовать для начала поставить петли в ПЛИС:

 

1) Перенаправление выхода ПЛИС на вход ПЛИС. Проверить, есть ли артефакты, ходят ли надежно данные из ПЛИС в ПЛИС.

2) Перенаправление входа ПЛИС (выхода DSP) на выход ПЛИС (вход DSP). Проверить, есть ли ошибки в DSP, ходят ли надежно данные из DSP в DSP.

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


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

Может нарушается процесс инициализации, и надо поиграться с задержками при подаче питания и управляющих сигналов.

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


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

там у седьмой серии есть даташит на порядок подачи питания:

The recommended power-on sequence to achieve minimum current draw for the GTX/GTH transceivers is VCCINT,

VMGTAVCC, VMGTAVTT OR VMGTAVCC, VCCINT, VMGTAVTT. There is no recommended sequencing for VMGTVCCAUX. Both

VMGTAVCC and VCCINT can be ramped simultaneously. The recommended power-off sequence is the reverse of the poweron

sequence to achieve minimum current draw.

If these recommended sequences are not met, current drawn from VMGTAVTT can be higher than specifications during

power-up and power-down.

Далее вопросы:

- плисина и сигнальник подключены напрямую или через свич?

- клоки рапиды тактируются у них от одного генератора, или от разных? Опять же, в стандарте рапиды прописаны требования к стабильности этого генератора

- в стандартной корке рапиды от ксайлинкса есть возможность принудительно сбросить линк и порт, вы пробовали так делать? иногда помогало

- посмотрите что в регистрах ошибки SRIO сигнальника прописано когда все плохо

- есть ли уверенность, что программа в сигнальнике стартовала?

- соответствует ли стартовая последовательность на 6678 даташиту? А то мы, было дело, с ней намучались.

- почитайте errata на сигнальник, а то была эпичная история при попытке подружить виртекс 5 и tms320c6455. Мы на своей шкуре отловили баг, который потом появился в третей еррате сигнальника, там надо было подтягивать к земле линию TCK JTAG (у нас была подтянута к питанию), иначе очень глючно стартовало. Причем глючила только рапида, остальное все работало нормально. Отловили случайно, заметили что если отверткой прикасаться к этой ноге, то стартует на "отлично".

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


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

Что касается питания ПЛИС, у нас есть расхождение с рекомендацией.

Последовательность активности питаний: VMGTAVTT и VMGTAVCC одновременно, VCCINT, VCCAUX, VCC0.

 

- плисина и сигнальник подключены напрямую или через свич?

ПЛИС и DSP подключены напрямую (точка-точка).

 

- клоки рапиды тактируются у них от одного генератора, или от разных?

Клоки рапиды и DSP и ПЛИС подключены к разным генераторам, точнее на dsp идет клок рапиды от PLL2 cdce62005 312.5 МГц.

 

На ПЛИС клок рапиды можно завести двумя путями:

- напрямую от генератора 125 Мгц

- от pll0 cdce62005, пропустив через неё сигнал генератора 125 МГц.

Пробовал эти два варианта.

 

- в стандартной корке рапиды от ксайлинкса есть возможность принудительно сбросить линк и порт, вы пробовали так делать?

Да, так делать пробовал, результат аналогичен.

 

- посмотрите что в регистрах ошибки SRIO сигнальника прописано когда все плохо.

В одном из регистров утановлен бит ошибки на прием данных. error decode 8b/10b.

 

- есть ли уверенность, что программа в сигнальнике стартовала?

Механизм конфигурирования DSP после подачи питания еще не отлажен.

То есть я в chipscope смотрю, что DSP_RESET_STATISTIC в 1, а затем шью dsp вручную.

 

- соответствует ли стартовая последовательность на 6678 даташиту?

Здесь я не совсем понял, что вы имеете ввиду. Стартовая последовательность SRIO?

 

Errata скачал. изучаю. Спасибо за мысли. у нас на плате revision1.)

 

"Причем глючила только рапида, остальное все работало нормально. Отловили случайно, заметили что если отверткой прикасаться к этой ноге, то стартует на "отлично"."

 

То есть у Вас также не было инициализации между ПЛИС и DSP по рапиде?

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

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


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

То есть у Вас также не было инициализации между ПЛИС и DSP по рапиде?
Да, не было инициализации. Но у нас при вставленном jtag сигнальника значительно реже глючило, собственно поэтому и удалось отловить баг.

Теперь еще вопрос: вы не пробовали хорошим осциллографом смотреть сигналы на линиях MGT ?

Судя по регистрам ошибок сигнальника, чудит плисина, но осциллографом посмотреть не мешало бы.

Вспомнил еще несколько тонкостей: на MGT существует нога терминирующего резистора, причем он на разных сериях микросхем может отличаться на пару-тройку ом. Вот его надо проверить, а то у нас получилось разок так, что сдирали с отладки где стоит один тип микросхемы, а сами поставили немного другой, совместимый по пинам. А на минусе иногда подлючивало. И еще надо попробовать настроить уровень сигнала на обоих концах, практика показала что максимальные и минимальные значения на коротких линиях переносятся плохо, лучше что-нибудь поближе к середине поставить. В плисине для этого придется руками поправить gtx_wrapper. Да, и еще проверьте чтобы эквалайзер был включен на обоих концах на автомат

 

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


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

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

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

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

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

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

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

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

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

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