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

 
 
> Реконфигурация трансивера, Cyclone V
spectr
сообщение Feb 10 2017, 10:19
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Уважаемые друзья. Не могу никак понять несколько вещей, которые не дают двигаться дальше.

Хочу сделать реконфигурацию трансивера. Для этого собрал QSyS-системку по аналогии с an676 и вот этим товарищем. Вкратце:
- Clock Source 75MHz - это понятно;
- JTAG to Avalon Master - чтобы был доступ из System Console;
- Transceiver Reconfiguration Controller - настроен на 2 интерфейса, включена возможность реконфигурации через MIF;
- Cyclone V Transceiver Native PHY - настроен на 2 скорости;
- Transceiver PLL - дает опору для одной скорости;
- Fractional PLL - дает опору для второй скорости;
- Transceiver PHY Reset Controller - понятно;
- PIO - для выбора таблички MIF с настройками той или иной скорости;

Всё собирается, из System Console всё видно. Пытаюсь, по аналогии с an676, an664, an645 и конечно же xcvr_user_guide, читать-писать регистры реконфигуратора и получаю затык. Вопросы следующие:
1. В настройках Transceiver Reconfiguration Controller-а есть параметр Optional Interface Groupong. Никак не могу понять что он означает. Вот у меня два интерфейса используются - один для трансивера, второй - для PLL. Что в моем случае надо здесь вписать? Почему?
2. Чтобы заставить Reset Controller выполнить сброс - достаточно разок дернуть его самомо за ногу reset?
3. Вот мы сбросились, подключились к реконфигуратору (через System console), читаем все его регистры, получаем следующую картину:
Код
% dump_all 0
       PMA Analog control registers dump (channel 0):
                          feature status:   busy = 0, error = 0, read = 0, write = 0
                               VOD (0x00) = 10
              Pre-emphasis pre-tap (0x01) = 0
       Pre-emphasis first post-tap (0x02) = 0
      Pre-emphasis second post-tap (0x03) = 0
           RX equalization DC gain (0x10) = 0
           RX equalization control (0x11) = 0

                      AEQ registers dump (channel 0):
                          feature status:   busy = 0, error = 0, read = 0, write = 0
                        ADAPT_DONE (0x00) = 0
                              MODE (0x00) = 0
              Equalization results (0x01) = 0

      ATX PLL calibration registers dump (channel 0):
                          feature status:   busy = 0, error = 0, read = 0, write = 0
                           Control (0x00) = 0
                   Run calibration (0x01) = 0

      PLL reconfiguration registers dump (channel 0):
                          feature status:   busy = 0, error = 0, read = 0, write = 0
          Logical refclk selection (0x00) = 0
             Logical PLL selection (0x01) = 0
           refclk physical mapping (0x02) = 33554400
              PLL physical mapping (0x03) = 16163

                      DCD registers dump (channel 0):
                           Control (0x00) = 0

                 Streamer registers dump (channel 0):
                          feature status:   busy = 0, error = 0, read = 0, write = 0
                  MIF base address (0x00) = 0
                       Clear error (0x01) = 0
                  MIF address mode (0x01) = 0
                  Start MIF stream (0x01) = 0
           MIF or channel mismatch (0x02) = 0
      PLL reconfiguration IP error (0x02) = 0
                  MIF opcode error (0x02) = 0
           Invalid register access (0x02) = 0

Это, получается, как бы значения по умолчанию. Окей, но при попытке записать что-то в те или иные поля - мои значения либо не пишутся, либо пишутся как-то странно (по сигналтапу я вижу что на авалоновскую шину реконфигуратора все выставляется корректно). Например, несмотря на то, что VOD согласно документации может быть от 0 до 63, некоторые значения записываются неверно или не записываются вообще. Получаются как бы "дырки". Это нормально?

4. Есть какое-нибудь вменяемое описание того в какой последовательности правильно конфигурировать трансивер? А то везде все ограничиваются примером в духе "мы покажем как записать один произвольный регистр". Может там нужна особая последовательность записи?!

В итоге я хочу порегистрово его сконфигурировать и сделать скрипт для управления режимами его работы, что-то похожее на Transceiver Toolkit, только сильно проще и под свои нужды.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
spectr
сообщение Mar 1 2017, 07:07
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Продолжаю разбиралово. Если трансивер использует, например, две скорости, то ему в опору ставят разные PLL - CMUPLL И FPLL (как, например, в an676).
Объясните, почему используют разные типы PLL?

