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

 
 
> Реконфигурация трансивера, 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
сообщение Feb 14 2017, 14:33
Сообщение #2


Местный
***

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



Продолжаю изучение. Залез сигналтапом в блок настройки регистров PMA (кстати, в нем обнаружился баг, причем в моем квартусе 15.0UPD2 исходный код этого модуля не соответствует обновлению по той ссылке, хотя они и написали что обновление типа запланировано в будущих версиях, а там этот баг аж для 13-й версии объявлен).

Удалось увидеть что при доступе к некоторым регистрам появляется флаг ошибки uif_illegal_offset_error, который в avalon-шину почему-то не передается.
Тогда я написал простейший проверятор (пишем, читаем, сравниваем, инкрементируем значение, повторяем), прогнал им все регистры PMA и вот что увидел:
Код
регистр:
0x00 (VOD)                          - работает (читается/пишется нормально во всем диапазоне допустимых значений согласно xcvr_user_guide: table 171010);
0x01 (Pre-emphasis pre-tap)         - не работает ни с одним из допустимых значений;
0x02 (Pre-emphasis first post-tap)  - работает;
0x03 (Pre-emphasis second post-tap) - не работает ни с одним из допустимых значений;
0x10 (RX equalization DC gain)      - работает частично, может принимать только значения 0-1, хотя в руководстве заявлено что может принимать значения 3’b000–3’b011: 0–3 и 3'b100-3'b110: 4;
0x11 (RX equalization control)      - работает частично, может принимать только значения 0-2, хотя в руководстве заявлено что может принимать значения 4’b0000–4’b1111: 0–15;


UPD: Что интересно, добравшись до исходника (alt_xreconf_analog_datactrl_av.sv), в котором делается отработка доступа к регистру RX equalization control стало видно что действительно там отрабатываются только значения 0-2, а остальные - игнорятся. Как это соотносится с документацией? Блин, засада прям.

UPD2: [botan mode on]Как это обычно бывает, умная мысль приходит после драки sm.gif Покопавшись поглубже в альтеровских исходниках и даташите на камень выяснил, что таки экспериментально выявленные мной диапазоны реальных допустимых значений регистров оказывается прописаны в даташите на конкретное семейство кристалла (CV в моем случае). cool.gif. Т.е. в разных семействах разные фичи могут быть частично или полностью недоступными. [botan mode off] Так что теперь остается проверить все остальные блоки реконфигурации, сопоставить их с даташитом - и пробовать запускать обмен данными.
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
- - Tue   Тоже обнаружил что "Pre-emphasis pre-tap...   Feb 27 2017, 15:37
|- - DuHast   Цитата(Tue @ Feb 27 2017, 18:37) Тоже обн...   Feb 27 2017, 20:06
- - spectr   Продолжаю разбиралово. Если трансивер использует, ...   Mar 1 2017, 07:07
|- - MrAlex   ЦитатаПродолжаю разбиралово. Если трансивер исполь...   Mar 1 2017, 13:27
- - 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 Текстовая версия Сейчас: 24th August 2025 - 04:44
Рейтинг@Mail.ru


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