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

 
 
> Реконфигурация трансивера, 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
Ответов
Magnum
сообщение Jul 21 2017, 10:24
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397



Можно ещё попробовать custom_phy, они конечно во многом очень похожи, но некоторые отличия есть. И на крайний случай сделать 2 прошивки с фиксированными настройками и перезаливать в соответствии с необходимостью.
ЗЫ а зачем пользовать 2 разные опорные PLL? нельзя одну реконфигурировать?
Go to the top of the page
 
+Quote Post
spectr
сообщение Jul 21 2017, 11:41
Сообщение #3


Местный
***

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



Цитата(Magnum @ Jul 21 2017, 13:24) *
ЗЫ а зачем пользовать 2 разные опорные PLL? нельзя одну реконфигурировать?

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

Попробовал еще один вариант - каждый канал трансивера тактировать своим инстансом Transceiver PLL. Так вот - если реконфигурацию PLL не использовать, то проект вроде как даже собирается (максимум на 6 каналов), но как только к PLL подключаешь ядро реконфигуратора (неважно - одно общее на трансивер/pll либо два отдельных), то фиттер останавливается с ошибкой что, мол, не туда подключен опорный клок от pll (ШТОА?!)...
Код
Error: Channel PLL node 'board:board|xcvr_controller:xcvr_controller|txpll:channel[2].txpll|av_xcvr_plls:txpll_inst|pll[0].pll.cmu_pll.tx_pll' is not properly connected on the 'CLKCDR' port. It must be connected to one of the valid ports listed below.
    Info: Can be connected to CLKCDRLOC port of arriav_hssi_pma_tx_cgb WYSIWYG
    Info: Can be connected to CLKCDR1B port of arriav_hssi_pma_tx_cgb WYSIWYG
    Info: Can be connected to CLKCDR1T port of arriav_hssi_pma_tx_cgb WYSIWYG
    Info: Can be connected to CLKFFPLL port of arriav_hssi_pma_tx_cgb WYSIWYG
    Info: Can be connected to CLKDNSEG port of arriav_hssi_pma_tx_cgb WYSIWYG
    Info: Can be connected to CLKUPSEG port of arriav_hssi_pma_tx_cgb WYSIWYG
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   Продолжаю разбиралово. Если трансивер использует, ...   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


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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 22:20
Рейтинг@Mail.ru


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