Поясню отчего такой вопрос возник.
В проекте заложена ножка для тактирования трансивера - выделенная нога для подачи опорного такта специально на трансиверы - Dedicated Transceiver REFCLK. И когда я пытаюсь тактировать трансивер (приемную и передающую части) от этой ножки, то фиттер отказывается проект собирать.

Были следующие эксперименты:
1. Пробовал настроить трансивер с внутренними PLL (2 режима скорости). У него в такой конфигурации есть два порта - rx_cdr_refclk и tx_pll_refclk. Если завожу REFCLK на эти порты, то фиттер не может развестись.
2. Сейчас настроил трансивер с внешней PLL (2 штуки). Создал 2 CMUPLL на основе Transceiver PLL, подсоединил их к трансиверу. Опору для CMUPLL беру опять же с REFCLK. По идее, я ожидал что он сообразит что надо использовать 2 аппаратные CMUPLL, но фиттер снова останавливается с ошибками.
3. Конечно я могу все сделать тупо как в примерах, но непонимание от этого не уйдет. Поэтому хочется разобраться.

Возникает такое ощущение что ему нельзя с одной входной ножки давать опору для CDR и для TXPLL.
Go to the top of the page
 
+Quote Post
MrAlex
сообщение Mar 1 2017, 13:27
Сообщение #3


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

Группа: Свой
Сообщений: 197
Регистрация: 15-10-10
Из: г. Москва
Пользователь №: 60 179



Цитата
Продолжаю разбиралово. Если трансивер использует, например, две скорости, то ему в опору ставят разные PLL - CMUPLL И FPLL (как, например, в an676).
Объясните, почему используют разные типы PLL?
1. Пробовал настроить трансивер с внутренними PLL (2 режима скорости). У него в такой конфигурации есть два порта - rx_cdr_refclk и tx_pll_refclk. Если завожу REFCLK на эти порты, то фиттер не может развестись.
2. Сейчас настроил трансивер с внешней PLL (2 штуки). Создал 2 CMUPLL на основе Transceiver PLL, подсоединил их к трансиверу. Опору для CMUPLL беру опять же с REFCLK. По идее, я ожидал что он сообразит что надо использовать 2 аппаратные CMUPLL, но фиттер снова останавливается с ошибками.

Если используется приемник channel PLL used as clock data recovery (CDR)PLL. Если не весь блок занят оставшиеся можно использовать для тактирования передатчиков.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- spectr   Реконфигурация трансивера   Feb 10 2017, 10:19
- - DuHast   Добрый день Делал реконфигуратор трансиверов через...   Feb 12 2017, 15:27
- - spectr   DuHast, спасибо за отклик! Цитата(DuHast ...   Feb 13 2017, 09:57
|- - DuHast   Может команды не те шлёте? Там ,сначала пишешь по ...   Feb 13 2017, 19:06
- - spectr   Я делаю в точности так же. Давайте я выложу сюда с...   Feb 14 2017, 08:37
- - dmy   .del. Извините, ошибся окном.   Feb 14 2017, 13:34
- - spectr   Продолжаю изучение. Залез сигналтапом в блок настр...   Feb 14 2017, 14:33
- - Tue   Тоже обнаружил что "Pre-emphasis pre-tap...   Feb 27 2017, 15:37
|- - DuHast   Цитата(Tue @ Feb 27 2017, 18:37) Тоже обн...   Feb 27 2017, 20:06
- - spectr   С PLL вроде понятно. Спасибо. Теперь появился воп...   Mar 14 2017, 15:40
- - spectr   Подниму тему, т.к. не всё получается. Как работат...   Jul 13 2017, 12:11
- - spectr   Смотрите что обнаружилось: When dynamic reconfigur...   Jul 13 2017, 13:16
- - spectr   В-общем, не получается никак это дело запустить. В...   Jul 21 2017, 07:18
- - Magnum   Можно ещё попробовать custom_phy, они конечно во м...   Jul 21 2017, 10:24
- - spectr   Цитата(Magnum @ Jul 21 2017, 13:24) ЗЫ а ...   Jul 21 2017, 11:41


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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 00:59
Рейтинг@Mail.ru


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